user helm...@debian.org
usertags 1059415 + dep17p1
reassign 1059415 ntfs-3,libntfs-3g89t64
found 1059415 1:2022.10.3-1.2
affects 1059415 libntfs-3g89
severity 1059415 important
thanks


On Sun, Dec 24, 2023 at 10:13:46PM +0100, Chris Hofstaedtler wrote:
> Your package installs files into /. For the ongoing Debian UsrMerge
> effort [1] these files should move to /usr in the trixie cycle.

This still applies.

> I'm attaching a patch to implement such a move. It is quite
> involved, but mostly undoes the move /usr -> /. The upstream
> Makefiles ignore --exec-prefix/rootsbindir for the mount.* symlinks,
> so I've chosen to re-create them using dh_link instead.
> 
> However, please still read the wiki page on moving files, especially
> if you intend to backport to bookworm or earlier. The patch has
> already been checked by a local dumat copy.

This patch should no longer be applied, because

> If during the trixie cycle your package will undergo structural
> changes or any other file moves, please also see the wiki and upload
> to experimental first when these changes are done.

time64 incurred structural changes. I'm attaching an updated patch that
mitigates these structural changes.

I've tested the patch using piuparts and using a manual upgrade test
via:

mmdebstrap trixie /dev/null --variant=apt --include ntfs-3g 
--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 libntfs-3g89t64_2022.10.3-1.3_amd64.deb 
/l.deb" --customize-hook="upload ntfs-3g_2022.10.3-1.3_amd64.deb /d.deb" 
--chrooted-customize-hook="apt-get -y install libgnutls30t64; dpkg 
--auto-deconfigure --unpack /l.deb /d.deb; apt-get -y install /l.deb /d.deb" 
--chrooted-customize-hook="dpkg --verify"

