Bug#1063323: libiw30t64: file loss due to /usr-move (DEP17)

2024-02-17 Thread Steve Langasek
Thanks, I've uploaded an updated NMU to experimental.  Attached is the
consolidated patch.

On Tue, Feb 06, 2024 at 07:42:48AM +0100, Helmut Grohne wrote:
>  Package: libiw30t64
>  Provides: ${t64:Provides}
> -Replaces: libiw30
> -Breaks: libiw30 (<< ${source:Version})
> +Conflicts: libiw30
>  Section: libs
>  Architecture: linux-any
>  Multi-Arch: same

I think this still needs to be a versioned Conflicts to avoid breaking
multiarch coinstallability (after all the package is marked Multi-Arch:
same).


-- 
Steve Langasek   Give me a lever long enough and a Free OS
Debian Developer   to set it on, and I can move the world.
Ubuntu Developer   https://www.debian.org/
slanga...@ubuntu.com vor...@debian.org
diff -Nru wireless-tools-30~pre9/debian/changelog 
wireless-tools-30~pre9/debian/changelog
--- wireless-tools-30~pre9/debian/changelog 2023-12-05 23:04:39.0 
+
+++ wireless-tools-30~pre9/debian/changelog 2024-02-17 17:01:16.0 
+
@@ -1,3 +1,17 @@
+wireless-tools (30~pre9-16.1~exp2) experimental; urgency=medium
+
+  * Fix /usr-move file loss.  Thanks to Helmut Grohne .
+(Closes: #1063323)
+
+ -- Steve Langasek   Sat, 17 Feb 2024 17:01:16 +
+
+wireless-tools (30~pre9-16.1~exp1) experimental; urgency=medium
+
+  * Non-maintainer upload.
+  * Rename libraries for 64-bit time_t transition.
+
+ -- Steve Langasek   Sun, 04 Feb 2024 20:34:45 +
+
 wireless-tools (30~pre9-16) unstable; urgency=medium
 
   * QA upload.
diff -Nru wireless-tools-30~pre9/debian/clean 
wireless-tools-30~pre9/debian/clean
--- wireless-tools-30~pre9/debian/clean 1970-01-01 00:00:00.0 +
+++ wireless-tools-30~pre9/debian/clean 2024-02-17 16:59:10.0 +
@@ -0,0 +1,2 @@
+debian/libiw30t64.preinst
+debian/libiw30t64.postinst
diff -Nru wireless-tools-30~pre9/debian/control 
wireless-tools-30~pre9/debian/control
--- wireless-tools-30~pre9/debian/control   2022-11-12 11:58:45.0 
+
+++ wireless-tools-30~pre9/debian/control   2024-02-17 17:00:10.0 
+
@@ -29,7 +29,9 @@
  the network interfaces on the system, the most common selector is the
  interface MAC address.
 
-Package: libiw30
+Package: libiw30t64
+Provides: ${t64:Provides}
+Conflicts: libiw30 (<< ${source:Version})
 Section: libs
 Architecture: linux-any
 Multi-Arch: same
@@ -46,7 +48,7 @@
 Section: libdevel
 Architecture: linux-any
 Multi-Arch: same
-Depends: libiw30 (= ${binary:Version}), libc6-dev, ${misc:Depends}
+Depends: libiw30t64 (= ${binary:Version}), libc6-dev, ${misc:Depends}
 Description: Wireless tools - development files
  Wireless tools are used to manipulate the Linux Wireless Extensions. The
  Wireless Extension is an interface allowing you to set Wireless LAN specific
diff -Nru wireless-tools-30~pre9/debian/libiw30.install 
wireless-tools-30~pre9/debian/libiw30.install
--- wireless-tools-30~pre9/debian/libiw30.install   2023-11-28 
00:07:13.0 +
+++ wireless-tools-30~pre9/debian/libiw30.install   1970-01-01 
00:00:00.0 +
@@ -1 +0,0 @@
-/usr/lib/*/libiw.so.30
diff -Nru wireless-tools-30~pre9/debian/libiw30.shlibs 
wireless-tools-30~pre9/debian/libiw30.shlibs
--- wireless-tools-30~pre9/debian/libiw30.shlibs2020-03-07 
20:56:23.0 +
+++ wireless-tools-30~pre9/debian/libiw30.shlibs1970-01-01 
00:00:00.0 +
@@ -1,2 +0,0 @@
-libiw 30 libiw30 (>= 30~pre1)
-udeb: libiw 30 libiw30-udeb (>= 30~pre1)
diff -Nru wireless-tools-30~pre9/debian/libiw30t64.install 
wireless-tools-30~pre9/debian/libiw30t64.install
--- wireless-tools-30~pre9/debian/libiw30t64.install1970-01-01 
00:00:00.0 +
+++ wireless-tools-30~pre9/debian/libiw30t64.install2024-02-04 
20:34:45.0 +
@@ -0,0 +1 @@
+/usr/lib/*/libiw.so.30
diff -Nru wireless-tools-30~pre9/debian/libiw30t64.lintian-overrides 
wireless-tools-30~pre9/debian/libiw30t64.lintian-overrides
--- wireless-tools-30~pre9/debian/libiw30t64.lintian-overrides  1970-01-01 
00:00:00.0 +
+++ wireless-tools-30~pre9/debian/libiw30t64.lintian-overrides  2024-02-17 
16:59:10.0 +
@@ -0,0 +1,5 @@
+libiw30t64: package-name-doesnt-match-sonames libiw30
+# begin-remove-after: released:trixie
+# DEP17 protective diversion
+diversion-for-unknown-file lib/x86_64-linux-gnu/libiw.so.30 [preinst:*]
+# end-remove-after
diff -Nru wireless-tools-30~pre9/debian/libiw30t64.postinst.in 
wireless-tools-30~pre9/debian/libiw30t64.postinst.in
--- wireless-tools-30~pre9/debian/libiw30t64.postinst.in1970-01-01 
00:00:00.0 +
+++ wireless-tools-30~pre9/debian/libiw30t64.postinst.in2024-02-17 
16:59:10.0 +
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+
+# begin-remove-after: released:trixie
+if [ "$1" = configure ]; then
+   dpkg-divert --package libiw30t64 --no-rename --remove --divert 
"/lib/#DEB_HOST_MULTIARCH#/libiw.so.30.usr-is-merged" 

Bug#1063323: libiw30t64: file loss due to /usr-move (DEP17)

2024-02-06 Thread Helmut Grohne
On Tue, Feb 06, 2024 at 07:42:49AM +0100, Helmut Grohne wrote:
> I'm attaching a patch for your convenience. I consider that libiw30 is
> not as central as other packages and hence propose employing Conflicts
> here. Conflicts allow removing the protective diversion in trixie's
> postinst rather than forky's postinst already.

Steve made me aware that such Conflicts and Breaks should be versioned
as they may otherwise interact with Provides and multiarch. Updated
patch attached.

Helmut
diff --minimal -Nru wireless-tools-30~pre9/debian/changelog 
wireless-tools-30~pre9/debian/changelog
--- wireless-tools-30~pre9/debian/changelog 2024-02-04 21:34:45.0 
+0100
+++ wireless-tools-30~pre9/debian/changelog 2024-02-06 07:33:48.0 
+0100
@@ -1,3 +1,9 @@
+wireless-tools (30~pre9-16.1~exp2) UNRELEASED; urgency=medium
+
+  * Fix /usr-move file loss. (Closes: #-1)
+
+ -- Helmut Grohne   Tue, 06 Feb 2024 07:33:48 +0100
+
 wireless-tools (30~pre9-16.1~exp1) experimental; urgency=medium
 
   * Non-maintainer upload.
diff --minimal -Nru wireless-tools-30~pre9/debian/clean 
wireless-tools-30~pre9/debian/clean
--- wireless-tools-30~pre9/debian/clean 1970-01-01 01:00:00.0 +0100
+++ wireless-tools-30~pre9/debian/clean 2024-02-06 07:33:30.0 +0100
@@ -0,0 +1,2 @@
+debian/libiw30t64.preinst
+debian/libiw30t64.postinst
diff --minimal -Nru wireless-tools-30~pre9/debian/control 
wireless-tools-30~pre9/debian/control
--- wireless-tools-30~pre9/debian/control   2024-02-04 21:34:45.0 
+0100
+++ wireless-tools-30~pre9/debian/control   2024-02-06 07:31:36.0 
+0100
@@ -31,8 +31,7 @@
 
 Package: libiw30t64
 Provides: ${t64:Provides}
-Replaces: libiw30
-Breaks: libiw30 (<< ${source:Version})
+Conflicts: libiw30 (<< ${source:Version})
 Section: libs
 Architecture: linux-any
 Multi-Arch: same
diff --minimal -Nru wireless-tools-30~pre9/debian/libiw30t64.lintian-overrides 
wireless-tools-30~pre9/debian/libiw30t64.lintian-overrides
--- wireless-tools-30~pre9/debian/libiw30t64.lintian-overrides  2024-02-04 
21:34:45.0 +0100
+++ wireless-tools-30~pre9/debian/libiw30t64.lintian-overrides  2024-02-06 
07:33:48.0 +0100
@@ -1 +1,5 @@
 libiw30t64: package-name-doesnt-match-sonames libiw30
+# begin-remove-after: released:trixie
+# DEP17 protective diversion
+diversion-for-unknown-file lib/x86_64-linux-gnu/libiw.so.30 [preinst:*]
+# end-remove-after
diff --minimal -Nru wireless-tools-30~pre9/debian/libiw30t64.postinst.in 
wireless-tools-30~pre9/debian/libiw30t64.postinst.in
--- wireless-tools-30~pre9/debian/libiw30t64.postinst.in1970-01-01 
01:00:00.0 +0100
+++ wireless-tools-30~pre9/debian/libiw30t64.postinst.in2024-02-06 
07:29:28.0 +0100
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+
+# begin-remove-after: released:trixie
+if [ "$1" = configure ]; then
+   dpkg-divert --package libiw30t64 --no-rename --remove --divert 
"/lib/#DEB_HOST_MULTIARCH#/libiw.so.30.usr-is-merged" 
"/lib/#DEB_HOST_MULTIARCH#/libiw.so.30"
+fi
+# end-remove-after
+
+#DEBHELPER#
+
+exit 0
diff --minimal -Nru wireless-tools-30~pre9/debian/libiw30t64.preinst.in 
wireless-tools-30~pre9/debian/libiw30t64.preinst.in
--- wireless-tools-30~pre9/debian/libiw30t64.preinst.in 1970-01-01 
01:00:00.0 +0100
+++ wireless-tools-30~pre9/debian/libiw30t64.preinst.in 2024-02-06 
07:29:30.0 +0100
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+
+# begin-remove-after: released:trixie
+if [ "$1" = install ]; then
+   dpkg-divert --package libiw30t64 --no-rename --add --divert 
"/lib/#DEB_HOST_MULTIARCH#/libiw.so.30.usr-is-merged" 
"/lib/#DEB_HOST_MULTIARCH#/libiw.so.30"
+fi
+# end-remove-after
+
+#DEBHELPER#
+
+exit 0
diff --minimal -Nru wireless-tools-30~pre9/debian/rules 
wireless-tools-30~pre9/debian/rules
--- wireless-tools-30~pre9/debian/rules 2023-11-28 01:03:11.0 +0100
+++ wireless-tools-30~pre9/debian/rules 2024-02-06 07:33:39.0 +0100
@@ -19,3 +19,8 @@
 
 override_dh_installudev:
dh_installudev --priority=19
+
+debian/%:debian/%.in
+   sed -e 's/#DEB_HOST_MULTIARCH#/$(DEB_HOST_MULTIARCH)/g' $< > $@
+
+execute_before_dh_installdeb:debian/libiw30t64.preinst 
debian/libiw30t64.postinst


Bug#1063323: libiw30t64: file loss due to /usr-move (DEP17)

2024-02-05 Thread Helmut Grohne
Package: libiw30t64
Version: 30~pre9-16.1~exp1
Severity: serious
Tags: patch
User: helm...@debian.org
Usertags: dep17p1
Control: affects -1 + libiw30
X-Debbugs-Cc: vor...@debian.org

Installing libiw30t64 may cause file loss in an upgrade scenario.
Reproducer:

mmdebstrap --variant=apt --verbose bookworm /dev/null "deb 
http://deb.debian.org/debian bookworm main" "deb http://deb.debian.org/debian 
experimental main" --include=wireless-tools --chrooted-customize-hook="apt-get 
download libiw30t64" --chrooted-customize-hook="echo libiw30 deinstall | dpkg 
--set-selections" --chrooted-customize-hook="dpkg --auto-deconfigure --unpack 
*.deb" --chrooted-customize-hook="dpkg --configure -a" 
--chrooted-customize-hook="dpkg -r libiw30" --chrooted-customize-hook="! dpkg 
--verify | grep ."

I'm attaching a patch for your convenience. I consider that libiw30 is
not as central as other packages and hence propose employing Conflicts
here. Conflicts allow removing the protective diversion in trixie's
postinst rather than forky's postinst already.

Helmut
diff --minimal -Nru wireless-tools-30~pre9/debian/changelog 
wireless-tools-30~pre9/debian/changelog
--- wireless-tools-30~pre9/debian/changelog 2024-02-04 21:34:45.0 
+0100
+++ wireless-tools-30~pre9/debian/changelog 2024-02-06 07:33:48.0 
+0100
@@ -1,3 +1,9 @@
+wireless-tools (30~pre9-16.1~exp2) UNRELEASED; urgency=medium
+
+  * Fix /usr-move file loss. (Closes: #-1)
+
+ -- Helmut Grohne   Tue, 06 Feb 2024 07:33:48 +0100
+
 wireless-tools (30~pre9-16.1~exp1) experimental; urgency=medium
 
   * Non-maintainer upload.
diff --minimal -Nru wireless-tools-30~pre9/debian/clean 
wireless-tools-30~pre9/debian/clean
--- wireless-tools-30~pre9/debian/clean 1970-01-01 01:00:00.0 +0100
+++ wireless-tools-30~pre9/debian/clean 2024-02-06 07:33:30.0 +0100
@@ -0,0 +1,2 @@
+debian/libiw30t64.preinst
+debian/libiw30t64.postinst
diff --minimal -Nru wireless-tools-30~pre9/debian/control 
wireless-tools-30~pre9/debian/control
--- wireless-tools-30~pre9/debian/control   2024-02-04 21:34:45.0 
+0100
+++ wireless-tools-30~pre9/debian/control   2024-02-06 07:31:36.0 
+0100
@@ -31,8 +31,7 @@
 
 Package: libiw30t64
 Provides: ${t64:Provides}
-Replaces: libiw30
-Breaks: libiw30 (<< ${source:Version})
+Conflicts: libiw30
 Section: libs
 Architecture: linux-any
 Multi-Arch: same
diff --minimal -Nru wireless-tools-30~pre9/debian/libiw30t64.lintian-overrides 
wireless-tools-30~pre9/debian/libiw30t64.lintian-overrides
--- wireless-tools-30~pre9/debian/libiw30t64.lintian-overrides  2024-02-04 
21:34:45.0 +0100
+++ wireless-tools-30~pre9/debian/libiw30t64.lintian-overrides  2024-02-06 
07:33:48.0 +0100
@@ -1 +1,5 @@
 libiw30t64: package-name-doesnt-match-sonames libiw30
+# begin-remove-after: released:trixie
+# DEP17 protective diversion
+diversion-for-unknown-file lib/x86_64-linux-gnu/libiw.so.30 [preinst:*]
+# end-remove-after
diff --minimal -Nru wireless-tools-30~pre9/debian/libiw30t64.postinst.in 
wireless-tools-30~pre9/debian/libiw30t64.postinst.in
--- wireless-tools-30~pre9/debian/libiw30t64.postinst.in1970-01-01 
01:00:00.0 +0100
+++ wireless-tools-30~pre9/debian/libiw30t64.postinst.in2024-02-06 
07:29:28.0 +0100
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+
+# begin-remove-after: released:trixie
+if [ "$1" = configure ]; then
+   dpkg-divert --package libiw30t64 --no-rename --remove --divert 
"/lib/#DEB_HOST_MULTIARCH#/libiw.so.30.usr-is-merged" 
"/lib/#DEB_HOST_MULTIARCH#/libiw.so.30"
+fi
+# end-remove-after
+
+#DEBHELPER#
+
+exit 0
diff --minimal -Nru wireless-tools-30~pre9/debian/libiw30t64.preinst.in 
wireless-tools-30~pre9/debian/libiw30t64.preinst.in
--- wireless-tools-30~pre9/debian/libiw30t64.preinst.in 1970-01-01 
01:00:00.0 +0100
+++ wireless-tools-30~pre9/debian/libiw30t64.preinst.in 2024-02-06 
07:29:30.0 +0100
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+
+# begin-remove-after: released:trixie
+if [ "$1" = install ]; then
+   dpkg-divert --package libiw30t64 --no-rename --add --divert 
"/lib/#DEB_HOST_MULTIARCH#/libiw.so.30.usr-is-merged" 
"/lib/#DEB_HOST_MULTIARCH#/libiw.so.30"
+fi
+# end-remove-after
+
+#DEBHELPER#
+
+exit 0
diff --minimal -Nru wireless-tools-30~pre9/debian/rules 
wireless-tools-30~pre9/debian/rules
--- wireless-tools-30~pre9/debian/rules 2023-11-28 01:03:11.0 +0100
+++ wireless-tools-30~pre9/debian/rules 2024-02-06 07:33:39.0 +0100
@@ -19,3 +19,8 @@
 
 override_dh_installudev:
dh_installudev --priority=19
+
+debian/%:debian/%.in
+   sed -e 's/#DEB_HOST_MULTIARCH#/$(DEB_HOST_MULTIARCH)/g' $< > $@
+
+execute_before_dh_installdeb:debian/libiw30t64.preinst 
debian/libiw30t64.postinst