Package: libairspy0 Version: 1.0.10-2 Severity: important Tags: patch User: helm...@debian.org Usertags: dep17p7 X-Debbugs-CC: helm...@debian.org
Dear Maintainer, libairspy0 contains udev rules which are installed to /lib; these files need to be moved to /usr/lib as part of Debian's usr-merge effort. Because libairspy0 is Multi-Arch: same, an unfortunate corner-case can occur whereby shared files (such as the udev rules) may be erroneously removed on upgrades (please see DEP17[0] P7: Shared multiarch file loss). I have raised a Salsa MR[1] and attached an equivalent patch which avoids the problem by implementating DEP17 M10 (Protective diversions for shared files) for the affected files. Please consider applying this patch at your earliest convenience. This bug will be upgraded to release critical soon, as it blocks the overall usr-merge effort which is being undertaken for the trixie release. Cheers, [0] https://subdivi.de/~helmut/dep17.html [1] https://salsa.debian.org/bottoms/pkg-airspy-host/-/merge_requests/3 -- Samuel Henrique <samueloph>
>From 88072b72a2a756df85f6760913363af2d23d8272 Mon Sep 17 00:00:00 2001 From: Samuel Henrique <samuel...@debian.org> Date: Fri, 24 Nov 2023 16:13:38 +0000 Subject: [PATCH] DEP17: Install udev rules into /usr With (M10) protective diversion against possible file loss as exhibited by Multi-Arch: same packages (P7). Diversion code can be removed in forky+1. --- debian/{libairspy0.udev => 60-libairspy0.rules} | 0 debian/changelog | 8 ++++++++ debian/libairspy0.install | 1 + debian/libairspy0.lintian-overrides | 2 ++ debian/libairspy0.postinst | 9 +++++++++ debian/libairspy0.postrm | 15 +++++++++++++++ debian/libairspy0.preinst | 14 ++++++++++++++ 7 files changed, 49 insertions(+) rename debian/{libairspy0.udev => 60-libairspy0.rules} (100%) create mode 100644 debian/libairspy0.lintian-overrides create mode 100644 debian/libairspy0.postrm create mode 100644 debian/libairspy0.preinst diff --git a/debian/libairspy0.udev b/debian/60-libairspy0.rules similarity index 100% rename from debian/libairspy0.udev rename to debian/60-libairspy0.rules diff --git a/debian/changelog b/debian/changelog index 1ae9cf4..5d81bb9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +airspyone-host (1.0.10-3) UNRELEASED; urgency=medium + + * DEP17: Install udev rules into /usr, with (M10) protective diversion + against possible file loss as exhibited by Multi-Arch: same packages (P7). + Diversion code can be removed in forky+1. + + -- Samuel Henrique <samuel...@debian.org> Fri, 24 Nov 2023 14:23:28 +0000 + airspyone-host (1.0.10-2) unstable; urgency=medium * update to v1.0.10-6-g41c439f diff --git a/debian/libairspy0.install b/debian/libairspy0.install index a7e6b7c..38ee09d 100644 --- a/debian/libairspy0.install +++ b/debian/libairspy0.install @@ -1,2 +1,3 @@ usr/lib/*/lib*.so.* debian/com.airspy.host.metainfo.xml usr/share/metainfo +debian/60-libairspy0.rules usr/lib/udev/rules.d diff --git a/debian/libairspy0.lintian-overrides b/debian/libairspy0.lintian-overrides new file mode 100644 index 0000000..9c24985 --- /dev/null +++ b/debian/libairspy0.lintian-overrides @@ -0,0 +1,2 @@ +# protective diversion for upgrades of files moved from / to /usr +libairspy0: diversion-for-unknown-file lib/udev/rules.d/60-libairspy0.rules [preinst:11] diff --git a/debian/libairspy0.postinst b/debian/libairspy0.postinst index 21edfc4..ecb72c2 100644 --- a/debian/libairspy0.postinst +++ b/debian/libairspy0.postinst @@ -20,6 +20,15 @@ if [ "$1" = "configure" ]; then # try to update udev now udevadm control --reload-rules || true ; fi +# begin-remove-after: released:forky + # protective diversion of files moved from / to /usr, to avoid file loss. + # Only for upgrades. + # At this point, the package will have installed the same file in */usr*. + dpkg-divert --package usr-is-merged --no-rename \ + --divert /lib/udev/rules.d/60-libairspy0.rules.usr-is-merged \ + --remove /lib/udev/rules.d/60-libairspy0.rules +# end-remove-after + fi exit 0 diff --git a/debian/libairspy0.postrm b/debian/libairspy0.postrm new file mode 100644 index 0000000..e370229 --- /dev/null +++ b/debian/libairspy0.postrm @@ -0,0 +1,15 @@ +#!/bin/sh + +set -e + +# begin-remove-after: released:forky +# 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/rules.d/60-libairspy0.rules.usr-is-merged \ + --remove /lib/udev/rules.d/60-libairspy0.rules +fi +# end-remove-after + diff --git a/debian/libairspy0.preinst b/debian/libairspy0.preinst new file mode 100644 index 0000000..af1e4a4 --- /dev/null +++ b/debian/libairspy0.preinst @@ -0,0 +1,14 @@ +#!/bin/sh + +set -e + +# begin-remove-after: released:forky +# 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/rules.d/60-libairspy0.rules.usr-is-merged \ + --add /lib/udev/rules.d/60-libairspy0.rules +fi +# end-remove-after + -- 2.42.0