Hello there, In a few days, I'll be changing the way Perl works wrt compiled modules it produces. The current patch[1] is on our code review tool.
Right now, we have: $ readelf -d /usr/local/lib/perl5/5.18/mach/CORE/libperl.so|grep SONAME 0x000000000000000e (SONAME) Library soname: [libperl.so.5.18] $ That is, libperl.so has a name, and it is versionned, and the version will change if you have 5.16 or 5.20. If your libperl.so does not have a SONAME, you don't have an up-to-date Perl. Which is good, because if some app is linked with libperl.so, it has: # readelf -d /usr/local/bin/vim|grep perl 0x0000000000000001 (NEEDED) Shared library: [libperl.so.5.18] 0x000000000000000f (RPATH) Library rpath: [/usr/local/lib:/usr/local/lib/perl5/5.18/mach/CORE] 0x000000000000001d (RUNPATH) Library runpath: [/usr/local/lib:/usr/local/lib/perl5/5.18/mach/CORE] So if you change your Perl version, pkg will know it has to upgrade vim too because a NEEDED shlib changed. Now, for Perl modules, it's not like that, it reads like this: $ readelf -d /usr/local/lib/perl5/site_perl/mach/5.18/auto/DateTime/DateTime.so|grep perl $ So what the patch[1] does, is force linking with libperl.so.x.yy. After the patch, a compiled Perl module will look like this: $ readelf -d /usr/local/lib/perl5/site_perl/mach/5.18/auto/DateTime/DateTime.so | grep perl 0x0000000000000001 (NEEDED) Shared library: [libperl.so.5.18] 0x000000000000000f (RPATH) Library rpath: [/usr/local/lib/perl5/5.18/mach/CORE] 0x000000000000001d (RUNPATH) Library runpath: [/usr/local/lib/perl5/5.18/mach/CORE] $ So pkg will detect it needs to be reinstalled when the Perl version change. As for the plans beyond that I was talking about in the subject, there will be a Perl 5.22 released next May, (and 5.24 the May after that,) when that happens, I'll change the default Perl to be 5.20, and deprecate 5.18 which won't, then, be supported. Sometime at the end of the summer, like sometime September, I'll change the default Perl to 5.22 and try to keep it that way, that is, a new Perl goes in in May, and gets to be the default in September. 1: <https://reviews.freebsd.org/D1241> -- Mathieu Arnold
pgpP731b6yU9P.pgp
Description: PGP signature
