Differences between revisions 18 and 22 (spanning 4 versions)
Revision 18 as of 2007-06-29 08:27:31
Size: 2730
Editor: HolgerLevsen
Comment:
Revision 22 as of 2008-02-03 10:32:17
Size: 4451
Editor: RonnyAasen
Comment: details
Deletions are marked like this. Additions are marked like this.
Line 13: Line 13:
the code for the version of debian-cd we're using is at /home/builder/src/debian-edu/src/build/CD-administrator/debian-cd We are using two different branches of debian-cd. The svn://svn.debian.org/debian-cd/etch_r0_build branch is used to build etch cd's. And svn://svn.debian.org/debian-cd/trunk 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.
Line 15: Line 15:
During every build it's patched by debian-edu/src/build/CD-administrator/patch-debian-cd with debian-edu/src/build/CD-administrator/debian-cd.patch 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.
Line 21: Line 25:
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. 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. You can read the logs in the individual cd-suite directories in http://ftp.skolelinux.no
Line 34: Line 38:
 /!\ make-patch is not working at the moment
Line 35: Line 40:
 1. regenerate the patch with `./make-patch`
 1. Test that your patch works with `./patch-debian-cd`
 1. regenerate the patch with `./make-patch`, this will generate a debian-cd.patch file.
 1. Test that your patch works with `./patch-debian-cd $branch`
Line 42: Line 47:
 Hopefully this is not to wildly inaccurate.
Line 44: Line 48:
 1. increment debian-cd-revision
 1. patch using `./patch-debian-cd`
 1. increment debian-cd-revision, svn
 1. patch both the trunk and the etch branch using using `./patch-debian-cd [etch|trunk]`
Line 47: Line 51:
 * if the patch succeeds, you can commit debian-cd-revision, and wait for the cd to build.
 * if the patch failes, you'll have the half baked results in debian-cd.new. Check thru the rejects and adjust debian-cd.patch as needed. Test that your modified patch works with `./patch-debian-cd`
 * if both patches succeeds, you can commit debian-cd-revision, and wait for the cd to build.
 * if one (or both) of the patches fail, you'll have the half baked results in debian-cd.new. Check thru the rejects and adjust debian-cd.patch.[etch|trunk] as needed. Test that your modified patch works with `./patch-debian-cd [etch|trunk]`
Line 50: Line 54:
 1. commit the debian-cd-revision, and debian-cd.patch  1. commit the debian-cd-revision, and debian-cd.patch.$branch files
Line 53: Line 57:

= How to build more images =
There are a few thing one must in order to add a new cd to the build system.
 1. make the temp file area.
    debian-cd uses a area on disk, for tempfile area, building the filesystem that becomes the iso, and making the iso.
    you need to make the directory owned by builder as /skolelinux/administrator/temp_storage/builder/$suite. For example {{{/skolelinux/administrator/temp_storage/builder/lenny-test-dvd/ }}}
    You should also check that the area have the needed free space 1.5G for a cd and FIXME: GB for the dvd
Line 58: Line 69:
* Petter
* Steffen
* Ronny
 * Petter
 * Steffen
 * Ronny

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 :-)

  • tasks comes from debian-edu svn
  • wantedpkglist*.txt is generated from tasks
  • wantedpkglist is given to debian-cd to populate the cd
  • missingpkglist is generated by comparing the list of packages on the CD with the list of wanted packages.

debian-cd

We are using two different branches of debian-cd. The svn://svn.debian.org/debian-cd/etch_r0_build branch is used to build etch cd's. And svn://svn.debian.org/debian-cd/trunk 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. You can read the logs in the individual cd-suite directories in http://ftp.skolelinux.no

force re-build

all developers can force a build by using the command /home/builder/bin/trigger_builds on user.skolelinux.org - 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://$alioth-user-name@svn.debian.org/svn/debian-edu/trunk/src/build/CD-administrator

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

edit the patch

  • /!\ make-patch is not working at the moment

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

  • regenerate the patch with ./make-patch, this will generate a debian-cd.patch file.

  • Test that your patch works with ./patch-debian-cd $branch

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

  • have a beer and wait for the cd to build

how to merge in changes from upstream

  1. increment debian-cd-revision, svn
  2. patch both the trunk and the etch branch using using ./patch-debian-cd [etch|trunk]

  3. if both patches succeeds, you can commit debian-cd-revision, and wait for the cd to build.
  4. if one (or both) of the patches fail, you'll have the half baked results in debian-cd.new. Check thru the rejects and adjust debian-cd.patch.[etch|trunk] as needed. Test that your modified patch works with ./patch-debian-cd [etch|trunk]

  5. commit the debian-cd-revision, and debian-cd.patch.$branch files
  6. have a $beverage while it's building.
  7. test the cd

How to build more images

There are a few thing one must in order to add a new cd to the build system.

  1. make the temp file area.
    • debian-cd uses a area on disk, for tempfile area, building the filesystem that becomes the iso, and making the iso.

      you need to make the directory owned by builder as /skolelinux/administrator/temp_storage/builder/$suite. For example /skolelinux/administrator/temp_storage/builder/lenny-test-dvd/  You should also check that the area have the needed free space 1.5G for a cd and FIXME: GB for the dvd

buildd admins

Members of the builder group on administrator are:

  • Petter
  • Steffen
  • Ronny

famous last words

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