Package: fuse2fs
Version: 1.47.2~rc1-1
Severity: serious
Tags: patch
Control: affects -1 + fuseext2
Control: tags 1078693 + patch

Hi Ted,

I see that you are restructuring e2fsprogs and are taking over fuseext2
from uml. That's a good thing, but it unfortunately comes with /usr-move
implications attached. fuseext2 used to install stuff in /sbin and
fuse2fs now installs it to /usr/sbin as is expected due to DEP17. That
situation triggers the DEP17 P1 file loss situation and is thus dubbed
"ineffective Replaces".

I have prepared a patch adding protective diversions. Unlike libext2fs2,
I am proposing a slightly weaker form here, because I expect these
drivers to not be as critical as the library. These protective
diversions only exist from preinst to postinst, so they cover all but
very unusual scenarios. On the flip side, janitor.debian.net can propose
a MR to get rid of this mitigation after trixie if you like.

As you look into patches, can I also remind you about #1078693? I only
notice now that the patch tag was missing there.

Helmut
diff --minimal -Nru e2fsprogs-1.47.2~rc1/debian/changelog 
e2fsprogs-1.47.2~rc1/debian/changelog
--- e2fsprogs-1.47.2~rc1/debian/changelog       2024-11-29 05:35:35.000000000 
+0100
+++ e2fsprogs-1.47.2~rc1/debian/changelog       2024-12-01 21:43:51.000000000 
+0100
@@ -1,3 +1,11 @@
+e2fsprogs (1.47.2~rc1-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix ineffective replaces fuse2fs for fuseext2 due to /usr-move (DEP17 P1
+    M8, Closes: #-1)
+
+ -- Helmut Grohne <hel...@subdivi.de>  Sun, 01 Dec 2024 21:43:51 +0100
+
 e2fsprogs (1.47.2~rc1-1) unstable; urgency=medium
 
   * New upstream version
diff --minimal -Nru e2fsprogs-1.47.2~rc1/debian/fuse2fs.postinst 
e2fsprogs-1.47.2~rc1/debian/fuse2fs.postinst
--- e2fsprogs-1.47.2~rc1/debian/fuse2fs.postinst        1970-01-01 
01:00:00.000000000 +0100
+++ e2fsprogs-1.47.2~rc1/debian/fuse2fs.postinst        2024-12-01 
21:40:57.000000000 +0100
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+set -e
+
+# begin-remove-after: released:trixie
+if test "$1" = configure && dpkg --compare-versions "$2" lt 1.47.2~rc1-1~; then
+    # DEP17 P1 mitigation.
+    for cmd in /sbin/mount.fuse-ext2 /sbin/mount.fuseext2; do
+        dpkg-divert --package fuse2fs --no-rename --divert 
"$cmd.usr-is-merged" --remove "$cmd"
+    done
+fi
+# end-remove-after: released:trixie
+
+#DEBHELPER#
diff --minimal -Nru e2fsprogs-1.47.2~rc1/debian/fuse2fs.postrm 
e2fsprogs-1.47.2~rc1/debian/fuse2fs.postrm
--- e2fsprogs-1.47.2~rc1/debian/fuse2fs.postrm  1970-01-01 01:00:00.000000000 
+0100
+++ e2fsprogs-1.47.2~rc1/debian/fuse2fs.postrm  2024-12-01 21:43:43.000000000 
+0100
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+set -e
+
+# begin-remove-after: released:trixie
+if test "$1" = remove || test "$1" = upgrade -o "$1" = failed-upgrade - o "$1" 
= abort-install -o "$1" = abort-upgrade && dpkg --compare-versions "$2" lt 
1.47.2~rc1-1~; then
+    # DEP17 P1 mitigation.
+    for cmd in /sbin/mount.fuse-ext2 /sbin/mount.fuseext2; do
+        dpkg-divert --package fuse2fs --no-rename --divert 
"$cmd.usr-is-merged" --remove "$cmd"
+    done
+fi
+# end-remove-after: released:trixie
+
+#DEBHELPER#
diff --minimal -Nru e2fsprogs-1.47.2~rc1/debian/fuse2fs.preinst 
e2fsprogs-1.47.2~rc1/debian/fuse2fs.preinst
--- e2fsprogs-1.47.2~rc1/debian/fuse2fs.preinst 1970-01-01 01:00:00.000000000 
+0100
+++ e2fsprogs-1.47.2~rc1/debian/fuse2fs.preinst 2024-12-01 21:35:38.000000000 
+0100
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+set -e
+
+# begin-remove-after: released:trixie
+if test "$1" = install -o "$1" = upgrade && dpkg --compare-versions "$2" lt 
1.47.2~rc1-1~; then
+    # DEP17 P1 mitigation.
+    for cmd in /sbin/mount.fuse-ext2 /sbin/mount.fuseext2; do
+        dpkg-divert --package fuse2fs --no-rename --divert 
"$cmd.usr-is-merged" --add "$cmd"
+    done
+fi
+# end-remove-after: released:trixie
+
+#DEBHELPER#

Reply via email to