Date: Tue, 9 Dec 2014 17:30:39 +0100 From: Mathieu Arnold <mat@FreeBSD.org> To: ports@FreeBSD.org, perl@FreeBSD.org Subject: Next Perl update, and plans =?utf-8?Q?beyo?= =?utf-8?B?bmTigKY=?= Message-ID: <20141209163038.GA49302@prod2.absolight.net>
next in thread | raw e-mail | index | archive | help
--gKMricLos+KVdGMg Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable 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:/us= r/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/DateTim= e.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/DateTim= e.so | grep perl 0x0000000000000001 (NEEDED) Shared library: [libperl.so.5.18] 0x000000000000000f (RPATH) Library rpath: [/usr/local/lib/per= l5/5.18/mach/CORE] 0x000000000000001d (RUNPATH) Library runpath: [/usr/local/lib/p= erl5/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> --=20 Mathieu Arnold --gKMricLos+KVdGMg Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iQJ8BAABCgBmBQJUhyOtXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQzQUI2OTc4OUQyRUQxMjEwNjQ0MEJBNUIz QTQ1MTZGMzUxODNDRTQ4AAoJEDpFFvNRg85IW0IP/R38AigpeYn+f7VJuqMmik6d xi5UJHiR4pV/8RXJ9R1bAntZhVp6MmUOGx+ufHe6ql/1WUtX8T89tiNXvQ8GZGFg yRhvldYYMfosSHRaATbDcCXZ4h2j6MT/UiZ2ocXHu+qJaL1pOQL0EU1DP7STMjTb 8HZ8GcWpb8SSDMNWU0C8FErtkc8cr6WUTKJNbvSrlb6vd7T711ExUPjQv2gKZ80r 1sab8x1dzmAWWVxTp0KWtHP3Clzjv4Q1b/nbuKBIt4BpGBSBV4IWJCzu5XzMgnP6 OOmmwsXx+LpOJcL17Lp19AY8DadqavvEh9AcM+LJfBRy7wbc8w9sj4G2LliikStc +o3yNNyfF9NyI6ogqa4PcwTQSHXAMI7I641YDLGfY/seE42Vfxp1LZGWQ8OsaCyQ NCx3ntDpnQjGulsyKRtuzskAbQG7NHnG6kgzvot/RU1cf/s7HM1Wm2GQ/Sizf27P HgJ0rKGSKU7Ly0KGQ0Caz3MqcdDAWZznD3VPK5+SuEum4DO70+7lgq+xZl5EJhNj h3Jcn4pUt/bW+id5StH9quqZK8JPY3FIVUjbxn/wmKCqGfUJTxHgEoy1s0gx6+kZ ZQ6FBlrT6+WgKOXjsB5rH4tp45oGzh+5cf/Zyvuf0r6e3Dw3r8k9gY/5O0QWjQTy tHuOa9tgd7By2gsKgQ89 =rHyJ -----END PGP SIGNATURE----- --gKMricLos+KVdGMg--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20141209163038.GA49302>