Source: xz-utils Version: 5.8.2-2 Tags: patch User: [email protected] Usertags: rebootstrap
Hi, thanks for taking care of precise symbols for xz-utils. Unfortunately, this breaks bootstrapping musl-linux-any. Can musl be exempted here? xz-utils uses symbol versioning, which is good. Unfortunately, musl (and other non-glibc C libraries) does not provide the infrastructure for symbol versioning in its dynamic linker. It is a feature that cannot be used with musl. This completely breaks package upgrades the way Debian does, but we can still build packages for a musl system from scratch and assemble an OS image from there. Then image-based upgrades can work. In any case, the xz-utils symbols do not reflect what xz-utils actually provides on musl (and other non-glibc) architectures. I argue strict symbol checking does not make sense there. The current musl bootstrap simply exports DPKG_GENSYMBOLS_CHECK_LEVEL=0 and acknowledges that package upgrades do not work. The code in xz-utils breaks this opt-out. How abot matching linux+glibc here? I think that would be practically good enough for what you wanted. Patch attached. Helmut
diff -Nru xz-utils-5.8.2/debian/changelog xz-utils-5.8.2/debian/changelog --- xz-utils-5.8.2/debian/changelog 2026-01-16 08:13:14.000000000 +0100 +++ xz-utils-5.8.2/debian/changelog 2026-01-23 19:16:37.000000000 +0100 @@ -1,3 +1,10 @@ +xz-utils (5.8.2-2.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Relax strict symbol checking on non-glibc. (Closes: #-1) + + -- Helmut Grohne <[email protected]> Fri, 23 Jan 2026 19:16:37 +0100 + xz-utils (5.8.2-2) unstable; urgency=medium * Configure gbp.conf correctly following DEP-14 and using pristine-tar diff -Nru xz-utils-5.8.2/debian/rules xz-utils-5.8.2/debian/rules --- xz-utils-5.8.2/debian/rules 2026-01-15 23:38:34.000000000 +0100 +++ xz-utils-5.8.2/debian/rules 2026-01-23 19:16:36.000000000 +0100 @@ -1,10 +1,12 @@ #!/usr/bin/make -f export DEB_BUILD_MAINT_OPTIONS = hardening=+all -# Only do a strict symbol checking on Linux +include /usr/share/dpkg/architecture.mk + +# Only do a strict symbol checking on Linux with glibc # https://manpages.debian.org/testing/dpkg-dev/dpkg-gensymbols.1.en.html # Level 4: Fails if some libraries have been introduced. -ifneq (,$(filter linux,$(DEB_HOST_ARCH_OS))) +ifeq (linux-gnu,$(DEB_HOST_ARCH_OS)-$(DEB_HOST_ARCH_LIBC)) export DPKG_GENSYMBOLS_CHECK_LEVEL = 4 endif

