Package: tech-ctte
Hello committee members,
I fear I am faced with another road block in the /usr-move transition
and seek assistance with a packaging authority question #1079329. The fundamental question is who has authority to touch the aliasing symbolic
links such as /lib64. Until bookworm, there was no clear authority as
multiple packages (including but not limited to base-files, debootstrap,
glibc, systemd, usrmerge) touched them. As part of the /usr-move
transition, I moved authority of these links to base-files exclusively
as it now installs them via its data.tar. At least I thought so. systemd maintainer Luca Boccassi disagrees and sees systemd having authority in managing them. It has been demonstrated that this may cause an
installation failure of base-files in practical ways. In particular,
systemd assigns a different link target than base-files does. The base-files.preinst has been augmented to catch this situation and abort
early to avoid a subsequent unpack error. Luca Boccassi argues that base-files.preinst should fix up the link left behind by systemd. I
agree with that on the condition that we first fix the cause for the
wrong link (systemd), but Luca disagrees with changing systemd in this
regard. Doing so would deviate from upstream behaviour. As systemd
manages non-Debian containers, the management of /lib64 is necessary and removing the link may break such container workloads (though a systemd
upstream MR to validate this claim turned up no actual breakage in
systemd's CI pipeline). As a result of this impasse, systemd continues
to set up a /lib64 that is incompatible with base-files and
base-files.preinst continues to fail installation.
I ask the technical committee to overrule the systemd maintainers and authorizes me to NMU the proposed change[1] stopping systemd from
setting up an incompatible /lib64 symlink.
Let me stress that allowing /lib64 to point to different unpredictable
targets violates fundamental assumptions of the /usr-merge whose stated
goal was to treat /lib64 and /usr/lib64 interchangeably. Revoking this assumption revokes the basis for the /usr-move transition that the CTTE authorized me to carry out in repealing the moratorium.
Technically speaking, there is one more feasible workaround. If the
base-files package were to install an empty /usr/lib64 directory and the
/lib64 -> /usr/lib64 symbolic link in its data.tar for all
architectures, then the logic embodied in systemd now would never
trigger the offending code path for Debian installations and the problem
would likewise go away. I argue that this change has a significant risk
of confusing users of non-amd64 systems and therefore rejected it. You
may also overrule me and request that either base-files allows the link
to be unpredictable or unconditionally ships it for all architectures.
Both ways require a 3:1 majority vote via constitution 6.1.4.
Helmut
[1]
https://github.com/systemd/systemd/pull/34804
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)