[Pkg-sysvinit-devel] Bug#545205: sysv-rc: upgrade fails if unable to convert to dependency-based boot

Petter Reinholdtsen pere at hungry.com
Sat Sep 5 19:57:20 UTC 2009


[Mario 'BitKoenig' Holbe]
> Nope, `db_stop || true' doesn't help.
> As you can see in the previous log, there is still action after
> db_stop.

I am able to reproduce this now, by starting in squeeze, adding a
dummy init.d script with no header using 'update-rc.d dummy defaults'
and then upgrade to unstable using 'DEBCONF_DEBUG=developer aptitude
upgrade'.  Then I get this:

Setting up sysv-rc (2.87dsf-3) ...
debconf (developer): frontend started
debconf (developer): frontend running, package name is sysv-rc
debconf (developer): starting /var/lib/dpkg/info/sysv-rc.postinst configure 2.86.ds1-65
debconf (developer): <-- VERSION 2.0
debconf (developer): --> 0 2.0
info: Checking if it is safe to convert to dependency based boot.
debconf (developer): <-- FSET sysv-rc/unable-to-convert seen false
debconf (developer): --> 0 false
debconf (developer): <-- SUBST sysv-rc/unable-to-convert PROBLEMATIC insserv: warning: script 'K20test' missing LSB tags and overrides,
debconf (developer): --> 0
debconf (developer): <-- insserv: warning: script 'test' missing LSB tags and overrides,
debconf (developer): <-- INPUT critical sysv-rc/unable-to-convert
debconf (developer): --> 0 question will be asked
debconf (developer): <-- GO
debconf (developer): --> 0 ok
debconf (developer): <-- STOP
dpkg: error processing sysv-rc (--configure):
 subprocess installed post-installation script returned error exit status 128

I suspect the line betwee 0 and INPUT is the problem.  On closer look,
I believe the problem is several lines of output from insserv.

I believe this patch solve the issue:

Index: debian/sysv-rc.postinst
===================================================================
--- debian/sysv-rc.postinst     (revision 1724)
+++ debian/sysv-rc.postinst     (working copy)
@@ -88,7 +88,7 @@
     insserv -nv > $logfile 2>&1 || true
     errstr='There is a loop between|loop involving service|already provided!|provides system facility|missing LSB tags'
     if egrep -q "$errstr" $logfile ; then
-       msg=$(egrep "$errstr" $logfile | sed 's/$/, /')
+       msg=$(egrep "$errstr" $logfile | sed 's/$/, /' | tr "\n" " ")
        retval=0
        add_problematic "$msg"
     fi

Will upload a new package with this fix in place.

Happy hacking,
-- 
Petter Reinholdtsen





More information about the Pkg-sysvinit-devel mailing list