Until I can get the SVN Sources, once 1.1 comes out hopefully, I am not gonna waste time on a wiki, due to ideally it will all change and be PROPER. This is more of a crude hack to make it work. Mind you, it ideally should be safe, but it isn't proper. Proper would be to take the dependencies for the dummy packages I have you make below and remove them from the source requirement. Anywho, for those that might want it, here is how I upgraded Myth to the latest SVN. Allowing you to apply any patches that might be required in your area. Let me know any questions, or if you suggest anything that might work better till we can get sources.
Step 1Temporary Package Removal
First we need to remove some conflicting packages so that we can build the dependencies for compiling our own. We later will re-install some of these dependencies, due to the fact they are the core of LinuxMCE! Keep in mind during this time, none of your MD's will function, being as we will be taking out the DCERouter package. Again, I repeat that we will be re-installing these later. And the way we remove them won't be taking away any config files, just the binaries themselves.
So either SSH into your system, or open up another terminal by hitting
CTRL-ALT-F2 or another Function Key. Once in, we remove our packages.
sudo apt-get remove libmyth-0.20 libmyth-0.20-dev mythtv-backend mythtv-frontend mythtv-common mythtv-database mythweb pluto-mythtv-player pluto-mythtv-plugin pluto-dcerouter
This should remove all of those packages without complaining about other conflicts.
Step 2Install Dependencies
Now we will install the base dependencies for MythTV and also a package creator that we will use later to trick the system. Mind you, this isn't ALL of the dependencies needed for Myth, this just covers the Core Backend/Frontend aspect. If you have plugins that you want to install, you would have to install the dependencies for them separately just like you would with Myth alone.
sudo apt-get build-dep mythtv
sudo apt-get install checkinstall
This should install the base dependencies along with our package creator.
Step 3MythTV SVN Compilation
Now we are ready to grab our SVN of Myth. This is just how I do things, you can compile in your home directory if it suits you, but this is how I was brought up, whether it is proper, is to be determined!
But I always try and compile in
/usr/local/src. But to do so, we need to give our local user rights to compile there. Again, this can be done without all these steps, but I believe it is proper. Someone can correct me and teach me the right way if needed, I take learning too! So first let's add our local user to some groups and change the permissions of the directories.
sudo adduser <username> src
sudo adduser <username> staff
sudo chown <username>:src /usr/src
sudo chown <username>:staff /usr/local/src
Substitute
<username> with your local user. And to be proper, you should log out and log back in, but it isn't absolutely required. Now we need to grab the latest SVN.
mkdir /usr/local/src/mythtv.cvs
cd /usr/local/src/mythtv.cvs
svn co http://svn.mythtv.org/svn/trunk/mythtv
svn co http://svn.mythtv.org/svn/trunk/mythplugins
svn co http://svn.mythtv.org/svn/trunk/myththemes
svn co http://svn.mythtv.org/svn/trunk/themes
I personally like to keep record of the version of SVN I grabbed for reference in case I need to look up the TRACK and see of issues. So whatever # is shown at the end of grabbing your source, I rename my directory to that as such:
mv mythtv mythtv.#####
Replacing
##### with the TRACK #.
Now we are ready to apply any patches you might use, and configure Myth. I won't cover patches here, being as if you are doing this, then I would hope you know what patches you need, and everyone might have different ones. So I will just show you the configure line. I haven't had time to spend on it, to find out why, but having trouble with enabling XVMC. Normally on a regular system it finds the libraries, but here, I assume they aren't installed. I might come back and update this later or when we get the source and do the wiki, I will put the proper way in then. I think the
nvidia-glx-dev package needs installed. I usually do the NVIDIA Drivers by Source, so that is a different topic. And this is assuming NVIDIA, not everyone runs it! So here is how I configure it. Which mind you, is more than is needed, but it is what the default
libmyth-0.20 uses, so I stuck with it for being proper. And lots of these options are default. But again, just being proper!
cd /usr/local/src/mythtv.cvs/mythtv.#####
./configure --prefix=/usr --enable-lirc --enable-audio-alsa --enable-audio-oss --enable-audio-jack --enable-audio-arts --enable-dvb --enable-ivtv --enable-firewire --enable-joystick-menu --disable-xvmc --enable-xvmc-vld --enable-xvmc-pro --enable-mmx --enable-proc-opt --enable-opengl-vsync
Now we are ready to compile and install. This is assuming everything compiled ok, which it should unless you applied some patches that might not be compatible.
make
sudo make install
Step 4Re-Installation of previous Packages
Now that we have our SVN Installed, we need to create some
DUMMY packages to fill what our
pluto packages have as dependencies required. Once I get my hands on the source, we can just remove the dependencies from the source and it won't need these dummy packages. Being as we manually compiled MythTV, it covers all of these packages mostly. Except for MythWeb and MythTV-Database. But the database is already installed, and MythWeb you can install yourself if you wish. That isn't covered here.
So here is where our package creator comes into play. We just need to make a dummy blank package that gets installed just so when the pluto packages are re-installed they think we have what they are looking for. To do this, we need to create an empty Makefile, with nothing to install, and then create the package like so.
mkdir /usr/local/src/mythtv.cvs/dummy
cd /usr/local/src/mythtv.cvs/dummy
nano -w Makefile
In this file, all we need is a line like such:
install:
That is it, now save the file by hitting
CTRL-X and selecting
Y to keep the filename.
Now to create our package, we just do this:
sudo checkinstall make install
It will first ask you if you wish to create package documentation. This is a dummy package with no docs, so just answer
N here. Next it will ask for a description of the package. I just put in what I am going to call the package with
dummy-package at the end. Then after you hit
ENTER twice it will show you what it is going to do. We need to change the actual name of the package so that it matches what we need. That is usually
Option 2. And hopefully it appended todays date as the Version #, and you don't have to do anything, but if it didn't then enter
Option 3 to put the date in as something for a Version. That is it, once all that is entered, it should look something like:
This package will be built according to these values:
0 - Maintainer: [ hooch@dcerouter ]
1 - Summary: [ libmyth-0.20-dummy-package ]
2 - Name: [ libmyth-0.20 ]
3 - Version: [ 20070731 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ checkinstall ]
7 - Architecture: [ i386 ]
8 - Source location: [ dummy ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
Enter a number to change any of them or press ENTER to continue:Once it looks like the above, just hit
ENTER to create the package, and it will install it for you. We need to do that for all of the dependencies that the pluto packages will need:
libmyth-0.20
mythtv-backend
mythtv-frontend
mythtv-common
mythtv-database
mythwebSo in order to accomplish that, once one package is built, you can just get rid of the
description-pak file and repeate the steps above, changing the name to the other package names.
Once all your packages have been built and installed. Then you are ready to re-install our
pluto packages.
sudo apt-get install pluto-dcerouter pluto-mythtv-player pluto-mythtv-plugin
Step 5Reboot and MythTVSetup
Whether it is absolutely required, I don't know but it is probably best, I would
reboot the system now so that it boots back up with the new Myth and re-starts the
DCERouter.
sudo reboot
Once your system has come back up, and you start the
Core Services, you now need to run
mythtv-setup You will want to do this from the
Orbiter. Once it is running, you will need to go into
General and possibly change the Database Password to match what is in your
/etc/mythtv/mysql.txt file. Once that is done, it will probably exit out of the setup. And you will have to re-run it if you need to make any changes that are necessary. Once you exit out, I also had to update the
mysql.txt file for the
mythtv user as well.
sudo nano -w /home/mythtv/.mythtv/mysql.txt
For the
DBPassword, make sure it matches what is in your
/etc/mythtv/mysql.txt file. Once done save the file and I believe it will restart the backend, and you should be back up and running. With your new SVN of Myth.
This didn't cover any Plugins or Themes, but there shouldn't be any issues installing them. Just configure and compile them like you normally would. And restart the backend. And I haven't gotten into LinuxMCE enough yet to know what might have to be done so that your remote MD's will reflect the new Myth. I think ideally it copies the files from your Core, so hopefully nothing, but maybe someone else can chime in there, till I get time to set one up.
Hopefully that helps someone. Like mentioned above, once 1.1 goes final, and they hopefully release the SVN Sources of all the modules, then maybe we can do this properly instead of basically hacking it to work. Let me know if there is anything you see that should be done better. I am not ashamed to say I sure as hell don't know everything. I can just usually hack at things to make them work!
DANGEROUS!
Take care
Hooch