diff options
| -rw-r--r-- | debian/changelog | 12 | ||||
| -rw-r--r-- | debian/libsane1.dirs | 2 | ||||
| -rw-r--r-- | debian/libsane1.install | 3 | ||||
| -rw-r--r-- | debian/libsane1.lintian-overrides | 6 | ||||
| -rw-r--r-- | debian/libsane1.postinst | 17 | ||||
| -rw-r--r-- | debian/libsane1.postrm | 23 | ||||
| -rw-r--r-- | debian/libsane1.preinst | 22 | ||||
| -rw-r--r-- | debian/patches/0725-fix_link_60-libsane_rule.patch | 33 | ||||
| -rw-r--r-- | debian/patches/series | 1 | ||||
| -rwxr-xr-x | debian/rules | 30 | 
10 files changed, 97 insertions, 52 deletions
| diff --git a/debian/changelog b/debian/changelog index e6466d2..91af096 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,15 @@ +sane-backends (1.2.1-6) UNRELEASED; urgency=medium + +  [ Chris Hofstaedtler ] +  * libsane1: move udev files to /usr, with protective diversion +    against m-a: same file loss on upgrades (DEP17 P7 M10). Diversion can be +    removed in trixie+1. (Closes: #1056725) + +  [ Jörg Frings-Fürst ] +  *  + + -- Jörg Frings-Fürst <debian@jff.email>  Sat, 25 Nov 2023 16:21:09 +0100 +  sane-backends (1.2.1-5) unstable; urgency=medium    * debian/rules: diff --git a/debian/libsane1.dirs b/debian/libsane1.dirs index ad3a3cc..a2b7938 100644 --- a/debian/libsane1.dirs +++ b/debian/libsane1.dirs @@ -1 +1 @@ -/lib/udev/hwdb.d/ +/usr/lib/udev/hwdb.d/ diff --git a/debian/libsane1.install b/debian/libsane1.install index ba37095..bd940fe 100644 --- a/debian/libsane1.install +++ b/debian/libsane1.install @@ -1,3 +1,4 @@  usr/lib/*/*.so.*  usr/lib/*/sane/*.so.* -debian/99-libsane1.rules /lib/udev/rules.d/ +debian/60-libsane1.rules /usr/lib/udev/rules.d/ +debian/99-libsane1.rules /usr/lib/udev/rules.d/ diff --git a/debian/libsane1.lintian-overrides b/debian/libsane1.lintian-overrides new file mode 100644 index 0000000..5a4a9a0 --- /dev/null +++ b/debian/libsane1.lintian-overrides @@ -0,0 +1,6 @@ +# begin-remove-after: released:trixie +# protective diversion for upgrades of files moved from / to /usr +libsane1: diversion-for-unknown-file lib/udev/hwdb.d/20-sane.hwdb [preinst:*] +libsane1: diversion-for-unknown-file lib/udev/rules.d/60-libsane1.rules [preinst:*] +libsane1: diversion-for-unknown-file lib/udev/rules.d/99-libsane1.rules [preinst:*] +# end-remove-after diff --git a/debian/libsane1.postinst b/debian/libsane1.postinst index 971103e..7c747f6 100644 --- a/debian/libsane1.postinst +++ b/debian/libsane1.postinst @@ -1,6 +1,23 @@  #!/bin/sh  set -e +# begin-remove-after: released:trixie +# protective diversion of files moved from / to /usr, to avoid file loss. +# Only for upgrades. +if [ "$1" = "configure" ]; then +    # At this point, the package will have installed the same file in */usr*. +    dpkg-divert --package usr-is-merged --no-rename \ +        --divert /lib/udev/hwdb.d/20-sane.hwdb.usr-is-merged \ +        --remove /lib/udev/hwdb.d/20-sane.hwdb +    dpkg-divert --package usr-is-merged --no-rename \ +        --divert /lib/udev/rules.d/60-libsane1.rules.usr-is-merged \ +        --remove /lib/udev/rules.d/60-libsane1.rules +    dpkg-divert --package usr-is-merged --no-rename \ +        --divert /lib/udev/rules.d/99-libsane1.rules.usr-is-merged \ +        --remove /lib/udev/rules.d/99-libsane1.rules +fi +# end-remove-after +  case "$1" in      configure)      # Add the scanner system group if it doesn't exist diff --git a/debian/libsane1.postrm b/debian/libsane1.postrm new file mode 100644 index 0000000..6448e00 --- /dev/null +++ b/debian/libsane1.postrm @@ -0,0 +1,23 @@ +#!/bin/sh + +set -e + +# begin-remove-after: released:trixie +# protective diversion of files moved from / to /usr, to avoid file loss. +# Only for upgrades. +if [ "$1" = "remove" ] && [ "$DPKG_MAINTSCRIPT_PACKAGE_REFCOUNT" = "1" ]; then +    # Cleanup in case package is removed before upgrade is finished (postinst ran). +    dpkg-divert --package usr-is-merged --no-rename \ +        --divert /lib/udev/hwdb.d/20-sane.hwdb.usr-is-merged \ +        --remove /lib/udev/hwdb.d/20-sane.hwdb +    dpkg-divert --package usr-is-merged --no-rename \ +        --divert /lib/udev/rules.d/60-libsane1.rules.usr-is-merged \ +        --remove /lib/udev/rules.d/60-libsane1.rules +    dpkg-divert --package usr-is-merged --no-rename \ +        --divert /lib/udev/rules.d/99-libsane1.rules.usr-is-merged \ +        --remove /lib/udev/rules.d/99-libsane1.rules +fi +# end-remove-after + +#DEBHELPER# + diff --git a/debian/libsane1.preinst b/debian/libsane1.preinst new file mode 100644 index 0000000..4ceccd3 --- /dev/null +++ b/debian/libsane1.preinst @@ -0,0 +1,22 @@ +#!/bin/sh + +set -e + +# begin-remove-after: released:trixie +# protective diversion of files moved from / to /usr, to avoid file loss. +# Only for upgrades. +if [ "$1" = "upgrade" ]; then +    dpkg-divert --package usr-is-merged --no-rename \ +        --divert /lib/udev/hwdb.d/20-sane.hwdb.usr-is-merged \ +        --add /lib/udev/hwdb.d/20-sane.hwdb +    dpkg-divert --package usr-is-merged --no-rename \ +        --divert /lib/udev/rules.d/60-libsane1.rules.usr-is-merged \ +        --add /lib/udev/rules.d/60-libsane1.rules +    dpkg-divert --package usr-is-merged --no-rename \ +        --divert /lib/udev/rules.d/99-libsane1.rules.usr-is-merged \ +        --add /lib/udev/rules.d/99-libsane1.rules +fi +# end-remove-after + +#DEBHELPER# + diff --git a/debian/patches/0725-fix_link_60-libsane_rule.patch b/debian/patches/0725-fix_link_60-libsane_rule.patch deleted file mode 100644 index 0b424e2..0000000 --- a/debian/patches/0725-fix_link_60-libsane_rule.patch +++ /dev/null @@ -1,33 +0,0 @@ -Description: Fix directory for 20-sane.hwdb -Author: Jörg Frings-Fürst <debian@jff.email> -Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=916239 -Forwarded: not-needed -Last-Update: 2019-04-27 ---- -This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ -Index: trunk/tools/sane-desc.c -=================================================================== ---- trunk.orig/tools/sane-desc.c -+++ trunk/tools/sane-desc.c -@@ -3649,7 +3649,7 @@ print_udevhwdb_header (void) -     ("#\n" -      "# udev rules file for supported USB and SCSI devices\n" -      "#\n" --     "# For the list of supported USB devices see /usr/lib/udev/hwdb.d/20-sane.hwdb\n" -+     "# For the list of supported USB devices see /lib/udev/hwdb.d/20-sane.hwdb\n" -      "#\n" -      "# The SCSI device support is very basic and includes only\n" -      "# scanners that mark themselves as type \"scanner\" or\n" -Index: trunk/testsuite/tools/data/udev+hwdb.ref -=================================================================== ---- trunk.orig/testsuite/tools/data/udev+hwdb.ref -+++ trunk/testsuite/tools/data/udev+hwdb.ref -@@ -3,7 +3,7 @@ - # - # udev rules file for supported USB and SCSI devices - # --# For the list of supported USB devices see /usr/lib/udev/hwdb.d/20-sane.hwdb -+# For the list of supported USB devices see /lib/udev/hwdb.d/20-sane.hwdb - # - # The SCSI device support is very basic and includes only - # scanners that mark themselves as type "scanner" or diff --git a/debian/patches/series b/debian/patches/series index 81eddad..ac4a4b6 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -5,7 +5,6 @@  0140-avahi.patch  0145-avahi.patch  0705-kfreebsd.patch -0725-fix_link_60-libsane_rule.patch  0150-i386-test.patch  0155-hurd_PATH_MAX.patch  0050-Use-python3-shebang.patch diff --git a/debian/rules b/debian/rules index 03d63c3..d4168f2 100755 --- a/debian/rules +++ b/debian/rules @@ -85,12 +85,26 @@ override_dh_auto_install-indep:  	$(RM) debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/sane/libsane-dll.*  override_dh_install-arch: +ifeq (linux,$(DEB_HOST_ARCH_OS)) +	# udev support +	# Generate the udev rules file +	$(SANE_DESC) -s $(CURDIR)/doc/descriptions -m udev+hwdb > $(CURDIR)/debian/60-libsane1.rules +	$(SANE_DESC) -s $(CURDIR)/doc/descriptions -m hwdb > $(CURDIR)/debian/20-sane.hwdb + +	cp $(CURDIR)/debian/20-sane.hwdb $(CURDIR)/debian/libsane1/usr/lib/udev/hwdb.d/ +endif +  	dh_install  	# Install the pkg-config file  	mkdir -p debian/libsane-dev/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig/  	cp tools/sane-backends.pc debian/libsane-dev/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig/  	cp debian/sane-utils.logrotate debian/sane-utils/etc/logrotate.d/sane-utils +	# remove rpath from the binaries (wonderful tool !) +	chrpath -d debian/sane-utils/usr/sbin/saned +	chrpath -d debian/sane-utils/usr/bin/scanimage +	chrpath -d debian/sane-utils/usr/bin/sane-find-scanner +  override_dh_install-indep:  	dh_install @@ -126,22 +140,6 @@ ifeq (linux,$(DEB_HOST_ARCH_OS))  	cp README.linux debian/libsane-common/usr/share/doc/libsane-common/  endif -override_dh_installudev-arch: -ifeq (linux,$(DEB_HOST_ARCH_OS)) -	# udev support -	# Generate the udev rules file -	$(SANE_DESC) -s $(CURDIR)/doc/descriptions -m udev+hwdb > $(CURDIR)/debian/libsane1.udev -	$(SANE_DESC) -s $(CURDIR)/doc/descriptions -m hwdb > $(CURDIR)/debian/20-sane.hwdb - -	cp $(CURDIR)/debian/20-sane.hwdb $(CURDIR)/debian/libsane1/lib/udev/hwdb.d/ -	dh_installudev -endif - -	# remove rpath from the binaries (wonderful tool !) -	chrpath -d debian/sane-utils/usr/sbin/saned -	chrpath -d debian/sane-utils/usr/bin/scanimage -	chrpath -d debian/sane-utils/usr/bin/sane-find-scanner -  override_dh_installinit-arch:  	dh_installinit -psane-utils --name=saned | 
