From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10008 invoked by alias); 18 May 2017 20:39:08 -0000 Mailing-List: contact cygwin-apps-help@cygwin.com; run by ezmlm Precedence: bulk Sender: cygwin-apps-owner@cygwin.com List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Mail-Followup-To: cygwin-apps@cygwin.com Received: (qmail 9993 invoked by uid 89); 18 May 2017 20:39:08 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.9 required=5.0 tests=BAYES_00,KAM_LAZY_DOMAIN_SECURITY,SPF_HELO_PASS autolearn=no version=3.3.2 spammy=majority, Perl, precedent, Ruby X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 18 May 2017 20:39:07 +0000 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 26516CED8 for ; Thu, 18 May 2017 20:39:09 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 26516CED8 Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=cygwin.com Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; spf=none smtp.mailfrom=yselkowitz@cygwin.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 26516CED8 Received: from [10.10.120.19] (ovpn-120-19.rdu2.redhat.com [10.10.120.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D29E6189F4 for ; Thu, 18 May 2017 20:39:08 +0000 (UTC) From: Yaakov Selkowitz Subject: Perl layout for 5.26+ To: cygwin-apps@cygwin.com Message-ID: Date: Thu, 18 May 2017 20:39:00 -0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2017-05/txt/msg00120.txt.bz2 With the upgrade to 5.26, we will need to rebuild every single Perl module package again. While we have no choice for 5.26, I would like to implement a method of minimizing the effort that will be needed in future upgrades. For 5.22 we had: prefix=/usr privlib=/usr/lib/perl5/$slot archlib=/usr/lib/perl5/5.22/$archname vendorlib=/usr/lib/perl5/vendor_perl/5.22 vendorarch=/usr/lib/perl5/vendor_perl/5.22/$archname sitelib=/usr/lib/perl5/site_perl/5.22 sitearch=/usr/lib/perl5/site_perl/5.22/$archname Instead, we should switch to: prefix=/usr privlib=/usr/share/perl5/5.26 archlib=/usr/lib/perl5/5.26 vendorprefix=/usr vendorlib=/usr/share/perl5/vendor_perl vendorarch=/usr/lib/perl5/vendor_perl/5.26 siteprefix=/usr/local sitelib=/usr/local/share/perl5 sitearch=/usr/local/lib/perl5/5.26 By un-versioning privlib/vendorlib/sitelib, it will no longer be necessary to rebuild noarch Perl module packages -- which are the large majority (~70%) -- with every single 5.Y release of Perl. In other words, if we do this for 5.26, then for 5.28+ only ~110 packages will need to be rebuilt instead of ~350 (besides those which link against libperl but do not install anything into any of those locations). Using lib for archful things vs. share for noarch, and /usr/local for site*, is for compliance with FHS, and the latter avoids a lot of confusion over which should be used by packages. I implemented a similar scheme for Ruby, which makes it *much* easier to upgrade to new versions thereof. Fedora does something similar, so there is plenty of precedent for such a move. -- Yaakov