Mythtv

From NAS-Central Buffalo - The Linkstation Wiki
Revision as of 17:10, 29 January 2007 by Epheatt (Talk)

Jump to: navigation, search

Install according to http://www.kurobox.com/mwiki/index.php/Debian_on_the_Kurobox using http://www.kurobox.com/mwiki/index.php/Debian_sylver

Then update your apt sources

#/etc/apt/sources.list
#
#  Debian Main
#
deb http://ftp.debian.org/debian sarge main contrib non-free
deb-src http://ftp.debian.org/debian sarge main contrib non-free
#
#  Debian Security Updates
#
deb http://security.debian.org/ sarge/updates main contrib non-free
deb-src http://security.debian.org/ sarge/updates main contrib non-free
# Christian Marillat's packages (MythTV, mplayer, lame)
deb http://www.debian-multimedia.org sid main
deb-src http://www.debian-multimedia.org sid main
deb http://http.us.debian.org/debian sid main contrib non-free
deb-src http://http.us.debian.org/debian sid main contrib non-free

I've added the following to default things to Sarge in /etc/apt/apt.conf (if it is missing this can be the only contents when you create it)

APT::Default-Release "stable";

Update and sort out dependencies. I prefer to use aptitude since some of the dependencies are a little dicey, but this will work too.

apt-get update
apt-get build-dep mythtv

Download source and configure options.

apt-get source mythtv --download-only
dpkg-source -x mythtv_0.20-svn20070122-0.0.dsc
cd mythtv-0.20-svn20070122
echo --disable-altivec > config.opts

The curent patch to allow compilation for the release-20-fixes branch in a file I called KuroHG-DisableAltivec.patch

Index: libs/libmythmpeg2/cpu_accel.c
===================================================================
--- libs/libmythmpeg2/cpu_accel.c       (revision 12297)
+++ libs/libmythmpeg2/cpu_accel.c       (working copy)
@@ -149,7 +149,7 @@
 #ifdef ARCH_PPC
 static uint32_t arch_accel (uint32_t accel)
 {
-#ifdef ACCEL_DETECT
+#if defined(ACCEL_DETECT) && defined(HAVE_ALTIVEC)
     if ((accel & (MPEG2_ACCEL_PPC_ALTIVEC | MPEG2_ACCEL_DETECT)) ==
        MPEG2_ACCEL_DETECT) {
        static RETSIGTYPE (* oldsig) (int);
Index: libs/libmythmpeg2/motion_comp.c
===================================================================
--- libs/libmythmpeg2/motion_comp.c     (revision 12297)
+++ libs/libmythmpeg2/motion_comp.c     (working copy)
@@ -44,7 +44,7 @@
     else
 #endif /* MMX */
 #endif
-#ifdef ARCH_PPC
+#ifdef HAVE_ALTIVEC
     if (accel & MPEG2_ACCEL_PPC_ALTIVEC)
        mpeg2_mc = mpeg2_mc_altivec;
     else
Index: libs/libmythmpeg2/idct.c
===================================================================
--- libs/libmythmpeg2/idct.c    (revision 12297)
+++ libs/libmythmpeg2/idct.c    (working copy)
@@ -248,7 +248,7 @@
     } else
 #endif
 #endif
-#ifdef ARCH_PPC
+#ifdef HAVE_ALTIVEC
     if (accel & MPEG2_ACCEL_PPC_ALTIVEC) {
        mpeg2_idct_copy = mpeg2_idct_copy_altivec;
        mpeg2_idct_add = mpeg2_idct_add_altivec;
Index: libs/libmythmpeg2/cpu_state.c
===================================================================
--- libs/libmythmpeg2/cpu_state.c       (revision 12297)
+++ libs/libmythmpeg2/cpu_state.c       (working copy)
@@ -43,7 +43,7 @@
 }
 #endif

-#ifdef ARCH_PPC
+#ifdef HAVE_ALTIVEC
 #if defined(HAVE_ALTIVEC_H) && !defined(CONFIG_DARWIN) /* gnu */
 #define LI(a,b) "li " #a "," #b "\n\t"
 #define STVX0(a,b,c) "stvx " #a ",0," #c "\n\t"
@@ -120,7 +120,7 @@
        mpeg2_cpu_state_restore = state_restore_mmx;
     }
 #endif
-#ifdef ARCH_PPC
+#ifdef HAVE_ALTIVEC
     if (accel & MPEG2_ACCEL_PPC_ALTIVEC) {
        mpeg2_cpu_state_save = state_save_altivec;
        mpeg2_cpu_state_restore = state_restore_altivec;

patch the source with:

patch -u -p 0 < KuroHG-DisableAltivec.patch

alter the debian/changelog to the desired package name

from:
mythtv (0.20-svn20070122-0.0) unstable; urgency=low

to:
mythtv (0.20-svn20070122-KUROHG-0.0) unstable; urgency=low

build the packages and install!

CONFIGURE_OPTS=`cat config.opts` dpkg-buildpackage
cd .. 
dpkg --install *myth*.deb

add to end of /etc/lighttpd/lighttpd.conf to use lighttpd instead of apache.

server.modules += ("mod_rewrite","mod_fastcgi","mod_setenv")
index-file.names += ("mythweb.php")
fastcgi.server    = ( ".php" =>
        ( "localhost" =>
        (
                "bin-path" => "/usr/bin/php4-cgi",
                "socket" => "/tmp/php-fastcgi.socket",
                "max-procs" => 2,
                "idle-timeout" => 20,
                "bin-environment" => (
                        "db_server" => "localhost",
                        "db_name" => "mythconverg",
                        "db_login" => "mythtv",
                        "db_password" => "mythtv"
                ),
                "broken-scriptfilename" => "enable"
        ))

)
url.rewrite-once = (
   "^/mythweb/(tv.*|music.*|video.*|weather.*|settings.*|status.*|backend_log.*)$" => "/mythweb/mythweb.php/$1",
)