Helmut
diff -Nru ntfs-3g-2022.10.3/debian/changelog ntfs-3g-2022.10.3/debian/changelog
--- ntfs-3g-2022.10.3/debian/changelog  2024-03-14 13:21:45.000000000 +0100
+++ ntfs-3g-2022.10.3/debian/changelog  2024-03-26 11:16:22.000000000 +0100
@@ -1,3 +1,12 @@
+ntfs-3g (1:2022.10.3-1.3) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+
+  [ Helmut Grohne and Chris Hofstaedtler ]
+  * Move files to /usr and mitigate file loss. (Closes: #1059415, #945923)
+
+ -- Helmut Grohne <hel...@subdivi.de>  Tue, 26 Mar 2024 11:16:22 +0100
+
 ntfs-3g (1:2022.10.3-1.2) unstable; urgency=medium
 
   [ Zixing Liu ]
diff -Nru ntfs-3g-2022.10.3/debian/control ntfs-3g-2022.10.3/debian/control
--- ntfs-3g-2022.10.3/debian/control    2024-03-01 13:40:21.000000000 +0100
+++ ntfs-3g-2022.10.3/debian/control    2024-03-26 11:16:22.000000000 +0100
@@ -45,7 +45,7 @@
 Package: libntfs-3g89t64
 Provides: ${t64:Provides}
 Replaces: libntfs-3g89
-Breaks: libntfs-3g89 (<< ${source:Version})
+Conflicts: libntfs-3g89 (<< ${source:Version})
 Section: libs
 Architecture: linux-any kfreebsd-any
 Multi-Arch: same
diff -Nru ntfs-3g-2022.10.3/debian/libntfs-3g89t64.install 
ntfs-3g-2022.10.3/debian/libntfs-3g89t64.install
--- ntfs-3g-2022.10.3/debian/libntfs-3g89t64.install    2015-10-24 
09:41:03.000000000 +0200
+++ ntfs-3g-2022.10.3/debian/libntfs-3g89t64.install    2024-03-26 
11:16:22.000000000 +0100
@@ -1 +1 @@
-lib/*/*.so.*
+usr/lib/*/*.so.*
diff -Nru ntfs-3g-2022.10.3/debian/libntfs-3g89t64.lintian-overrides 
ntfs-3g-2022.10.3/debian/libntfs-3g89t64.lintian-overrides
--- ntfs-3g-2022.10.3/debian/libntfs-3g89t64.lintian-overrides  2024-03-01 
13:40:18.000000000 +0100
+++ ntfs-3g-2022.10.3/debian/libntfs-3g89t64.lintian-overrides  2024-03-26 
11:16:22.000000000 +0100
@@ -1 +1,5 @@
 libntfs-3g89t64: package-name-doesnt-match-sonames libntfs-3g89
+# begin-remove-after: released:trixie
+# DEP17 mitigation
+orphaned-diversion lib/x86_64-linux-gnu/*
+# end-remove-after
diff -Nru ntfs-3g-2022.10.3/debian/libntfs-3g89t64.postinst 
ntfs-3g-2022.10.3/debian/libntfs-3g89t64.postinst
--- ntfs-3g-2022.10.3/debian/libntfs-3g89t64.postinst   1970-01-01 
01:00:00.000000000 +0100
+++ ntfs-3g-2022.10.3/debian/libntfs-3g89t64.postinst   2024-03-26 
11:16:22.000000000 +0100
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+
+# begin-remove-after: released:trixie
+if test "$1" = configure; then
+       for f in libntfs-3g.so.89 libntfs-3g.so.89.0.0; do
+               dpkg-divert --no-rename --package libntfs-3g89t64 --divert 
"/lib/#DEB_HOST_MULTIARCH#/$f.usr-is-merged" --remove 
"/lib/#DEB_HOST_MULTIARCH#/$f"
+       done
+fi
+# end-remove-after
+
+#DEBHELPER#
diff -Nru ntfs-3g-2022.10.3/debian/libntfs-3g89t64.preinst 
ntfs-3g-2022.10.3/debian/libntfs-3g89t64.preinst
--- ntfs-3g-2022.10.3/debian/libntfs-3g89t64.preinst    1970-01-01 
01:00:00.000000000 +0100
+++ ntfs-3g-2022.10.3/debian/libntfs-3g89t64.preinst    2024-03-26 
11:16:22.000000000 +0100
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+
+# begin-remove-after: released:trixie
+if test "$1" = upgrade || test "$1" = install; then
+       for f in libntfs-3g.so.89 libntfs-3g.so.89.0.0; do
+               dpkg-divert --no-rename --package libntfs-3g89t64 --divert 
"/lib/#DEB_HOST_MULTIARCH#/$f.usr-is-merged" --add 
"/lib/#DEB_HOST_MULTIARCH#/$f"
+       done
+fi
+# end-remove-after
+
+#DEBHELPER#
diff -Nru ntfs-3g-2022.10.3/debian/local/ntfs-3g.hook 
ntfs-3g-2022.10.3/debian/local/ntfs-3g.hook
--- ntfs-3g-2022.10.3/debian/local/ntfs-3g.hook 2014-04-25 20:44:28.000000000 
+0200
+++ ntfs-3g-2022.10.3/debian/local/ntfs-3g.hook 2024-03-26 11:16:22.000000000 
+0100
@@ -17,9 +17,9 @@
 
 . /usr/share/initramfs-tools/hook-functions
 
-copy_exec /bin/ntfs-3g /bin
+copy_exec /usr/bin/ntfs-3g /usr/bin
 
-ln -s /bin/ntfs-3g "${DESTDIR}/sbin/mount.ntfs-3g"
-ln -s /bin/ntfs-3g "${DESTDIR}/sbin/mount.ntfs"
+ln -s /usr/bin/ntfs-3g "${DESTDIR}/usr/sbin/mount.ntfs-3g"
+ln -s /usr/bin/ntfs-3g "${DESTDIR}/usr/sbin/mount.ntfs"
 
 exit 0
diff -Nru ntfs-3g-2022.10.3/debian/ntfs-3g-udeb.install 
ntfs-3g-2022.10.3/debian/ntfs-3g-udeb.install
--- ntfs-3g-2022.10.3/debian/ntfs-3g-udeb.install       2015-10-24 
09:42:19.000000000 +0200
+++ ntfs-3g-2022.10.3/debian/ntfs-3g-udeb.install       2024-03-26 
11:16:22.000000000 +0100
@@ -1,4 +1,3 @@
-bin/ntfs-3g
-lib/*/*.so.*
-sbin/mount.*
-sbin/ntfsresize
+usr/bin/ntfs-3g
+usr/lib/*/*.so.*
+usr/sbin/ntfsresize
diff -Nru ntfs-3g-2022.10.3/debian/ntfs-3g-udeb.links 
ntfs-3g-2022.10.3/debian/ntfs-3g-udeb.links
--- ntfs-3g-2022.10.3/debian/ntfs-3g-udeb.links 2014-04-25 20:44:28.000000000 
+0200
+++ ntfs-3g-2022.10.3/debian/ntfs-3g-udeb.links 2024-03-26 11:16:22.000000000 
+0100
@@ -1 +1,2 @@
-/sbin/mount.ntfs-3g    /sbin/mount.ntfs
+/usr/sbin/mount.ntfs-3g        /usr/sbin/mount.ntfs
+/usr/bin/ntfs-3g       /usr/sbin/mount.ntfs-3g
diff -Nru ntfs-3g-2022.10.3/debian/ntfs-3g.install 
ntfs-3g-2022.10.3/debian/ntfs-3g.install
--- ntfs-3g-2022.10.3/debian/ntfs-3g.install    2015-10-24 09:40:42.000000000 
+0200
+++ ntfs-3g-2022.10.3/debian/ntfs-3g.install    2024-03-26 11:16:22.000000000 
+0100
@@ -1,4 +1,3 @@
-bin
-sbin
 usr/bin
+usr/sbin
 usr/share
diff -Nru ntfs-3g-2022.10.3/debian/ntfs-3g.links 
ntfs-3g-2022.10.3/debian/ntfs-3g.links
--- ntfs-3g-2022.10.3/debian/ntfs-3g.links      2014-04-25 20:44:28.000000000 
+0200
+++ ntfs-3g-2022.10.3/debian/ntfs-3g.links      2024-03-26 11:16:22.000000000 
+0100
@@ -1,4 +1,6 @@
-/sbin/mount.ntfs-3g                    /sbin/mount.ntfs
+/usr/sbin/mount.ntfs-3g                        /usr/sbin/mount.ntfs
+/usr/bin/ntfs-3g       /usr/sbin/mount.ntfs-3g
+/usr/bin/lowntfs-3g    /usr/sbin/mount.lowntfs-3g
 
 /usr/share/man/man8/ntfs-3g.8.gz       /usr/share/man/man8/mount.ntfs.8.gz
 /usr/share/man/man8/ntfs-3g.8.gz       /usr/share/man/man8/lowntfs-3g.8.gz
diff -Nru ntfs-3g-2022.10.3/debian/rules ntfs-3g-2022.10.3/debian/rules
--- ntfs-3g-2022.10.3/debian/rules      2024-03-14 13:21:09.000000000 +0100
+++ ntfs-3g-2022.10.3/debian/rules      2024-03-26 11:16:22.000000000 +0100
@@ -11,7 +11,7 @@
 
 export DEB_BUILD_MAINT_OPTIONS = hardening=+all
 
-SONAME = $(shell objdump -p debian/tmp/lib/*/libntfs-3g.so.*.* | awk -Fso. 
'/SONAME/ { print $$2 }')
+SONAME = $(shell objdump -p debian/tmp/usr/lib/*/libntfs-3g.so.*.* | awk -Fso. 
'/SONAME/ { print $$2 }')
 
 ifeq ($(DEB_HOST_ARCH_OS), linux)
 CONFIGURE_FLAGS = --enable-posix-acls
@@ -24,7 +24,7 @@
        dh ${@}
 
 override_dh_auto_configure:
-       dh_auto_configure -- --exec-prefix=/ --enable-crypto \
+       dh_auto_configure -- --exec-prefix=/usr --enable-crypto \
                --enable-extras --enable-xattr-mappings \
                --enable-quarantined --disable-ldconfig \
                --enable-mount-helper --with-fuse=internal \
@@ -33,13 +33,10 @@
 override_dh_auto_install:
        dh_auto_install
 
-       # moving shlib to /
-       mkdir -p debian/tmp/lib/$(DEB_HOST_MULTIARCH)
-       mv debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/*.so.* 
debian/tmp/lib/$(DEB_HOST_MULTIARCH)
-
-       # moving ntfsdecrypt, depends on /usr
-       mkdir -p debian/tmp/usr/bin
-       mv debian/tmp/bin/ntfsdecrypt debian/tmp/usr/bin
+       # remove symlinks, will recreate them in /usr/sbin using dh_link
+       rm debian/tmp/sbin/mount.ntfs-3g
+       rm debian/tmp/sbin/mount.lowntfs-3g
+       rmdir debian/tmp/sbin
 
        # adding initramfs-tools integration
        install -D -m 0755 debian/local/ntfs-3g.hook 
debian/ntfs-3g/usr/share/initramfs-tools/hooks/ntfs_3g
@@ -55,29 +52,29 @@
 
        # removing rpath
        for _PROGRAM in \
-               bin/lowntfs-3g \
-               bin/ntfs-3g \
-               bin/ntfs-3g.probe \
-               bin/ntfscat \
-               bin/ntfscluster \
-               bin/ntfscmp \
-               bin/ntfsck \
-               bin/ntfsdump_logfile \
-               bin/ntfsfix \
-               bin/ntfsinfo \
-               bin/ntfsls \
-               bin/ntfsmftalloc \
-               bin/ntfsmove \
-               bin/ntfssecaudit \
-               bin/ntfstruncate \
-               bin/ntfsusermap \
-               bin/ntfswipe \
-               sbin/mkntfs \
-               sbin/ntfsclone \
-               sbin/ntfscp \
-               sbin/ntfslabel \
-               sbin/ntfsresize \
-               sbin/ntfsundelete \
+               usr/bin/lowntfs-3g \
+               usr/bin/ntfs-3g \
+               usr/bin/ntfs-3g.probe \
+               usr/bin/ntfscat \
+               usr/bin/ntfscluster \
+               usr/bin/ntfscmp \
+               usr/bin/ntfsck \
+               usr/bin/ntfsdump_logfile \
+               usr/bin/ntfsfix \
+               usr/bin/ntfsinfo \
+               usr/bin/ntfsls \
+               usr/bin/ntfsmftalloc \
+               usr/bin/ntfsmove \
+               usr/bin/ntfssecaudit \
+               usr/bin/ntfstruncate \
+               usr/bin/ntfsusermap \
+               usr/bin/ntfswipe \
+               usr/sbin/mkntfs \
+               usr/sbin/ntfsclone \
+               usr/sbin/ntfscp \
+               usr/sbin/ntfslabel \
+               usr/sbin/ntfsresize \
+               usr/sbin/ntfsundelete \
                usr/bin/ntfsdecrypt; \
        do \
                echo $${_PROGRAM}; \
@@ -86,9 +83,9 @@
 
        # moving undocumented programs to ntfs-3g-dev
        mkdir -p debian/ntfs-3g-dev/usr/bin
-       mv debian/tmp/bin/ntfsdump_logfile debian/ntfs-3g-dev/usr/bin
-       mv debian/tmp/bin/ntfsmftalloc debian/ntfs-3g-dev/usr/bin
-       mv debian/tmp/bin/ntfsck debian/ntfs-3g-dev/usr/bin
+       mv debian/tmp/usr/bin/ntfsdump_logfile debian/ntfs-3g-dev/usr/bin
+       mv debian/tmp/usr/bin/ntfsmftalloc debian/ntfs-3g-dev/usr/bin
+       mv debian/tmp/usr/bin/ntfsck debian/ntfs-3g-dev/usr/bin
 
 #override_dh_gencontrol:
 #      dh_gencontrol -- -Vntfs-3g:Provides="libntfs-3g$(SONAME)" 
-Vntfs-3g-udeb:Provides="libntfs-3g-udeb$(SONAME)"
@@ -99,9 +96,6 @@
 override_dh_link:
        rm -rf debian/ntfs-3g-dev/usr/share/doc
 
-       # correcting symlink target
-       dh_link -pntfs-3g-dev lib/$(DEB_HOST_MULTIARCH)/$$(basename $$(readlink 
debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libntfs-3g.so)) 
usr/lib/$(DEB_HOST_MULTIARCH)/libntfs-3g.so
-
        dh_link --remaining-packages
 
 override_dh_makeshlibs:

Reply via email to