Source: glibc
Tags: patch
User: [email protected]
Usertags: rebootstrap

Hi Aurelien,

since a while I am observing that some multilib-enabled cross builds
fail in dpkg-shlibdeps. Examples:

https://jenkins.debian.net/job/rebootstrap_mips64el_gcc14/6/console
https://jenkins.debian.net/job/rebootstrap_mips64_gcc14/10/console
https://jenkins.debian.net/job/rebootstrap_i386_gcc14_diffoscope/4/console
https://jenkins.debian.net/job/rebootstrap_i386_gcc14_supported_diffoscope/4/console
https://jenkins.debian.net/job/rebootstrap_mips64r6el_gcc14_supported/7/console

The common pattern is failure to locate libc.so.6 in the multilib call
for dpkg-shlibdeps. I think we need to explicitly pass the correct
library directory here. As a result, I came up with the attached
one-line change to the dh_makeshlibs invocation. It looks up the slibdir
for the current pass and appends it via the -l flag. What do you think
about the proposed change? Does it have any downsides? It appears to
practically solve instances of the mentioned problem. Please let me know
if you would like further details to assess the proposed change.

Helmut
--- a/debian/rules.d/debhelper.mk
+++ b/debian/rules.d/debhelper.mk
@@ -109,7 +109,7 @@
 	./debian/shlibs-add-udebs $(curpass)
 
 	dh_installdeb -p$(curpass)
-	dh_shlibdeps -p$(curpass)
+	dh_shlibdeps $(if $($(lastword $(subst -, ,$(curpass)))_slibdir),-l$(CURDIR)/debian/$(curpass)/$($(lastword $(subst -, ,$(curpass)))_slibdir)) -p$(curpass)
 	dh_gencontrol -p$(curpass)
 	if [ $(curpass) = nscd ] ; then \
 		sed -i -e "s/\(Depends:.*libc[0-9.]\+\)-[a-z0-9]\+/\1/" debian/nscd/DEBIAN/control ; \

Reply via email to