Bug#913637: /usr/bin/prefix: won't work if built on a merged-/usr system and used on an unmerged-/usr system

Simon McVittie smcv at debian.org
Tue Nov 13 10:41:34 GMT 2018


Source: libapp-options-perl
Version: 1.12-2
Severity: important
User: md at linux.it
Usertags: usrmerge

libapp-options-perl appears to have a build bug that can be reproduced
as follows (I haven't actually tested this myself, I'm basing this on
reproducible-builds logs):

* Have two systems/chroots/containers, one with merged /usr (/bin is a
  symlink to /usr/bin) and one without
* Build libapp-options-perl on the first system
* Install it on the second system and use /usr/bin/prefix

Expected result:

* prefix is a #!/bin/bash script and works correctly

Actual result:

* prefix is a #!/usr/bin/bash script and won't start on non-merged-/usr
  systems

Broader context: I recently added a new point of variation (#901473)
to Debian's reproducible builds infrastructure: the first build is done
in a traditional Debian system with separate /bin and /usr/bin, while
the second is done with merged /usr (/bin is a symbolic link to /usr/bin).
This was done to detect bugs similar to #913226 in quilt.

libapp-options-perl appears to have the class
of bug that this was meant to detect.  If you look at
https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/libapp-options-perl.html
you'll see that in the first build, /usr/bin/prefix has

#!/bin/bash

whereas in the second, /usr/bin/prefix has

#!/usr/bin/bash

an interpreter that doesn't exist on non-merged-/usr systems.

I don't know what part of the build rewrites that first line or how to
fix it. Please reassign this bug if it's really a bug in generic Perl
build infrastructure.

Mitigation: if you do source-only uploads, the older debootstrap currently
in use on buildds will create non-merged-/usr schroot tarballs, so users
will not currently experience this bug. (However, if stretch-backports'
debootstrap is brought up to date with buster and deployed to buildds
without first applying #913228, that mitigation will go away.)

    smcv



More information about the pkg-perl-maintainers mailing list