Source: libsigrok
Version: 0.5.2-5
Severity: serious
Tags: patch pending
Justification: library ABI skew on upgrade
User: debian-...@lists.debian.org
Usertags: time-t

NOTICE: these changes must not be uploaded to unstable yet!

Dear maintainer,

As part of the 64-bit time_t transition required to support 32-bit
architectures in 2038 and beyond
(https://wiki.debian.org/ReleaseGoals/64bit-time), we have identified
libsigrok as a source package shipping runtime libraries whose ABI
either is affected by the change in size of time_t, or could not be
analyzed via abi-compliance-checker (and therefore to be on the safe
side we assume is affected).

To ensure that inconsistent combinations of libraries with their
reverse-dependencies are never installed together, it is necessary to
have a library transition, which is most easily done by renaming the
runtime library package.

Since turning on 64-bit time_t is being handled centrally through a change
to the default dpkg-buildflags (https://bugs.debian.org/1037136), it is
important that libraries affected by this ABI change all be uploaded close
together in time.  Therefore I have prepared a 0-day NMU for libsigrok
which will initially be uploaded to experimental if possible, then to
unstable after packages have cleared binary NEW.

Please find the patch for this NMU attached.

If you have any concerns about this patch, please reach out ASAP.  Although
this package will be uploaded to experimental immediately, there will be a
period of several days before we begin uploads to unstable; so if information
becomes available that your package should not be included in the transition,
there is time for us to amend the planned uploads.



-- System Information:
Debian Release: trixie/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 6.5.0-14-generic (SMP w/12 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE
Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
diff -Nru libsigrok-0.5.2/debian/changelog libsigrok-0.5.2/debian/changelog
--- libsigrok-0.5.2/debian/changelog    2023-12-03 19:43:23.000000000 +0000
+++ libsigrok-0.5.2/debian/changelog    2024-02-02 07:35:03.000000000 +0000
@@ -1,3 +1,10 @@
+libsigrok (0.5.2-5.1) experimental; urgency=medium
+
+  * Non-maintainer upload.
+  * Rename libraries for 64-bit time_t transition.
+
+ -- Steve Langasek <vor...@debian.org>  Fri, 02 Feb 2024 07:35:03 +0000
+
 libsigrok (0.5.2-5) unstable; urgency=medium
 
   [ Debian Janitor ]
diff -Nru libsigrok-0.5.2/debian/control libsigrok-0.5.2/debian/control
--- libsigrok-0.5.2/debian/control      2023-12-03 18:34:52.000000000 +0000
+++ libsigrok-0.5.2/debian/control      2024-02-02 07:35:03.000000000 +0000
@@ -26,7 +26,7 @@
 Section: libdevel
 Architecture: any
 Multi-Arch: same
-Depends: libsigrok4 (= ${binary:Version}), ${misc:Depends},
+Depends: libsigrok4t64 (= ${binary:Version}), ${misc:Depends},
        libbluetooth-dev,
        libftdi1-dev,
        libglib2.0-dev,
@@ -40,7 +40,10 @@
  .
  This package contains the header files and other development files.
 
-Package: libsigrok4
+Package: libsigrok4t64
+Provides: ${t64:Provides}
+Replaces: libsigrok4
+Breaks: libsigrok4 (<< ${source:Version})
 Architecture: any
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
@@ -55,7 +58,7 @@
 Section: libdevel
 Architecture: any
 Multi-Arch: same
-Depends: libsigrokcxx4 (= ${binary:Version}),
+Depends: libsigrokcxx4t64 (= ${binary:Version}),
  libsigrok-dev (= ${binary:Version}),
  ${misc:Depends}
 Description: sigrok C++ bindings - development files
@@ -64,7 +67,10 @@
  .
  This package contains the C++ header files and other development files.
 
-Package: libsigrokcxx4
+Package: libsigrokcxx4t64
+Provides: ${t64:Provides}
+Replaces: libsigrokcxx4
+Breaks: libsigrokcxx4 (<< ${source:Version})
 Architecture: any
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
diff -Nru libsigrok-0.5.2/debian/libsigrok4.dirs 
libsigrok-0.5.2/debian/libsigrok4.dirs
--- libsigrok-0.5.2/debian/libsigrok4.dirs      2023-12-03 18:34:52.000000000 
+0000
+++ libsigrok-0.5.2/debian/libsigrok4.dirs      1970-01-01 00:00:00.000000000 
+0000
@@ -1,2 +0,0 @@
-usr/lib
-usr/share
diff -Nru libsigrok-0.5.2/debian/libsigrok4.docs 
libsigrok-0.5.2/debian/libsigrok4.docs
--- libsigrok-0.5.2/debian/libsigrok4.docs      2023-12-03 18:34:52.000000000 
+0000
+++ libsigrok-0.5.2/debian/libsigrok4.docs      1970-01-01 00:00:00.000000000 
+0000
@@ -1,3 +0,0 @@
-NEWS
-README
-README.devices
diff -Nru libsigrok-0.5.2/debian/libsigrok4.install 
libsigrok-0.5.2/debian/libsigrok4.install
--- libsigrok-0.5.2/debian/libsigrok4.install   2023-12-03 18:34:52.000000000 
+0000
+++ libsigrok-0.5.2/debian/libsigrok4.install   1970-01-01 00:00:00.000000000 
+0000
@@ -1,4 +0,0 @@
-usr/lib/udev/rules.d/*sigrok*
-usr/lib/*/libsigrok.so.*
-usr/share/icons/hicolor/*/mimetypes/libsigrok.*
-usr/share/mime/packages/*sigrok*
diff -Nru libsigrok-0.5.2/debian/libsigrok4.lintian-overrides 
libsigrok-0.5.2/debian/libsigrok4.lintian-overrides
--- libsigrok-0.5.2/debian/libsigrok4.lintian-overrides 2023-12-03 
18:34:52.000000000 +0000
+++ libsigrok-0.5.2/debian/libsigrok4.lintian-overrides 1970-01-01 
00:00:00.000000000 +0000
@@ -1,6 +0,0 @@
-# begin-remove-after: released:forky
-# protective diversion for upgrades of files moved from / to /usr
-libsigrok4: diversion-for-unknown-file lib/udev/rules.d/60-libsigrok.rules 
[preinst:*]
-libsigrok4: diversion-for-unknown-file 
lib/udev/rules.d/61-libsigrok-plugdev.rules [preinst:*]
-libsigrok4: diversion-for-unknown-file 
lib/udev/rules.d/61-libsigrok-uaccess.rules [preinst:*]
-# end-remove-after
diff -Nru libsigrok-0.5.2/debian/libsigrok4.postinst 
libsigrok-0.5.2/debian/libsigrok4.postinst
--- libsigrok-0.5.2/debian/libsigrok4.postinst  2023-12-03 18:34:52.000000000 
+0000
+++ libsigrok-0.5.2/debian/libsigrok4.postinst  1970-01-01 00:00:00.000000000 
+0000
@@ -1,23 +0,0 @@
-#!/bin/sh
-set -e
-
-# begin-remove-after: released:forky
-# protective diversion of files moved from / to /usr, to avoid file loss.
-# Only for upgrades.
-if [ "$1" = "configure" ]; then
-    # At this point, the package will have installed the same file in */usr*.
-    dpkg-divert --package usr-is-merged --no-rename \
-        --divert /lib/udev/rules.d/60-libsigrok.rules.usr-is-merged \
-        --remove /lib/udev/rules.d/60-libsigrok.rules
-    dpkg-divert --package usr-is-merged --no-rename \
-        --divert /lib/udev/rules.d/61-libsigrok-plugdev.rules.usr-is-merged \
-        --remove /lib/udev/rules.d/61-libsigrok-plugdev.rules
-    dpkg-divert --package usr-is-merged --no-rename \
-        --divert /lib/udev/rules.d/61-libsigrok-uaccess.rules.usr-is-merged \
-        --remove /lib/udev/rules.d/61-libsigrok-uaccess.rules
-fi
-# end-remove-after
-
-#DEBHELPER#
-
-exit 0
diff -Nru libsigrok-0.5.2/debian/libsigrok4.postrm 
libsigrok-0.5.2/debian/libsigrok4.postrm
--- libsigrok-0.5.2/debian/libsigrok4.postrm    2023-12-03 18:34:52.000000000 
+0000
+++ libsigrok-0.5.2/debian/libsigrok4.postrm    1970-01-01 00:00:00.000000000 
+0000
@@ -1,23 +0,0 @@
-#!/bin/sh
-set -e
-
-# begin-remove-after: released:forky
-# protective diversion of files moved from / to /usr, to avoid file loss.
-# Only for upgrades.
-if [ "$1" = "remove" ] && [ "$DPKG_MAINTSCRIPT_PACKAGE_REFCOUNT" = "1" ]; then
-    # Cleanup in case package is removed before upgrade is finished (postinst 
ran).
-    dpkg-divert --package usr-is-merged --no-rename \
-        --divert /lib/udev/rules.d/60-libsigrok.rules.usr-is-merged \
-        --remove /lib/udev/rules.d/60-libsigrok.rules
-    dpkg-divert --package usr-is-merged --no-rename \
-        --divert /lib/udev/rules.d/61-libsigrok-plugdev.rules.usr-is-merged \
-        --remove /lib/udev/rules.d/61-libsigrok-plugdev.rules
-    dpkg-divert --package usr-is-merged --no-rename \
-        --divert /lib/udev/rules.d/61-libsigrok-uaccess.rules.usr-is-merged \
-        --remove /lib/udev/rules.d/61-libsigrok-uaccess.rules
-fi
-# end-remove-after
-
-#DEBHELPER#
-
-exit 0
diff -Nru libsigrok-0.5.2/debian/libsigrok4.preinst 
libsigrok-0.5.2/debian/libsigrok4.preinst
--- libsigrok-0.5.2/debian/libsigrok4.preinst   2023-12-03 18:34:52.000000000 
+0000
+++ libsigrok-0.5.2/debian/libsigrok4.preinst   1970-01-01 00:00:00.000000000 
+0000
@@ -1,22 +0,0 @@
-#!/bin/sh
-set -e
-
-# begin-remove-after: released:forky
-# protective diversion of files moved from / to /usr, to avoid file loss.
-# Only for upgrades.
-if [ "$1" = "upgrade" ]; then
-    dpkg-divert --package usr-is-merged --no-rename \
-        --divert /lib/udev/rules.d/60-libsigrok.rules.usr-is-merged \
-        --add /lib/udev/rules.d/60-libsigrok.rules
-    dpkg-divert --package usr-is-merged --no-rename \
-        --divert /lib/udev/rules.d/61-libsigrok-plugdev.rules.usr-is-merged \
-        --add /lib/udev/rules.d/61-libsigrok-plugdev.rules
-    dpkg-divert --package usr-is-merged --no-rename \
-        --divert /lib/udev/rules.d/61-libsigrok-uaccess.rules.usr-is-merged \
-        --add /lib/udev/rules.d/61-libsigrok-uaccess.rules
-fi
-# end-remove-after
-
-#DEBHELPER#
-
-exit 0
diff -Nru libsigrok-0.5.2/debian/libsigrok4t64.dirs 
libsigrok-0.5.2/debian/libsigrok4t64.dirs
--- libsigrok-0.5.2/debian/libsigrok4t64.dirs   1970-01-01 00:00:00.000000000 
+0000
+++ libsigrok-0.5.2/debian/libsigrok4t64.dirs   2023-12-03 18:34:52.000000000 
+0000
@@ -0,0 +1,2 @@
+usr/lib
+usr/share
diff -Nru libsigrok-0.5.2/debian/libsigrok4t64.docs 
libsigrok-0.5.2/debian/libsigrok4t64.docs
--- libsigrok-0.5.2/debian/libsigrok4t64.docs   1970-01-01 00:00:00.000000000 
+0000
+++ libsigrok-0.5.2/debian/libsigrok4t64.docs   2023-12-03 18:34:52.000000000 
+0000
@@ -0,0 +1,3 @@
+NEWS
+README
+README.devices
diff -Nru libsigrok-0.5.2/debian/libsigrok4t64.install 
libsigrok-0.5.2/debian/libsigrok4t64.install
--- libsigrok-0.5.2/debian/libsigrok4t64.install        1970-01-01 
00:00:00.000000000 +0000
+++ libsigrok-0.5.2/debian/libsigrok4t64.install        2023-12-03 
18:34:52.000000000 +0000
@@ -0,0 +1,4 @@
+usr/lib/udev/rules.d/*sigrok*
+usr/lib/*/libsigrok.so.*
+usr/share/icons/hicolor/*/mimetypes/libsigrok.*
+usr/share/mime/packages/*sigrok*
diff -Nru libsigrok-0.5.2/debian/libsigrok4t64.lintian-overrides 
libsigrok-0.5.2/debian/libsigrok4t64.lintian-overrides
--- libsigrok-0.5.2/debian/libsigrok4t64.lintian-overrides      1970-01-01 
00:00:00.000000000 +0000
+++ libsigrok-0.5.2/debian/libsigrok4t64.lintian-overrides      2024-02-02 
07:35:03.000000000 +0000
@@ -0,0 +1,7 @@
+# begin-remove-after: released:forky
+# protective diversion for upgrades of files moved from / to /usr
+libsigrok4t64: diversion-for-unknown-file lib/udev/rules.d/60-libsigrok.rules 
[preinst:*]
+libsigrok4t64: diversion-for-unknown-file 
lib/udev/rules.d/61-libsigrok-plugdev.rules [preinst:*]
+libsigrok4t64: diversion-for-unknown-file 
lib/udev/rules.d/61-libsigrok-uaccess.rules [preinst:*]
+# end-remove-after
+libsigrok4t64: package-name-doesnt-match-sonames libsigrok4
diff -Nru libsigrok-0.5.2/debian/libsigrok4t64.postinst 
libsigrok-0.5.2/debian/libsigrok4t64.postinst
--- libsigrok-0.5.2/debian/libsigrok4t64.postinst       1970-01-01 
00:00:00.000000000 +0000
+++ libsigrok-0.5.2/debian/libsigrok4t64.postinst       2023-12-03 
18:34:52.000000000 +0000
@@ -0,0 +1,23 @@
+#!/bin/sh
+set -e
+
+# begin-remove-after: released:forky
+# protective diversion of files moved from / to /usr, to avoid file loss.
+# Only for upgrades.
+if [ "$1" = "configure" ]; then
+    # At this point, the package will have installed the same file in */usr*.
+    dpkg-divert --package usr-is-merged --no-rename \
+        --divert /lib/udev/rules.d/60-libsigrok.rules.usr-is-merged \
+        --remove /lib/udev/rules.d/60-libsigrok.rules
+    dpkg-divert --package usr-is-merged --no-rename \
+        --divert /lib/udev/rules.d/61-libsigrok-plugdev.rules.usr-is-merged \
+        --remove /lib/udev/rules.d/61-libsigrok-plugdev.rules
+    dpkg-divert --package usr-is-merged --no-rename \
+        --divert /lib/udev/rules.d/61-libsigrok-uaccess.rules.usr-is-merged \
+        --remove /lib/udev/rules.d/61-libsigrok-uaccess.rules
+fi
+# end-remove-after
+
+#DEBHELPER#
+
+exit 0
diff -Nru libsigrok-0.5.2/debian/libsigrok4t64.postrm 
libsigrok-0.5.2/debian/libsigrok4t64.postrm
--- libsigrok-0.5.2/debian/libsigrok4t64.postrm 1970-01-01 00:00:00.000000000 
+0000
+++ libsigrok-0.5.2/debian/libsigrok4t64.postrm 2023-12-03 18:34:52.000000000 
+0000
@@ -0,0 +1,23 @@
+#!/bin/sh
+set -e
+
+# begin-remove-after: released:forky
+# protective diversion of files moved from / to /usr, to avoid file loss.
+# Only for upgrades.
+if [ "$1" = "remove" ] && [ "$DPKG_MAINTSCRIPT_PACKAGE_REFCOUNT" = "1" ]; then
+    # Cleanup in case package is removed before upgrade is finished (postinst 
ran).
+    dpkg-divert --package usr-is-merged --no-rename \
+        --divert /lib/udev/rules.d/60-libsigrok.rules.usr-is-merged \
+        --remove /lib/udev/rules.d/60-libsigrok.rules
+    dpkg-divert --package usr-is-merged --no-rename \
+        --divert /lib/udev/rules.d/61-libsigrok-plugdev.rules.usr-is-merged \
+        --remove /lib/udev/rules.d/61-libsigrok-plugdev.rules
+    dpkg-divert --package usr-is-merged --no-rename \
+        --divert /lib/udev/rules.d/61-libsigrok-uaccess.rules.usr-is-merged \
+        --remove /lib/udev/rules.d/61-libsigrok-uaccess.rules
+fi
+# end-remove-after
+
+#DEBHELPER#
+
+exit 0
diff -Nru libsigrok-0.5.2/debian/libsigrok4t64.preinst 
libsigrok-0.5.2/debian/libsigrok4t64.preinst
--- libsigrok-0.5.2/debian/libsigrok4t64.preinst        1970-01-01 
00:00:00.000000000 +0000
+++ libsigrok-0.5.2/debian/libsigrok4t64.preinst        2023-12-03 
18:34:52.000000000 +0000
@@ -0,0 +1,22 @@
+#!/bin/sh
+set -e
+
+# begin-remove-after: released:forky
+# protective diversion of files moved from / to /usr, to avoid file loss.
+# Only for upgrades.
+if [ "$1" = "upgrade" ]; then
+    dpkg-divert --package usr-is-merged --no-rename \
+        --divert /lib/udev/rules.d/60-libsigrok.rules.usr-is-merged \
+        --add /lib/udev/rules.d/60-libsigrok.rules
+    dpkg-divert --package usr-is-merged --no-rename \
+        --divert /lib/udev/rules.d/61-libsigrok-plugdev.rules.usr-is-merged \
+        --add /lib/udev/rules.d/61-libsigrok-plugdev.rules
+    dpkg-divert --package usr-is-merged --no-rename \
+        --divert /lib/udev/rules.d/61-libsigrok-uaccess.rules.usr-is-merged \
+        --add /lib/udev/rules.d/61-libsigrok-uaccess.rules
+fi
+# end-remove-after
+
+#DEBHELPER#
+
+exit 0
diff -Nru libsigrok-0.5.2/debian/libsigrokcxx4.dirs 
libsigrok-0.5.2/debian/libsigrokcxx4.dirs
--- libsigrok-0.5.2/debian/libsigrokcxx4.dirs   2023-12-03 18:34:52.000000000 
+0000
+++ libsigrok-0.5.2/debian/libsigrokcxx4.dirs   1970-01-01 00:00:00.000000000 
+0000
@@ -1 +0,0 @@
-usr/lib
diff -Nru libsigrok-0.5.2/debian/libsigrokcxx4.install 
libsigrok-0.5.2/debian/libsigrokcxx4.install
--- libsigrok-0.5.2/debian/libsigrokcxx4.install        2023-12-03 
18:34:52.000000000 +0000
+++ libsigrok-0.5.2/debian/libsigrokcxx4.install        1970-01-01 
00:00:00.000000000 +0000
@@ -1 +0,0 @@
-usr/lib/*/libsigrokcxx.so.*
diff -Nru libsigrok-0.5.2/debian/libsigrokcxx4t64.dirs 
libsigrok-0.5.2/debian/libsigrokcxx4t64.dirs
--- libsigrok-0.5.2/debian/libsigrokcxx4t64.dirs        1970-01-01 
00:00:00.000000000 +0000
+++ libsigrok-0.5.2/debian/libsigrokcxx4t64.dirs        2023-12-03 
18:34:52.000000000 +0000
@@ -0,0 +1 @@
+usr/lib
diff -Nru libsigrok-0.5.2/debian/libsigrokcxx4t64.install 
libsigrok-0.5.2/debian/libsigrokcxx4t64.install
--- libsigrok-0.5.2/debian/libsigrokcxx4t64.install     1970-01-01 
00:00:00.000000000 +0000
+++ libsigrok-0.5.2/debian/libsigrokcxx4t64.install     2023-12-03 
18:34:52.000000000 +0000
@@ -0,0 +1 @@
+usr/lib/*/libsigrokcxx.so.*
diff -Nru libsigrok-0.5.2/debian/libsigrokcxx4t64.lintian-overrides 
libsigrok-0.5.2/debian/libsigrokcxx4t64.lintian-overrides
--- libsigrok-0.5.2/debian/libsigrokcxx4t64.lintian-overrides   1970-01-01 
00:00:00.000000000 +0000
+++ libsigrok-0.5.2/debian/libsigrokcxx4t64.lintian-overrides   2024-02-02 
07:35:03.000000000 +0000
@@ -0,0 +1 @@
+libsigrokcxx4t64: package-name-doesnt-match-sonames libsigrokcxx4

Reply via email to