Seed management

Matt Zimmerman mdz at ubuntu.com
Mon Mar 28 13:25:02 CST 2005


There seem to be a lot of delays on Kubuntu resulting from problems managing
the seeds, so I'd like to take a moment to explain how the current processes
work.

Please read over http://www.ubuntu.com/wiki/SeedManagement as well.

The seeds are simple lists of packages.  We have 7 of them currently:

 * base - packages which are installed as part of the base system.  This
   must match debootstrap exactly, and so must always be identical between
   Ubuntu and Kubuntu.

 * casper - packages used in the bootstrapping of the live CD; this is managed
   by the installer team

 * desktop - packages which are included in the default desktop install, this
   is where most of the difference between Ubuntu and Kubuntu lies

 * installer - packages used to bootstrap and run the install CD; this is
   managed by the installer team

 * live - packages which will be installed on the live CD, in addition to the
   packages in the desktop seed

 * ship - packages which will be included on the installation CD, but not
   installed

 * supported - packages which are not included on CDs, but should be in main

The seed lists are used for a few different things:

 * ubuntu-meta and kubuntu-meta read the seed lists to generate their
   dependencies when they are updated

 * germinate reads the seed lists as input for the germination process

The germination process resolves dependencies.  For example, the kubuntu
desktop seed contains kdebase.  This depends on many other KDE packages.
Germinate traces the dependency tree and outputs a complete list of packages
which should be installed in order to provide the packages listed in the
seed.

The output from germinate is used in two places:

 * The CD building process uses germinate output to ensure that all of the
   necessary packages are present on the CD
 
 * The package archive management system uses germinate output to determine
   which packages are included in main  Changing the seeds alone does not
   effect any changes in the archive automatically.  A nightly diff is
   generated between the germinate output and the archive, and packages
   which need to move between components must be processed manually
   (typically by James Troup).

This means that when a change is made to a seed, the following items must be
cared for:

 * If a package is being promoted to main, it must be reviewed by Martin
   Pitt before it can be moved
 
 * Once it has been reviewed, James Troup needs to receive confirmation of
   this, so that he knows it is OK to promote
 
 * Once the archive has been updated, kubuntu-meta needs to be re-uploaded
   after running its 'update' script to update the dependencies

In short, it is important that if you make seed changes, you follow up to
make sure that the rest of the process is carried out.  Otherwise, your
changes have no effect, and inconsistencies between the seeds and the
archive are created.  The more inconsistencies there are, the more work is
required to unravel the situation and correct it, so please don't delay.

-- 
 - mdz



More information about the kubuntu-devel mailing list