Control: lib32z1 installs a 64bit library
Control: reassign -1 lib32z1
Control: found -1 1:1.3.dfsg+really1.3.1-2
Control: severity -1 grave
Control: tags -1 = patch

On Sat, Feb 14, 2026 at 09:11:15AM +0100, Fab Stz wrote:
> Maybe I'm wrong, but from what I understand /usr/lib32/libz.so.1 is built for 
> x64 (ELF64) while it should be for x32 (ELF32).

Thank you. This is a key insight. I looked at the most recent amd64
build log from the buildds and found that the lib32 built notably lacked
-m32.

This pretty much renders lib32z1 unusable justifying grave severity, but
note that the essential zlib1g binary package is not impacted.

Then, I went on to diff the relevant versions. Would there be a chance
to use a public version constrol system for zlib maintenance? I found
this:

| diff -Nru zlib-1.3.dfsg+really1.3.1/debian/rules 
zlib-1.3.dfsg+really1.3.1/debian/rules
| --- zlib-1.3.dfsg+really1.3.1/debian/rules      2024-05-10 11:32:36.000000000 
+0200
| +++ zlib-1.3.dfsg+really1.3.1/debian/rules      2026-01-31 13:50:16.000000000 
+0100
| @@ -36,22 +36,14 @@
| ~
|  ifeq (,$(filter nobiarch,$(DEB_BUILD_PROFILES)))
| ~
| -32-ARCHS=amd64 ppc64 kfreebsd-amd64 s390x
| +32-ARCHS=amd64 ppc64 kfreebsd-amd64
|  64-ARCHS=s390 sparc i386 powerpc mips mipsel mipsn32 mipsn32el mipsr6 
mipsr6el mipsn32r6 mipsn32r6el x32
| ~
|  ifneq (,$(filter $(DEB_HOST_ARCH), $(32-ARCHS)))
|  EXTRA_INSTALL=install32
|  EXTRA_BUILD=build32-stamp
| -# s390x fails at compatibility.
| -ifneq (,$(filter $(DEB_HOST_ARCH), s390x))
| -m32=-m31
| -else
| -m32=-m32

In the non-s390x branch (affecting amd64), the m32 variable is no longer
assigned. It remains being used though.

| -endif
|  endif
| ~
| -ifneq (,$(filter s390x, $(DEB_HOST_ARCH)))
| -else
|  ifneq (,$(filter $(DEB_HOST_ARCH), $(64-ARCHS)))
|  EXTRA_INSTALL=install64
|  EXTRA_BUILD=build64-stamp
| @@ -62,7 +54,6 @@
|  m64=-m64
|  endif
|  endif
| -endif
| ~
|  N32-ARCHS=mips mipsel
|  ifneq (,$(filter $(DEB_HOST_ARCH), $(N32-ARCHS)))

This is an unfortunate mistake originating from Aurelien's patch for
s390 removal. Shit happens. Here is a fix.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1125669#5

--- a/debian/rules
+++ b/debian/rules
@@ -42,6 +42,7 @@
 ifneq (,$(filter $(DEB_HOST_ARCH), $(32-ARCHS)))
 EXTRA_INSTALL=install32
 EXTRA_BUILD=build32-stamp
+m32=-m32
 endif

 ifneq (,$(filter $(DEB_HOST_ARCH), $(64-ARCHS)))

Helmut

Reply via email to