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

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
discover 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 discover
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'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 6.5.0-15-generic (SMP w/16 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
diff -Nru discover-2.1.2/debian/changelog discover-2.1.2/debian/changelog
--- discover-2.1.2/debian/changelog     2022-01-09 07:48:08.000000000 +0000
+++ discover-2.1.2/debian/changelog     2024-02-01 04:30:47.000000000 +0000
@@ -1,3 +1,10 @@
+discover (2.1.2-10.1) experimental; urgency=medium
+
+  * Non-maintainer upload.
+  * Rename libraries for 64-bit time_t transition.
+
+ -- Michael Hudson-Doyle <mwhud...@debian.org>  Thu, 01 Feb 2024 04:30:47 +0000
+
 discover (2.1.2-10) unstable; urgency=medium
 
   * Modernize packaging a little:
diff -Nru discover-2.1.2/debian/control discover-2.1.2/debian/control
--- discover-2.1.2/debian/control       2022-01-09 07:30:59.000000000 +0000
+++ discover-2.1.2/debian/control       2024-02-01 04:30:46.000000000 +0000
@@ -10,17 +10,20 @@
 
 Package: discover
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, libdiscover2 (= ${binary:Version})
+Depends: ${shlibs:Depends}, ${misc:Depends}, libdiscover2t64 (= 
${binary:Version})
 Suggests: lsb-base
 Conflicts: discover1 (<< 2.0)
 Description: hardware identification system
- Discover is a hardware identification system based on the libdiscover2
+ Discover is a hardware identification system based on the libdiscover2t64
  library.  Discover provides a flexible interface that programs can
  use to report a wide range of information about the hardware that is
  installed on a Linux system.  In addition to reporting information,
  Discover includes support for doing hardware detection at boot time.
 
-Package: libdiscover2
+Package: libdiscover2t64
+Provides: ${t64:Provides}
+Replaces: libdiscover2
+Breaks: libdiscover2 (<< ${source:Version})
 Section: libs
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}, discover-data (>> 2.2004.04)
@@ -32,7 +35,7 @@
 Package: libdiscover-dev
 Section: libdevel
 Architecture: any
-Depends: ${misc:Depends}, libdiscover2 (= ${binary:Version}), libexpat1-dev
+Depends: ${misc:Depends}, libdiscover2t64 (= ${binary:Version}), libexpat1-dev
 Description: hardware identification library development files
  libdiscover is a library enabling identification of various PCI,
  PCMCIA, and USB devices.
