David Prévot:
Hi,
[...]
Hi,
Thanks for working on this issue.
B. If systemd-tmpfiles does not become essential
------------------------------------------------
Consequences:
- each binary package needs requiring tmpfiles.d to work needs to
declare the proper dependency;
- the "systemd | systemd-standalone-tmpfiles | systemd-tmpfiles"
dependency could be reordered as "systemd-standalone-tmpfiles |
systemd | systemd-tmpfiles" to avoid pulling systemd into chroots;
- debhelper can make the dependency opt-in or opt-out (opt-out =
debhelper will add the dependency when it sees a tmpfiles.d config
unless explicitly told not to add the dependency) in order to:
+ make sure the needed dependencies are in place in the common case;
+ allow maintainers to disable those dependencies if they are not
essentials for the package.
During this meeting, the consensus between the participants could
roughly be summarized as:
1. systemd-tmpfiles (the functionality) should not become essential;
2. debhelper should by default issue a dependency on systemd-tmpfiles
when it is used;
3. the systemd-tmpfiles dependency should order
systemd-standalone-tmpfiles first despite it not being the default.
[...]
If the current consensus is acceptable, debhelper is the “only” element
that may need some update. Niels (explicitly CCed), would you agree to
implement the proposed shift in dependency order (point 3), is it easy
to implement the opt-out dependency mechanism (for point 2)?
Regards,
taffit
I want to clarify something here because I think it is unfortunate to
use the phrase "opting out of the dependency". When the discussion was
referred to the tech-ctte, the `debhelper` integration code with
tmpfiles had a hard dependency because it had been changed in 13.5 to
fail closed without the tmpfiles provider. Previously, it failed open
when the tmpfiles provider was not available (by skipping the
integration code entirely).
My best guess from here (but it is an assumption) is there is an
implicit "permanently revert the fail-closed behaviour added in 13.5" on
top of the opt-out, because removing the dependency on its own will just
create bricked packages. Bricked packages seemed universally undesirable
to me and my assumption was the best guess for what you meant instead.
As for opt-out, I will let this simmer for a bit before I implement the
advice. It is not something I had expected. For me, the problem here is
not about "easy" but cognitive load. We introduce a feature that 2-5
packages are likely to use, but thousands of Debian contributors will be
exposed to it (as in, will see the docs, have to evaluate whether they
need it, etc.). At the same time, not providing it means those 2-5
packages have to do their own NIH / Cargo-cult'ing of a snippet plus
hope it never need changes.
But at this time, I do not see a good solution unless we can identify
the exceptions as essential/pseudo-essential packages only. And even
then, all I have is a half-finished idea that need some time in the
metaphorical pot.
As for 3: I have no concerns with the dependency order.
Once again, thanks for working on this issue. Please clarify what
exactly was meant with "opt-out" and whether the opt-out only need to
apply to essential/pseudo-essential packages.
Best regards,
Niels