Nutty systemd package dependencies
Once per thread about systemd, I point out that dbus-daemon links to
both libapparmor and libselinux - which results in at least one
useless library for literally everyone with dbus installed, since
"major" LSMs don't stack, so nobody can possibly be using both
AppArmor and SELinux at the same time. Oddly enough, nobody has
complained about that, only about libsystemd...
Which rather neatly brings us to something that I've been wondering
about for some time. It's a pointless package dependency. But for
novelty it's one that the people who *use* systemd might be interested
in, rather than the people who *want to avoid* systemd.
Consider the "initscripts" package.
The "systemd" package has an explicit package dependency from it (in
both Debian 8 and the prospective Debian 9).
The file list for the "initscripts" package (taking amd64 as an example)
can be divided into five rough areas: rc scripts that live in
/etc/init.d/, libraries of script functions that those scripts use,
default settings in /etc/default/, an fsck shim for NFS, and doco.
What's nutty about this is that systemd actually goes to significant
lengths to exclude and disable the functionality of every single thing
in the "initscripts" package. All of the rc scripts are masked or
superseded. The script function libraries are largely for the benefits
of said rc scripts, and end up being wholly unused by systemd. (Yes,
they could be used by some other package. But that would require an
explicit package dependency by that package. This is about the package
dependency of the "systemd" package.) systemd explicitly checks for
cases where things like fsck.nfs do not exist. And as people have
observed passim on Stack Exchange and Debian/Ubuntu bug trackers over
the past few years, systemd has quietly obviated things like
/etc/default/tmpfs (the so-called "API filesystems" such as /run and
/dev/shm being mandatory with systemd, and the systemd mechanism for
setting options on such mounts being /etc/fstab via systemd-remount-fs)
and /etc/default/devpts (the equivalents to TTYGRP and TTYMODE being
hardwired into systemd).
This does rather beg the question of why, after ensuring that *nothing*
from it is used in any way, the "systemd" package yet explicitly
requires the installation of the "initscripts" package.