Hi,

Thanks to Adrian for bringing this issue to our attention and to all
people participating to this bug report, bringing valuable contributions
to better understand the issue, possible solutions, and their
consequences, especially Simon and Helmut for the thorough analyses.

During our last meeting [0], we considered the consequences assuming
systemd-tmpfiles (the /usr/bin/ API) becoming essential [A], or not [B].
Here are the main aspects that were raised about those two issues.

A. If systemd-tmpfiles becomes essential
----------------------------------------

Consequences:
- systemd must be restructured such that libsystemd-shared becomes
  coinstallable in different versions to satisfy policy requirements
  about essential packages;
- systemd cannot be a policy-compliant systemd-tmpfiles provider for any
  package in forky(!), unless those packages issue a dependency;
- some package (e.g. base-files) must depend on systemd-tmpfiles (with
  some default alternative) to allow switching providers (like awk)

Benefits:
- purge scripts can use tmpfiles to remove their files in a declarative
  way;
- one could use tmpfiles in all sorts of packages. At present, one
  cannot use it in any package that systemd depends on as that would
  create a loop.

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.

    0: 
https://meetbot.debian.net/debian-ctte/2026/debian-ctte.2026-02-04-19.00.html

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

Attachment: signature.asc
Description: PGP signature

Reply via email to