Re: Bug#1132159: zlib1g-udeb has new depends (lib32z1)

2026-03-29 Thread Mark Brown
On Sat, Mar 28, 2026 at 05:35:01PM +0100, Cyril Brulebois wrote:
> Roland Clobus  (2026-03-28):

> Let's look at the dependencies at the ELF level:

> (unstable-amd64-devel)kibi@tokyo:/tmp/zlib-1.3.dfsg+really1.3.2$ objdump 
> -x debian/zlib1g-udeb/usr/lib/libminizip.so.1.0.0|grep NEEDED
>   NEEDED   libz.so.1
>   NEEDED   libc.so.6
> (unstable-amd64-devel)kibi@tokyo:/tmp/zlib-1.3.dfsg+really1.3.2$ objdump 
> -x debian/zlib1g-udeb/usr/lib/libz.so.1.3.2|grep NEEDED
>   NEEDED   libc.so.6

> I think there might be some confusion going on because of the duality of
> “libz 1” entries:

...

> I suppose the first one gets picked up (which is arch-specific, and
> doesn't feature a udeb line) instead of the second one (which is
> generic and is desired in this case). I'm not sure how to best solve
> this.

This looks like a debhelper bug, it's not coping with lib32 versions of
libraries properly here - AFAICT it isn't checking the architecture of
the ELF files it's looking at when matching the udeb.


signature.asc
Description: PGP signature


Re: Bug#1132159: zlib1g-udeb has new depends (lib32z1)

2026-03-28 Thread Cyril Brulebois
Control: tag -1 patch

Cyril Brulebois  (2026-03-28):
> Let's look at the dependencies at the ELF level:
> 
> (unstable-amd64-devel)kibi@tokyo:/tmp/zlib-1.3.dfsg+really1.3.2$ objdump 
> -x debian/zlib1g-udeb/usr/lib/libminizip.so.1.0.0|grep NEEDED
>   NEEDED   libz.so.1
>   NEEDED   libc.so.6
> (unstable-amd64-devel)kibi@tokyo:/tmp/zlib-1.3.dfsg+really1.3.2$ objdump 
> -x debian/zlib1g-udeb/usr/lib/libz.so.1.3.2|grep NEEDED
>   NEEDED   libc.so.6
> 
> I think there might be some confusion going on because of the duality of
> “libz 1” entries:
> 
> (unstable-amd64-devel)kibi@tokyo:/tmp/zlib-1.3.dfsg+really1.3.2$ cat 
> debian/lib32z1/DEBIAN/shlibs 
> libz 1 lib32z1 (>= 1:1.2.3.3.dfsg-1)
> 
> (unstable-amd64-devel)kibi@tokyo:/tmp/zlib-1.3.dfsg+really1.3.2$ cat 
> debian/zlib1g/DEBIAN/shlibs 
> libz 1 zlib1g (>= 1:1.2.3.3.dfsg-1)
> udeb: libz 1 zlib1g-udeb (>= 1:1.2.3.3.dfsg-1)
> 
> I suppose the first one gets picked up (which is arch-specific, and
> doesn't feature a udeb line) instead of the second one (which is
> generic and is desired in this case). I'm not sure how to best solve
> this.

Since the architecture-specific lib32z1, lib64z1, and libn32z1 packages
are basically “alternatives” to zlib1g, I suppose we could game the
system and add --add-udeb=zlib1g-udeb on their dh_makeshlibs call. It
doesn't look or feel clean to me, but it'd be an obvious and direct
improvement over the current situation.

In the amd64 case, the above shlibs becomes:

(unstable-amd64-devel)kibi@tokyo:/tmp/zlib-1.3.dfsg+really1.3.2$ cat 
./debian/lib32z1/DEBIAN/shlibs
libz 1 lib32z1 (>= 1:1.2.3.3.dfsg-1)
udeb: libz 1 zlib1g-udeb (>= 1:1.2.3.3.dfsg-1)

and dependencies look better:

 Depends: libc6-udeb (>= 2.42)

Attached patch tested on amd64.


