Debian jessie failing update with insserv rejected the script header

Few days ago my Debian jessie package update(e.g. apt-get upgrade) start failing with following message:

After this operation, 0 B of additional disk space will be used.
Setting up udev (215-10) ...
update-initramfs: deferring update (trigger activated)
insserv: warning: script 'K07smfpd' missing LSB tags and overrides
insserv: warning: script 'smfpd' missing LSB tags and overrides
insserv: There is a loop at service rc.local if started
insserv: There is a loop between service rc.local and mountnfs if started
insserv:  loop involving service mountnfs at depth 5
insserv:  loop involving service nfs-common at depth 4
insserv:  loop involving service mountnfs-bootclean at depth 11
insserv: There is a loop between service rc.local and mountall if started
insserv:  loop involving service mountall at depth 6
insserv:  loop involving service checkroot-bootclean at depth 5
insserv: There is a loop between service rc.local and urandom if started
insserv:  loop involving service urandom at depth 7
insserv: There is a loop between service rc.local and mountdevsubfs if started
insserv:  loop involving service mountdevsubfs at depth 2
insserv:  loop involving service udev at depth 1
insserv: Starting smfpd depends on rc.local and therefore on system facility `$all' which can not be true!
...
insserv: Starting smfpd depends on rc.local and therefore on system facility `$all' which can not be true!
insserv: Max recursions depth 99 reached
insserv:  loop involving service exim4 at depth 1
insserv: There is a loop between service smfpd and mountall-bootclean if started
insserv:  loop involving service mountall-bootclean at depth 1
insserv: Starting smfpd depends on rc.local and therefore on system facility `$all' which can not be true!
...
insserv: Starting smfpd depends on rc.local and therefore on system facility `$all' which can not be true!
insserv: There is a loop between service rc.local and networking if started
insserv:  loop involving service networking at depth 9
insserv:  loop involving service hwclock at depth 4
insserv: There is a loop at service smfpd if started
insserv: Starting smfpd depends on rc.local and therefore on system facility `$all' which can not be true!
...
insserv: Starting smfpd depends on rc.local and therefore on system facility `$all' which can not be true!
insserv:  loop involving service rpcbind at depth 11
insserv: exiting now without changing boot order!
update-rc.d: error: insserv rejected the script header
dpkg: error processing package udev (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 udev
E: Sub-process /usr/bin/dpkg returned an error code (1)

I was able to fix the problem by using solution described at https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=589238 and https://wiki.debian.org/LSBInitScripts

Long story short:

When I tried

/usr/share/insserv/make-testsuite

I saw that dependency information is missing in smfpd init script. The solution was to add following:

### BEGIN INIT INFO
# Provides:          smfpd
# Required-Start:    $syslog
# Required-Stop:     $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Xerox Unified Linux Driver LPT Support daemon
# Description:       Enable support for LPT port service provided by Xerox Unified Linux Driver package.
### END INIT INFO

to /etc/init.d/smfpd

after #!/bin/sh

and that was it. keep in mind that you might have to run also : sudo apt-get install -f, if update still fails.

comments powered by Disqus