Building LinuxMCE 0804
With this tutorial I'll try to summarize the step involved in building the LinuxMCE CDs and DVDs together with some changes that I've done when switching from Kubuntu 0704 to Kubuntu 0710.
- Powerful enough system to do the compilation and building of packages as is a cpu intensive task and it can take quite a long time.
- Lot of disk space, at least 40G hard drive.
- A working internet connection as the build and preparation process will need to access get some files from the public domain.
- Install Kubuntu 0804. I use the desktop installation CD and i would recommend to do the same as this steps will consider this kind of installation performed. Of course an Ubuntu Server or Alternate CD will work too but you may need to install some build dependencies / runtime libraries that I have by default installed on Kubuntu 0804.
- Install some subversion so you can checkout a copy of the build script from LinuxMCE's svn.
apt-get install subversion
The next step after having 0804 installed is to get a copy of the build script:
sudo su cd $HOME svn co http://svn.linuxmce.com/pluto/trunk/src/Ubuntu_Helpers_NoHardcode/ mv Ubuntu_Helpers_NoHardcode/ /usr/local/lmce-build
I will try to explain them quickly so you'll know what each of them does.
- This is the main script and calls all the other script of the build process to perform simple task.
- This is a script used on our build machines and it does the next steps in a infinite loop:
- Calls build.sh script to performa a build.
- Stores the build output in a ftp viewable directory.
- Sends mail to developers on fail and on success.
- Gets a updated copy of the source tree from svn and stores it in /var/lmce-build/svn/
- Copies the latest windows binaries from the linuxmce ftp
- Creates a set of non-linuxmce-specific deb packages which don't usually come with Ubuntu but are needed by our applications. It may also build some packages that are already in Ubuntu but are patched and needs to be repacked. The sources for this debs are located in trunk/ubuntu directory of the svn this means /var/lmce-build/svn/trunk/ubuntu on your local machine (after the svn checkout). Moust of this sources are in a deb-src format.
- Build a c++ linuxmce application and it's dependencies from the linuxmce svn. This application, called MakeRelease it's used to build and pack all the linuxmce packages. The output files will be stored in /var/lmce-build/MakeRelease/ when the script finishes.
- This script takes the latest version of the LinuxMCE MySQL databases from the LinuxMCE server. The information from this databases is used by MakeRelease to build and compile the software. The databases will also be used to create some sqldumps that will be packaged on the LinuxMCE CDs and DVSs that are created.