GERMINATE-UPDATE-METAPACKAGE(1)
β¨ NAME β¨
germinate-update-metapackage β bestie, this one updates a whole set of metapackages that were generated from seeds π
π SYNOPSIS π
germinate-update-metapackage [--vcs] [--output-directory dir] [dist]
π¦ DESCRIPTION π¦
okay so picture this: a metapackage is a package that is literally just a list of dependencies and nothing else β no code, no vibes, just "you need all of these besties". And germinate-update-metapackage is the girl who helps you build and update those metapackages, sourced from a list of seed packages β¨
what she actually does:
- updates the binary package stanzas in
debian/controlso they reflect whatever's currently in the seeds π₯ - updates
debian/changelogwith a description of all the changes she made π
she requires a configuration file called update.cfg sitting in the current directory β the format is described down below, don't skip it π
if you give her a non-option argument, that argument is the distribution she should generate metapackages for (think like "unstable"), periodt.
π OPTIONS π
--nodchβ do NOT touchdebian/changelog. hands off. she'll leave it exactly as she found it π--vcsβ check out the seeds from a version control system instead of fetching them straight from a URL. this needsbzrorgitinstalled, whichever one applies β¨ the version control system in question is guessed from theseed_baseURL in the configuration file β she tries git first, then bzr, if that URL is being ambiguous. for git: the part after the rightmost.character ofseed_dist(if there is any) gets treated as the branch name to check out. yes bestie, that is a rather strange style β it's for backward compatibility, she doesn't make the rules π--bzrβ check out the seeds from the bzr branch defined in the configuration file instead of fetching them directly from the URL defined there. needsbzrinstalled. > β οΈ this option is deprecated and only kept around for backward compatibility β use--vcsinstead, fr fr.-o,--output-directorydir β output the package lists into the directory you specify π
πΈ CONFIGURATION FILE πΈ
update.cfg uses Python's ConfigParser configuration file syntax, and it supports interpolation as defined by SafeConfigParser, iykyk.
the structure:
- it should have a
DEFAULTsection with adistkey indicating the default distribution π«Ά - and a
distsection (corresponding to that distribution) - it may also have a
dist/vcsordist/bzrsection β these can override theseed_baseandseed_distvalues from thedistsection, if the--vcsor--bzroption is given respectively - for backward compatibility: if
--vcsis given, thendist/bzrwill also be consulted π
the following keys are recognised in distribution sections:
seeds(mandatory) β pass these seeds to the germinator for processing π±output_seeds(optional, deprecated) β generate metapackages for these seeds. if it's not specified, the value ofseedsgets used. > this one is usually no longer necessary now that the value ofseedsis automatically expanded for seed inheritance β¨architectures(mandatory) β generate metapackages for these architectures ποΈarchive_base/default(optional) β use this URL as the default base for fetching package indices from the archive. for examples of valid URLs, look at thedeblines in/etc/apt/sources.list, or the MIRROR argument todebootstrap(8)πarchive_base/arch(optional) β use this URL as the base for fetching package indices from the archive for the specified architecture. for each architecture being processed, at least one ofarchive_base/defaultandarchive_base/archmust be present π to try multiple URLs, separate them with commas or spaces β the newest version of each package across all the archives will win. note thatdebootstrap(8)will only use the first archive, so don't get it twisted πseed_base(mandatory) β the base URL for fetching seeds. to try multiple URLs (for example if a seed branch includes another branch stored at a different location), separate them with commas or spaces πseed_dist(optional) β the tail of the URL for fetching seeds. this gets appended toseed_base. you'll often want to interpolate the value ofdistinto this value using ConfigParser's%(dist)ssyntax. if it's not specified, the value ofdistis used βdists(optional) β the distributions from which to fetch package indices. listing multiple distributions can be useful, for example when you're examining both a released distribution and its security updates. if it's not specified, the value ofdistis used πcomponents(mandatory) β the archive components from which to fetch package indices π§©seed_map/seed (optional, deprecated) β the seeds to be used as input for the metapackage corresponding to seed. if specified, this will typically be the list of seeds from which seed inherits, plus seed itself. > usually no longer necessary β use aTask-Seedsheader in the seed file instead πmetapackage_map/seed (optional, deprecated) β the metapackage name to output for seed. if it's not specified,germinate-update-metapackagewill look for the name of the source package in which it is being run, remove"meta"from the end, and append the seed name. > usually no longer necessary β use aTask-Metapackageheader in the seed file instead π
π EXAMPLE π
at the time of writing, the following configuration file is what's used to generate the kubuntu-meta source package in the Ubuntu archive β iconic behavior honestly π
[DEFAULT]
dist: resolute
[resolute]
seeds: desktop full active
architectures: i386 amd64 powerpc armhf arm64 ppc64el
seed_base: https://ubuntu-archive-team.ubuntu.com/seeds/
seed_dist: kubuntu.%(dist)s
archive_base/default: http://archive.ubuntu.com/ubuntu/
archive_base/ports: http://ports.ubuntu.com/ubuntu-ports/
archive_base/powerpc: %(archive_base/ports)s
archive_base/armhf: %(archive_base/ports)s
archive_base/arm64: %(archive_base/ports)s
archive_base/ppc64el: %(archive_base/ports)s
components: main restricted universe
[resolute/bzr]
seed_base: bzr+ssh://bazaar.launchpad.net/~kubuntu-dev/ubuntu-seeds/ bzr+ssh://bazaar.launchpad.net/~ubuntu-core-dev/ubuntu-seeds/
seed_dist: kubuntu.%(dist)s
π AUTHORS π
- Gustavo Franco
<stratus@debian.org> - Colin Watson
<cjwatson@canonical.com>
germinate-update-metapackage is copyright Β© 2004, 2005, 2006, 2007, 2008 Canonical Ltd. and copyright Β© 2006 Gustavo Franco. see the GNU General Public License version 2 or later for copying conditions β a copy of the GNU General Public License is available in /usr/share/common-licenses/GPL π
and that's the whole thing bestie!! this page is from the Ubuntu manual, dated Jul 18, 2007, and it documents GERMINATE-UPDATE-METAPACKAGE(1) β go forth and generate those metapackages, you've totally got this πβ¨π¦
π¦ where this page comes from
- ubuntu stonking: germinate 2.50.2+willsync2 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms