[Pkg-phototools-devel] Bug#659768: libgphoto2-2: use dh_installdeb maintscript support
Colin Watson
cjwatson at ubuntu.com
Mon Feb 13 16:51:22 UTC 2012
Package: libgphoto2-2
Version: 2.4.11-4
Severity: normal
Tags: patch
User: ubuntu-devel at lists.ubuntu.com
Usertags: origin-ubuntu ubuntu-patch precise
Using 'dpkg-maintscript-helper supports rm_conffile' guards introduces
unreliability into upgrades; it means that the conffile is removed or
not depending on whether dpkg happens to be unpacked before
libgphoto2-2. This seems generally undesirable; it would be better to
enforce a single code path. This is academic for Debian because the
version of dpkg in squeeze supported dpkg-maintscript-helper; Ubuntu's
last LTS release didn't have a sufficient version of dpkg for that which
is why I care. However, the current implementation in Debian is in fact
buggy anyway due to the use of an undefined PACKAGE variable in the
preinst, so I'm filing this at Severity: normal.
It would be nice to just use dh_installdeb's support for generating
dpkg-maintscript-helper commands, which was introduced in debhelper
8.1.0. This would remove duplicate code from your maintainer scripts -
in fact, you could remove your handwritten preinst entirely. Here's a
patch. If you don't apply this for 2.4.11-5, then please adjust the
relevant lines in debian/libgphoto2-2.maintscript to match the last
version before the one where you apply it.
* Use maintscript support in dh_installdeb rather than writing out
dpkg-maintscript-helper commands by hand. We now simply Pre-Depend on a
new enough version of dpkg rather than using 'dpkg-maintscript-helper
supports' guards, leading to more predictable behaviour on upgrades.
* Bump a few of the dpkg-maintscript-helper versions because PACKAGE was
left undefined in the old preinst code and thus some of the old
conffiles would never have actually been removed.
diff -Nru libgphoto2-2.4.11/debian/libgphoto2-2.maintscript libgphoto2-2.4.11/debian/libgphoto2-2.maintscript
--- libgphoto2-2.4.11/debian/libgphoto2-2.maintscript 1970-01-01 01:00:00.000000000 +0100
+++ libgphoto2-2.4.11/debian/libgphoto2-2.maintscript 2012-02-13 16:43:16.000000000 +0000
@@ -0,0 +1,6 @@
+rm_conffile /etc/udev/libgphoto2.rules 2.4.11-4
+rm_conffile /etc/udev/rules.d/025_libgphoto2.rules 2.4.10.1-5
+rm_conffile /etc/hotplug/usb/libgphoto2.usermap 2.4.11-4
+rm_conffile /etc/udev/libgphoto2_generic_ptp_support.rules 2.4.10.1-5
+rm_conffile /etc/udev/rules.d/025_libgphoto2.rules 2.4.11-4
+rm_conffile /etc/udev/rules.d/020_libgphoto2_generic-ptp_support.rules 2.4.10.1-5
diff -Nru libgphoto2-2.4.11/debian/libgphoto2-2.postinst libgphoto2-2.4.11/debian/libgphoto2-2.postinst
--- libgphoto2-2.4.11/debian/libgphoto2-2.postinst 2012-01-12 08:37:57.000000000 +0000
+++ libgphoto2-2.4.11/debian/libgphoto2-2.postinst 2012-02-13 16:43:32.000000000 +0000
@@ -11,18 +11,6 @@
rm -f /usr/share/hal/fdi/information/10freedesktop/10-camera-$PACKAGE.fdi
rm -f /usr/share/hal/fdi/information/20thirdparty/$PACKAGE.fdi
rm -f /usr/share/hal/fdi/information/10freedesktop/10-camera-$PACKAGE-device.fdi
-
- # properly remove old config files
- for f in \
- /etc/udev/$PACKAGE.rules \
- /etc/udev/rules.d/025_libgphoto2.rules \
- /etc/hotplug/usb/$PACKAGE.usermap \
- /etc/udev/libgphoto2_generic_ptp_support.rules \
- /etc/udev/rules.d/025_$PACKAGE.rules \
- /etc/udev/rules.d/020_libgphoto2_generic-ptp_support.rules
- do
- dpkg-maintscript-helper rm_conffile $f 2.4.10.1-5 -- "$@"
- done
;;
abort-upgrade|abort-remove|abort-deconfigure)
diff -Nru libgphoto2-2.4.11/debian/libgphoto2-2.postrm libgphoto2-2.4.11/debian/libgphoto2-2.postrm
--- libgphoto2-2.4.11/debian/libgphoto2-2.postrm 2012-01-12 08:37:57.000000000 +0000
+++ libgphoto2-2.4.11/debian/libgphoto2-2.postrm 2012-02-13 16:43:47.000000000 +0000
@@ -11,21 +11,7 @@
rm -f /usr/share/hal/fdi/information/10freedesktop/10-camera-$PACKAGE-device.fdi || true
;;
- purge)
- # properly remove old config files
- for f in \
- /etc/udev/$PACKAGE.rules \
- /etc/udev/rules.d/025_libgphoto2.rules \
- /etc/hotplug/usb/$PACKAGE.usermap \
- /etc/udev/libgphoto2_generic_ptp_support.rules \
- /etc/udev/rules.d/025_$PACKAGE.rules \
- /etc/udev/rules.d/020_libgphoto2_generic-ptp_support.rules
- do
- dpkg-maintscript-helper rm_conffile $f 2.4.10.1-5 -- "$@"
- done
- ;;
-
- disappear|upgrade|failed-upgrade|abort-install|abort-upgrade)
+ purge|disappear|upgrade|failed-upgrade|abort-install|abort-upgrade)
;;
*)
diff -Nru libgphoto2-2.4.11/debian/libgphoto2-2.preinst libgphoto2-2.4.11/debian/libgphoto2-2.preinst
--- libgphoto2-2.4.11/debian/libgphoto2-2.preinst 2012-01-12 08:37:57.000000000 +0000
+++ libgphoto2-2.4.11/debian/libgphoto2-2.preinst 1970-01-01 01:00:00.000000000 +0100
@@ -1,32 +0,0 @@
-#!/bin/sh
-
-set -e
-
-case "$1" in
- install|upgrade)
- # properly remove old config files
- for f in \
- /etc/udev/$PACKAGE.rules \
- /etc/udev/rules.d/025_libgphoto2.rules \
- /etc/hotplug/usb/$PACKAGE.usermap \
- /etc/udev/libgphoto2_generic_ptp_support.rules \
- /etc/udev/rules.d/025_$PACKAGE.rules \
- /etc/udev/rules.d/020_libgphoto2_generic-ptp_support.rules
- do
- dpkg-maintscript-helper rm_conffile $f 2.4.10.1-5 -- "$@"
- done
- ;;
-
- abort-upgrade)
- ;;
-
- *)
- echo "preinst called with unknown argument \`$1'" >&2
- exit 1
- ;;
-
-esac
-
-#DEBHELPER#
-
-exit 0
Thanks,
--
Colin Watson [cjwatson at ubuntu.com]
More information about the Pkg-phototools-devel
mailing list