Migrating the insserv enabling stuff from insserv to sysv-rc

Petter Reinholdtsen pere at hungry.com
Wed Jul 29 09:45:29 UTC 2009

As insserv is just a tool to order init.d scripts according to
dependenies, while sysv-rc is the package actually responsible for
maintaining the boot script symlinks, I believe it make sense now that
dependency based boot sequencing is the default in Debian, to move the
enabling code into sysv-rc.

This of course need to be done carefully, to make sure the systems
with insserv enabled, stay enabled.

For the next insserv upload, version 1.12.0-11:

  - Conflict with sysv-rc (<= 2.87dsf-2)
  - Drop all code in postinst++ to enable insserv, including
    update-bootsystem-insserv and update-bootsystem-insserv.8.
  - Do not touch the divert of /usr/sbin/update-rc.d, and keep
    /usr/sbin/update-rc.d-insserv to avoid a dangling symlink during
  - Keep the file /var/lib/insserv/using-insserv to indicate that
    dependency based boot sequencing is enabled.

For the next sysv-rc upload, version 2.87dsf-3:

  - Move update-bootsystem-insserv and update-bootsystem-insserv.8 to
    sysv-rc from insserv.  Conflict and replace with insserv (<=
    1.12.0-10) to handle this move.
  - Rewrite update-rc.d to include the code in update-rc.d-insserv and
    use it when /var/lib/insserv/using-insserv exist.  This mean we
    can drop the divert.
  - Rewrite the postinst++ to remove the insserv divert of
    /usr/sbin/update-rc.d if it exist.
  - Rewrite postinst++ to enable insserv if it is safe to do so, and
    drop the code to migrate back.  Flag the migration using

This should make sure systems using insserv keep using insserv during
and after the upgrade, even if some other package call update-rc.d
after insserv is unpackaged and syv-rc postinst is execited.  Did I
forget anything?

Those using file-rc will need to change file-rc to make its
update-rc.d do dependency based boot sequencing, if they want to avoid
a broken system.

Happy hacking,
Petter Reinholdtsen

More information about the initscripts-ng-devel mailing list