Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-10-06 Thread David Steele
On Sun, Oct 6, 2019, 8:17 PM Sean Whitton  wrote:

> Hello,
>
> On Sat 05 Oct 2019 at 07:30PM -04, David Steele wrote:
>
> > I'm going to drop my objection, and assume that this is saying I don't
> need to
> > write init scripts for my special case.
>
> Okay -- perhaps you'd like to second Dmitry's patch, then, if you think
> it reflects project consensus?
>

I'm abstaining.

>


Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-10-06 Thread Sean Whitton
Hello,

On Sat 05 Oct 2019 at 07:30PM -04, David Steele wrote:

> I'm going to drop my objection, and assume that this is saying I don't need to
> write init scripts for my special case.

Okay -- perhaps you'd like to second Dmitry's patch, then, if you think
it reflects project consensus?

-- 
Sean Whitton


signature.asc
Description: PGP signature


Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-10-05 Thread David Steele
On Sat, Oct 5, 2019 at 1:06 PM Sean Whitton  wrote:
>
> Hello David,
>
> On Sun 29 Sep 2019 at 10:35AM -04, David Steele wrote:
>
> > On Sat, Sep 28, 2019 at 1:05 PM Sean Whitton  
> > wrote:
> >>
> >> Hello,
> >>
> >> On Sat 28 Sep 2019 at 04:18PM +00, Dmitry Bogatov wrote:
> >>
> >> > Reasonable. Then let's drop part about Depends:
> >> >
> >> >   [ ... All packages with daemons must provide init.d scripts ...],
> >> >   unless software is only usable, by upstream's design, when
> >> >   pid1 is provided by some other init system.
> >>
> >> I think this would work.  What do you think, David?
> >
> > I don't know. It provides more clarity the original Policy question, but 
> > raises
> > a technical one I don't know the answer to. For my special case, is it
> > practical to use systemd (via D-Bus) to manage system daemon
> > start/stop when it is
> > not pid1? If yes, things may have gotten worse (I'm responsible for getting 
> > this
> > all to work correctly?).
>
> Unfortunately, there isn't quite enough context in your reply for me to
> understand exactly how you think this makes things worse for you.  Could
> you expand, please?

I'm going to drop my objection, and assume that this is saying I don't need to
write init scripts for my special case.



Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-10-05 Thread Sean Whitton
Hello David,

On Sun 29 Sep 2019 at 10:35AM -04, David Steele wrote:

> On Sat, Sep 28, 2019 at 1:05 PM Sean Whitton  wrote:
>>
>> Hello,
>>
>> On Sat 28 Sep 2019 at 04:18PM +00, Dmitry Bogatov wrote:
>>
>> > Reasonable. Then let's drop part about Depends:
>> >
>> >   [ ... All packages with daemons must provide init.d scripts ...],
>> >   unless software is only usable, by upstream's design, when
>> >   pid1 is provided by some other init system.
>>
>> I think this would work.  What do you think, David?
>
> I don't know. It provides more clarity the original Policy question, but 
> raises
> a technical one I don't know the answer to. For my special case, is it
> practical to use systemd (via D-Bus) to manage system daemon
> start/stop when it is
> not pid1? If yes, things may have gotten worse (I'm responsible for getting 
> this
> all to work correctly?).

Unfortunately, there isn't quite enough context in your reply for me to
understand exactly how you think this makes things worse for you.  Could
you expand, please?

> In that case I would prefer a statement discouraging systemd-specific
> features.

I doubt that we have project consensus on that.

-- 
Sean Whitton


signature.asc
Description: PGP signature


Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-10-02 Thread Ansgar
Dmitry Bogatov writes:
> --- a/policy/ch-opersys.rst
> +++ b/policy/ch-opersys.rst
> @@ -1006,7 +1006,9 @@ supported by all init implementations. An exception to 
> this rule is
>  scripts or jobs provided by the init implementation itself; such jobs
>  may be required for an implementation-specific equivalent of the
>  ``/etc/rcS.d/`` scripts and may not have a one-to-one correspondence
> -with the init scripts.
> +with the init scripts. Another exception is when software is only
> +usable, by upstream's design, when pid1 is provided by some other init
> +system.

