Try the build slave locally
This overlaps with the buildd part of HowToUseSoyuzLocally, but shows you how to set up the buildd in a chroot without customizing your own system setup for it.
Build the package
cd lib/canonical/buildd debian/rules package dpkg-buildpackage -b
Package is lib/canonical/launchpad-buildd*all.deb
Set up pbuilder chroot
To avoid installing the launchpad-buildd package on my computer, I use pbuilder to create an manage a chroot environment.
Make sure you have pbuilder installed:
sudo apt-get install pbuilder
If archive.ubuntu.com is too far away from you network-wise, you can configure MIRRORSITE in /etc/pbuildderrc to use a mirror that's faster for you. Then do
sudo pbuilder --create --distribution lucid sudo pbuilder --login --save-after-login
Now you should find yourself inside the chroot. To satisfy the NTP needs of the launchpad-buildd, define it to be the IP of ntp.ubuntu.com or whatever NTP server you like.
echo "91.189.94.4 ntp.buildd" >> /etc/hosts exit
After exit, the chroot will be re-packaged by pbuilder to save the changes. You might choose to save other steps as well but usually I configure the chroot whenever I run it, like so.
sudo pbuilder --login --inputfile lib/canonical/launchpad-buildd*all.deb
Inside the chroot again: Install and start buildd:
apt-get -f install dpkg -i /tmp/buildd/launchpad-buildd*all.deb /etc/init.d/launchpad-buildd start
We need a package to try out the generation of translation templates. Eventually this will be pulled in via bazaar but now I do it manually. Obviously, this is specific to this type of build. Inside the chroot edit /etc/apt/sources.list to enable the deb-src line. Then pull in a source pacakge. Gimp has a couple of translation templates.
apt-get update cd /home/buildd su buildd apt-get source gimp
Upload chroot to librarian
Outside the chroot, in another terminal (leave the buildd in the chroot running!) Get the builder chroot from https://edge.launchpad.net/api/devel/ubuntu/lucid/i386/chroot_url.
wget -O - -q https://edge.launchpad.net/api/devel/ubuntu/lucid/i386/chroot_url | xargs wget
This should give you a file chroot-ubuntu-lucid-i386.tar.bz2. This is the chroot tarball for Lucid on i386.
Upload it to the Librarian, but while you're at it, also register it as the chroot for Lucid:
make run & # (Need Librarian running, and make start_librarian didn't work) scripts/upload2librarian -f chroot-ubuntu-lucid-i386.tar.bz2 --> http://launchpad.dev:58080/93/chroot-ubuntu-lucid-i386.tar.bz2 scripts/ftpmaster-tools/manage-chroot.py -s lucid -a i386 chroot-ubuntu-lucid.tar.bz2 add
(Actually manage-chroot.py also does the upload to the Librarian, so maybe we don't really need to do it separately).
Copy that URL you got from upload2librarian for the next step.
Drive slave through rpc
With the libranrian still running, fire up a python shell and:
import xmlrpclib proxy = xmlrpclib.ServerProxy('http://localhost:8221/rpc') proxy.ensurepresent('f1f10b8402ed686aaf0307676c76f07b45af2a09', 'http://launchpad.dev:58080/93/chroot-ubuntu-lucid-i386.tar.bz2', '', '') proxy.build('1-1', 'translation-templates', 'f1f10b8402ed686aaf0307676c76f07b45af2a09', {}, {'branch_url': '/home/buildd/gimp-2.6.8'}) proxy.status() proxy.clean() # Clean up if it failed
Inspect buildlog
Inside the chroot:
less /home/bulidd/filecache-default/buildlog