Version 3 (modified by jdreed, 12 years ago) (diff)


This process is rarely performed and the infrastructure for it is imperfect. Substitute the name of the new suite for $suite in all steps below.

  1. Make sure the apt repository is up to date with respect to the source tree for the existing dists. Check and More importantly, make sure there is nothing in svn that isn't built. (An easy way to do this is running the check-unbuilt-packages script.)

NOTE: This is very important, because build-all uses the source files that are already there. So, let's say a build fails, and you commit a fix. It's still going to use the old .dsc file, until you build that package normally.

  1. Add the new dist to scripts/ (and svn up into the locker). (It is not necessary to add the new dist to codes at this point, but it must be present in the gettag conditional.) If you are building an unreleased distribution, add an additional ~0.1 tag; if you're rebilding, bump that tag.
  1. Create the new distribution in the apt repository's configuration file by editing /mit/debathena/apt/conf/gen-distributions and running it with output to the 'distributions' file in the same directory. Create the skeleton of the dist by running "dareprepro export" on the build server. (You don't need to do this if you're rebuilding.)
  1. Add an appropriate sources.list.d/*/$suite.list entry in scripts/build-server. Commit and update /mit/debathena/bin/build-server.
  1. On the build server (as root), create a chroot for the new distribution:

First, check if /usr/share/debootstrap/scripts/$suite exists. If not, it may require downloading and installing a more recent version of the debootstrap package from the -backports dist corresponding to the build server's OS. (You presumably don't need to do this if you're rebuilding.)

You could also just go into that directory and do "ln -s gutsy $suite" since it apparently hasn't changed in years.

        /mit/debathena/bin/build-server/make-chroot $suite i386
        /mit/debathena/bin/build-server/make-chroot $suite amd64
  1. Fire up screen, ideally making use of the "-S" option to identify your screen session. e.g. "screen -S joeuser.oneiric_build".
  1. mkdir /mit/debathena/machines/awesome-build-server/stamps.$suite.
  1. cd into a checkout (probably on your local machine) of debathena/scripts/build-server/build-all.
  1. Edit Makefile (and check in the edit) so that suite is the new distribution and psuite is the previously most recent Debian or Ubuntu distribution. psuite is used to generate the order of build-dependencies, so choose the closest distribution. If you are rebuilding, you can set psuite to suite.
  1. cd to /mit/debathena/bin/build-server/build-all, which is a

totally logical place to run the build from. Run "make".

  1. Run "make -k all".

You can watch the builds happen in the other windows of the screen session. It's possible to do several builds at once with make -j N (except as of 7/2011 this is a bad idea)