[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#975075: tech-ctte: Should maintainers be able to block init compatibility changes?

gregor herrmann <gregoa@debian.org> writes:

> What surprises me in this discussion: My very broad summary of the GR
> result was "systemd is the top priority, other init systems are
> supported on a best-effort basis", and now I'm reading statements which
> sound to me like "looking into new/future/niche init systems is ok-ish
> but we never meant sysvinit when we said 'alternate init systems'", and
> that's either a misunderstanding of some mails on my side or an
> interpretation I find implausible to draw from the text of the winning
> GR option.

The position that sysvinit specifically is a dead end but that Debian
should not lock ourselves into a single init system and instead be open to
using other init systems besides systemd was a position advocated by
several people during the GR debate, and if one held that position, it is
a reason to vote for the winning option B over option F (the focus on
systemd option).  Certainly my understanding at the time was that option B
was intended to represent the folks with that position, possibly among

Whether the folks who voted B over other options meant it in that specific
way is, of course, somewhat unknowable, and I'm sure at least some of them

This discussion surprises me for a somewhat different reason.  The winning
GR option contains this text, which I think is an evolution of text that I
asked for at the time to make things clearer from a Policy standpoint:

    Packages may use any systemd facility at the package maintainer's
    discretion, provided that this is consistent with other Policy
    requirements and the normal expectation that packages shouldn't depend
    on experimental or unsupported (in Debian) features of other packages.
    Packages may include support for alternate init systems besides
    systemd and may include alternatives for any systemd-specific
    interfaces they use. Maintainers use their normal procedures for
    deciding which patches to include.

I think this clearly and unambiguously says that maintainers can depend on
unit support and drop init scripts from their packages if they so choose,
and that this choice only requires as much justification as rejecting any
other patch or feature in their packages (and Debian is generally defers
to package maintainers here).

One of the GR discussion goals was to try to make all of the options clear
about the implications for whether or not maintainers could drop init
scripts from their packages or would be required to include them, and I
thought option B was one of the options that made it unambiguous that
maintainers could drop them.  I assumed that if option B won, some
maintainers would drop init scripts, and therefore if folks wanted to
maintain a set of working init scripts, they'd need to look at different
options than ensuring they were incorporated into each package.

Apparently we still, after all that discussion, weren't on the same page
about this?  That's really unfortunate, since that was one of the major
questions on which we were trying to get closure.

For the record, the current Policy language says:

    Packages including a service unit may optionally include an init
    script to support other init systems. In this case, the init script
    should have the same name as the systemd service unit so that systemd
    will ignore it and use the service unit instead. Packages may also
    support other init systems by including configuration in the native
    format of those init systems.

I have another pending patch that I need to finish revising that makes the
normative language here more explicit.  The intended definition of "may"
here is the one from that patch, namely:

* The term *may* and the adjective *optional* are used to clarify cases
  where it may otherwise appear that Policy is specifying a requirement or
  recommendation. In those cases, these words describe decisions that are
  truly optional and at the maintainer's discretion.

This was intended to reflect the result of the GR.

The dependency structure for indicating a logind requirement is a more
complicated question and I don't personally have any opinion about the
GR's implications for it.

Russ Allbery (rra@debian.org)              <https://www.eyrie.org/~eagle/>

Reply to: