[Pkg-utopia-maintainers] Bug#499815: Bug#499815: Overwrites user runlevel configuration

Michael Biebl biebl at debian.org
Sun Dec 14 19:03:43 UTC 2008


Marc 'HE' Brockschmidt wrote:
> Package: avahi
> Version: 0.6.23-2
> Severity: serious
> 
> The new avahi versions try to move the start scripts to a later point in
> the boot process. This is done by first removing all runlevel
> configuration, then readding it. Thus, the user configuration is
> removed. This violates Debian policy, common sense and decency. A
> possible fix would be an extension of the update-rc.d interface.
> 

Hi Marc,

sorry for not responding earlier to this bug report.

So, this is what postinst currently looks like:

    # update init script symlinks for new runlevels and priorities for upgrades
    # from older versions
    if dpkg --compare-versions "$2" lt-nl 0.6.22-4; then
      echo "Reinstalling init script for new runlevels and priorities ..." >&2
      # remove old init script symlinks; dh_installinit adds the proper
      # update-rc.d snippet later on
      update-rc.d -f avahi-daemon remove >/dev/null
    fi


The priorities have to be updated from
24 2 3 4 5 . 16 0 1 6 .
to
14 2 3 4 5 . 86 0 1 6 .

A completely policy compliant postinst, which preserves all user changes would
be something like


    if dpkg --compare-versions "$2" lt-nl 0.6.22-4; then
      for l in 2 3 4 5 ; do
        old=/etc/rc$l.d/S24avahi-daemon
        new=/etc/rc$l.d/S16avahi-daemon
        if [ -e $old ] && ! [ -e $new ]; then	
          mv $old $new
        fi
      done
      for l in 0 1 6 ; do
        old=/etc/rc$l.d/K16avahi-daemon
        new=/etc/rc$l.d/K86avahi-daemon
        if [ -e $old ] && ! [ -e $new ]; then	
          mv $old $new
        fi
      done
    fi


This leaves users of insserv (and file-rc) out in the cold though.

Your major annoyance was, that avahi-daemon was reenabled after the upgrade,
although you had disabled it.

So, here is my compromise:

     if dpkg --compare-versions "$2" lt-nl 0.6.22-4; then
      [ -e /etc/rc2.d/S??avahi-daemon ] && update-rc.d -f avahi-daemon remove
     fi

This will only remove the symlinks when there is a start symlink in rc2 (the
default debian run level), so it should not reenable avahi-daemon and also work
with insserv. It doesn't update the priorities for file-rc, but at least it
doesn't (errorneously) reenable the service.

As I said, it's a compromise and doesn't preserve all user modifications, but
I'd argue the vast majority. It has the added benefit of keeping support for
insserv.

Marc, would you be ok with this change?

If so, would you also consider to unblock a version 0.6.23-3 with this change?
As you know, 0.6.23-2 has been reviewed already ;-)

Cheers,
Michael

-- 
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth?

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 260 bytes
Desc: OpenPGP digital signature
Url : http://lists.alioth.debian.org/pipermail/pkg-utopia-maintainers/attachments/20081214/ede74c35/attachment.pgp 


More information about the Pkg-utopia-maintainers mailing list