Bug#1141909: tech-ctte: dh_installtmpfiles-generated dependencies

Helmut Grohne <[email protected]> Thu, 23 Jul 2026 08:40:53 +0200
Newsgroups gmane.linux.debian.devel.ctte
Message-ID <20260723064053.GA66244__37367.9195110284$1785618206$gmane$org@subdivi.de>
Hi Adrian,

On Tue, Jul 21, 2026 at 06:19:19PM +0300, Adrian Bunk wrote:
> Section 3.8. only requires it for packages marked "Essential: yes".

I now see how you can read it that way. We may have to clarify it. 
Evidently, my earlier attempt at clarifying it was not entirely 
successful. The intention was to state that packages cannot be part of 
the transitive essential set if they do not work when deconfigured.

> I also do not see how such a requirement would make sense:
> 
> Shared libraries can be part of the transitively essential set,
> but packages cannot assume the availability of a library since
> it might disappear during an upgrade to the next release.

This is why essential packages have their library dependencies upgraded 
to Pre-Depends. It tells our package mananager that it cannot remove the 
library before removing the depender.

> When dh_installtmpfiles generates dependencies, then C should be
> fine even without B, similar to shared libraries.

If we assume that all users generate dependencies, the problem of not 
always working does not affect theirt postinst and prerm scripts. Such a 
dependency does not help with preinst (unless Pre-Depends) and postrm.

> From a practical point of view, I do also not see why passwd using 
> systemd-tmpfiles might be fine, but packages in the transitively 
> essential set like libselinux1 should be banned from using 
> systemd-tmpfiles due to one implementation using libsystemd-shared.

As pointed out elsewhere, that libsystemd-shared problem is a limitation 
of the current implementation rather than a fundamental barrier. The 
essential set indeed is special, because we never what other packages 
need it.

There seems to be some ambiguity about the notion of essential that 
still feels difficult to grasp. You're right that shared libraries can 
and do enter and exit the transitive essential set. Hence, packages must 
depend on them explicitly. The same could be argued for 
systemd-tmpfiles. But then, awk also is kinda in that role and yet we 
argue that availability of /usr/bin/awk is an essential feature to be 
relied upon at all times. To me, this is a really good reason for 
resuming work on removing awk from essential (as its size is not that 
big of a reason).

I don't quite like a systemd-tmpfiles as a transitive essential package, 
because unlike library packages dependencies on it are not entirely 
automatic and you can miss them if you use the tool manually. A 
transitive essential existence, would make such missed dependencies 
likely and as a consequence would factually promote the package to full 
essential with all the strings attached. I only really see the states of 
not-essential and fully-essential as desirable end-states.

Again, opinions are my own.

Helmut