Size: 5802
Comment: Create some directories that are not created by any script. These manual steps should probably be performed by make-ubuntu-sane.py :-?
|
Size: 5866
Comment: debootstrap is also need, run with make run_all
|
Deletions are marked like this. | Additions are marked like this. |
Line 39: | Line 39: |
* `make run` | * `make run_all` |
Line 64: | Line 64: |
* `aptitude install debhelper python-twisted debootstrap` |
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/sites-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.
mkdir -p /var/tmp/zeca /var/tmp/archive /var/tmp/bazaar.launchpad.dev
chown -R $USER /var/tmp/zeca /var/tmp/archive /var/tmp/bazaar.launchpad.dev
Configure an account and PPA
make run_all
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@canonical.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
aptitude install debhelper python-twisted debootstrap
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"
Edit /etc/launchpad-buildd/default and make sure ntphost points to an existing NTP server. You can check the NTP server pool to find one near you.
Get an Ubuntu buildd chroot by downloading one from LaunchpadLibrarian.net
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)
Please note a "builder" and a "chroot" are not the same thing, nor are they "associated" in any way. The logic is as follows:
- PPAs require builders (a machine where to build packages)
- The builder may be virtualized (for instance, launchpad.net uses Xen-virtualized builders) or the same machine where Launchpad (meaning "your launchpad.dev") is running, which is what this page details. Using the very same machine where Launchpad.dev is running limits the architectures you can build for: if you are running on i386, you can't build for PowerPC, for instace.
- A builder needs to setup a bootstrap (what you get with debootstrap) Linux. That bootstrap is what you get in the chroot tarballs mentioned above.
- When you upload a package and tell Launchpad to process it (see below for this), the builder will pick the chroot it needs (for instance, karmic i386), uncompress it and start building the package.
- In summary, there are two lists: a list of builders and a list of chroots.
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.