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
    upgrade.
  - 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
    /var/lib/insserv/using-insserv.

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