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