Component mismatches and changing overrides (wiki)¶
Sadly, packages just don’t stay where they’re put. Seed management
details how packages get chosen for the main
component, the various meta
packages and presence on the CD. What it doesn’t point out is that packages
which fall out of the seeding process are destined for the universe
component.
Every 30 minutes or so, the difference between what the seeds expect to be true
and what the archive actually believes is evaluated by the
component-mismatches
tool, and the output placed at:
This is split into four sections:
Source and binary promotions to main
These are source packages currently in universe
that appear to need promoting
to main
. The usual reasons are that they are seeded, or that a package they
build has become a dependency or build-dependency of a package in main
.
New sources need to be processed through the Ubuntu Main Inclusion Queue, and have been approved before they should be promoted. Also ensure that all of their dependencies (which will be in this list) are approved as well.
Binary only promotions to main
These are binary packages currently in universe
that appear to need promoting
to main
, as above; except that their source package is already in main
. An
inclusion report isn’t generally needed, though the package should be
sanity-checked.
Especially check that all of the package’s dependencies are already in main
,
or have been approved.
Source and binary demotions to universe
Sources and their binaries that are currently in main
but are no longer
seeded or depended on by another package. These either need to be seeded
explicitly, or demoted.
Binary only demotions to universe
Binary packages in main
that are no longer seeded or depended on, but the
source is still to remain in main
– usually because another binary saves it.
Often these tend to be -dev
or -dbg
packages and need to be seeded, rather
than demoted; but not always.
Once you’ve determined what overrides need to be changed, use the
change-override
client-side tool to do it.
To promote a binary package to main
:
$ ./change-override -c main git-email
To demote a source package and all of its binaries to universe
:
$ ./change-override -c universe -S tspc
To demote a binary package to universe
to solve a component-mismatch issue
(note the -proposed
target rather than the release pocket), typically unseeded
because the new version introduced an unwanted dependency:
$ ./change-override -c universe -s plucky-proposed erlang-doc
Less frequently used are the options to just move a source, and leave its
binaries where it is (usually just to repair a mistaken forgotten -S
):
$ ./change-override -c universe tspc
...oops, forgot the source...
$ ./change-override -c universe -t tspc
and the option to move a binary and its source, but leave any other binaries where they are:
$ ./change-override -c universe -B flite