I don't believe this is a good solution as the list of exceptions would
be cumbersome to maintain (cf. #911165).

Ansgar



Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-10-01 Thread Dmitry Bogatov


[2019-09-28 10:04] Sean Whitton 
> Hello,
>
> On Sat 28 Sep 2019 at 04:18PM +00, Dmitry Bogatov wrote:
>
> > Reasonable. Then let's drop part about Depends:
> >
> > [ ... All packages with daemons must provide init.d scripts ...],
> > unless software is only usable, by upstream's design, when
> > pid1 is provided by some other init system.
>
> I think this would work.  What do you think, David?
>
> Dmitry, perhaps you could work up a patch against policy.git.

From 629b6fd334806e5389e3cfee44997d95ac96501c Mon Sep 17 00:00:00 2001
From: Dmitry Bogatov 
Date: Sun, 29 Sep 2019 18:53:36 +
Subject: [PATCH] Policy: Allow missing init.d script for services, specific to 
other init

Wording: Dmitry Bogatov 

Closes: #932704
---
 policy/ch-opersys.rst | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/policy/ch-opersys.rst b/policy/ch-opersys.rst
index 3e685cf..309d6fe 100644
--- a/policy/ch-opersys.rst
+++ b/policy/ch-opersys.rst
@@ -1006,7 +1006,9 @@ supported by all init implementations. An exception to 
this rule is
 scripts or jobs provided by the init implementation itself; such jobs
 may be required for an implementation-specific equivalent of the
 ``/etc/rcS.d/`` scripts and may not have a one-to-one correspondence
-with the init scripts.
+with the init scripts. Another exception is when software is only
+usable, by upstream's design, when pid1 is provided by some other init
+system.
 
 .. _s-upstart:
 
-- 
Note, that I send and fetch email in batch, once in a few days.
Please, mention in body of your reply when you add or remove recepients.



Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-09-29 Thread Dmitry Bogatov


[2019-09-28 08:11] Sean Whitton 
> Hello,
>
> On Wed 25 Sep 2019 at 03:43PM +00, Dmitry Bogatov wrote:
>
> >> Candidate language attached. It adds "Also excepted are packages which 
> >> require a
> >> feature of an alternate init system which is not available in SysV-Style
> >> init systems.". Thoughts?
> >
> > Imho, it opens loophole.
> > [...]
>
> Okay, so what we want to express here is the idea that there is an
> exception for a package which uses a feature of systemd, where something
> equivalent cannot be achieved by using a sysvinit script?  Such as
> something to access the systemd dbus interface.
>
> I'm not sure how to express that right now, but I think it can be done.

I believe I proposed wording for this down in this thread.
-- 
Note, that I send and fetch email in batch, once in a few days.
Please, mention in body of your reply when you add or remove recepients.



Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-09-29 Thread David Steele
On Sat, Sep 28, 2019 at 1:05 PM Sean Whitton  wrote:
>
> Hello,
>
> On Sat 28 Sep 2019 at 04:18PM +00, Dmitry Bogatov wrote:
>
> > Reasonable. Then let's drop part about Depends:
> >
> >   [ ... All packages with daemons must provide init.d scripts ...],
> >   unless software is only usable, by upstream's design, when
> >   pid1 is provided by some other init system.
>
> I think this would work.  What do you think, David?

I don't know. It provides more clarity the original Policy question, but raises
a technical one I don't know the answer to. For my special case, is it
practical to use systemd (via D-Bus) to manage system daemon
start/stop when it is
not pid1? If yes, things may have gotten worse (I'm responsible for getting this
all to work correctly?). In that case I would prefer a statement discouraging
systemd-specific features.



Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-09-28 Thread Sean Whitton
Hello,

On Sat 28 Sep 2019 at 04:18PM +00, Dmitry Bogatov wrote:

> Reasonable. Then let's drop part about Depends:
>
>   [ ... All packages with daemons must provide init.d scripts ...],
>   unless software is only usable, by upstream's design, when
>   pid1 is provided by some other init system.

I think this would work.  What do you think, David?

Dmitry, perhaps you could work up a patch against policy.git.

-- 
Sean Whitton


signature.asc
Description: PGP signature


Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-09-28 Thread Dmitry Bogatov


[2019-09-26 17:48] Ansgar 
> On Thu, 2019-09-26 at 15:26 +, Dmitry Bogatov wrote:
> > If this is the case, I'd propose wording like following:
> > 
> >   [ ... All packages with daemons must provide init.d scripts ...],
> >   unless software is only usable, by upstream's design, when pid1 is
> >   provided by some alternative init system. In such case, it must Depend
> >   on that alternative system (e.g binary package, that provides
> >   corresponding version of /sbin/init).
>
> Such a dependency shouldn't be added as one can run software in
> containers or so and talk to the outside systemd instance.  Note that
> iptables doesn't depend on the linux kernel package either.

Reasonable. Then let's drop part about Depends:

[ ... All packages with daemons must provide init.d scripts ...],
unless software is only usable, by upstream's design, when
pid1 is provided by some other init system.

> Also sysvinit would be an "alternative init system" given the current
> default.

As you wish. s/alternative/other/.
-- 
Note, that I send and fetch email in batch, once in a few days.
Please, mention in body of your reply when you add or remove recepients.



Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-09-28 Thread Sean Whitton
Hello,

On Wed 25 Sep 2019 at 02:33PM -04, David Steele wrote:

> On Wed, Sep 25, 2019 at 2:00 PM Ansgar  wrote:
>>
>> Well, the Policy Editors currently see no consensus; so to change it one
>> would need to convince them, involve the tech-ctte or a GR.
>>
>
> The Policy needs to either explicitly discourage the use of
> systemd-specific features, or recognize the sysv-init incompatibility of
> packages that use them,
>
> For my part, I have no interest in participating in the init wars. I just
> want clear guidance on how to avoid an AUTORM-level bug report.
> Right now the Policy is pretty much telling me to add an init script
> with calls to systemctl. I'd like a different answer.

I think we can achieve this.

-- 
Sean Whitton


signature.asc
Description: PGP signature


Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-09-28 Thread Sean Whitton
Hello,

On Wed 25 Sep 2019 at 03:43PM +00, Dmitry Bogatov wrote:

>> Candidate language attached. It adds "Also excepted are packages which 
>> require a
>> feature of an alternate init system which is not available in SysV-Style
>> init systems.". Thoughts?
>
> Imho, it opens loophole. Sysvinit does not provide equivalent of
> sd_notify("SD_READY=1"), so any service that links to libsystemd for
> that exactly call can be argued as "requiring feature [...] which is not
> available [...]".
>
> As real life example I recall Avahi-related bug (can't find number right
> now, sorry). Two inter-dependent services, where second fails to start
> unless first is already ready to listen.
>
> I'd argue this is bug in design, but if we consider design is written in
> stone, this is a bug in init.d script that must be worked around
> somehow.
>
> With your change in place, avahi maintainers would be able to drop
> sysvinit support instead of fixing init.d script.
>
> Very strong -1.

Okay, so what we want to express here is the idea that there is an
exception for a package which uses a feature of systemd, where something
equivalent cannot be achieved by using a sysvinit script?  Such as
something to access the systemd dbus interface.

I'm not sure how to express that right now, but I think it can be done.

-- 
Sean Whitton


signature.asc
Description: PGP signature


Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-09-26 Thread Ansgar
Dmitry Bogatov writes:
> This lintian check have number of false-positives, like `foo@.service`
> files triggering complains about missing `/etc/init.d/foo@` scripts,

That's not a false positive according to current policy.  See also
#911165.

> and sometimes names plainly do not match (e.g bin:ifupdown).

Neither is this.

As I said before, the current requirements in policy aren't that
helpful.

Ansgar



Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-09-26 Thread Ansgar
On Thu, 2019-09-26 at 15:26 +, Dmitry Bogatov wrote:
> If this is the case, I'd propose wording like following:
> 
>   [ ... All packages with daemons must provide init.d scripts ...],
>   unless software is only usable, by upstream's design, when pid1 is
>   provided by some alternative init system. In such case, it must Depend
>   on that alternative system (e.g binary package, that provides
>   corresponding version of /sbin/init).

Such a dependency shouldn't be added as one can run software in
containers or so and talk to the outside systemd instance.  Note that
iptables doesn't depend on the linux kernel package either.

Also sysvinit would be an "alternative init system" given the current
default.

Ansgar



Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-09-26 Thread Dmitry Bogatov


[2019-09-25 18:18] Ansgar 
> Practically the project seems to have already
> decided that this is fine, even for packages that don't require
> systemd:
>
> +---
> | There are 1033 non-overridden instances of lintian detecting a
> | service unit without an init.d script [7].
> +---[ https://lists.debian.org/debian-devel-announce/2019/09/msg1.html ]

I believe it partially my fault in this mis-representation.

Yes, problem exists (and it is severe), but not as severe like 1033 out
of 1300 daemons missing init.d scripts.

This lintian check have number of false-positives, like `foo@.service`
files triggering complains about missing `/etc/init.d/foo@` scripts, and
sometimes names plainly do not match (e.g bin:ifupdown).
-- 
Note, that I send and fetch email in batch, once in a few days.
Please, mention in body of your reply when you add or remove recepients.



Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-09-26 Thread Dmitry Bogatov


[2019-09-25 11:50] David Steele 
> On Wed, Sep 25, 2019 at 11:43 AM Dmitry Bogatov  wrote:
> >
> >
> > [2019-09-22 16:13] David Steele 
> > > Candidate language attached. It adds "Also excepted are packages which 
> > > require a
> > > feature of an alternate init system which is not available in SysV-Style
> > > init systems.". Thoughts?
> >
> > Imho, it opens loophole.
> > [...]>

> I'm just looking to avoid the scenario where I add systemctl calls to
> an init script, for a package that uses the systemd D-Bus interface.
> Alternate language is solicited.

systemctl calls in init.d scripts? I do not understand.

What software we are talking about? What does it mean "uses systemd D-Bus
interface"? Does it mean that it can't do what it is supposed to do when
pid1 != systemd?

If this is the case, I'd propose wording like following:

  [ ... All packages with daemons must provide init.d scripts ...],
  unless software is only usable, by upstream's design, when pid1 is
  provided by some alternative init system. In such case, it must Depend
  on that alternative system (e.g binary package, that provides
  corresponding version of /sbin/init).
-- 
Note, that I send and fetch email in batch, once in a few days.
Please, mention in body of your reply when you add or remove recepients.



Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-09-25 Thread David Steele
On Wed, Sep 25, 2019 at 2:00 PM Ansgar  wrote:
>
> Well, the Policy Editors currently see no consensus; so to change it one
> would need to convince them, involve the tech-ctte or a GR.
>

The Policy needs to either explicitly discourage the use of
systemd-specific features, or recognize the sysv-init incompatibility of
packages that use them,

For my part, I have no interest in participating in the init wars. I just
want clear guidance on how to avoid an AUTORM-level bug report.
Right now the Policy is pretty much telling me to add an init script
with calls to systemctl. I'd like a different answer.



Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-09-25 Thread David Steele
On Wed, Sep 25, 2019 at 12:18 PM Ansgar  wrote:
>
> Hi,
>
> On Sun, 2019-09-22 at 16:13 -0400, David Steele wrote:
> > On Tue, Jul 23, 2019 at 2:10 PM Sean Whitton  
> > wrote:
> > > The Policy Editors have decided that dropping the requirement to ship
> > > init scripts is not something that can be decided by means of the Policy
> > > Changes Process, at least for the time being.
> > >
> > > In proposing and reviewing wording to resolve this bug, then, we should
> > > be careful not to weaken the requirement to ship init scripts.
> > > Otherwise, in resolving this bug we would be changing the requirements
> > > to ship init scripts by means of the Policy Changes Process.
> > >
> > > I'm suggesting this be kept in mind.  It need not result in a wordier
> > > change, and I certainly agree with you that we should assume good faith
> > > on the part of package maintainers.
> > >
> >
> > Candidate language attached. It adds "Also excepted are packages which 
> > require a
> > feature of an alternate init system which is not available in SysV-Style
> > init systems.". Thoughts?
>
> I don't think there is a way to get such changes through the policy
> process as Sean said (I tried to document what I see as current
> practice in #911165).  Practically the project seems to have already
> decided that this is fine, even for packages that don't require
> systemd:
>
> +---
> | There are 1033 non-overridden instances of lintian detecting a
> | service unit without an init.d script [7].
> +---[ https://lists.debian.org/debian-devel-announce/2019/09/msg1.html ]
>
> Ansgar
>

Regardless of the practicality, I'd like clarity on the policy.

After reading #911165, I'd say I prefer it to this proposal. But something
needs to be done about the current alternate init system support
language.



Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-09-25 Thread Ansgar
David Steele writes:
> On Wed, Sep 25, 2019 at 12:18 PM Ansgar  wrote:
>> I don't think there is a way to get such changes through the policy
>> process as Sean said (I tried to document what I see as current
>> practice in #911165).  Practically the project seems to have already
>> decided that this is fine, even for packages that don't require
>> systemd:
>>
>> +---
>> | There are 1033 non-overridden instances of lintian detecting a
>> | service unit without an init.d script [7].
>> +---[ https://lists.debian.org/debian-devel-announce/2019/09/msg1.html ]
>
> Regardless of the practicality, I'd like clarity on the policy.
>
> After reading #911165, I'd say I prefer it to this proposal. But something
> needs to be done about the current alternate init system support
> language.

Well, the Policy Editors currently see no consensus; so to change it one
would need to convince them, involve the tech-ctte or a GR.

I have no intention to escalate this, but out of curiosity asked some
people.  From my understanding the ctte would prefer not having to deal
with this (which I can understand given the default init discussion); I
think this might also be true for Policy Editors.  GRs are unpopular
too.

Ansgar



Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-09-25 Thread Ansgar
Hi,

On Sun, 2019-09-22 at 16:13 -0400, David Steele wrote:
> On Tue, Jul 23, 2019 at 2:10 PM Sean Whitton  wrote:
> > The Policy Editors have decided that dropping the requirement to ship
> > init scripts is not something that can be decided by means of the Policy
> > Changes Process, at least for the time being.
> > 
> > In proposing and reviewing wording to resolve this bug, then, we should
> > be careful not to weaken the requirement to ship init scripts.
> > Otherwise, in resolving this bug we would be changing the requirements
> > to ship init scripts by means of the Policy Changes Process.
> > 
> > I'm suggesting this be kept in mind.  It need not result in a wordier
> > change, and I certainly agree with you that we should assume good faith
> > on the part of package maintainers.
> > 
> 
> Candidate language attached. It adds "Also excepted are packages which 
> require a
> feature of an alternate init system which is not available in SysV-Style
> init systems.". Thoughts?

I don't think there is a way to get such changes through the policy
process as Sean said (I tried to document what I see as current
practice in #911165).  Practically the project seems to have already
decided that this is fine, even for packages that don't require
systemd:

+---
| There are 1033 non-overridden instances of lintian detecting a
| service unit without an init.d script [7].
+---[ https://lists.debian.org/debian-devel-announce/2019/09/msg1.html ]

Ansgar



Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-09-25 Thread David Steele
On Wed, Sep 25, 2019 at 11:43 AM Dmitry Bogatov  wrote:
>
>
> [2019-09-22 16:13] David Steele 
> > Candidate language attached. It adds "Also excepted are packages which 
> > require a
> > feature of an alternate init system which is not available in SysV-Style
> > init systems.". Thoughts?
>
> Imho, it opens loophole. Sysvinit does not provide equivalent of
> sd_notify("SD_READY=1"), so any service that links to libsystemd for
> that exactly call can be argued as "requiring feature [...] which is not
> available [...]".
>
> As real life example I recall Avahi-related bug (can't find number right
> now, sorry). Two inter-dependent services, where second fails to start
> unless first is already ready to listen.
>
> I'd argue this is bug in design, but if we consider design is written in
> stone, this is a bug in init.d script that must be worked around
> somehow.
>
> With your change in place, avahi maintainers would be able to drop
> sysvinit support instead of fixing init.d script.
>
> Very strong -1.

I'm just looking to avoid the scenario where I add systemctl calls to
an init script, for a package that uses the systemd D-Bus interface.
Alternate language is solicited.



Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-09-25 Thread Dmitry Bogatov


[2019-09-22 16:13] David Steele 
> On Tue, Jul 23, 2019 at 2:10 PM Sean Whitton  wrote:
> >
> > The Policy Editors have decided that dropping the requirement to ship
> > init scripts is not something that can be decided by means of the Policy
> > Changes Process, at least for the time being.
> >
> > In proposing and reviewing wording to resolve this bug, then, we should
> > be careful not to weaken the requirement to ship init scripts.
> > Otherwise, in resolving this bug we would be changing the requirements
> > to ship init scripts by means of the Policy Changes Process.
> >
> > I'm suggesting this be kept in mind.  It need not result in a wordier
> > change, and I certainly agree with you that we should assume good faith
> > on the part of package maintainers.
> >
>
> Candidate language attached. It adds "Also excepted are packages which 
> require a
> feature of an alternate init system which is not available in SysV-Style
> init systems.". Thoughts?

Imho, it opens loophole. Sysvinit does not provide equivalent of
sd_notify("SD_READY=1"), so any service that links to libsystemd for
that exactly call can be argued as "requiring feature [...] which is not
available [...]".

As real life example I recall Avahi-related bug (can't find number right
now, sorry). Two inter-dependent services, where second fails to start
unless first is already ready to listen.

I'd argue this is bug in design, but if we consider design is written in
stone, this is a bug in init.d script that must be worked around
somehow.

With your change in place, avahi maintainers would be able to drop
sysvinit support instead of fixing init.d script.

Very strong -1.
-- 
Note, that I send and fetch email in batch, once in a few days.
Please, mention in body of your reply when you add or remove recepients.



Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-09-22 Thread David Steele
On Tue, Jul 23, 2019 at 2:10 PM Sean Whitton  wrote:
>
> The Policy Editors have decided that dropping the requirement to ship
> init scripts is not something that can be decided by means of the Policy
> Changes Process, at least for the time being.
>
> In proposing and reviewing wording to resolve this bug, then, we should
> be careful not to weaken the requirement to ship init scripts.
> Otherwise, in resolving this bug we would be changing the requirements
> to ship init scripts by means of the Policy Changes Process.
>
> I'm suggesting this be kept in mind.  It need not result in a wordier
> change, and I certainly agree with you that we should assume good faith
> on the part of package maintainers.
>

Candidate language attached. It adds "Also excepted are packages which require a
feature of an alternate init system which is not available in SysV-Style
init systems.". Thoughts?

-- 
AE0D BF5A 92A5 ADE4 9481  BA6F 8A31 71EF 3661 50CE
From 5b99099d370b6304cadaedc99d5f8d8cd3063c71 Mon Sep 17 00:00:00 2001
From: David Steele 
Date: Sun, 22 Sep 2019 15:53:12 -0400
Subject: [PATCH] Clarify exception to sysv init script requirement

---
 policy/ch-opersys.rst | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/policy/ch-opersys.rst b/policy/ch-opersys.rst
index 3e685cf..41f06fa 100644
--- a/policy/ch-opersys.rst
+++ b/policy/ch-opersys.rst
@@ -1006,7 +1006,9 @@ supported by all init implementations. An exception to this rule is
 scripts or jobs provided by the init implementation itself; such jobs
 may be required for an implementation-specific equivalent of the
 ``/etc/rcS.d/`` scripts and may not have a one-to-one correspondence
-with the init scripts.
+with the init scripts. Also excepted are packages which require a
+feature of an alternate init system which is not available in SysV-Style
+init systems.
 
 .. _s-upstart:
 
-- 
2.23.0



Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-07-23 Thread Sean Whitton
Hello David,

On Tue 23 Jul 2019 at 12:49PM -04, David Steele wrote:

> On Tue, Jul 23, 2019 at 11:15 AM Sean Whitton  
> wrote:
>>
>> I think that the wording for this change should reflect the above
>> (unless I've misunderstood David), such that the new wording cannot be
>> misinterpreted to mean that the sysvinit requirement does not apply to
>> any package using any systemd component.
>
> That would resolve my issue, though I am not sold on the value of the
> additional specificity. I'll say no more than this - If I am operating in good
> faith, the additional language is not necessary. If I am not, it won't stop
> me.

Let me expand a bit.

The Policy Editors have decided that dropping the requirement to ship
init scripts is not something that can be decided by means of the Policy
Changes Process, at least for the time being.

In proposing and reviewing wording to resolve this bug, then, we should
be careful not to weaken the requirement to ship init scripts.
Otherwise, in resolving this bug we would be changing the requirements
to ship init scripts by means of the Policy Changes Process.

I'm suggesting this be kept in mind.  It need not result in a wordier
change, and I certainly agree with you that we should assume good faith
on the part of package maintainers.

Sorry for not writing this earlier in the thread and thank you again for
filing this bug.

-- 
Sean Whitton


signature.asc
Description: PGP signature


Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-07-23 Thread David Steele
On Tue, Jul 23, 2019 at 11:15 AM Sean Whitton  wrote:
>
> I think that the wording for this change should reflect the above
> (unless I've misunderstood David), such that the new wording cannot be
> misinterpreted to mean that the sysvinit requirement does not apply to
> any package using any systemd component.

That would resolve my issue, though I am not sold on the value of the
additional specificity. I'll say no more than this - If I am operating in good
faith, the additional language is not necessary. If I am not, it won't stop
me.

Dave



Bug#932704: Fwd: Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-07-23 Thread Sean Whitton
Hello,

On Mon 22 Jul 2019 at 10:15am -04, David Steele wrote:

> The use of the systemd API blocks the work of those who don't like
> systemd. Is that something that should that be addressed by Policy? I
> don't think so.
>
> Under the scenario where the systemd api is used by a package, the
> current Policy leads down a logical path resulting in vestigial init
> scripts with calls to systemctl. Is that a preferred result, relative
> to the proposed exception?
>
> I don't see how that ultimately meets anyone's goals for alternate init 
> support.

Agreed, that's definitely not the preferred result.

-- 
Sean Whitton



Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-07-23 Thread Sean Whitton
Hello,

On Mon 22 Jul 2019 at 01:39pm +02, Ansgar wrote:

> On Mon, 2019-07-22 at 12:01 +0100, Sean Whitton wrote:
>
> What sort of dependencies are we talking about? Package-level
> dependencies (e.g. Depends: systemd-sysv directly or indirectly)?
>
>> People who don't like systemd have been working to provide replacements
>> for these hard dependencies.  E.g. there is elogind so that packages
>> which depend on logind can work on a sysvinit system.
>>
>> We would want to be careful to word this requirement such that it did
>> not license maintainers to do things which block the work of those who
>> don't like systemd.
>
> How would this "block the work of those who don't like systemd"?
>
> We do not have a requirement to ship systemd .service units, but that
> doesn't seem to have blocked anyone from submitting patches adding
> those.  It seems reasonable it would work the same for other init
> systems.

If a package depends on some systemd component which has been
reimplemented not to depend on systemd (e.g. logind and elogind), it is
my understanding of David's intent that this newly proposed exception
would not apply.  If the alternative implementation exists then the
package does not depend on an alternative init system, and so the policy
requirement to provide a sysvinit script remains in place.

I think that the wording for this change should reflect the above
(unless I've misunderstood David), such that the new wording cannot be
misinterpreted to mean that the sysvinit requirement does not apply to
any package using any systemd component.

-- 
Sean Whitton



Bug#932704: Fwd: Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-07-22 Thread David Steele
Re-sending to the bug thread.

-- Forwarded message -
From: David Steele 
Date: Mon, Jul 22, 2019 at 9:15 AM
Subject: Re: Bug#932704: debian-policy: Don't force sysvinit
compatibility if e.g. alternate init required
To: Sean Whitton 


On Mon, Jul 22, 2019 at 7:02 AM Sean Whitton  wrote:
>
> We would want to be careful to word this requirement such that it did
> not license maintainers to do things which block the work of those who
> don't like systemd.
>
> --
> Sean Whitton

The use of the systemd API blocks the work of those who don't like
systemd. Is that something that should that be addressed by Policy? I
don't think so.

Under the scenario where the systemd api is used by a package, the
current Policy leads down a logical path resulting in vestigial init
scripts with calls to systemctl. Is that a preferred result, relative
to the proposed exception?

I don't see how that ultimately meets anyone's goals for alternate init support.

--
AE0D BF5A 92A5 ADE4 9481  BA6F 8A31 71EF 3661 50CE



Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-07-22 Thread Simon McVittie
On Mon, 22 Jul 2019 at 13:39:31 +0200, Ansgar wrote:
> What sort of dependencies are we talking about? Package-level
> dependencies (e.g. Depends: systemd-sysv directly or indirectly)?

Probably yes. systemd-cron and dbus-user-session are examples of packages
that rely on the systemd service manager being pid 1.

Strictly speaking Depends: systemd-sysv is neither necessary nor
sufficient to make the systemd manager pid 1 (a system without
systemd-sysv could boot with init=/lib/systemd/systemd, or a system
with systemd-sysv could boot with init=/some-other-init), so I used
Depends: systemd, Recommends: systemd-sysv in dbus-user-session; but
perhaps I should switch that to Depends: systemd-sysv, because it would
make the intention clearer.

smcv



Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-07-22 Thread Ansgar
On Mon, 2019-07-22 at 12:01 +0100, Sean Whitton wrote:
> > "Also, SysV-style init scripts may be omitted for packages which have
> > an explicit dependency on an alternate init system."

What sort of dependencies are we talking about? Package-level
dependencies (e.g. Depends: systemd-sysv directly or indirectly)?

> People who don't like systemd have been working to provide replacements
> for these hard dependencies.  E.g. there is elogind so that packages
> which depend on logind can work on a sysvinit system.
> 
> We would want to be careful to word this requirement such that it did
> not license maintainers to do things which block the work of those who
> don't like systemd.

How would this "block the work of those who don't like systemd"?

We do not have a requirement to ship systemd .service units, but that
doesn't seem to have blocked anyone from submitting patches adding
those.  It seems reasonable it would work the same for other init
systems.

Ansgar



Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-07-22 Thread Sean Whitton
Hello,

On Sun 21 Jul 2019 at 08:46PM -04, David Steele wrote:

> In section 9.11 (The Operating System/Alternate init systems), it is
> stated that "...any package integrating with other init systems must
> also be backwards-compatible with sysvinit by providing a SysV-style
> init script...". There is a single exception for the alternate init
> system implementation itself.
>
> There are other exception conditions that we may want to consider
> here. For instance, if a package has an explicit dependency on a
> particular "alternate" init system, to, say, access the systemd D-Bus
> interface, there is likely little value in providing sysv init
> scripts.
>
> I suggest that something like the following line be added to the end
> of the second paragraph in that section:
>
> "Also, SysV-style init scripts may be omitted for packages which have
> an explicit dependency on an alternate init system."

People who don't like systemd have been working to provide replacements
for these hard dependencies.  E.g. there is elogind so that packages
which depend on logind can work on a sysvinit system.

We would want to be careful to word this requirement such that it did
not license maintainers to do things which block the work of those who
don't like systemd.

-- 
Sean Whitton


signature.asc
Description: PGP signature


Bug#932704: debian-policy: Don't force sysvinit compatibility if e.g. alternate init required

2019-07-21 Thread David Steele
Source: debian-policy
Version: 4.4.0.1
Severity: normal

In section 9.11 (The Operating System/Alternate init systems), it is
stated that "...any package integrating with other init systems must
also be backwards-compatible with sysvinit by providing a SysV-style
init script...". There is a single exception for the alternate init
system implementation itself.

There are other exception conditions that we may want to consider
here. For instance, if a package has an explicit dependency on a
particular "alternate" init system, to, say, access the systemd D-Bus
interface, there is likely little value in providing sysv init
scripts.

I suggest that something like the following line be added to the end
of the second paragraph in that section:

"Also, SysV-style init scripts may be omitted for packages which have
an explicit dependency on an alternate init system."

-- 
AE0D BF5A 92A5 ADE4 9481  BA6F 8A31 71EF 3661 50CE