Migrating the insserv enabling stuff from insserv to sysv-rc
Sven Joachim
svenjoac at gmx.de
Wed Jul 29 20:42:33 UTC 2009
On 2009-07-29 11:45 +0200, Petter Reinholdtsen wrote:
> 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.
Ugh. That sounds like either sysv-rc or insserv will have to be
temporarily removed during the upgrade due to their mutual conflicts,
which is not a comforting thought in the light of #475478 and #538959.
Maybe you can just use a Replaces without a Conflicts in sysv-rc and
depend on insserv (>= 1.12.0-11) ?
> - 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?
You should definitely ensure that insserv can be uninstalled, for those
who use file-rc.
Sven
More information about the initscripts-ng-devel
mailing list