These are now only installed by systemd if HAVE_SYSV_COMPAT is true,
which only is the case if you set sysvinit-path and sysvrcnd-path (which
we explicitly unset in the systemd derivation for quite some time)
From the systemd release notes:
nss-mymachines lost support for resolution of users and groups, and now
only does resolution of hostnames. This functionality is now provided by
nss-systemd. Thus, the 'mymachines' entry should be removed from the
'passwd:' and 'group:' lines in /etc/nsswitch.conf (and 'systemd' added
if it is not already there).
This makes things more consistent with how we pass in utillinuxMinimal.
There's already a minimal argument in the gnupg derivation, but this
gnupg is even more minimal. Instead of defining a gnupgSuperMinimal, we
define it inline inside systemd.
systemd 246 started baking in some strings into $lib/lib/libsystemd.so
which points back to $out.
It might be desirable to not have these strings in there, but instead
have systemd ask the running manager for the really active paths via
IPC, or patch in some more mutable paths (like /run/current-system/…) -
but as long as it is as it is, we should probably should just stop
producing the `lib` output for now.
This does increase the runtime closure for installations not pulling in
systemd.out, or linking against multiple libsystemd's, but doesn't
increase the runtime closure for NixOS itself, as it needs systemd
anyways, and doesn't link against multiple variants of it.
We can also remove the aarch64-specific $out/lib/systemd/catalog hack,
and revive it at a later time if the `lib` output is reintroduced.
Since systemd 243, docs were already steering users towards using
`journal`:
eedaf7f322
systemd 246 will go one step further, it shows warnings for these units
during bootup, and will [automatically convert these occurences to
`journal`](f3dc6af20f):
> [ 6.955976] systemd[1]: /nix/store/hwyfgbwg804vmr92fxc1vkmqfq2k9s17-unit-display-manager.service/display-manager.service:27: Standard output type syslog is obsolete, automatically updating to journal. Please update│······················
your unit file, and consider removing the setting altogether.
So there's no point of keeping `syslog` here, and it's probably a better
idea to just not set it, due to:
> This setting defaults to the value set with DefaultStandardOutput= in
> systemd-system.conf(5), which defaults to journal.
Since systemd 246, these are only installed by systemd if
HAVE_SYSV_COMPAT is true, which only is the case if you set
sysvinit-path and sysvrcnd-path (which we explicitly unset in the
systemd derivation for quite some time)