Updatemythtv

Change Log since 1.8.8

 * 1.9.2  - Miner Bug Fixes
 * 1.9.1  - Added MythStream Support under the "full" install.
 * 1.9.0  - Added 'clean-download' to remove the SVN dirs and download a fresh copy, then backup the just downloaded copy.
 * 1.8.9.2 - Do NOT kill mythbackend during Mythbackend install.
 * 1.8.9.1 - Fixed Backend bug, Only copy 'etc.rc.d.init.d.mythbackend' if /etc/sysconfig/mythbackend is missing.
 * 1.8.9.0 - Fixed OSD bug, Now shows the currect SVN number for the OSD

The Script
REV="Rev 1.9.2 2007-April-19" URL=http://svn.mythtv.org/svn/trunk SVNDIR=/tmp/svn BULIDDIR=/usr/local HTTPDIR=/var/www/html LOG=$SVNDIR/log/build.log MLOG=$SVNDIR/log/mythtv-compile.log PLOG=$SVNDIR/log/mythplugings-compile.log TLOG=$SVNDIR/log/myththemes-compile.log SVNLOG=$SVNDIR/log/svn.log ELOG=$SVNDIR/log/build-error.log MELOG=$SVNDIR/log/mythtv-compile-error.log PELOG=$SVNDIR/log/mythplugings-compile-error.log TELOG=$SVNDIR/log/myththemes-compile-error.log clear log { tee -a $LOG } mkdir -p $SVNDIR/log echo "`date +%T` - Current Verison is: $REV" Download-svn { echo "`date +%T` - Removeing old svn config files & dirs" rm -rf $SVNDIR/log/* rm -rf $SVNDIR/*/config/ rm -rf $SVNDIR/*/config.* echo "`date +%T` - Starting Mythtv Download from svn." |log SVN=`svn info $URL |grep "Last Changed Rev:" |awk '{print $4 }'` echo "`date +%T` - Current Mythtv SVN Version is $SVN" |log svn co $URL/mythtv $SVNDIR/mythtv >> $SVNLOG 2> $ELOG svn co $URL/mythplugins $SVNDIR/mythplugins >> $SVNLOG 2> $ELOG svn co $URL/myththemes $SVNDIR/myththemes >> $SVNLOG 2> $ELOG } Clean-Download-svn { echo "`date +%T` - Deleting Mythtv SVN Dirctory's"  rm -rf $SVNDIR/log/* rm -rf $SVNDIR/mythtv rm -rf $SVNDIR/mythplugins rm -rf $SVNDIR/myththemes mkdir -p $SVNDIR/log echo "`date +%T` - Starting Mythtv Download from svn." |log SVN=`svn info $URL |grep "Last Changed Rev:" |awk '{print $4 }'` echo "`date +%T` - Current Mythtv SVN Version is $SVN" |log svn co $URL/mythtv $SVNDIR/mythtv >> $SVNLOG 2> $ELOG svn co $URL/mythplugins $SVNDIR/mythplugins >> $SVNLOG 2> $ELOG svn co $URL/myththemes $SVNDIR/myththemes >> $SVNLOG 2> $ELOG echo "`date +%T` - Finished Mythtv Download from svn." |log echo "`date +%T` - Starting to Archiving Downloaded Files." echo "`date +%T` - Archiving Files to: $SVNDIR/Mythtv.svn$SVN.tgz" cd $SVNDIR tar -czf Mythtv.svn$SVN.tgz log mythtv mythplugins myththemes chmod 666 $SVNDIR/Mythtv.svn$SVN.tgz chown mythtv:mythtv $SVNDIR/Mythtv.svn$SVN.tgz echo "`date +%T` - Finished Archiving Downloaded Files." |log } Compile-Mythtv { echo "`date +%T` - Starting to Compile Mythtv." >> $LOG echo "`date +%T` - Starting to Compile Mythtv." cd $SVNDIR/mythtv >> $LOG 2> $ELOG make distclean >> $LOG 2> $ELOG ./configure --prefix=/usr/local --with-bindings=perl --disable-firewire --disable-dbox2 --disable-hdhomerun --enable-xvmc-opengl --enable-xvmc --enable-opengl-vsync >> $LOG #./configure --prefix=/usr/local --compile-type=debug --with-bindings=perl --disable-firewire --disable-dbox2 --disable-hdhomerun --enable-xvmc-opengl --enable-xvmc --enable-opengl-vsync --xvmc-lib=XvMCNVIDIA --enable-xvmc-opengl>> $LOG qmake PREFIX=/usr/local mythtv.pro >> $LOG make >> $MLOG 2> $MELOG if [ -e $BULIDDIR/mythtv.diff ]; then cp -f $BULIDDIR/mythtv.diff $SVNDIR/mythtv/mythtv.diff cat mythtv.diff |patch -p0 -N >> $LOG 2> $ELOG else echo "" > /dev/null fi  echo "`date +%T` - Finished Compiling Mythtv." >> $LOG echo "`date +%T` - Finished Compiling Mythtv." } Compile-MythPlugins { echo "`date +%T` - Starting to Compile MythPlugins." >> $LOG echo "`date +%T` - Starting to Compile MythPlugins." cd $SVNDIR/mythplugins >> $LOG 2> $ELOG make distclean >> $LOG 2> $ELOG ./configure --prefix=/usr/local --enable-faad --enable-aac --disable-mythbrowser --disable-mythflix --disable-mythgallery --disable-mythgame --disable-mythnews --disable-mythphone --disable-zoneminder >> $LOG 2> $ELOG qmake mythplugins.pro >> $LOG 2> $ELOG make >> $PLOG 2> $PELOG if [ -e $BULIDDIR/mythplugins.diff ]; then cp -f $BULIDDIR/mythplugins.diff $SVNDIR/mythplugins/mythplugins.diff cat mythplugins.diff |patch -p0 -N >> $LOG 2> $ELOG else echo "" > /dev/null fi  echo "`date +%T` - Finished Compiling MythPlugins." >> $LOG echo "`date +%T` - Finished Compiling MythPlugins." } Compile-MythThemes { echo "`date +%T` - Starting to Compile MythThemes." |log cd $SVNDIR/myththemes >> $LOG 2> $ELOG make distclean >> $LOG 2> $ELOG ./configure --prefix=/usr/local >> $LOG 2> $ELOG make >> $TLOG 2> $TELOG if [ -e $BULIDDIR/myththemes.diff ]; then cp -f $BULIDDIR/myththemes.difvf $SVNDIR/myththemes/myththemes.diff cat myththemes.diff |patch -p0 -N >> $LOG 2> $ELOG else echo "" > /dev/null fi  echo "`date +%T` - Finished Compiling MythThemes." |log } Install-MythPlugins { echo "`date +%T` - Starting to Install MythPlugins." |log cd $SVNDIR/mythplugins make install >> $LOG 2> $ELOG echo "`date +%T` - Finished Installing MythPlugins." |log } Install-MythWeb { echo "`date +%T` - Starting to configuring Mythweb." |log cd $SVNDIR/mythplugins >> $LOG 2> $ELOG rm -rf $HTTPDIR/mythweb >> $LOG 2> $ELOG cp -r mythweb $HTTPDIR/ >> $LOG 2> $ELOG rm -rf /etc/httpd/conf.d/mythweb.conf cp -p mythweb/mythweb.conf.apache /etc/httpd/conf.d/mythweb.conf chown apache:apache /etc/httpd/conf.d/mythweb.conf ln -s /mythtv/Music $HTTPDIR/mythweb/data/music |log chown -R apache:apache $HTTPDIR/mythweb echo "`date +%T` - Finished configuring Mythweb." |log } Install-MythThemes { echo "`date +%T` - Starting to Install MythThemes." |log cd $SVNDIR/myththemes >> $LOG 2> $ELOG make install >> $LOG 2> $ELOG echo "`date +%T` - Finished Installing MythThemes." |log } Install-Mythtv { echo "`date +%T` - Installing Mythtv-Frontend Mythtv-Backend & Mythtv-Setup" |log cd $SVNDIR/mythtv if [ "`ps -e |grep monit`" = "" ]; then echo "`date +%T` - Monit is not running" else echo "`date +%T` - Stopping Monit Monitoring of Mythbackend" monit unmonitor mythbackend fi  echo -n "`date +%T` - " |tee -a $LOG /sbin/service mythbackend stop |tee -a $LOG sleep 5 killall mythfrontend >> $LOG 2> $ELOG echo "`date +%T` - Installing Mythtv." |log make install >> $LOG 2> $ELOG echo "`date +%T` - Configuring Mythtv." |log cd $SVNDIR/mythtv/contrib >> $LOG 2> $ELOG if [ -e /etc/sysconfig/mythbackend ]; then echo "" > /dev/null else cp etc.rc.d.init.d.mythbackend /etc/rc.d/init.d/mythbackend >> $LOG 2> $ELOG chmod a+x /etc/rc.d/init.d/mythbackend >> $LOG 2> $ELOG cp etc.sysconfig.mythbackend /etc/sysconfig/mythbackend >> $LOG 2> $ELOG /sbin/chkconfig --level 345 mythbackend on >> $LOG 2> $ELOG echo "/usr/local/lib" >> /etc/ld.so.conf >> $LOG 2> $ELOG /sbin/chkconfig mythbackend on >> $LOG 2> $ELOG sleep 30 fi  echo -n "`date +%T` - " |tee -a $LOG /sbin/service mythbackend start |tee -a $LOG if [ "`ps -e |grep monit`" = "" ]; then echo "" > /dev/null else echo "`date +%T` - Starting Monit Monitoring of Mythbackend" monit monitor mythbackend fi  /sbin/ldconfig >> $LOG 2> $ELOG echo "`date +%T` - Mythtv is now Configured." |log echo "`date +%T` - Finished Installing Mythtv-Frontend Mythtv-Backend & Mythtv-Setup" |log } MythStream { echo "`date +%T` - Starting MythStream Download, Compile, & Install" cd /tmp/svn/ >> $LOG 2> $ELOG rm -rf mythstream* >> $LOG 2> $ELOG wget http://home.kabelfoon.nl/~moongies/sw9vc4htz2/mythstream-v0.17_2.tar.gz >> $LOG 2> $ELOG tar -xzf mythstream-v0.17_2.tar.gz >> $LOG 2> $ELOG mv mythstream-0.17_2 mythstream >> $LOG 2> $ELOG rm -f mythstream-v0.17_2.tar.gz >> $LOG 2> $ELOG cd mythstream >> $LOG 2> $ELOG echo "7,8c7,8 >> $LOG 2> $ELOG < #PREFIX = /usr/local < PREFIX = /usr --- > PREFIX = /usr/local > #PREFIX = /usr" > mythstream.diff echo -n "`date +%T` - MythStream is " patch settings.pro mythstream.diff qmake mythstream.pro >> $LOG 2> $ELOG make >> $LOG 2> $ELOG make install >> $LOG 2> $ELOG cd /tmp/svn/mythplugins/mythmusic/mythmusic echo "43a44,50 >      STREAM  >       Internet Streams  >       PLUGIN mythstream  >       mythstream  >     > >     " > musicmenu.diff echo -n "`date +%T` - MythStream is " patch musicmenu.xml musicmenu.diff echo "43a44,50 >      STREAM  >       Stream Settings  >       CONFIGPLUGIN mythstream  >       mythstream  >     > >     " > music_settings.diff echo -n "`date +%T` - MythStream is " patch music_settings.xml music_settings.diff >> $LOG 2> $ELOG echo "`date +%T` - MythStream is Finished" } Finishing-Up { echo "`date +%T` - Mythtv Updating is Finished." } AutoMythtv { echo "`date +%T` - Removeing old Config files & dirs in Mythtv." rm -f $SVNDIR/mythtv/config.* rm -f $SVNDIR/mythtv/config/* echo "`date +%T` - Starting MythTV Download from svn." |log svn co $URL/mythtv $SVNDIR/mythtv >> $SVNLOG 2> $ELOG Compile-Mythtv if [ -e $BULIDDIR/mythtv.diff ]; then rm -f $SVNDIR/mythtv/mythtv.diff cp $BULIDDIR/mythtv.diff $SVNDIR/mythtv/mythtv.diff cat $SVNDIR/mythtv/mythtv.diff |patch -p0 -N >> $LOG 2> $ELOG else echo "" > /dev/null fi  echo "`date +%T` - Finished MythTV Download from svn." |log Install-Mythtv } AutoMythPlugins { echo "`date +%T` - Removeing old Config files & dirs in MythPlugins." rm -f $SVNDIR/mythtv/config.* rm -f $SVNDIR/mythtv/config/* echo "`date +%T` - Starting MythPlugins Download from svn." |log svn co $URL/mythplugins $SVNDIR/mythplugins >> $SVNLOG 2> $ELOG echo "`date +%T` - Finished MythPlugins Download from svn." |log Compile-MythPlugins if [ -e $BULIDDIR/mythplugins.diff ]; then rm -f $SVNDIR/mythplugins/mythplugins.diff cp $BULIDDIR/mythplugins.diff $SVNDIR/mythplugins/mythplugins.diff cat $SVNDIR/mythplugins/mythplugins.diff |patch -p0 -N >> $LOG 2> $ELOG else echo "" > /dev/null fi  Install-MythPlugins Install-MythWeb } AutoMythThemes { echo "`date +%T` - Removeing old Config files & dirs in MythThemes." rm -f $SVNDIR/myththems/config.* rm -f $SVNDIR/myththems/config/* echo "`date +%T` - Starting MythThemes Download from svn." |log svn co $URL/myththemes $SVNDIR/myththemes >> $SVNLOG 2> $ELOG Compile-MythThemes if [ -e $BULIDDIR/myththemes.diff ]; then rm -f $SVNDIR/myththemes/myththemes.diff cp $BULIDDIR/myththemes.diff $SVNDIR/myththemes/myththemes.diff cat $SVNDIR/myththemes/mythtthemes.diff |patch -p0 -N >> $LOG 2> $ELOG else echo "" > /dev/null fi  echo "`date +%T` - Finished MythThemes Download from svn." |log Install-MythThemes } case "$1" in  download)     Download-svn     ;;   clean-download) Clean-Download-svn ;;  compile)     SVN=`svn info $SVNDIR/mythtv |grep "Revision: " |awk '{print $2 }'`     Compile-Mythtv     Compile-MythPlugins     Compile-MythThemes     mythtvosd --template=scroller --scroll_text="`hostname -s` is done compileing the latest updates.  Please install the updates. The current svn version number is: $SVN" > /dev/null     ;;   install) Install-Mythtv Install-MythPlugins Install-MythThemes Install-MythWeb Finishing-Up ;;  full)     Clean-Download-svn     Compile-Mythtv     Compile-MythPlugins     Compile-MythThemes     MythStream     Install-Mythtv     Install-MythPlugins     Install-MythWeb     Install-MythThemes     Finishing-Up     ;;   status) echo "`date +%T` - Staring Mythtv Tunk Status Check." MYTHSVN=`svn info $URL/mythtv |grep "Last Changed Rev:" |awk '{print $4 }'` PLUGSVN=`svn info $URL/mythplugins |grep "Last Changed Rev:" |awk '{print $4 }'` THEMSVN=`svn info $URL/myththemes |grep "Last Changed Rev:" |awk '{print $4 }'` MYTHLOCSVN=`svn info $SVNDIR/mythtv |grep "Last Changed Rev:" |awk '{print $4 }'` PLUGLOCSVN=`svn info $SVNDIR/mythplugins |grep "Last Changed Rev:" |awk '{print $4 }'` THEMLOCSVN=`svn info $SVNDIR/myththemes |grep "Last Changed Rev:" |awk '{print $4 }'` if [ $MYTHSVN = $MYTHLOCSVN ] ; then echo "`date +%T` - Mythtv Dose NOT need to be updated Current Version is: $MYTHSVN" else echo "`date +%T` - Mythtv Should Be Updated" echo "`date +%T` - Mythtv's Local Install is at $MYTHLOCSVN" echo "`date +%T` - But the Current Version is at $MYTHSVN" fi    if [ $PLUGSVN = $PLUGLOCSVN ] ; then echo "`date +%T` - MythPlugins Dose NOT need to be updated Current Version is: $PLUGSVN" else echo "`date +%T` - MythPlugins Should Be Updated" echo "`date +%T` - MythPlugins' Local Install is at $PLUGLOCSVN" echo "`date +%T` - But the Current Version is at $PLUGSVN" fi    if [ $THEMSVN = $THEMLOCSVN ] ; then echo "`date +%T` - MythThemes Dose NOT need to be updated Current Version is: $THEMSVN" else echo "`date +%T` - MythThemes Should Be Updated" echo "`date +%T` - MythThemes' Local Install is at $THEMLOCSVN" echo "`date +%T` - But the Current Version is at $THEMSVN" fi  ;; clear)   echo "`date +%T` - Stopping and cleaning Mythtv"    echo "`date +%T` - You will need to reinstall Mythtv when this is done."    echo -n "`date +%T` - Do you wish to Delete all Mythtv Files? "    read DELFILES    case "$DELFILES" in     y|Y|yes|YES|Yes) echo "`date +%T` - OK Here we go." ;;    n|N|no|NO|No)      echo "`date +%T` - Fine then I didn't wont to delete the files anyways."      exit 0      ;;    *) echo "`date +%T` - You need to answer this Yes or No." exit 0 esac if [ "`ps -e |grep monit`" = "" ]; then echo "`date +%T` - Monit is not running" else echo "`date +%T` - Stopping Monit Monitoring of Mythbackend" monit unmonitor mythbackend fi   echo -n "`date +%T` - " /sbin/service mythbackend stop sleep 5 killall mythfrontend >> $LOG 2> $ELOG killall mythwelcome >> $LOG 2> $ELOG killall mtd >> $LOG 2> $ELOG rm -rf $BULIDDIR/bin/myth* $BULIDDIR/bin/mtd $BULIDDIR/include/mythtv $BULIDDIR/lib/libmyth* $BULIDDIR/lib/mythtv $BULIDDIR/share/mythtv >> $LOG 2> $ELOG echo "`date +%T` - Mythtv Cleaning is done." ;;  auto)     echo "`date +%T` - Staring Auto update of the Mythtv Tunk."     MYTHSVN=`svn info $URL/mythtv |grep "Last Changed Rev:" |awk '{print $4 }'`     PLUGSVN=`svn info $URL/mythplugins |grep "Last Changed Rev:" |awk '{print $4 }'`     THEMSVN=`svn info $URL/myththemes |grep "Last Changed Rev:" |awk '{print $4 }'`     if [ -e $SVNDIR/mythtv/README ]; then       MYTHLOCSVN=`svn info $SVNDIR/mythtv |grep "Last Changed Rev:" |awk '{print $4 }'`     else       rm -rf $SVNDIR/mythtv       MYTHLOCSVN=None     fi     if [ -e $SVNDIR/mythplugins/README ]; then       PLUGLOCSVN=`svn info $SVNDIR/mythplugins |grep "Last Changed Rev:" |awk '{print $4 }'`     else       rm -rf $SVNDIR/mythplugins       PLUGLOCSVN=None     fi     if [ -e $SVNDIR/myththemes/README ]; then       THEMLOCSVN=`svn info $SVNDIR/myththemes |grep "Last Changed Rev:" |awk '{print $4 }'`     else       rm -rf $SVNDIR/myththemes THEMLOCSVN=None fi    if [ $MYTHSVN = $MYTHLOCSVN ] ; then echo "`date +%T` - Mythtv Dose NOT need to be updated Current Version is: $MYTHSVN" else echo "`date +%T` - Mythtv Will Be Updated" echo "`date +%T` - Mythtv's Local Install is at $MYTHLOCSVN" echo "`date +%T` - But the Current Version is at $MYTHSVN" AUTOMYTH=AutoMythtv fi    if [ $PLUGSVN = $PLUGLOCSVN ] ; then echo "`date +%T` - MythPlugins Dose NOT need to be updated Current Version is: $PLUGSVN" else echo "`date +%T` - MythPlugins Will Be Updated" echo "`date +%T` - MythPlugins' Local Install is at $PLUGLOCSVN" echo "`date +%T` - But the Current Version is at $PLUGSVN" AUTOPLUG=AutoMythPlugins fi    if [ $THEMSVN = $THEMLOCSVN ] ; then echo "`date +%T` - MythThemes Dose NOT need to be updated Current Version is: $THEMSVN" else echo "`date +%T` - MythThemes Will Be Updated" echo "`date +%T` - MythThemes' Local Install is at $THEMLOCSVN" echo "`date +%T` - But the Current Version is at $THEMSVN" AUTOTHEM=AutoMythThemes fi    $AUTOMYTH $AUTOPLUG $AUTOTHEM #Install-MythThemes Finishing-Up ;;  *)     echo ""     echo "Updatemyth will check the current Mythtv SVN Release and if the"     echo "system needs a update will download and install JUST the updates."     echo "UpdateMyth's Valid Commands are:"     echo ""     echo "auto      # Check, Download, Compile & Install the Latest Release"     echo "full      # Force a Clean Download, Compile & Install the Latest SVN Release"     echo "download  # Download the Latest Release"     echo "clean-download  # Delete the SVN dir, then Download the Latest Release"     echo "compile   # Check, Download and Compile the Latest SVN Release"     echo "install   # Install the Last Compiled SVN Release"     echo "status    # Check to see if the current install is up to date"     echo "clear     # This will stop and Clean out all the myth files on the system"     echo ""     exit 0     ;; esac
 * 1) /bin/bash
 * 2) By Matt Rude matt@mattrude.com
 * 3) System Varables
 * 1) URL=http://svn.mythtv.org/svn/branches/release-0-20-fixes
 * 1) Most likly you will have no reson to change anything below here.
 * 1) rpm -qa | grep myth | xargs rpm -e >> $LOG 2> $ELOG

Update this Page
cat /home/mythtv/bin/updatemyth |sed 's/^/ /' > /mythtv/updatemyth.txt