Bug#1131136: sysvinit-utils does not need to be in Essential set
Mark Hindley
mark at hindley.org.uk
Fri Apr 17 16:48:44 BST 2026
Gioele,
Thanks for this and your patience in waiting for a reply.
On Thu, Apr 16, 2026 at 12:02:26PM +0200, Gioele Barabucci wrote:
> Hi, any feedback on this plan?
There have been some discussions and there is uncertainty that your proposed
migration covers all the necessary angles.
Quoting from your original email:
> The Essential bit can be removed because, after years of work, no
> package make use of `pidof` in their maintscripts. (Except 5 low-popcon
> packages for which patches and bug reports has already been submitted.)
This doesn't cover runtime users of pidof or init-d-script.
I have been reading the Policy in the hope of finding an escape from the bind we
are in. Policy says:-
Packages are not required to declare any dependencies they have on other
packages which are marked Essential (see below), and should not do so unless
they depend on a particular version of that package. [4]
and [4] adds
Essential is needed in part to avoid unresolvable dependency loops on
upgrade. If packages add unnecessary dependencies on packages in this set, the
chances that there will be an unresolvable dependency loop caused by forcing
these Essential packages to be configured first before they need to be is
greatly increased. It also increases the chances that frontends will be unable
to calculate an upgrade path, even if one exists.
Also, functionality is rarely ever removed from the Essential set, but
packages have been removed from the Essential set when the functionality moved
to a different package. So depending on these packages just in case they stop
being essential does way more harm than good.
So, currently no callers of pidof or init-d-script should declare an unversioned
Depends: sysvinit-utils.
But, by removing the Essential bit, all users of pidof or init-d-script (not
just maintscript users) will immediately become RC buggy by failing to comply
with the Policy requirement that
Every package must specify the dependency information about other packages
that are required for the first to work correctly.
So which of these Policy directives do we break?
The consensus from the discussions we have had so far is that it would be best
to add Depends: sysvinit-utils where required *before* removing its Essential
bit to avoid any time where the necessary dependencies are not declared.
There is also an issue that the commandline options of procps' pidof are not
identical. Are you sure there are no runtime users of pidof that rely on the
current semantics?
Do you see a better way through?
With best wishes
Mark
More information about the Debian-init-diversity
mailing list