Cheers,
-- 
Cyril Brulebois ([email protected])
D-I release manager -- Release team member -- Freelance Consultant
diff -Nru zlib-1.3.dfsg+really1.3.2/debian/changelog zlib-1.3.dfsg+really1.3.2/debian/changelog
--- zlib-1.3.dfsg+really1.3.2/debian/changelog	2026-03-24 02:05:33.0 +0100
+++ zlib-1.3.dfsg+really1.3.2/debian/changelog	2026-03-28 17:55:24.0 +0100
@@ -1,3 +1,11 @@
+zlib (1:1.3.dfsg+really1.3.2-2) UNRELEASED; urgency=medium
+
+  * Add --add-udeb=zlib1g-udeb to the dh_makeshlibs call for all
+lib32z1, lib64z1, and libn32z1 packages, avoiding dependencies like
+zlib1g-udeb → lib32z1 on amd64 (closes: #1132159).
+
+ -- Cyril Brulebois   Sat, 28 Mar 2026 17:55:24 +0100
+
 zlib (1:1.3.dfsg+really1.3.2-1) unstable; urgency=low
 
   * New upstream release.
diff -Nru zlib-1.3.dfsg+really1.3.2/debian/control zlib-1.3.dfsg+really1.3.2/debian/control
--- zlib-1.3.dfsg+really1.3.2/debian/control	2026-03-24 02:05:33.0 +0100
+++ zlib-1.3.dfsg+really1.3.2/debian/control	2026-03-28 17:29:46.0 +0100
@@ -38,6 +38,7 @@
 Architecture: any
 Priority: optional
 Section: debian-installer
+Depends: ${shlibs:Depends}
 Description: compression library - runtime for Debian installer
  zlib is a library implementing the deflate compression method found
  in gzip and PKZIP.  This minimal package includes the shared library
diff -Nru zlib-1.3.dfsg+really1.3.2/debian/rules zlib-1.3.dfsg+really1.3.2/debian/rules
--- zlib-1.3.dfsg+really1.3.2/debian/rules	2026-03-24 02:05:33.0 +0100
+++ zlib-1.3.dfsg+really1.3.2/debian/rules	2026-03-28 17:51:17.0 +0100
@@ -207,13 +207,13 @@
 	dh_makeshlibs -pzlib1g -V"zlib1g (>= 1:1.2.3.3.dfsg-1)" --add-udeb=zlib1g-udeb
 ifeq (,$(filter nobiarch,$(DEB_BUILD_PROFILES)))
 ifneq (,$(filter $(DEB_HOST_ARCH), $(32-ARCHS)))
-	dh_makeshlibs -plib32z1 -V"lib32z1 (>= 1:1.2.3.3.dfsg-1)"
+	dh_makeshlibs -plib32z1 -V"lib32z1 (>= 1:1.2.3.3.dfsg-1)" --add-udeb=zlib1g-udeb
 endif
 ifneq (,$(filter $(DEB_HOST_ARCH), $(64-ARCHS)))
-	dh_makeshlibs -plib64z1 -V"lib64z1 (>= 1:1.2.3.3.dfsg-1)"
+	dh_makeshlibs -plib64z1 -V"lib64z1 (>= 1:1.2.3.3.dfsg-1)" --add-udeb=zlib1g-udeb
 endif
 ifneq (,$(filter $(DEB_HOST_ARCH), $(N32-ARCHS)))
-	dh_makeshlibs -plibn32z1 -V"libn32z1 (>= 1:1.2.3.3.dfsg-1)"
+	dh_makeshlibs -plibn32z1 -V"libn32z1 (>= 1:1.2.3.3.dfsg-1)" --add-udeb=zlib1g-udeb
 endif
 endif
 	dh_installdeb -a


signature.asc
Description: PGP signature


Re: Bug#1132159: zlib1g-udeb has new depends (lib32z1)

2026-03-28 Thread Cyril Brulebois
Hi Roland,

Thanks for spotting and filing this.

Roland Clobus  (2026-03-28):
> Hello maintainers of zlib,
> 
> The udeb has picked up a new dependency on lib32z1, which was not present in
> the previous version. This missing dependency makes the Debian installer 
> FTBFS,
> see [1]
> 
> I've looked at the difference in debian/control, and the only difference there
> is the line `X-DH-Compat: 14`, which does not match the debian/changelog entry
> `Bump debhelper compat to 15`
> 
> Would it need a udeb package for lib32z1 or is the new dependency
> unintentional?

Let's look at the current list of binary packages:

zlib1g
zlib1g-dev
zlib1g-udeb
lib32z1
lib32z1-dev
minizip
libminizip1t64
libminizip-dev

Let's look at the contents over time:

(unstable-amd64-devel)kibi@tokyo:/tmp$ dpkg --contents 
zlib1g-udeb_1.2.13.dfsg-1_amd64.udeb
drwxr-xr-x root/root 0 2022-11-05 13:24 ./
drwxr-xr-x root/root 0 2022-11-05 13:24 ./lib/
drwxr-xr-x root/root 0 2022-11-05 13:24 ./usr/
drwxr-xr-x root/root 0 2022-11-05 13:24 ./usr/lib/
-rw-r--r-- root/root121152 2022-11-05 13:24 ./usr/lib/libz.so.1.2.13
lrwxrwxrwx root/root 0 2022-11-05 13:24 ./usr/lib/libz.so.1 -> 
libz.so.1.2.13

In this version, we have extra contents within the package, avoiding the
need for an extra udeb (no minizip-specific udeb, everything shipped
within the existing udeb):

(unstable-amd64-devel)kibi@tokyo:/tmp$ dpkg --contents 
zlib1g-udeb_1.3.dfsg+really1.3.1-3_amd64.udeb 
drwxr-xr-x root/root 0 2026-02-16 15:40 ./
drwxr-xr-x root/root 0 2026-02-16 15:40 ./lib/
drwxr-xr-x root/root 0 2026-02-16 15:40 ./usr/
drwxr-xr-x root/root 0 2026-02-16 15:40 ./usr/lib/
-rw-r--r-- root/root 51448 2026-02-16 15:40 
./usr/lib/libminizip.so.1.0.0
-rw-r--r-- root/root125248 2026-02-16 15:40 ./usr/lib/libz.so.1.3.1
lrwxrwxrwx root/root 0 2026-02-16 15:40 ./usr/lib/libminizip.so.1 
-> libminizip.so.1.0.0
lrwxrwxrwx root/root 0 2026-02-16 15:40 ./usr/lib/libz.so.1 -> 
libz.so.1.3.1

There's also no specific dependency there.

In this version, we have similar contents:

(unstable-amd64-devel)kibi@tokyo:/tmp$ dpkg --contents 
zlib1g-udeb_1.3.dfsg+really1.3.2-1_amd64.udeb 
drwxr-xr-x root/root 0 2026-03-24 02:05 ./
drwxr-xr-x root/root 0 2026-03-24 02:05 ./usr/
drwxr-xr-x root/root 0 2026-03-24 02:05 ./usr/lib/
-rw-r--r-- root/root 59792 2026-03-24 02:05 
./usr/lib/libminizip.so.1.0.0
-rw-r--r-- root/root121200 2026-03-24 02:05 ./usr/lib/libz.so.1.3.2
lrwxrwxrwx root/root 0 2026-03-24 02:05 ./usr/lib/libminizip.so.1 
-> libminizip.so.1.0.0
lrwxrwxrwx root/root 0 2026-03-24 02:05 ./usr/lib/libz.so.1 -> 
libz.so.1.3.2

but we do have dependencies, possibly because of the compatibility bump:

Depends: lib32z1 (>= 1:1.2.3.3.dfsg-1), libc6-udeb (>= 2.42)

Let's look at the dependencies at the ELF level:

(unstable-amd64-devel)kibi@tokyo:/tmp/zlib-1.3.dfsg+really1.3.2$ objdump -x 
debian/zlib1g-udeb/usr/lib/libminizip.so.1.0.0|grep NEEDED
  NEEDED   libz.so.1
  NEEDED   libc.so.6
(unstable-amd64-devel)kibi@tokyo:/tmp/zlib-1.3.dfsg+really1.3.2$ objdump -x 
debian/zlib1g-udeb/usr/lib/libz.so.1.3.2|grep NEEDED
  NEEDED   libc.so.6

I think there might be some confusion going on because of the duality of
“libz 1” entries:

(unstable-amd64-devel)kibi@tokyo:/tmp/zlib-1.3.dfsg+really1.3.2$ cat 
debian/lib32z1/DEBIAN/shlibs 
libz 1 lib32z1 (>= 1:1.2.3.3.dfsg-1)

(unstable-amd64-devel)kibi@tokyo:/tmp/zlib-1.3.dfsg+really1.3.2$ cat 
debian/zlib1g/DEBIAN/shlibs 
libz 1 zlib1g (>= 1:1.2.3.3.dfsg-1)
udeb: libz 1 zlib1g-udeb (>= 1:1.2.3.3.dfsg-1)

I suppose the first one gets picked up (which is arch-specific, and
doesn't feature a udeb line) instead of the second one (which is
generic and is desired in this case). I'm not sure how to best solve
this.


Cheers,
-- 
Cyril Brulebois ([email protected])
D-I release manager -- Release team member -- Freelance Consultant


signature.asc
Description: PGP signature


Bug#1132159: zlib1g-udeb has new depends (lib32z1)

2026-03-28 Thread Roland Clobus

Source: zlib
Version: 1:1.3.dfsg+really1.3.2-1
Severity: normal
Tags: d-i
X-Debbugs-Cc: [email protected], [email protected]
User: [email protected]
Usertags: amd64
User: [email protected]
Usertags: amd64

Hello maintainers of zlib,

The udeb has picked up a new dependency on lib32z1, which was not present in
the previous version. This missing dependency makes the Debian installer FTBFS,
see [1]

I've looked at the difference in debian/control, and the only difference there
is the line `X-DH-Compat: 14`, which does not match the debian/changelog entry
`Bump debhelper compat to 15`

Would it need a udeb package for lib32z1 or is the new dependency
unintentional?

With kind regards,
Roland Clobus

[1]
https://jenkins.debian.net/view/live/job/reproducible_debian_live_build_standard_sid/1485/console


-- System Information:
Debian Release: forky/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'testing-debug'), (50, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.19.8+deb14-amd64 (SMP w/8 CPU threads; PREEMPT)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_GB:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled


OpenPGP_signature.asc
Description: OpenPGP digital signature