On Fri, Mar 07, 2025 at 08:14:00AM -0500, Marvin Renich wrote:
> Are you saying that systemd creates the symlinks at runtime when it
> finds them missing, rather that when the systemd package is installed?
> To me, this is a clear violation of the policy quoted above.  "...must
> not install..." says nothing about when the installation happens.
> Installing a symlink is distinct from installing a package.  The act of
> creating the symlink is exactly "installing" it, whether it happens at
> package installation or later.

You are reading it correctly. systemd is creating /bin, /lib, /sbin and
in some situations also /lib64 when it finds them missing at runtime
(e.g. during system boot from the initramfs before pivot_root). In a
pretty normal installation this code path is not takes. For one thing,
those links tend to exist and existence prevents systemd from touching
them. For another, our default initramfs does not involve systemd.

If we consider this behavior a violation of the present policy. I
believe that we should change it. Having systemd create those links when
missing is crucial for implementing hermetic-/usr and I see little
reason for our policy to forbid that use case.

What was decided by the CTTE here is that systemd must not create links
that are *incompatible* with the ones base-files creates. In particular,
systemd must not create /lib64 -> usr/lib as a result of the CTTE
decision.

Helmut

Reply via email to