[Pkg-libvirt-maintainers] Bug#757330: Bug#757330: Bug#757330:	libvirt-daemon-system: fails to install: update-rc.d: error:	insserv rejected the script header
    Guido Günther 
    agx at sigxcpu.org
       
    Thu Aug  7 17:06:31 UTC 2014
    
    
  
Hi,
Thanks for reporting back. 
On Thu, Aug 07, 2014 at 02:50:57PM +0200, Thorsten Glaser wrote:
> DEBUG: dpkg-maintscript-helper: Executing /usr/bin/dpkg-maintscript-helper mv_conffile in preinst of libvirt-bin
> DEBUG: dpkg-maintscript-helper: CONFFILE=/etc/default/libvirt-bin -> /etc/default/libvirtd PACKAGE=libvirt-bin:i386 LASTVERSION=1.2.6-1~ ACTION=upgrade PARAM=1.2.4-3.2
> DEBUG: dpkg-maintscript-helper: Executing /usr/bin/dpkg-maintscript-helper mv_conffile in preinst of libvirt-bin
> DEBUG: dpkg-maintscript-helper: CONFFILE=/etc/init.d/libvirt-bin -> /etc/init.d/libvirtd PACKAGE=libvirt-bin:i386 LASTVERSION=1.2.6-1~ ACTION=upgrade PARAM=1.2.4-3.2
Everything looks as expected but here's the issue:
>From dpkg-maintscript-helper:
 Renaming a conffile
      [..snip..]
       Current implementation: the preinst checks if the conffile has been modified, if yes it's left on place otherwise it's renamed to  old-
       conffile.dpkg-remove.  On configuration, the postinst removes old-conffile.dpkg-remove and renames old-conffile to new-conffile if old-
       conffile is still available. On abort-upgrade/abort-install, the  postrm  renames  old-conffile.dpkg-remove  back  to  old-conffile  if
       required.
So since you modified /etc/init.d/libvirt-bin it's left in place and
when insserv runs in the postinst there is /etc/init.d/libvirt-bin and
/etc/init.d/libvirtd both providing libvirt-bin which breaks insserv.
The situation would be improved if we'd moved the conf file rename
_prior_ to the insserv (added by dh_installinit). Is this possible
with debhelper without open coding it?
But this still isn't enough. If you didn't modify
/etc/default/libvirt-bin then this file would be renamed to
/etc/default/libvirtd and the nonexistent /e/d/libvirt-bin would
result in start_libvirtd != yes and the daemon wouldn't be started
again.
So we additinally need to add a symlink from /etc/default/libvirt-bin
to /etc/default/libvirtd (since this is what your then renamed script
would source).
The simplest solution would be to just remove libvirt-bin from the
Provides in the init script headers. Nothing else in Debian seems to
require it. Only nova-compute has it in the Should-Start and that
could easily be fixed (and a Breaks: added to libvirt-daemon-system).
I'm cc'eing Raphael since he might have encountered this before.
Cheers
 -- Guido
    
    
More information about the Pkg-libvirt-maintainers
mailing list