KERNEL-WEDGE-GEN-CONTROL(1)

πŸ’– KERNEL-WEDGE-GEN-CONTROL(1) πŸ’–

okay bestie, gather round, because we're about to talk about kernel-wedge-gen-control β€” that's the kernel-wedge gen-control command, sitting pretty in the General Commands Manual. she generates a debian/control file and she does it flawlessly, no cap. ✨


πŸŽ€ NAME πŸŽ€

kernel-wedge-gen-control β€” bestie, she makes you a debian/control file. that's the whole job. and she ate. πŸ’…


🌸 SYNOPSIS 🌸

kernel-wedge gen-control

πŸ¦‹ DESCRIPTION πŸ¦‹

so here's the vibe: gen-control cooks up a debian/control out of three things β€” the control stub, the kernel-versions files, and the package-list files. trio of icons honestly. 🫢

for every single kernel version and every flavour, and for every module list that's defined for that flavour, gen-control is gonna create a binary package control paragraph. and normally? that paragraph is based on a template living in the package-list inside the default-configuration directory. iconic behaviour.

here's how templates get processed, step by step, no skipping, iykyk:

  1. for each standard control field name, it copies the template control field name_flavour, name_arch_flavour, name_arch, or name β€” and yes, that's in descending order of priority, so the first one that hits wins. periodt.
  2. it appends the kernel version and the flavour to the package names in the Package and Depends fields. slay.
  3. if the package has been excluded? processing just stops. bye bestie. πŸ™ˆ
  4. it sets the Architecture, Package-Type, Kernel-Version, and Section fields automatically. she does it herself, main character energy.
  5. any package that isn't going to be built gets removed from the Depends field. and if you're like "no actually keep it"? you can override that by adding a "!" to the dependency name. lowkey powerful.
  6. it adds the original (unsuffixed) package name to the Provides field. πŸŽ€
  7. and then β€” finally β€” it emits the processed control paragraph. πŸ’–

🌈 the package-list in the config directory 🌈

the package-list in the configuration directory is allowed to add new package templates or override template field values. yes ma'am, she's flexible. for example:

# This file is used to build up the control file. The kernel version and
# "-di" are appended to the package names. Section can be left out. So can
# architecture, which is derived from the files in the modules directory.
# It overwrites specifications from /usr/share/kernel-wedge/package-list.
Package: fat-modules
Priority: standard

Package: nic-modules
Depends: kernel-image, nic-shared-modules, core-modules, firewire-core-modules

Package: other-modules
Depends: kernel-image
Description: some other modules I like to have in the installer

✨ exclude-packages ✨

also! the configuration directory may have an exclude-packages file. what does it do? it lists any udebs β€” by full package name β€” that would normally get built, but should be kept out of the control file entirely. so if you're like "not this one," that's where you say it. 🚫


πŸ‘‘ AUTHOR πŸ‘‘

Joey Hess, Ben Hutchings <ben@decadent.org.uk> β€” absolute legends, we stan. πŸ’œ


🌟 and that's the whole page bestie! this was the Kernel-wedge manual, dated June 2019. go forth and generate those control files. mwah. πŸ’…βœ¨