Bug#992622: pkgconf: stores different system library paths if built with/without merged-/usr

Simon McVittie smcv at debian.org
Sat Aug 21 12:21:26 BST 2021


Package: pkgconf
Version: 1.7.4~git20210206+dcf529b-3
Severity: important
Tags: patch
User: reproducible-builds at lists.alioth.debian.org
Usertags: usrmerge
X-Debbugs-Cc: reproducible-bugs at lists.alioth.debian.org

If pkgconf is built on a merged-/usr system (as created by new
installations of Debian >= 10, debootstrap --merged-usr, or installing
the usrmerge package into an existing installation), the list of
standard library directories is not the same as if pkgconf is built on
a non-merged-/usr system (for example current official buildd chroots).
This is the same bug as https://bugs.debian.org/992620 in pkg-config,
for the same reason.

This can be seen on the reproducible-builds.org infra:
https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/diffoscope-results/pkgconf.html
(search for "/usr/lib:" to see the difference I'm concerned about).

If you have sbuild available, an easy way to reproduce this is to build
pkgconf twice, once with --add-depends-arch=usrmerge and once without.

The potentially problematic situation is if pkgconf is *built* on a
merged-/usr system, but *used* on a non-merged-/usr system.

Technical Committee resolution #978636 mandates heading towards a
transition to merged-/usr, and this will become a non-issue at the end of
that transition; but variation between merged-/usr and non-merged-/usr
builds is a problem while that transition is taking place, because it can
lead to partial upgrades behaving incorrectly.

The attached patches resolve this: with them applied, the package builds
identically with and without --add-depends-arch=usrmerge.
I'll send a merge request for this when I have a bug number.

A side benefit of fixing this is that this change might be sufficient
to make the package reproducible (as recommended by Policy §4.15): the
rest of the variation shown on reproducible-builds.org appears to be just
side-effects from the differing length of the system library path.

    smcv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-d-rules-Factor-out-computation-of-system-library-pat.patch
Type: text/x-diff
Size: 1820 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/reproducible-bugs/attachments/20210821/97338593/attachment.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-d-system-libdirs.sh-Always-list-directories-with-and.patch
Type: text/x-diff
Size: 1607 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/reproducible-bugs/attachments/20210821/97338593/attachment-0001.patch>


More information about the Reproducible-bugs mailing list