diff -Nru discover-2.1.2/debian/libdiscover2.docs 
discover-2.1.2/debian/libdiscover2.docs
--- discover-2.1.2/debian/libdiscover2.docs     2022-01-09 06:08:06.000000000 
+0000
+++ discover-2.1.2/debian/libdiscover2.docs     1970-01-01 00:00:00.000000000 
+0000
@@ -1,3 +0,0 @@
-AUTHORS
-README
-RELEASE
diff -Nru discover-2.1.2/debian/libdiscover2.install 
discover-2.1.2/debian/libdiscover2.install
--- discover-2.1.2/debian/libdiscover2.install  2022-01-09 07:46:15.000000000 
+0000
+++ discover-2.1.2/debian/libdiscover2.install  1970-01-01 00:00:00.000000000 
+0000
@@ -1,7 +0,0 @@
-usr/share/discover/dtd/discover.dtd
-usr/share/discover/dtd/conffile.dtd
-usr/share/doc/discover/guide.html
-usr/share/doc/discover/guide.txt
-usr/share/man/man5/discover.conf.5
-usr/lib/*/libdiscover.so.2*
-etc/discover.conf.d/00discover
diff -Nru discover-2.1.2/debian/libdiscover2.preinst 
discover-2.1.2/debian/libdiscover2.preinst
--- discover-2.1.2/debian/libdiscover2.preinst  2022-01-09 06:08:06.000000000 
+0000
+++ discover-2.1.2/debian/libdiscover2.preinst  1970-01-01 00:00:00.000000000 
+0000
@@ -1,44 +0,0 @@
-#!/bin/sh
-
-# $Progeny$
-
-# Copyright 2004 Progeny Linux Systems, Inc.
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-# THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-# DEALINGS IN THE SOFTWARE.
-
-set -e
-
-#DEBHELPER#
-
-# Deal with /etc/discover.conf.
-
-if [ -f /etc/discover.conf ]; then
-    if [ `fgrep '<conffile>' /etc/discover.conf | wc -l` -gt 0 ]; then
-        # Discover 2 conffile; move it to the new location.
-        if [ -f /etc/discover.conf.d/00discover ]; then
-            mv /etc/discover.conf /etc/discover.conf.d/00discover.dpkg-old
-        else
-            mkdir -p /etc/discover.conf.d
-            mv /etc/discover.conf /etc/discover.conf.d/00discover
-        fi
-    else
-        # Discover 1 conffile; prepare it for migration.
-        mv /etc/discover.conf /etc/discover-v1.conf
-    fi
-fi
diff -Nru discover-2.1.2/debian/libdiscover2.shlibs 
discover-2.1.2/debian/libdiscover2.shlibs
--- discover-2.1.2/debian/libdiscover2.shlibs   2022-01-09 06:08:06.000000000 
+0000
+++ discover-2.1.2/debian/libdiscover2.shlibs   1970-01-01 00:00:00.000000000 
+0000
@@ -1 +0,0 @@
-libdiscover 2 libdiscover2 (>= 2.0.7)
diff -Nru discover-2.1.2/debian/libdiscover2t64.docs 
discover-2.1.2/debian/libdiscover2t64.docs
--- discover-2.1.2/debian/libdiscover2t64.docs  1970-01-01 00:00:00.000000000 
+0000
+++ discover-2.1.2/debian/libdiscover2t64.docs  2022-01-09 06:08:06.000000000 
+0000
@@ -0,0 +1,3 @@
+AUTHORS
+README
+RELEASE
diff -Nru discover-2.1.2/debian/libdiscover2t64.install 
discover-2.1.2/debian/libdiscover2t64.install
--- discover-2.1.2/debian/libdiscover2t64.install       1970-01-01 
00:00:00.000000000 +0000
+++ discover-2.1.2/debian/libdiscover2t64.install       2022-01-09 
07:46:15.000000000 +0000
@@ -0,0 +1,7 @@
+usr/share/discover/dtd/discover.dtd
+usr/share/discover/dtd/conffile.dtd
+usr/share/doc/discover/guide.html
+usr/share/doc/discover/guide.txt
+usr/share/man/man5/discover.conf.5
+usr/lib/*/libdiscover.so.2*
+etc/discover.conf.d/00discover
diff -Nru discover-2.1.2/debian/libdiscover2t64.lintian-overrides 
discover-2.1.2/debian/libdiscover2t64.lintian-overrides
--- discover-2.1.2/debian/libdiscover2t64.lintian-overrides     1970-01-01 
00:00:00.000000000 +0000
+++ discover-2.1.2/debian/libdiscover2t64.lintian-overrides     2024-02-01 
04:30:46.000000000 +0000
@@ -0,0 +1 @@
+libdiscover2t64: package-name-doesnt-match-sonames libdiscover2
diff -Nru discover-2.1.2/debian/libdiscover2t64.preinst 
discover-2.1.2/debian/libdiscover2t64.preinst
--- discover-2.1.2/debian/libdiscover2t64.preinst       1970-01-01 
00:00:00.000000000 +0000
+++ discover-2.1.2/debian/libdiscover2t64.preinst       2022-01-09 
06:08:06.000000000 +0000
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+# $Progeny$
+
+# Copyright 2004 Progeny Linux Systems, Inc.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+
+set -e
+
+#DEBHELPER#
+
+# Deal with /etc/discover.conf.
+
+if [ -f /etc/discover.conf ]; then
+    if [ `fgrep '<conffile>' /etc/discover.conf | wc -l` -gt 0 ]; then
+        # Discover 2 conffile; move it to the new location.
+        if [ -f /etc/discover.conf.d/00discover ]; then
+            mv /etc/discover.conf /etc/discover.conf.d/00discover.dpkg-old
+        else
+            mkdir -p /etc/discover.conf.d
+            mv /etc/discover.conf /etc/discover.conf.d/00discover
+        fi
+    else
+        # Discover 1 conffile; prepare it for migration.
+        mv /etc/discover.conf /etc/discover-v1.conf
+    fi
+fi
diff -Nru discover-2.1.2/debian/libdiscover2t64.shlibs 
discover-2.1.2/debian/libdiscover2t64.shlibs
--- discover-2.1.2/debian/libdiscover2t64.shlibs        1970-01-01 
00:00:00.000000000 +0000
+++ discover-2.1.2/debian/libdiscover2t64.shlibs        2024-02-01 
04:30:46.000000000 +0000
@@ -0,0 +1 @@
+libdiscover 2 libdiscover2t64 (>= 2.0.7)

Reply via email to