Source: kernel-handbook
Version: 1.0.20
Severity: wishlist

Dear Maintainer,

idk if this is within the purview of the hand-book, but given that other
parts of chapter-initramfs.dbk are, it may well be.
If it isn't, I'd appreciate being directed to the proper mailing list.

On my Bullseye system, 
-- >8 --
$ apt-cache dumpavail  | awk  '/^Package:/ {pkg=$2}  
/^Depends:.*[^-](dracut|initramfs-tools)/ {print pkg "\t" $0}' | grep -ve 
^linux-image- -e ^dracut -e ^initramfs-tools | expand -t35 | grep -Ee 
'(initramfs-tools|dracut)-core' -v | sort | uniq -w35
bilibop-lockfs                     Depends: bilibop-common (= 0.6.3), 
initramfs-tools, udev (>= 242-6)
bootcd                             Depends: busybox | busybox-static | 
busybox-cvs | busybox-cvs-static, cpio, dosfstools, e2fsprogs, fdisk | 
util-linux (<< 2.29.2-3~), file, genisoimage, initramfs-tools, 
grub-efi-amd64-bin, isolinux, lsb-base (>= 3.0-6), rsync, shellia (>= 5.6.5), 
syslinux, syslinux-common, xorriso
clevis-dracut                      Depends: clevis-systemd (= 16-2), dracut, 
dracut-network
clevis-initramfs                   Depends: clevis-luks (= 16-2), 
initramfs-tools
cloud-initramfs-dyn-netconf        Depends: initramfs-tools
cloud-initramfs-growroot           Depends: cloud-utils (>= 0.26-2~), 
initramfs-tools, fdisk | util-linux (<< 2.29.2-3~)
cloud-initramfs-rescuevol          Depends: initramfs-tools
crossgrader                        Depends: python3-appdirs, python3-apt (>= 
1.0.0), python3:any, python3-pkg-resources, dpkg-dev, arch-test, initramfs-tools
cryptsetup-initramfs               Depends: busybox | busybox-static, 
cryptsetup (>= 2:2.3.7-1+deb11u1), initramfs-tools (>= 0.137) | 
linux-initramfs-tool, debconf (>= 0.5) | debconf-2.0
dropbear-initramfs                 Depends: busybox | busybox-static, 
dropbear-bin (>= 2020.81-3), initramfs-tools (>= 0.94), udev
live-boot-initramfs-tools          Depends: busybox | busybox-initramfs, 
initramfs-tools, udev
live-tools                         Depends: lsb-base, initramfs-tools
mandos-client                      Depends: libavahi-common3 (>= 0.6.16), 
libavahi-core7 (>= 0.6.24), libc6 (>= 2.28), libglib2.0-0 (>= 2.40), 
libgnutls30 (>= 3.7.0), libgpgme11 (>= 1.2.0), libnl-3-200 (>= 3.2.7), 
libnl-route-3-200 (>= 3.2.7), debconf (>= 1.5.5) | debconf-2.0, adduser, 
cryptsetup (<< 2:2.0.3-1) | cryptsetup-initramfs, initramfs-tools (>= 0.99) | 
dracut (>= 044+241-3), dpkg-dev (>= 1.16.0), gnutls-bin (>= 3.6.6) | 
libgnutls30 (<< 3.6.0)
multipath-tools-boot               Depends: debconf (>= 0.5) | debconf-2.0, 
initramfs-tools | linux-initramfs-tool, lsb-base, multipath-tools (>= 0.8.5-2), 
multipath-tools (<< 0.8.5-2.1~)
open-infrastructure-system-boot    Depends: busybox | busybox-initramfs, 
initramfs-tools, udev
openstack-debian-images            Depends: debootstrap, dosfstools, e2fsprogs, 
extlinux, initramfs-tools, ipcalc, kpartx, mbr, parted, qemu-utils
plymouth                           Depends: init-system-helpers (>= 1.18), 
initramfs-tools | dracut, lsb-base (>= 3.0-6), systemd (>= 232-8~), udev (>= 
232-8~), libc6 (>= 2.29), libdrm2 (>= 2.4.47), libplymouth5 (>= 0.9.5)
yubikey-luks                       Depends: cryptsetup-run, initramfs-tools, 
yubikey-personalization (>= 1.5)
zfs-dracut                         Depends: dracut, zfs-modules | zfs-dkms, 
zfsutils-linux (>= 2.1.5-1)
zfs-initramfs                      Depends: busybox-initramfs | busybox-static 
| busybox, initramfs-tools, zfs-modules | zfs-dkms, zfsutils-linux (>= 2.0.3-9)
-- >8 --

And conversely, without -v:
-- >8 --
acpi-override-initramfs            Depends: initramfs-tools-core
sg3-utils-udev                     Depends: sg3-utils, initramfs-tools-core, 
initramfs-tools | linux-initramfs-tool
-- >8 --
  
This was spurred by me trying to install tzpfms-{dracut,initramfs},
which respectively depend on zfs-{dracut,initramfs},
which for some reason depend on dracut and initramfs-tools,
instead of the respective -core package
(for which I've opened #1023127 with patches for this).

This makes them non-co-installable, which for me means testing is way
more annoying than it should be, but I think it's a general problem of
hygiene.

Of the packages listed above, the packages of interest to this question
which I think do not get this right are:
  * clevis-{dracut,initramfs}
  * cloud-initramfs-{dyn-netconf,growroot,rescuevol}
  * dropbear-initramfs
  * live-boot-initramfs-tools

And those that don't differently are:
  * cryptsetup-initramfs    \ depends on l-i-t which is satisfied by
                            | dracut (and t-ir), but explicitly targets
  * multipath-tools-boot    / i-t, should just be i-t-c

  * openstack-debian-images ‒ depends on i-t, but is just a program,
                              so should just be i-t-c

The only one that does get it right appears to be:
  * acpi-override-initramfs

clevis-{dracut,initramfs} is another text-book example of this:
they aren't co-installable, even though there's no reason to,
and dracut-core/i-t-c /are/, and installing one or the other
shouldn't affect the way the system is booted.

The rest listed have no dracut counter-parts, but nevertheless
shouldn't (effectively) conflict with dracut.

Before I send out patches to the rest, I'd love to know if:
  a) I'm not insane for thinking this, and
  b) it'd perhaps make sense to encode this in the kernel handbook or
     the like to have something to point to.

Best,
наб

As a post-scriptum, packages that aren't of interest here,
but get the hard-deps right are:
  * bilibop-lockfs \ require integration with the initrd and only
  * bootcd         | provide it for i-t
  * yubikey-luks   / 

  * mandos-client  \ hard dep on dracut|i-t, integrate with both
  * plymouth       / 

-- System Information:
Debian Release: 11.5
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 
'stable-debug'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.10.0-17-amd64 (SMP w/24 CPU threads)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_FIRMWARE_WORKAROUND, 
TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_GB:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Attachment: signature.asc
Description: PGP signature

Reply via email to