Migrating the insserv enabling stuff from insserv to sysv-rc
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
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.
More information about the initscripts-ng-devel