| 1 | This process is rarely performed and the infrastructure for it is |
| 2 | imperfect. Substitute the name of the new suite for $suite in all |
| 3 | steps below. |
| 4 | |
| 5 | 1. Make sure the apt repository is up to date with respect to the |
| 6 | source tree for the existing dists. Check |
| 7 | debathena.mit.edu/package-list/development and |
| 8 | debathena.mit.edu/package-list/proposed. More importantly, make |
| 9 | sure there is nothing in svn that isn't built. (An easy way to do |
| 10 | this is running the check-unbuilt-packages script.) |
| 11 | |
| 12 | 2. Add the new dist to scripts/debian-versions.sh (and svn up into |
| 13 | the locker). (It is not necessary to add the new dist to codes |
| 14 | at this point, but it must be present in the gettag conditional.) |
| 15 | If you are building an unreleased distribution, add an additional |
| 16 | ~0.1 tag; if you're rebilding, bump that tag. |
| 17 | |
| 18 | 3. Create the new distribution in the apt repository's configuration |
| 19 | file by editing /mit/debathena/apt/conf/gen-distributions and |
| 20 | running it with output to the 'distributions' file in the same |
| 21 | directory. Create the skeleton of the dist by running |
| 22 | "dareprepro export" on the build server. (You don't need to do |
| 23 | this if you're rebuilding.) |
| 24 | |
| 25 | 4. Add an appropriate sources.list.d/*/$suite.list entry in |
| 26 | scripts/build-server. Commit and update |
| 27 | /mit/debathena/bin/build-server. |
| 28 | |
| 29 | 5. On the build server (as root), create a chroot for the new distribution: |
| 30 | |
| 31 | First, check if /usr/share/debootstrap/scripts/$suite exists. |
| 32 | If not, it may require downloading and installing a |
| 33 | more recent version of the debootstrap package from the |
| 34 | -backports dist corresponding to the build server's OS. (You |
| 35 | presumably don't need to do this if you're rebuilding.) |
| 36 | |
| 37 | You could also just go into that directory and do |
| 38 | "ln -s gutsy $suite" since it apparently hasn't changed in years. |
| 39 | |
| 40 | /mit/debathena/bin/build-server/make-chroot $suite i386 |
| 41 | /mit/debathena/bin/build-server/make-chroot $suite amd64 |
| 42 | |
| 43 | |
| 44 | 6. Fire up screen, ideally making use of the "-S" option to identify |
| 45 | your screen session. e.g. "screen -S joeuser.oneiric_build". |
| 46 | |
| 47 | 7. mkdir /mit/debathena/machines/awesome-build-server/stamps.$suite. |
| 48 | |
| 49 | 8. cd into a checkout (probably on your local machine) of |
| 50 | debathena/scripts/build-server/build-all. |
| 51 | |
| 52 | 9. Edit Makefile (and check in the edit) so that suite is the new |
| 53 | distribution and psuite is the previously most recent Debian or |
| 54 | Ubuntu distribution. psuite is used to generate the order of |
| 55 | build-dependencies, so choose the closest distribution. If you are |
| 56 | rebuilding, you can set psuite to suite. |
| 57 | |
| 58 | 10. cd to /mit/debathena/bin/build-server/build-all, which is a |
| 59 | totally logical place to run the build from. Run "make |
| 60 | deps.mk". |
| 61 | |
| 62 | 11. Run "make -k all". |
| 63 | You can watch the builds happen in the other windows of the |
| 64 | screen session. It's possible to do several builds at once with |
| 65 | make -j N (except as of 7/2011 this is a bad idea) |