Bug#759989: perl: $Config{libperl} should not contain the minor version number

Niko Tyni ntyni at debian.org
Sat Aug 30 22:21:33 UTC 2014


Package: perl
Version: 5.20.0-6

Applications that dlopen(3) libperl at runtime usually hardcode the
name of the .so file at build time. Ideally, this name should contain
only the major version, not the minor one, so that ABI-compatible minor
updates do not break the application unnecessarily.

Furthermore, as the dlopen(3) use is often intended to make the libperl
dependency optional (demoting it to a Recommends or even leaving it out
altogether), the need of a recompilation is not easily visible from the
binary package dependencies and the breakage may well be silent. See
for instance #611573 and #759891.

We don't currently offer these applications any way to find out the
preferred file name. The closest we come is $Config{libperl}, which
contains the full version (libperl.so.5.20.0). This should probably be
changed to strip the minor version from the end (libperl.so.5.20). We
already do a number of similar changes for @INC.

For reference, the symlinks in /usr/lib/<triplet> are currently
set up in this way:

lrwxrwxrwx 1 root root       15 Aug 28 20:14 /usr/lib/x86_64-linux-gnu/libperl.so -> libperl.so.5.20
lrwxrwxrwx 1 root root       17 Aug 28 20:14 /usr/lib/x86_64-linux-gnu/libperl.so.5.20 -> libperl.so.5.20.0
-rw-r--r-- 1 root root  1823608 Aug 28 20:14 /usr/lib/x86_64-linux-gnu/libperl.so.5.20.0

-- 
Niko Tyni   ntyni at debian.org




More information about the Perl-maintainers mailing list