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