[pve-devel] [PATCH zfsonlinux 1/5] cherry-pick usr-merge fix for libzfs6linux

Stoiko Ivanov s.ivanov at proxmox.com
Tue May 27 18:12:39 CEST 2025


moving file canonical locations from e.g. /lib to /usr/lib (usr-merge)
while renaming a package (libzfs4linux -> libzfs6linux) could result
in file deletions during upgrades. The following workaround has been
used in debian upstream.

see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1092598 for the
details.

based on commit 0431247714965007bc156fd57852689b395b2bae
https://salsa.debian.org/zfsonlinux-team/zfs/

Originally-by: Shengqi Chen <harry-chen at outlook.com>
Signed-off-by: Stoiko Ivanov <s.ivanov at proxmox.com>
---
 debian/libzfs6linux.postrm  | 15 +++++++++++++++
 debian/libzfs6linux.preinst | 16 ++++++++++++++++
 2 files changed, 31 insertions(+)
 create mode 100644 debian/libzfs6linux.postrm
 create mode 100644 debian/libzfs6linux.preinst

diff --git a/debian/libzfs6linux.postrm b/debian/libzfs6linux.postrm
new file mode 100644
index 000000000..ae6478653
--- /dev/null
+++ b/debian/libzfs6linux.postrm
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+set -e
+
+if test "$1" = remove; then
+	# DEP17 P1 M8. Clean up after libzfs6linux.preinst. This code should be
+	# removed once the diversions are deleted via postinst.
+	for lib in zfs_core.so.3 zfs_core.so.3.0.0; do
+		dpkg-divert --package libzfs6linux --no-rename --divert "/lib/#DEB_HOST_MULTIARCH#/lib$lib.usr-is-merged" --remove "/lib/#DEB_HOST_MULTIARCH#/lib$lib"
+	done
+fi
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/libzfs6linux.preinst b/debian/libzfs6linux.preinst
new file mode 100644
index 000000000..6d1870785
--- /dev/null
+++ b/debian/libzfs6linux.preinst
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+set -e
+
+if test "$1" = install -o "$1" = upgrade; then
+	# DEP17 P1 M8: Divert aliased files to avoid their removal deleting the
+	# moved ones. These diversions should be removed via postinst once
+	# trixie is released.
+	for lib in zfs_core.so.3 zfs_core.so.3.0.0; do
+		dpkg-divert --package libzfs6linux --no-rename --divert "/lib/#DEB_HOST_MULTIARCH#/lib$lib.usr-is-merged" --add "/lib/#DEB_HOST_MULTIARCH#/lib$lib"
+	done
+fi
+
+#DEBHELPER#
+
+exit 0
-- 
2.39.5





More information about the pve-devel mailing list