[Pkg-sysvinit-devel] Future of update-rc.d in wheezy+1

Alexander Wirt formorer at debian.org
Sun Jul 22 11:14:56 UTC 2012


On Sun, 22 Jul 2012, Roger Leigh wrote:

> On Mon, Jul 02, 2012 at 12:16:31AM +0100, Roger Leigh wrote:
> > On Fri, Jun 29, 2012 at 10:53:03PM +0100, Roger Leigh wrote:
> > > On Fri, Jun 29, 2012 at 08:27:22PM +0100, Roger Leigh wrote:
> > > > The following patch implements this behaviour.  While the insserv
> > > > parsing logic has been tested, it's not been tested for upgrades
> > > > or whether the whole script works correctly.
> > > > 
> > > > - it needs a Depends on insserv (>= $version_with_-s)
> > > >   ==> this needs your feedback so it can be uploaded.
> > > > - the preinst could be simplified to just use
> > > >     update-rc.d "$script" -f defaults
> > > >   if this is sufficient to update the sequence numbers in the
> > > >   configuration.  This probably needs running in the postinst TBH.
> > > > - this just replaces the defaults and user-provided start and stop
> > > >   arguments with those provided by insserv.  Other than that, there
> > > >   are no changes to anything else.
> > > > - You might need to retain support for the old-style logic so that
> > > >   if other scripts call update-rc.d in the gap between unpacking and
> > > >   running the postinst, it won't fail.  Just back out the deletions
> > > >   and run those blocks only if insserv didn't run or didn't find any
> > > >   matches, which are a trivial addition to the script.
> > > > 
> > > > While this patch is just a proof a concept, this should be pretty much
> > > > all you need.  It just needs checking and testing by someone with
> > > > file-rc expertise.  If this could be done in the very near future,
> > > > then that would be great.
> > > 
> > > I've attached an updated patch.
> > 
> > Another patch attached.  This one is somewhat more comprehensive.
> > 
> > - insserv support is "optional".  If insserv is not present, it will
> >   fall back to using static sequence numbers.  This will provide
> >   backward compatibility for squeeze upgrades.  For new installations
> >   from wheezy however, it will generate runlevel.conf using insserv.
> >   For wheezy+1, you'll likely be required to migrate existing users
> >   to using insserv, but for now it's optional.
> > - the output functions have been refactored to include start and
> >   stop entries on separate lines, because this is the common case
> >   (due to the sequence numbers for start and stop making no sense to
> >   be the same, unless it's pure coincidence).
> > - long obsolete code removed from maintainer scripts.
> > 
> > I've documented most of the user-visible change in NEWS.Debian and
> > the changelog.
> > 
> > The most important change is this: runlevel.conf is no longer user-
> > editable, except for adding and removing lines.  When using insserv,
> > the sequence numbers mean nothing, because they are dynamically
> > generated from the dependency information.  When you run update-rc.d,
> > the numbers could potentially change if a script is added or removed
> > from the middle of the sequence, causing all following scripts to be
> > renumbered.  This means that only two operations are possible:
> > 1. remove a script.  This is equivalent to "update-rc.d remove"
> > 2. add a script.  This is equivalent to
> >    "update-rc.d defaults|start|stop" (which are all equivalent from
> >    the insserv POV--they all just add/update the entries for the
> >    script according to the LSB dependencies)
> > So if you want to reorder the scripts, you just edit the LSB header
> > in the init script, and then run "update-rc.d foo defaults" to
> > effect the change.  This is a change from the historical behaviour
> > of file-rc, but it's the logical consequence of having dependency-
> > based boot: you edit the dependencies, not the script numbers.
> > 
> > Hope this all looks reasonable.  I've tested all the insserv
> > codepaths, but not the non-insserv case yet.  Testing
> > file-rc -> sysv-rc migration also needs doing (the change to
> > not restore the rcS links probably needs reverting).  Anyway,
> > I hope this is useful as a basis for implementing insserv
> > support in file-rc; hopefully I've done the bulk of the work and
> > it just remains to test and tweak, or back out any changes you're
> > unhappy with.  I'd appreciate any feedback; I can make any further
> > changes you need if you let me know what you want.
> 
> Hi Alexander,
> 
> I've attached a (hopefully final) patch.  We now have updated
> insserv and sysvinit packages in unstable, so it's now safe to
> enable this.  It will work with or without insserv, so will
> work fine for upgrades and new installs.  It now transparantly
> works to install file-rc and sysv-rc and the configuration is
> migrated both ways depending on which you install.
Great. Thanks a lot for your work, it is really appreciated. Unfortunatly my
current workload leaves me with not much time left for debian, but I'll try
to upload the package til wednesday. I want to give it a few more tests
first.

Thanks again
Alex



More information about the Pkg-sysvinit-devel mailing list