Initial setup
Alter the following sections of the configuration (configs/development/launchpad-lazr.conf) as shown:
[archivepublisher] root: /var/tmp/archive base_url: http://archive.launchpad.dev/ # <- this [builddmaster] root: /var/tmp/builddmaster/ uploader: scripts/process-upload.py -Mvv --context buildd # <- and this
In /etc/hosts, point archive.launchpad.dev at 127.0.0.88 like the rest.
Add to /etc/apache2/site-available/local-launchpad:
<VirtualHost 127.0.0.88:80> ServerName archive.launchpad.dev LogLevel debug DocumentRoot /var/tmp/archive <Directory /var/tmp/archive/> Order Deny,Allow Deny from all Allow from 127.0.0.0/255.0.0.0 Options Indexes </Directory> </VirtualHost>
Grab and run make-ubuntu-sane.py, to set up some Ubuntu series that still exist, along with some state such as permissions.
Grab and run start-soyuz.sh, which will fire up all Soyuz services. This will eat lots of RAM.
Configure an account and PPA
make run
Create an account for yourself (utilities/make-lp-user USERNAME)
Log in with USERNAME@example.com:test.
- Add your OpenPGP key
gpg --keyserver keyserver.launchpad.dev --send-keys DEADBEEF
- Add it to your Launchpad account, as normal.
Check email in root's mailbox, and use it to activate the key.
- Sign the code of conduct.
- Create a PPA.
Set up the PPA
- Log out.
Log in as admin@example.com:test.
- Browse to the new PPA.
- Click "Administer".
- Ensure that the PPA is allowed to build on non-virtual builders.
- Add an external dependency so you don't have to import the entire Ubuntu archive just for a PPA to work:
deb http://archive.ubuntu.com/ubuntu %(series) main restricted universe multiverse
Configure a buildd
cd lib/canonical/buildd
dpkg-buildpackage -b
sudo dpkg -i ../launchpad-buildd_50_all.deb
- Make it work.
Add $SUDO cp /etc/resolv.conf /etc/hosts "$HOME/build-$BUILDID/chroot-autobuild/etc to the end of /usr/share/launchpad-buildd/slavebin/mount-chroot, so name resolution works.
Might need to add --umask=022 to twistd args in /etc/init.d/launchpad-buildd, or pkg-create-dbgsym fails obscurely.
(>= Karmic) Might need to alter "dpkg-source: extracting" output grepping in sbuild to "dpkg-source: info: extracting"
- Get an Ubuntu buildd chroot.
Look for the latest build of your favourite architecture and series at https://launchpad.net/ubuntu/+builds.
- Find the chroot SHA1 in the third line of the log.
Search for it at http://launchpadlibrarian.net/search?digest=SOMESHA1
- Grab one of the listed URLs.
http://launchpadlibrarian.net/34617356/chroot-ubuntu-lucid-i386.tar.bz2 is the current lucid i386 chroot at the time of writing.
scripts/ftpmaster-tools/manage-chroot.py -s lucid -a i386 add -f chroot-ubuntu-lucid-i386.tar.bz2
Mark Bob the Builder as OK (https://launchpad.dev/builders/bob/+edit)
Upload a source to the PPA
Run scripts/process-upload.py /var/tmp/poppy (creates hierarchy)
Add to ~/.dput.cf:
[lpdev] fqdn = ppa.launchpad.dev:2121 method = ftp incoming = %(lpdev)s login = anonymous
dput lpdev:~USERNAME/PPANAME/ubuntu some_source.changes
scripts/process-upload.py /var/tmp/poppy # Accept the source upload.
- Within five seconds of upload acceptance, the buildd should start building. Wait until it is complete.
scripts/process-accepted.py --ppa ubuntu # Create publishings for the binaries.
scripts/publish-distro.py --ppa # Publish the source and binaries.
- Note that private archive builds will not be dispatched until their source is published.
Dealing with the primary archive
Add yourself to ~ubuntu-team.
dput lpdev:ubuntu some_source.changes
scripts/process-upload.py /var/tmp/poppy
- Watch the output -- the upload might end up in NEW.
- If it does, go to the queue and accept it.
- Your builder should now be busy. Once it finishes, the binaries might go into NEW. Accept them if required.
scripts/process-accepted.py ubuntu
scripts/publish-distro.py
The first time, add -C to ensure a full publication of the archive.