[arch-dev-public] [RFC] Perl configuration revisited

Florian Pritz bluewind at xinu.at
Fri Jun 6 17:55:55 EDT 2014


Hi,

I've looked around a bit for possible ways to prevent segfault issues
like with the upgrade to 5.20.0.

I tried adding a version to libperl.so (including setting a soname for
the library), but that only helps programs that link to libperl (like
weechat). In my (rather short) tests it wouldn't affect perl modules
loaded by perl ("use FooBar::Blub;" in a perl script). Dead end IMHO.

I also tried adding the major perl version (5.20) to the perl dirs we
currently have in /usr/lib. So /usr/share/perl5/vendor_perl would become
/usr/share/perl5/vendor_perl/5.20, similar for the others. Perl's
default would do something similar, but include the full version which
seems overkill since I didn't see a minor update break API.

According to pkgfile[1] such a change would affect 117 packages with 112
of those actually having a .so file in there[2]. In case anyone wants to
know, the 5 packages are: perl-sgmls stow foomatic-db-engine
perl-anyevent perl-common-sense.

[1]: pkgfile -r '/usr/lib/perl5/' | wc -l
[2]: pkgfile -r '/usr/lib/perl5/.*\.so$' | wc -l

This change would remove binary modules from perl's @INC on update (@INC
is like $PATH, but for perl modules and contains the vendor_perl path
mentioned above amongst others) which is pretty much what we want,
except it leads to possibly confusing error messages ("module not found"
rather than "libperl.so.$oldversion not found"), but it should prevent
future segfaults in case of incompatible libs.

Non-binary modules are in /usr/share/perl5/vendor_perl (note share
instead of lib) and won't have to be rebuilt on perl upgrades.

I don't know why it was originally set up to be non-versioned, but the
wiki mentions that the current config is influenced by the Debian's perl
policy which probably has different requirements.

Unless people think it's a good idea to implement this now (would
require a rebuild of ~130 packages) I'm targeting perl 5.22. The change
should not require any changes to PKGBUILDs (tested weechat,
perl-net-dns and perl-dbi).

Any input is welcome, especially possible downsides of my idea.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://mailman.archlinux.org/pipermail/arch-dev-public/attachments/20140606/ae4c60f7/attachment.asc>


More information about the arch-dev-public mailing list