Bug#823861: libperl-dev: partial upgrades can cause broken builds

Niko Tyni ntyni at debian.org
Mon May 9 17:42:54 UTC 2016


Package: libperl-dev
Version: 5.22.2-1

Since 5.22.1-7 [1], libperl-dev doesn't depend on perl anymore.  This was
done to make it possible to install a foreign arch libperl-dev and
libperl5.22 for cross building applications that link against libperl.

Unfortunately, this has a side effect that libperl-dev and perl versions
don't need to match anymore. So it's possible to have perl 5.24 with
libperl-dev 5.22. This means the application will be built with 5.24
headers (using the include path from ExtUtils::Embed) but linked with
a 5.22 library (because that's what -lperl gives.) Naturally this
doesn't work.

I actually ran into this when building libapache2-mod-perl2 with the 5.24
packages in experimental, as the build chroot preferred the libperl-dev
5.22 package from unstable. The compile and link phases went OK, but
the test suite failed with

  Cannot load /<<PKGBUILDDIR>>/src/modules/perl/mod_perl.so into server: /<<PKGBUILDDIR>>/src/modules/perl/mod_perl.so: undefined symbol: Perl_savetmps

as Perl_savetmps is a new symbol in libperl5.24 and therefore missing
from libperl5.22.

I'm inclined to fix this by restoring the tightly versioned
perl dependency, but qualifying it with :any (since perl is
Multi-Arch:allowed). This should be enough to keep cross builds working
AFAICS.

 Package: libperl-dev
 Depends: perl:any (= ${binary:Version}), libperl5.22 (= ${binary:Version})

BinNMU skew (where one arch has +b1 and another one has +b2 so
${binary:Version} differs) might cause problems there, but that's already
a sore point with multiarch in general, and will hopefully be solved
properly at some point.

We might also want to have the 5.24 perl Break libperl-dev (<< 5.24.0~)
or something like that, to make sure partial upgrades from earlier
versions without the above fix pull in a newer libperl-dev too.

[1] https://anonscm.debian.org/cgit/perl/perl.git/commit/?id=501ef753a6ea38fdcc473bf919e138fee20a3adb
-- 
Niko Tyni   ntyni at debian.org




More information about the Perl-maintainers mailing list