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 +