Building LinuxMCE 0810
Setting up a chroot environment
These steps are optional as you can just build on a clean Kubuntu-8.10 install. But required if you want to build using an existing 0810 core without ruining it's run-time database.
Start with becoming root as the following steps will need to be done using super user privileges.
sudo su -
Create the environment
apt-get install debootstrap debootstrap --arch i386 intrepid /media/kubuntu-8.10/
Steps after each reboot
(Note: For First building, perform steps in the Getting Started section)
Mount required directories
mount --bind /dev /media/kubuntu-8.10/dev mount none /media/kubuntu-8.10/proc -t proc mount none /media/kubuntu-8.10/dev/pts -t devpts
Change-root into the environment
Start MySQL Server
Do not execute the mysql start before doing the sed statement listed in the Installing needed packages section below to reconfigure MySQL.
Verify apt's list of repositories
Make sure /etc/apt/sources.list (inside the chroot) contains something very similar to:
deb http://us.archive.ubuntu.com/ubuntu/ intrepid main restricted universe multiverse deb-src http://us.archive.ubuntu.com/ubuntu/ intrepid main restricted universe deb http://us.archive.ubuntu.com/ubuntu/ intrepid-updates main restricted universe multiverse deb-src http://us.archive.ubuntu.com/ubuntu/ intrepid-updates main restricted universe deb http://security.ubuntu.com/ubuntu intrepid-security main restricted universe deb-src http://security.ubuntu.com/ubuntu intrepid-security main restricted universe
The following line is added to the sources.list during the prepare script and should not be added before. posde
deb http://debian.slimdevices.com/ stable main
Installing needed packages
Important! Perform these also after chrooting.
If you get messages like /usr/bin/locale: Cannot set LC_MESSAGES to default locale: No such file or directory, that meens that $LANG is set. Either clear the LANG or install the needed language pack (english given example given in the code-snip below).
(Leave the root password for MySQL empty.)
apt-get update # Uncomment either of lines below if needed (see explanation above) #unset LANG #apt-get install language-pack-en-base apt-get dist-upgrade apt-get install aptitude openssh-client mysql-server
Reconfigure MySQL to not open a TCP-IP network port:
sed 's/^[^#]*bind-address[[:space:]]*=.*$/#&\nskip-networking/' -i /etc/mysql/my.cnf
Building from source
For a more in detail description of all the steps involved see Building LinuxMCE 0804
Currently the focus is on getting the following to work completely.
You should only have to do this part once initially.
The following steps will require superuser privileges, and it is always wise to refresh the packages list beforehand.
sudo su - apt-get update
Obtaining the build scripts
apt-get install subversion svn co http://svn.linuxmce.org/svn/branches/LinuxMCE-0810/src/Ubuntu_Helpers_NoHardcode
Installing the build scripts
cd Ubuntu_Helpers_NoHardcode ./install.sh cd /usr/local/lmce-build
Configuring the build scripts
cat >/etc/lmce-build/builder.custom.conf <<EOF # Uncomment to avoid DVD build step[s] do_not_build_sl_dvd="yes" do_not_build_dl_dvd="yes" # Uncomment to create fake win32 binaries win32_create_fake="yes" # Point to the development sqlCVS server for 0810 sqlcvs_host="schema.linuxmce.org" EOF
Preparing for build
The preparation steps one at a time (recommended):
prepare-scripts/install-build-pkgs.sh prepare-scripts/cd1-prepare.sh prepare-scripts/cd2-prepare.sh prepare-scripts/create-diskless-debootstrap.sh prepare-scripts/import-external-files.sh prepare-scripts/preseed-build-pkgs.sh
Or, you could do them all in one go with:
Building from source
All the build steps can be executed seperately (recommended at least the first time):
build-scripts/checkout-svn.sh build-scripts/import-win32bins.sh build-scripts/build-replacements.sh build-scripts/build-makerelease.sh build-scripts/import-databases.sh build-scripts/build-maindebs.sh build-scripts/get-closed-source-debs.sh build-scripts/create-repo.sh build-scripts/cd1-build.sh build-scripts/cd2-build.sh
Or the following script will run them all:
Using the build's output
The build.sh script puts all created deb-files under /var/www. Setup a web server to point to that directory. In the machine, where you want to test the build, follow the instructions on using the alpha build. After the step pre-install-from-repo.sh, go into /etc/apt/sources.list, and replace the deb.linuxmce.org line with
deb <ip-address-of-your-builder> ./
and re-run apt-get update You will find, that two packages are missing. Get those two packages from the regular repository and put them into the builders /var/www directory
pushd /var/www wget http://deb.linuxmce.org/ubuntu/dists/intrepid/lmce-alpha2/binary-all/libft-perl_1.0_all.deb wget http://deb.linuxmce.org/ubuntu/dists/intrepid/lmce-alpha-latest/binary-all/mail-transport-agent_1.0_all.deb dpkg-scanpackages . >Packages gzip -c Packages > Packages.gz popd
Now, on your new or test core, execute another apt-get update, and you are good to go for the mce-install.sh
If you want to speed up building on a multi-core machine, amend build-scripts/build-maindebs.sh and change the call to MakeRelease to include -j <number of cores>. Before executing the build, copy libresolution.so from an older build to your lib dir, and run ldconfig.
Without -j 2
23:36:44 Compiling and building packages 01:42:50 *** STEP: Download closed source debs
Total: roughly 2h 6minutes for compiling
With -j 2
13:13:44 Compiling and building packages 14:51:56 *** STEP: Download closed source debs
Total: roughly 1h 38minutes for compiling