Bug#585678: Performing a binNMU of perl causes a silently broken build

Kyle Moffett Kyle.D.Moffett at boeing.com
Sun Jun 13 00:35:39 UTC 2010


Package: perl
Version: 5.10.1-13
Severity: serious

When a buildd performs a binNMU of perl, the Config.pm settings are not
correctly adjusted to remove references to the build directory.  This
causes other packages to fail to build (or sometimes silently produce
bad binary packages).

When performing an automated buildd-driven binNMU of Perl, the sbuild
process appends "+b" and a number to the package version and extracts
the source in a directory named like the following:

  /build/buildd-perl-5.10.1-13+b1-amd64-yp6DXg/perl-5.10.1/

Later, during the build process, debian/rules uses it as a regex:

  ./perl.static -i -pe 's!$(srcdir)/$(tmp)/!/! if /install/;' \
      -e 's/^(man1ext=).*/$$1'\''1p'\''/;' \
      -e 's/^(man3ext=).*/$$1'\''3pm'\''/;' \
         $(lib)/Config.pm $(lib)/Config_heavy.pl

Unfortunately, the "+" in the path is misinterpreted by perl as a regex
special character, and so the regex does not match and the paths remain
uncorrected.

A sample build-log showing the problem may be found on the Debian-Ports
unofficial site [0], however please note that the bug affects the
official ports in exactly the same way.

[0]
  http://buildd.debian-ports.org/fetch.php?pkg=perl&ver=5.10.1-13%2B101&arch=powerpcspe&stamp=1276371376&file=log&as=raw

Cheers,
Kyle Moffett






More information about the Perl-maintainers mailing list