Bug#1056915: libffado2: Move files into /usr (incl. DEP17 P7 mitigation)
Please find the patch attached.
Chris
>From ac698d36e0ee4bbe082d40d786e9a906610ae42d Mon Sep 17 00:00:00 2001
From: Chris Hofstaedtler <zeha@debian.org>
Date: Sun, 26 Nov 2023 17:32:36 +0100
Subject: [PATCH] Move udev files from /lib to /usr/lib
Including protective diversion against Multi-Arch: same file loss scenario
(DEP17 P7 M10).
---
debian/changelog | 8 ++++++++
debian/libffado2.install | 2 +-
debian/libffado2.lintian-overrides | 4 ++++
debian/libffado2.postinst | 16 ++++++++++++++++
debian/libffado2.postrm | 16 ++++++++++++++++
debian/libffado2.preinst | 15 +++++++++++++++
debian/rules | 1 +
7 files changed, 61 insertions(+), 1 deletion(-)
create mode 100644 debian/libffado2.lintian-overrides
create mode 100644 debian/libffado2.postinst
create mode 100644 debian/libffado2.postrm
create mode 100644 debian/libffado2.preinst
diff --git a/debian/changelog b/debian/changelog
index 028b0e8..ace26e2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+libffado (2.4.7-1.1) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * Move udev files from /lib to /usr/lib, including protective diversion
+ against Multi-Arch: same file loss scenario (DEP17 P7 M10). (Closes: #-1)
+
+ -- Chris Hofstaedtler <zeha@debian.org> Sun, 26 Nov 2023 17:31:51 +0100
+
libffado (2.4.7-1) unstable; urgency=medium
* New upstream version 2.4.7
diff --git a/debian/libffado2.install b/debian/libffado2.install
index 42cc806..0ac4e1c 100644
--- a/debian/libffado2.install
+++ b/debian/libffado2.install
@@ -1,3 +1,3 @@
-lib/udev
+usr/lib/udev
usr/lib/*/libffado.so.*
usr/share/libffado2/configuration
diff --git a/debian/libffado2.lintian-overrides b/debian/libffado2.lintian-overrides
new file mode 100644
index 0000000..7d6e5c5
--- /dev/null
+++ b/debian/libffado2.lintian-overrides
@@ -0,0 +1,4 @@
+# begin-remove-after: released:forky
+# protective diversion for upgrades of files moved from / to /usr
+libffado2: diversion-for-unknown-file lib/udev/rules.d/60-ffado.rules [preinst:*]
+# end-remove-after
diff --git a/debian/libffado2.postinst b/debian/libffado2.postinst
new file mode 100644
index 0000000..da321c3
--- /dev/null
+++ b/debian/libffado2.postinst
@@ -0,0 +1,16 @@
+#! /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-ffado.rules.usr-is-merged \
+ --remove /lib/udev/rules.d/60-ffado.rules
+fi
+# end-remove-after
+
+#DEBHELPER#
diff --git a/debian/libffado2.postrm b/debian/libffado2.postrm
new file mode 100644
index 0000000..468eed6
--- /dev/null
+++ b/debian/libffado2.postrm
@@ -0,0 +1,16 @@
+#!/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" = "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/rules.d/60-ffado.rules.usr-is-merged \
+ --remove /lib/udev/rules.d/60-ffado.rules
+fi
+# end-remove-after
+
+#DEBHELPER#
+
diff --git a/debian/libffado2.preinst b/debian/libffado2.preinst
new file mode 100644
index 0000000..7c88026
--- /dev/null
+++ b/debian/libffado2.preinst
@@ -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" = "upgrade" ]; then
+ dpkg-divert --package usr-is-merged --no-rename \
+ --divert /lib/udev/rules.d/60-ffado.rules.usr-is-merged \
+ --add /lib/udev/rules.d/60-ffado.rules
+fi
+# end-remove-after
+
+#DEBHELPER#
+
diff --git a/debian/rules b/debian/rules
index 57c831f..f5c2218 100755
--- a/debian/rules
+++ b/debian/rules
@@ -10,6 +10,7 @@ FLAGS= \
PREFIX=/usr \
DESTDIR=$(CURDIR)/debian/tmp \
LIBDIR=/usr/lib/$(DEB_HOST_MULTIARCH) \
+ UDEVDIR=/usr/lib/udev/rules.d/ \
SHAREDIR=/usr/share/libffado2/ \
MANDIR=/usr/share/man/ \
PYPKGDIR=/usr/share/ffado-mixer-qt4/ \
--
2.39.2
Reply to: