Re: [debhelper-devel] [Bug 1312836] Re: [systemd] dh_installinit does not create /etc/rc*.d/S??foo if there is an /etc/init/foo.conf

2014-05-13 Thread Steve Langasek
On Tue, May 13, 2014 at 05:28:10AM -, Martin Pitt wrote:
> thanks for the explanations!

> Steve Langasek [2014-05-12 16:09 -]:
> > 2.  The masking support is done via startpar + startpar-upstart-bridge,
> > which is only available once we're insserv enabled.

> Ah, good to know. So startpar knows about upstart jobs and won't
> create static runlevel symlinks?

insserv still creates the links.  Startpar, which is the component that runs
as boot, recognizes that the init scripts should be masked by upstart jobs.

> Because /etc/init/rc.conf doesn't seem to have any particular magic for
> ignoring rc?.d/ links which have a corresponding upstart job.

Correct.


> >  1) fix all per-package deltas in Ubuntu that removed initscripts from the
> > package in favor of upstart jobs (i.e.: bring the packages in line with
> > current Debian policy wrt upstart jobs)

> That's https://www.debian.org/doc/debian-policy/ch-opersys.html#s-upstart
> , right?  I.e.  we'll also need to update the init.d scripts in these
> packages to add init_is_upstart().

Or to ensure the package is including /lib/lsb/init-functions and is used
with upstart >= 1.12.1-0ubuntu6, which includes Dimitri's change to make all
LSB init scripts DTRT automatically.

> >  2) undo the insserv/sysvinit/startpar changes that have disabled insserv in
> > Ubuntu
> >  4) drop the debhelper change

> Just to ensure that I understood this: For 1) we just put back the
> init.d scripts but *without* rc?.d/ links, i. e. we build all those
> packages with the current dh_installinit which does the "does this
> have an upstart job?" test.

Correct.

> Otherwise we'd create a dependency loop between 1) and 2) as we would then
> actually run these init.d scripts.  Then we do 2) and for 4) we rebuild
> all these packages again with the "new" dh_installinit so that these
> packages do get rc?.d symlinks.

Yes, exactly.

-- 
Steve Langasek   Give me a lever long enough and a Free OS
Debian Developer   to set it on, and I can move the world.
Ubuntu Developerhttp://www.debian.org/
slanga...@ubuntu.com vor...@debian.org

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1312836

Title:
  [systemd] dh_installinit does not create /etc/rc*.d/S??foo if there is
  an /etc/init/foo.conf

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/debhelper/+bug/1312836/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs


Re: [debhelper-devel] [Bug 1312836] Re: [systemd] dh_installinit does not create /etc/rc*.d/S??foo if there is an /etc/init/foo.conf

2014-05-12 Thread Martin Pitt
Hey Steve,

thanks for the explanations!

Steve Langasek [2014-05-12 16:09 -]:
> 2.  The masking support is done via startpar + startpar-upstart-bridge,
> which is only available once we're insserv enabled.

Ah, good to know. So startpar knows about upstart jobs and won't
create static runlevel symlinks? Because /etc/init/rc.conf doesn't
seem to have any particular magic for ignoring rc?.d/ links which have
a corresponding upstart job.

>  1) fix all per-package deltas in Ubuntu that removed initscripts from the
> package in favor of upstart jobs (i.e.: bring the packages in line with
> current Debian policy wrt upstart jobs)

That's https://www.debian.org/doc/debian-policy/ch-opersys.html#s-upstart , 
right?
I. e. we'll also need to update the init.d scripts in these packages
to add init_is_upstart().

>  2) undo the insserv/sysvinit/startpar changes that have disabled insserv in
> Ubuntu
>  4) drop the debhelper change

Just to ensure that I understood this: For 1) we just put back the
init.d scripts but *without* rc?.d/ links, i. e. we build all those
packages with the current dh_installinit which does the "does this
have an upstart job?" test. Otherwise we'd create a dependency loop
between 1) and 2) as we would then actually run these init.d scripts.
Then we do 2) and for 4) we rebuild all these packages again with the
"new" dh_installinit so that these packages do get rc?.d symlinks.

Thanks,
Martin

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1312836

Title:
  [systemd] dh_installinit does not create /etc/rc*.d/S??foo if there is
  an /etc/init/foo.conf

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/debhelper/+bug/1312836/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs


Re: [debhelper-devel] [Bug 1312836] Re: [systemd] dh_installinit does not create /etc/rc*.d/S??foo if there is an /etc/init/foo.conf

2014-05-12 Thread Steve Langasek
On Mon, May 12, 2014 at 03:40:42PM -, Martin Pitt wrote:
> Adding a debhelper task, to check if we can drop that "autoscripts
> /postinst-init*: Only call update-rc.d when there's no upstart job"
> delta.

No, we cannot.  This would cause the init script to be run on boot via
/etc/init/rc.conf, in addition to the upstart job being run, with undefined
behavior.

Before you can drop this debhelper delta, we need insserv enabled in Ubuntu,
which first requires repairing the delta of packages that have had their
init scripts dropped completely in Ubuntu (at this point, possibly mostly
just the initscripts package).

> Whether we can just do that depends on this question: If there is
> an /etc/rc?.d/S??foo and an /etc/init/foo.conf, does upstart only run
> the upstart job and the init.d script gets "masked" by that
> automatically (1)? Or would upstart run both (2)?

2.  The masking support is done via startpar + startpar-upstart-bridge,
which is only available once we're insserv enabled.

So the steps are:

 1) fix all per-package deltas in Ubuntu that removed initscripts from the
package in favor of upstart jobs (i.e.: bring the packages in line with
current Debian policy wrt upstart jobs)
 2) undo the insserv/sysvinit/startpar changes that have disabled insserv in
Ubuntu
 3) test insserv extensively in Ubuntu to make sure we're getting the
expected result
 4) drop the debhelper change

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1312836

Title:
  [systemd] dh_installinit does not create /etc/rc*.d/S??foo if there is
  an /etc/init/foo.conf

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/debhelper/+bug/1312836/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs