[Pkg-sysvinit-devel] Bug#826205: Bug#826205: Please move /lib/init/{vars.sh, init-d-script} to sysv-rc

Martin Pitt mpitt at debian.org
Fri Jun 3 11:01:23 UTC 2016


Hello Petter,

Petter Reinholdtsen [2016-06-03 12:22 +0200]:
> No objections from my part, as I do not have all the required details in
> my head any more, just want to clear up something that look like
> misunderstandings.

Thanks for your followup! This indeed raised an important issue.

> [Martin Pitt]
> > Some of its dependency should also  move, e. g. startpar is only
> > needed for initscripts [4]. Ideally insserv could be moved to
> > initscripts as well, but I haven't done research yet whether that
> > would still be "necessary infrastructure to keep SysV init scripts
> > working" (I have a hunch that this is the case, as something needs to
> > create /etc/rc?.d/ links for packages that only have SysV init
> > scripts, under any init system).
> 
> 'startpar' is not really needed for scripts in the initscripts package.
> 'startpar' is an implementation detail behind the code in /etc/init.d/rc
> and /etc/init.d/rcS which belong to the sysv-rc package.

Indeed, sorry for the typo there. I indeed meant sysv-rc, my replies
to https://bugs.debian.org/825937 have the right package name.

My initial reaction was to move the startpar dependency to
sysvinit-core (and make it a recommends), as /etc/init.d/rc gets along
fine without startpar and you only really need it if you actually run
SysV init. But as file-rc and openrc depend on sysvinit-core, but
replace sysv-rc, then the current status quo is to install it under
systemd (where it's useless), or to move the dep to sysvinit-core and
install it under openrc/file-rc (where it's equally useless, but at
least for a much smaller user base).

> And 'insserv' is not really needed for the initscripts scripts either.
> It is the internal implementation for the sysv-rc way of starting init.d
> scripts called by /usr/sbin/update-rc.d from the init-system-helpers
> package.

Right, hence my thought that we can't drop this from the default
install just yet.

> Do your proposal still make sense when those details are the way
> they are?

Indeed it doesn't. The init systems have mutually exclusive
dependencies:

  sysvinit-core "pure": sysv-rc, sysvinit-utils, startpar
  openrc/file-rc: sysvinit-utils, sysvinit-core
  systemd: sysv-rc

So AFAIK the main issue is that sysvinit does not have a "base files"
kind of package that is required and ships vars.sh/init-d-helpers.
Having them in sysvinit-utils and sysv-rc keeps these packages forever
at "Priority: required".

One possible step to relax that maze of dependencies would be to make
update-rc.d not depending on insserv and pre-existing /etc/rc?.d/
directories any more, but create the directories on the fly and fall
back to creating symlinks with a static priority under systemd (as
that doesn't care about the priority anyway, just whether it's enabled
or not). But we still need a place that ships vars.sh and
init-d-script, as a lot of packages use them without depending on
them.

So the part from this proposal/my current patch that remains valid is
to move vars.sh out of initscripts. We are one procps upload away from
dropping initscripts out of the default install, and initscripts is by
far the biggest package. AFAICS we could move this to sysvinit-utils
for now without breaking any of openrc/file-rc/sysvinit-core/systemd.

Thanks,

Martin

-- 
Martin Pitt                        | http://www.piware.de
Ubuntu Developer (www.ubuntu.com)  | Debian Developer  (www.debian.org)



More information about the Pkg-sysvinit-devel mailing list