Dear maintainer, Please find attached a final version of this patch for the time_t transition. This patch is being uploaded to unstable.
Note that this adds a versioned build-dependency on dpkg-dev, to guard against accidental backports with a wrong ABI. Thanks! On Mon, Feb 05, 2024 at 03:58:23AM +0000, Steve Langasek wrote: > Source: swi-prolog > Version: 1:5.107.0-1 > Severity: serious > Tags: patch sid trixie > 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 > swi-prolog as a source package shipping runtime libraries whose ABI could > not be analyzed via abi-compliance-checker (and therefore to be on the > safe side we assume is affected).[0] > > To ensure that inconsistent combinations of libraries with their > reverse-dependencies are never installed together, it is necessary to > have a library transition. In the case of swi-prolog, since shlibs point > to a virtual package (libswipl9), it is sufficient to change the Provides of > the runtime package without changing the actual binary package names. > > 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 swi-prolog, which I plan to upload to unstable once the necessary > dpkg changes have been made. > > Please find the patch for this NMU attached. > > If you have any concerns about this patch, please reach out ASAP. 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. > > Thanks, > -- > 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 > > [0] > https://adrien.dcln.fr/misc/armhf-time_t/2024-02-01T09:53:00/logs/swi-prolog-core/base/log.txt > diff -Nru swi-prolog-9.0.4+dfsg/debian/changelog > swi-prolog-9.0.4+dfsg/debian/changelog > --- swi-prolog-9.0.4+dfsg/debian/changelog 2023-11-20 01:24:18.000000000 > -0800 > +++ swi-prolog-9.0.4+dfsg/debian/changelog 2024-02-04 18:46:16.000000000 > -0800 > @@ -1,3 +1,10 @@ > +swi-prolog (9.0.4+dfsg-3.1) experimental; urgency=medium > + > + * Non-maintainer upload. > + * Adjust Provides for 64-bit time_t transition. > + > + -- Steve Langasek <vor...@debian.org> Mon, 05 Feb 2024 02:46:16 +0000 > + > swi-prolog (9.0.4+dfsg-3) unstable; urgency=medium > > * Add upstream patch bumping Java compatibility version > diff -Nru swi-prolog-9.0.4+dfsg/debian/control > swi-prolog-9.0.4+dfsg/debian/control > --- swi-prolog-9.0.4+dfsg/debian/control 2023-11-20 01:24:18.000000000 > -0800 > +++ swi-prolog-9.0.4+dfsg/debian/control 2024-02-04 18:42:29.000000000 > -0800 > @@ -107,7 +107,7 @@ > swi-prolog-abi-binary-${swi-prolog:BABI}, > swi-prolog-abi-qlf-${swi-prolog:QLF}, > swi-prolog-abi-states-${swi-prolog:SSTATES}, > - libswipl9 > + libswipl9t64, ${t64:Provides} > Description: ISO/Edinburgh-style Prolog interpreter - core system > SWI-Prolog is a fast and powerful ISO/Edinburgh-style Prolog compiler with a > rich set of built-in predicates. It offers a fast, robust and small > diff -Nru swi-prolog-9.0.4+dfsg/debian/rules > swi-prolog-9.0.4+dfsg/debian/rules > --- swi-prolog-9.0.4+dfsg/debian/rules 2023-11-20 01:24:18.000000000 > -0800 > +++ swi-prolog-9.0.4+dfsg/debian/rules 2024-02-04 18:45:32.000000000 > -0800 > @@ -6,6 +6,13 @@ > DPKG_EXPORT_BUILDFLAGS = 1 > include /usr/share/dpkg/buildflags.mk > > +DEB_HOST_ARCH_BITS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_BITS) > +DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) > + > +ifneq (,$(filter 64,$(DEB_HOST_ARCH_BITS))$(filter i386,$(DEB_HOST_ARCH))) > + t64_provides := libswipl9 > +endif > + > ifeq ($(DEB_BUILD_ARCH),riscv64) > DEB_LDFLAGS_MAINT_APPEND += -Wl,--no-as-needed -Wl,-latomic > -Wl,--as-needed > export DEB_LDFLAGS_MAINT_APPEND > @@ -114,7 +121,9 @@ > -cd build && ctest -V -E jpl: > > override_dh_gencontrol: > + echo 't64:Provides=$(t64_provides)' >> debian/swi-prolog-core.substvars > dh_gencontrol -- -Vswi-prolog:ABI="$(shell LD_LIBRARY_PATH=$(shell > dirname $(shell find debian/swi-prolog-core -name libswipl.so)) > debian/swi-prolog-core/usr/bin/swipl --abi-version | sed 's/.*-abi-//')" > -Vswi-prolog:FABI="$(shell LD_LIBRARY_PATH=$(shell dirname $(shell find > debian/swi-prolog-core -name libswipl.so)) > debian/swi-prolog-core/usr/bin/swipl --abi-version | sed 's/.*-abi-//' | cut > --delimiter=- -f 1)" -Vswi-prolog:BABI="$(shell LD_LIBRARY_PATH=$(shell > dirname $(shell find debian/swi-prolog-core -name libswipl.so)) > debian/swi-prolog-core/usr/bin/swipl --abi-version | sed 's/.*-abi-//' | cut > --delimiter=- -f 2)" -Vswi-prolog:QLF="$(shell LD_LIBRARY_PATH=$(shell > dirname $(shell find debian/swi-prolog-core -name libswipl.so)) > debian/swi-prolog-core/usr/bin/swipl --abi-version | sed 's/.*-abi-//' | cut > --delimiter=- -f 3)" -Vswi-prolog:SSTATES="$(shell LD_LIBRARY_PATH=$(shell > dirname $(shell find debian/swi-prolog-core -name libswipl.so)) > debian/swi-prolog-core/usr/bin/swipl --abi-version | sed 's/.*-abi-//' | cut > --delimiter=- -f 4)" > > .PHONY: override_dh_auto_configure override_dh_auto_install > override_dh_auto_test > .PHONY: override_dh_install override_dh_gencontrol > + -- 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 swi-prolog-9.0.4+dfsg/debian/changelog swi-prolog-9.0.4+dfsg/debian/changelog --- swi-prolog-9.0.4+dfsg/debian/changelog 2023-11-20 09:24:18.000000000 +0000 +++ swi-prolog-9.0.4+dfsg/debian/changelog 2024-03-02 06:10:07.000000000 +0000 @@ -1,3 +1,10 @@ +swi-prolog (9.0.4+dfsg-3.1) unstable; urgency=medium + + * Non-maintainer upload. + * Rename libraries for 64-bit time_t transition. Closes: #1063102. + + -- Steve Langasek <vor...@debian.org> Sat, 02 Mar 2024 06:10:07 +0000 + swi-prolog (9.0.4+dfsg-3) unstable; urgency=medium * Add upstream patch bumping Java compatibility version diff -Nru swi-prolog-9.0.4+dfsg/debian/control swi-prolog-9.0.4+dfsg/debian/control --- swi-prolog-9.0.4+dfsg/debian/control 2023-11-20 09:24:18.000000000 +0000 +++ swi-prolog-9.0.4+dfsg/debian/control 2024-03-02 06:09:37.000000000 +0000 @@ -6,6 +6,7 @@ dctrl-tools, debhelper-compat (= 13), default-jdk [alpha amd64 arm64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sh4 sparc64 x32], + dpkg-dev (>= 1.22.5), junit [alpha amd64 arm64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mips64el mipsel powerpc powerpcspe ppc64 ppc64el riscv64 s390x sh4 sparc64 x32], emacs-common, ncurses-dev, @@ -107,7 +108,7 @@ swi-prolog-abi-binary-${swi-prolog:BABI}, swi-prolog-abi-qlf-${swi-prolog:QLF}, swi-prolog-abi-states-${swi-prolog:SSTATES}, - libswipl9 + libswipl9t64, ${t64:Provides} Description: ISO/Edinburgh-style Prolog interpreter - core system SWI-Prolog is a fast and powerful ISO/Edinburgh-style Prolog compiler with a rich set of built-in predicates. It offers a fast, robust and small diff -Nru swi-prolog-9.0.4+dfsg/debian/rules swi-prolog-9.0.4+dfsg/debian/rules --- swi-prolog-9.0.4+dfsg/debian/rules 2023-11-20 09:24:18.000000000 +0000 +++ swi-prolog-9.0.4+dfsg/debian/rules 2024-02-22 04:28:53.000000000 +0000 @@ -6,6 +6,13 @@ DPKG_EXPORT_BUILDFLAGS = 1 include /usr/share/dpkg/buildflags.mk +DEB_HOST_ARCH_BITS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_BITS) +DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) + +ifneq (,$(filter 64,$(DEB_HOST_ARCH_BITS))$(filter i386,$(DEB_HOST_ARCH))) + t64_provides := libswipl9 +endif + ifeq ($(DEB_BUILD_ARCH),riscv64) DEB_LDFLAGS_MAINT_APPEND += -Wl,--no-as-needed -Wl,-latomic -Wl,--as-needed export DEB_LDFLAGS_MAINT_APPEND @@ -114,7 +121,9 @@ -cd build && ctest -V -E jpl: override_dh_gencontrol: + echo 't64:Provides=$(t64_provides)' >> debian/swi-prolog-core.substvars dh_gencontrol -- -Vswi-prolog:ABI="$(shell LD_LIBRARY_PATH=$(shell dirname $(shell find debian/swi-prolog-core -name libswipl.so)) debian/swi-prolog-core/usr/bin/swipl --abi-version | sed 's/.*-abi-//')" -Vswi-prolog:FABI="$(shell LD_LIBRARY_PATH=$(shell dirname $(shell find debian/swi-prolog-core -name libswipl.so)) debian/swi-prolog-core/usr/bin/swipl --abi-version | sed 's/.*-abi-//' | cut --delimiter=- -f 1)" -Vswi-prolog:BABI="$(shell LD_LIBRARY_PATH=$(shell dirname $(shell find debian/swi-prolog-core -name libswipl.so)) debian/swi-prolog-core/usr/bin/swipl --abi-version | sed 's/.*-abi-//' | cut --delimiter=- -f 2)" -Vswi-prolog:QLF="$(shell LD_LIBRARY_PATH=$(shell dirname $(shell find debian/swi-prolog-core -name libswipl.so)) debian/swi-prolog-core/usr/bin/swipl --abi-version | sed 's/.*-abi-//' | cut --delimiter=- -f 3)" -Vswi-prolog:SSTATES="$(shell LD_LIBRARY_PATH=$(shell dirname $(shell find debian/swi-prolog-core -name libswipl.so)) debian/swi-prolog-core/usr/bin/swipl --abi-version | sed 's/.*-abi-//' | cut --delimiter=- -f 4)" .PHONY: override_dh_auto_configure override_dh_auto_install override_dh_auto_test .PHONY: override_dh_install override_dh_gencontrol +
signature.asc
Description: PGP signature