Package: libfuse2t64 Version: 2.9.9-8.1 Severity: important Tags: patch User: [email protected] Usertags: dep17m2 dep17p1 Control: affects -1 + libfuse2
Hi, fuse2 is involved in the /usr-move (DEP17) in multiple ways. In this bug report, I am staying away from binaries to avoid interference with the statoverride matter #1060229. That still has to be dealt with separately. Here, it is about moving the fuse library having become non-trivial due to the time64 transition. Simply moving it would cause a DEP17 P1 problem incurring file loss on upgrade. I'm attaching a patch implementing the library move in a mitigated (P8 protective diversions) way. I've tested this patch with piuparts and manually tried triggering the problem: mmdebstrap trixie /dev/null --variant apt --include libfuse-dev --customize-hook='echo "deb http://deb.debian.org/debian sid main" > "$1/etc/apt/sources.list.d/sid.list"' --chrooted-customize-hook="apt-get update" --customize-hook="upload libfuse2t64_2.9.9-8.2_amd64.deb /l.deb" --customize-hook="upload libfuse-dev_2.9.9-8.2_amd64.deb /d.deb" --chrooted-customize-hook="dpkg --auto-deconfigure --unpack /l.deb /d.deb && apt-get -y install /l.deb /d.deb && dpkg --verify" Note that none of this patch, #1060229 and the time64 rename is appropriate for bookworm-backports or earlier. All of them must be reverted in case of performing a backport. Please contact me if a need for backporting arises. I also appreciate feedback to Chris' questions on #1060229 as that enables us to produce the necessary patches. Helmut
diff -Nru fuse-2.9.9/debian/changelog fuse-2.9.9/debian/changelog --- fuse-2.9.9/debian/changelog 2024-02-29 23:24:20.000000000 +0100 +++ fuse-2.9.9/debian/changelog 2024-03-27 07:29:06.000000000 +0100 @@ -1,3 +1,11 @@ +fuse (2.9.9-8.2) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Move fuse library to /usr and add DEP17 P1 M8 protective diversions. + (Closes: #-1) + + -- Helmut Grohne <[email protected]> Wed, 27 Mar 2024 07:29:06 +0100 + fuse (2.9.9-8.1) unstable; urgency=medium * Non-maintainer upload. diff -Nru fuse-2.9.9/debian/control fuse-2.9.9/debian/control --- fuse-2.9.9/debian/control 2024-02-29 23:24:11.000000000 +0100 +++ fuse-2.9.9/debian/control 2024-03-27 07:29:06.000000000 +0100 @@ -29,7 +29,6 @@ Package: libfuse2t64 Provides: ${t64:Provides} Replaces: libfuse2 -Breaks: libfuse2 (<< ${source:Version}) Section: libs Architecture: linux-any kfreebsd-any Multi-Arch: same @@ -37,7 +36,7 @@ Depends: ${misc:Depends}, ${shlibs:Depends}, -Conflicts: fuse (<< ${binary:Version}) +Conflicts: fuse (<< ${binary:Version}), libfuse2 (<< ${source:Version}) Suggests: fuse Description: Filesystem in Userspace (library) Filesystem in Userspace (FUSE) is a simple interface for userspace programs to diff -Nru fuse-2.9.9/debian/libfuse2-udeb.install fuse-2.9.9/debian/libfuse2-udeb.install --- fuse-2.9.9/debian/libfuse2-udeb.install 2014-06-20 08:23:50.000000000 +0200 +++ fuse-2.9.9/debian/libfuse2-udeb.install 2024-03-27 07:21:56.000000000 +0100 @@ -1 +1 @@ -usr/lib/*/*.so.* lib +usr/lib/*/*.so.* diff -Nru fuse-2.9.9/debian/libfuse2t64.install fuse-2.9.9/debian/libfuse2t64.install --- fuse-2.9.9/debian/libfuse2t64.install 2024-02-29 23:24:11.000000000 +0100 +++ fuse-2.9.9/debian/libfuse2t64.install 2024-03-27 07:20:59.000000000 +0100 @@ -1 +1 @@ -usr/lib/*/*.so.* lib +usr/lib/*/*.so.* diff -Nru fuse-2.9.9/debian/libfuse2t64.postinst fuse-2.9.9/debian/libfuse2t64.postinst --- fuse-2.9.9/debian/libfuse2t64.postinst 1970-01-01 01:00:00.000000000 +0100 +++ fuse-2.9.9/debian/libfuse2t64.postinst 2024-03-27 07:28:59.000000000 +0100 @@ -0,0 +1,14 @@ +#!/bin/sh + +set -e + +# begin-remove-after: released:trixie +if test "$1" = configure; then + # Remove DEP17 P1 M8 protective diversions + for f in libfuse.so.2 libfuse.so.2.9.9 libulockmgr.so.1 libulockmgr.so.1.0.1; do + dpkg-divert --no-rename --package libfuse2t64 --divert "/lib/#DEB_HOST_MULTIARCH#/$f.usr-is-merged" --remove "/lib/#DEB_HOST_MULTIARCH#/$f" + done +fi +# end-remove-after + +#DEBHELPER# diff -Nru fuse-2.9.9/debian/libfuse2t64.preinst fuse-2.9.9/debian/libfuse2t64.preinst --- fuse-2.9.9/debian/libfuse2t64.preinst 1970-01-01 01:00:00.000000000 +0100 +++ fuse-2.9.9/debian/libfuse2t64.preinst 2024-03-27 07:28:02.000000000 +0100 @@ -0,0 +1,14 @@ +#!/bin/sh + +set -e + +# begin-remove-after: released:trixie +if test "$1" = upgrade || test "$1" = install; then + # Add DEP17 P1 M8 protective diversions + for f in libfuse.so.2 libfuse.so.2.9.9 libulockmgr.so.1 libulockmgr.so.1.0.1; do + dpkg-divert --no-rename --package libfuse2t64 --divert "/lib/#DEB_HOST_MULTIARCH#/$f.usr-is-merged" --add "/lib/#DEB_HOST_MULTIARCH#/$f" + done +fi +# end-remove-after + +#DEBHELPER# diff -Nru fuse-2.9.9/debian/rules fuse-2.9.9/debian/rules --- fuse-2.9.9/debian/rules 2024-02-29 23:24:11.000000000 +0100 +++ fuse-2.9.9/debian/rules 2024-03-27 07:23:34.000000000 +0100 @@ -43,29 +43,12 @@ dh_install - # adjusting /lib for multiarch - mkdir -p debian/libfuse2t64/lib/$(DEB_HOST_MULTIARCH) - mv debian/libfuse2t64/lib/*.so* debian/libfuse2t64/lib/$(DEB_HOST_MULTIARCH) -ifeq ($(with_udeb),yes) - mkdir -p debian/libfuse2-udeb/lib/$(DEB_HOST_MULTIARCH) - mv debian/libfuse2-udeb/lib/*.so* debian/libfuse2-udeb/lib/$(DEB_HOST_MULTIARCH) -endif - # adding initramfs-tools integration install -D -m 0755 debian/local/fuse.hook debian/fuse/usr/share/initramfs-tools/hooks/fuse # adding kmod integration # install -D -m 0644 debian/local/fuse.kmod debian/fuse/lib/modules-load.d/fuse.conf -override_dh_link: - # correcting symlink targets - for LIB in debian/tmp/usr/lib/*/*.so; \ - do \ - dh_link -plibfuse-dev lib/$(DEB_HOST_MULTIARCH)/$$(basename $$(readlink $${LIB})) usr/lib/$(DEB_HOST_MULTIARCH)/$$(basename $${LIB}); \ - done - - dh_link --remaining-packages - .PHONY: override_dh_autoreconf override_dh_auto_configure \ override_dh_compress override_dh_fixperms \ override_dh_install override_dh_link

