Any sufficiently advanced technology is indistinguishable from magic...

This is in the very early stage of something which should become a howto to understand the build process of the Debian Edu (install) cd - please help to improve it. I will do so too, on my way to eternal wisdom and happyness :-)


We are using two different branches of debian-cd. The svn:// branch is used to build etch cd's. And svn:// is used to build post-etch cd's. The reason for this is, that when debian release a revision update, they update the etch branch and we'd have to backport those updates in our patch if we wanted to build etch using trunk.

the upstream code for the version of debian-cd we're using is at /home/builder/src/debian-edu/src/build/CD-administrator/debian-cd.[etch|trunk] The upstream code is updated from svn by the patch-debian-cd script and uses the revision number found in the debian-cd-revision file. This makes it easier to merge in ustream changes when we have time to update our patch. And also easier to move back incase of severe breakage.

Since we use 2 branches we also have 2 patch files. debian-cd.patch.[etch|trunk]

During every build the matching upstream branch is patched by debian-edu/src/build/CD-administrator/patch-debian-cd <$branch> with debian-edu/src/build/CD-administrator/debian-cd.patch.$branch the result is put into debian-cd, where the build is executed.

If you want to exclude certain packages from the cd, there is a exclude-etch list (also used for etch-test) in that patch.

cd-build logs

the logs from each cd build are commited to svn (debian-edu/html/logs/cd-build-$suite.log). the commits are silent, so no commit-mail is sent.

force re-build

all developers can force a build by using the command /home/builder/bin/trigger_builds on - trigger_build takes on argument: the image to rebuild or "all".

how to exclude packages from the cd

Get the curret status

  1. grab CD-administrator with svn co svn+ssh://$

  2. cd CD-administrator
  3. patch using ./patch-debian-cd

edit the patch

  1. edit the exlude file with vi debian-cd/tasks/exclude-etch

  2. regenerate the patch with ./make-patch

  3. Test that your patch works with ./patch-debian-cd

  4. commit your changes to the patchfile with svn commit debian-cd.patch

  5. have a beer and wait for the cd to build

how to merge in changes from upstream

buildd admins

Members of the builder group on administrator are:

famous last words

... and any technology distinguishable from magic is not sufficiently advanced!