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