Package: dhcdbd Version: 3.0-1 Severity: normal Tags: patch User: [EMAIL PROTECTED] Usertags: origin-ubuntu ubuntu-patch hardy
In Ubuntu, we've applied the attached patch to achieve the following: * debian/rules: Install dhclient-exit-hook.d script as 'zzzz_dhcdbd' instead of 'dhcdbd', so that it is ran as last script. Otherwise it gets called before 'zzz_avahi-autoipd' and thus network-manager doesn't pick up the fact that avahi-autoipd is running on the interface. * debian/dhcdbd.{preinst,postinst,postrm}: Do the renaming on upgrades, take care to avoid the dpkg conffile question if the script was not modified, and gracefully handle aborted upgrades. This ensures that dhcdbd does not miss changes from hooks which were called after dhcdbd's. Martin -- Martin Pitt http://www.piware.de Ubuntu Developer http://www.ubuntu.com Debian Developer http://www.debian.org
diff -u dhcdbd-3.0/debian/dhcdbd.postrm dhcdbd-3.0/debian/dhcdbd.postrm --- dhcdbd-3.0/debian/dhcdbd.postrm +++ dhcdbd-3.0/debian/dhcdbd.postrm @@ -69,8 +69,16 @@ abort-install|abort-upgrade) # Abort upgrade from previous versions if dpkg --compare-versions "$2" lt "2.0-4"; then undo_rm_conffile /etc/dbus-1/event.d/24dhcdbd fi + # do the dhcdbd -> zzzz_dhcdbd rename on upgrades + if dpkg --compare-versions "$2" le-nl "3.0-2"; then + F=/etc/dhcp3/dhclient-exit-hooks.d/dhcdbd + if [ -e $F.moved-by-preinst ]; then + mv -f $F.moved-by-preinst $F + fi + fi + ;; *) diff -u dhcdbd-3.0/debian/dhcdbd.preinst dhcdbd-3.0/debian/dhcdbd.preinst --- dhcdbd-3.0/debian/dhcdbd.preinst +++ dhcdbd-3.0/debian/dhcdbd.preinst @@ -33,6 +33,22 @@ fi } +# do the dhcdbd -> zzzz_dhcdbd rename on upgrades +if [ "$1" = install ] || [ "$1" = upgrade ]; then + if dpkg --compare-versions "$2" le-nl "3.0-2"; then + OLD=/etc/dhcp3/dhclient-exit-hooks.d/dhcdbd + NEW=/etc/dhcp3/dhclient-exit-hooks.d/zzzz_dhcdbd + if [ -e "$OLD" ]; then + md5sum="`md5sum \"$OLD\" | sed -e \"s/ .*//\"`" + old_md5sum="`dpkg -s dhcdbd | sed -n -e \"/^Conffiles:/,/^[^ ]/{\\\\' $OLD'{s/.* //;p}}\"`" + if [ "$md5sum" = "$old_md5sum" ]; then + mv -f "$OLD" "$OLD.moved-by-preinst" + else + mv -f "$OLD" "$NEW" + fi + fi + fi +fi case "$1" in install) diff -u dhcdbd-3.0/debian/rules dhcdbd-3.0/debian/rules --- dhcdbd-3.0/debian/rules +++ dhcdbd-3.0/debian/rules @@ -15,3 +15,3 @@ install -m 644 $(CURDIR)/debian/dhcdbd.dhcp3 \ - $(CURDIR)/debian/dhcdbd/etc/dhcp3/dhclient-exit-hooks.d/dhcdbd + $(CURDIR)/debian/dhcdbd/etc/dhcp3/dhclient-exit-hooks.d/zzzz_dhcdbd diff -u dhcdbd-3.0/debian/dhcdbd.postinst dhcdbd-3.0/debian/dhcdbd.postinst --- dhcdbd-3.0/debian/dhcdbd.postinst +++ dhcdbd-3.0/debian/dhcdbd.postinst @@ -32,8 +32,14 @@ configure) # Upgrade from previous versions if dpkg --compare-versions "$2" lt "2.0-4"; then rm_conffile /etc/dbus-1/event.d/24dhcdbd fi + + # finish the dhcdbd -> zzzz_dhcdbd rename on upgrades + F=/etc/dhcp3/dhclient-exit-hooks.d/dhcdbd.moved-by-preinst + if dpkg --compare-versions "$2" le-nl "3.0-2" && [ -e $F ]; then + rm -f $F + fi if [ -x "/etc/init.d/dbus" ]; then invoke-rc.d dbus force-reload || true
signature.asc
Description: Digital signature