From owner-freebsd-ports@FreeBSD.ORG Tue Dec 9 16:52:33 2014 Return-Path: Delivered-To: ports@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 682FE42D; Tue, 9 Dec 2014 16:52:33 +0000 (UTC) Received: from udns.ultimatedns.net (unknown [IPv6:2602:d1:b4d6:e600:4261:86ff:fef6:aa2a]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3B828EF5; Tue, 9 Dec 2014 16:52:33 +0000 (UTC) Received: from ultimatedns.net (localhost [127.0.0.1]) by udns.ultimatedns.net (8.14.9/8.14.9) with ESMTP id sB9GrD1w088959; Tue, 9 Dec 2014 08:53:13 -0800 (PST) (envelope-from bsd-lists@bsdforge.com) To: ports@FreeBSD.org, perl@FreeBSD.org, Mathieu Arnold In-Reply-To: <20141209163038.GA49302@prod2.absolight.net> References: <20141209163038.GA49302@prod2.absolight.net> From: "Chris H" Subject: Re: Next Perl update, and plans beyo =?UTF-8?B?bmTigKY=?= Date: Tue, 09 Dec 2014 08:53:13 -0800 Content-Type: text/plain; charset=UTF-8; format=fixed MIME-Version: 1.0 Message-id: <7c516f31c076f6e921cda93641ccb236@ultimatedns.net> Content-Transfer-Encoding: 8bit X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Dec 2014 16:52:33 -0000 On Tue, 9 Dec 2014 17:30:39 +0100 Mathieu Arnold wrote > 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] $ Apologies if I seem a bit obtuse. But as I read this, it appears that Perl modules go from being text based (DateTime.pm) to becoming compiled? I *must* be missing something obvious. --Chris > > 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: > > -- > Mathieu Arnold