Package: parted,libparted2t64,libparted-fs-resize0t64
Version: 3.6-3.1
Severity: important
Tags: patch
User: helm...@debian.org
Usertags: dep17p1 dep17m2
Control: affects -1 + libparted2 libparted-fs-resize0

Hi Colin,

I'm sending you a /usr-move conversion patch for parted, because it is
one ofthe packages where the interference with the time64 transition is
causing a DEP17 P1 problem. This is not a problem just yet in unstable,
but enabling dh-sequence-movetousr without mitigation would render
parted rc-buggy. The attached patch includes both the conversion and the
mitigation. Please remember that if you want to backport parted to
bookworm-backports or earlier, you must revert both this patch and the
time64 transition.

I looked into whether the time64 transition was avoidable for either
library and concluded that it is necessary for both. I tested the patch
both with piuparts and with a custom upgrade test exercising the
particular /usr-move problem.

mmdebstrap trixie /dev/null --variant=apt --include libparted-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 libparted2t64_3.6-3.2_amd64.deb /l1.deb" 
--customize-hook="upload libparted-fs-resize0t64_3.6-3.2_amd64.deb /l2.deb" 
--customize-hook="upload libparted-dev_3.6-3.2_amd64.deb /d.deb" 
--chrooted-customize-hook="dpkg --auto-deconfigure --unpack /l1.deb /l2.deb 
/d.deb; apt-get -y install /l1.deb /l2.deb /d.deb" 
--chrooted-customize-hook="dpkg --verify"

Helmut
diff -Nru parted-3.6/debian/changelog parted-3.6/debian/changelog
--- parted-3.6/debian/changelog 2024-02-29 20:58:31.000000000 +0100
+++ parted-3.6/debian/changelog 2024-03-26 15:00:20.000000000 +0100
@@ -1,3 +1,10 @@
+parted (3.6-3.2) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Move files to /usr and mitigate loss (DEP17) (Closes: #-1)
+
+ -- Helmut Grohne <hel...@subdivi.de>  Tue, 26 Mar 2024 15:00:20 +0100
+
 parted (3.6-3.1) unstable; urgency=medium
 
   * Non-maintainer upload.
diff -Nru parted-3.6/debian/control parted-3.6/debian/control
--- parted-3.6/debian/control   2024-02-29 20:58:31.000000000 +0100
+++ parted-3.6/debian/control   2024-03-26 15:00:14.000000000 +0100
@@ -62,7 +62,7 @@
 
 Package: libparted2t64
 Replaces: libparted2
-Breaks: libparted2 (<< ${source:Version})
+Conflicts: libparted2 (<< ${source:Version})
 Architecture: any
 Section: libs
 Pre-Depends: ${misc:Pre-Depends}
@@ -81,7 +81,7 @@
 Package: libparted-fs-resize0t64
 Provides: ${t64:Provides}
 Replaces: libparted-fs-resize0
-Breaks: libparted-fs-resize0 (<< ${source:Version})
+Conflicts: libparted-fs-resize0 (<< ${source:Version})
 Architecture: any
 Section: libs
 Pre-Depends: ${misc:Pre-Depends}
diff -Nru parted-3.6/debian/libparted-dev.links 
parted-3.6/debian/libparted-dev.links
--- parted-3.6/debian/libparted-dev.links       2023-06-27 00:34:57.000000000 
+0200
+++ parted-3.6/debian/libparted-dev.links       2024-03-26 15:00:20.000000000 
+0100
@@ -1,2 +1,2 @@
-lib/${DEB_HOST_MULTIARCH}/libparted.so.2 
usr/lib/${DEB_HOST_MULTIARCH}/libparted.so
-lib/${DEB_HOST_MULTIARCH}/libparted-fs-resize.so.0 
usr/lib/${DEB_HOST_MULTIARCH}/libparted-fs-resize.so
+usr/lib/${DEB_HOST_MULTIARCH}/libparted.so.2 
usr/lib/${DEB_HOST_MULTIARCH}/libparted.so
+usr/lib/${DEB_HOST_MULTIARCH}/libparted-fs-resize.so.0 
usr/lib/${DEB_HOST_MULTIARCH}/libparted-fs-resize.so
diff -Nru parted-3.6/debian/libparted-fs-resize0-udeb.install 
parted-3.6/debian/libparted-fs-resize0-udeb.install
--- parted-3.6/debian/libparted-fs-resize0-udeb.install 2023-06-27 
00:34:57.000000000 +0200
+++ parted-3.6/debian/libparted-fs-resize0-udeb.install 2024-03-26 
15:00:20.000000000 +0100
@@ -1 +1 @@
-lib/libparted-fs-resize.so.*
+usr/lib/libparted-fs-resize.so.*
diff -Nru parted-3.6/debian/libparted-fs-resize0t64.install 
parted-3.6/debian/libparted-fs-resize0t64.install
--- parted-3.6/debian/libparted-fs-resize0t64.install   2023-06-27 
00:34:57.000000000 +0200
+++ parted-3.6/debian/libparted-fs-resize0t64.install   2024-03-26 
15:00:20.000000000 +0100
@@ -1 +1 @@
-usr/lib/${DEB_HOST_MULTIARCH}/libparted-fs-resize.so.* 
lib/${DEB_HOST_MULTIARCH}
+usr/lib/${DEB_HOST_MULTIARCH}/libparted-fs-resize.so.*
diff -Nru parted-3.6/debian/libparted-fs-resize0t64.postinst 
parted-3.6/debian/libparted-fs-resize0t64.postinst
--- parted-3.6/debian/libparted-fs-resize0t64.postinst  1970-01-01 
01:00:00.000000000 +0100
+++ parted-3.6/debian/libparted-fs-resize0t64.postinst  2024-03-26 
15:00:20.000000000 +0100
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+
+# begin-remove-after: released:trixie
+if test "$1" = configure; then
+       for f in libparted-fs-resize.so.0 libparted-fs-resize.so.0.0.5; do
+               dpkg-divert --no-rename --package libparted-fs-resize0t64 
--divert "/lib/#DEB_HOST_MULTIARCH#/$f.usr-is-merged" --remove 
"/lib/#DEB_HOST_MULTIARCH#/$f"
+       done
+fi
+# end-remove-after
+
+#DEBHELPER#
diff -Nru parted-3.6/debian/libparted-fs-resize0t64.preinst 
parted-3.6/debian/libparted-fs-resize0t64.preinst
--- parted-3.6/debian/libparted-fs-resize0t64.preinst   1970-01-01 
01:00:00.000000000 +0100
+++ parted-3.6/debian/libparted-fs-resize0t64.preinst   2024-03-26 
15:00:20.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 libparted-fs-resize.so.0 libparted-fs-resize.so.0.0.5; do
+               dpkg-divert --no-rename --package libparted-fs-resize0t64 
--divert "/lib/#DEB_HOST_MULTIARCH#/$f.usr-is-merged" --add 
"/lib/#DEB_HOST_MULTIARCH#/$f"
+       done
+fi
+# end-remove-after
+
+#DEBHELPER#
diff -Nru parted-3.6/debian/libparted2-udeb.install 
parted-3.6/debian/libparted2-udeb.install
--- parted-3.6/debian/libparted2-udeb.install   2023-06-27 00:34:57.000000000 
+0200
+++ parted-3.6/debian/libparted2-udeb.install   2024-03-26 15:00:20.000000000 
+0100
@@ -1 +1 @@
-lib/libparted.so.*
+usr/lib/libparted.so.*
diff -Nru parted-3.6/debian/libparted2t64.install 
parted-3.6/debian/libparted2t64.install
--- parted-3.6/debian/libparted2t64.install     2023-06-27 00:34:57.000000000 
+0200
+++ parted-3.6/debian/libparted2t64.install     2024-03-26 15:00:20.000000000 
+0100
@@ -1 +1 @@
-usr/lib/${DEB_HOST_MULTIARCH}/libparted.so.* lib/${DEB_HOST_MULTIARCH}
+usr/lib/${DEB_HOST_MULTIARCH}/libparted.so.*
diff -Nru parted-3.6/debian/libparted2t64.postinst 
parted-3.6/debian/libparted2t64.postinst
--- parted-3.6/debian/libparted2t64.postinst    1970-01-01 01:00:00.000000000 
+0100
+++ parted-3.6/debian/libparted2t64.postinst    2024-03-26 15:00:20.000000000 
+0100
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+
+# begin-remove-after: released:trixie
+if test "$1" = configure; then
+       for f in libparted.so.2 libparted.so.2.0.5; do
+               dpkg-divert --no-rename --package libparted2t64 --divert 
"/lib/#DEB_HOST_MULTIARCH#/$f.usr-is-merged" --remove 
"/lib/#DEB_HOST_MULTIARCH#/$f"
+       done
+fi
+# end-remove-after
+
+#DEBHELPER#
diff -Nru parted-3.6/debian/libparted2t64.preinst 
parted-3.6/debian/libparted2t64.preinst
--- parted-3.6/debian/libparted2t64.preinst     1970-01-01 01:00:00.000000000 
+0100
+++ parted-3.6/debian/libparted2t64.preinst     2024-03-26 15:00:20.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 libparted.so.2 libparted.so.2.0.5; do
+               dpkg-divert --no-rename --package libparted2t64 --divert 
"/lib/#DEB_HOST_MULTIARCH#/$f.usr-is-merged" --add 
"/lib/#DEB_HOST_MULTIARCH#/$f"
+       done
+fi
+# end-remove-after
+
+#DEBHELPER#
diff -Nru parted-3.6/debian/parted-udeb.install 
parted-3.6/debian/parted-udeb.install
--- parted-3.6/debian/parted-udeb.install       2023-06-27 00:34:57.000000000 
+0200
+++ parted-3.6/debian/parted-udeb.install       2024-03-26 15:00:20.000000000 
+0100
@@ -1 +1 @@
-sbin
+usr/sbin
diff -Nru parted-3.6/debian/parted.install parted-3.6/debian/parted.install
--- parted-3.6/debian/parted.install    2023-06-27 00:34:57.000000000 +0200
+++ parted-3.6/debian/parted.install    2024-03-26 15:00:20.000000000 +0100
@@ -1,3 +1,3 @@
-sbin
+usr/sbin
 usr/share/man/man8/parted.8
 usr/share/man/man8/partprobe.8
diff -Nru parted-3.6/debian/rules parted-3.6/debian/rules
--- parted-3.6/debian/rules     2024-02-29 20:58:29.000000000 +0100
+++ parted-3.6/debian/rules     2024-03-26 15:00:20.000000000 +0100
@@ -12,7 +12,7 @@
 
 export DEB_BUILD_MAINT_OPTIONS := hardening=+all
 
-CONFFLAGS := --sbindir=/sbin --enable-mtrace --enable-shared
+CONFFLAGS := --sbindir=/usr/sbin --enable-mtrace --enable-shared
 CONFFLAGS += --disable-gcc-warnings
 
 # Enable device-mapper only on Linux
@@ -26,7 +26,7 @@
 CONFFLAGS_UDEB := $(CONFFLAGS)
 
 # Options specific to the udeb build.
-CONFFLAGS_UDEB += ac_cv_header_execinfo_h=no --libdir=/lib
+CONFFLAGS_UDEB += ac_cv_header_execinfo_h=no --libdir=/usr/lib
 CONFFLAGS_UDEB += --disable-static --without-readline
 
 %:
@@ -62,7 +62,7 @@
        $(MAKE) -C build-udeb/libparted install 
DESTDIR=$(CURDIR)/debian/tmp-udeb
        $(MAKE) -C build-udeb/parted install DESTDIR=$(CURDIR)/debian/tmp-udeb
        rm -f debian/tmp/usr/lib/*/*.la
-       rm -f debian/tmp-udeb/lib/*.la debian/tmp-udeb/lib/*.so
+       rm -f debian/tmp-udeb/usr/lib/*.la debian/tmp-udeb/usr/lib/*.so
 
 override_dh_install:
        dh_install -Nparted-udeb -Nlibparted2-udeb -Nlibparted-fs-resize0-udeb

Reply via email to