From owner-freebsd-ports@FreeBSD.ORG Wed Jun 26 00:14:29 2013 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id DB1E321E; Wed, 26 Jun 2013 00:14:29 +0000 (UTC) (envelope-from jdc@koitsu.org) Received: from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net [217.70.183.196]) by mx1.freebsd.org (Postfix) with ESMTP id 657DB1DA3; Wed, 26 Jun 2013 00:14:29 +0000 (UTC) Received: from mfilter2-d.gandi.net (mfilter2-d.gandi.net [217.70.178.140]) by relay4-d.mail.gandi.net (Postfix) with ESMTP id A41E1172067; Wed, 26 Jun 2013 02:14:11 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at mfilter2-d.gandi.net Received: from relay4-d.mail.gandi.net ([217.70.183.196]) by mfilter2-d.gandi.net (mfilter2-d.gandi.net [10.0.15.180]) (amavisd-new, port 10024) with ESMTP id JzgpIDyu1P7A; Wed, 26 Jun 2013 02:14:09 +0200 (CEST) X-Originating-IP: 76.102.14.35 Received: from jdc.koitsu.org (c-76-102-14-35.hsd1.ca.comcast.net [76.102.14.35]) (Authenticated sender: jdc@koitsu.org) by relay4-d.mail.gandi.net (Postfix) with ESMTPSA id 0C22E172074; Wed, 26 Jun 2013 02:14:09 +0200 (CEST) Received: by icarus.home.lan (Postfix, from userid 1000) id 61A6673A1C; Tue, 25 Jun 2013 17:14:06 -0700 (PDT) Date: Tue, 25 Jun 2013 17:14:06 -0700 From: Jeremy Chadwick To: freebsd-ports@freebsd.org Subject: Recent Mk/bsd.perl.mk changes (r320679) Message-ID: <20130626001406.GA63314@icarus.home.lan> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Cc: culot@freebsd.org, bapt@freebsd.org, az@freebsd.org X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Jun 2013 00:14:29 -0000 (I am not subscribed to -ports so please keep me CC'd) To the committers and reviewers of r320679: http://svnweb.freebsd.org/ports?view=revision&revision=320679 The pathing change in bsd.perl.mk has broken things quite badly for anyone who **does not** upgrade lang/perl* but chooses to upgrade a perl module port (ex. p5-*) -- or even reinstall an existing one. This creates a very broken situation. The issue is 100% reproducible; simplest method: pkg_add -r perl (this will install perl-5.14.2_3.tbz) svn up /usr/ports cd /usr/ports/whatever/p5-whatever make install pkg_delete p5-whatever What I'd like to know: - Why the major.minor.patchlevel --> major.minor path change in the first place. I have never, ever seen this done anywhere on any *IX system I've used. Where's the justification? Was this discussed on some perl mailing list somewhere as a "new and better way"? It's essentially saying "x.y.z is always going to be compatible with x.y.z+1" which is not true (particularly with XS, as I understand it). Where was this discussed publicly? - Why bsd.perl.mk was changed how it was, i.e. why it didn't stick with using the major.minor.patchlevel pathing scheme by default, and if one of the newer perl versions was used (which would warrant the user having to uninstall their perl, thus forced to rebuild/reinstall all their p5-* stuff anyway), use the newer pathing scheme? It could be dealt with equivalently (pseudo-code per se) as: if ($PERL_VERSION =~ /^5\.12\.[5-9]/ or $PERL_VERSION =~ /^5\.14\.[4-9]/ or $PERL_VERSION =~ /^5\.16\.[3-9]/) { $use_newer_paths = 1; } else { $use_newer_paths = 0; } The logic here could be modified (or inverted) if desired. And this framework would only have to be left in for a little while (maybe a few years) until all the older FreeBSD versions had been officially EOL'd. (Remember: those using EOL'd FreeBSD versions but with ports trees updated past that EOL date are living dangerously, as no compatibility is guaranteed -- this has come up many times on the lists, and even somewhat recently). You should have seen the look on my face when I went to update p5-Mail-SpamAssassin (and nothing else) on my system and suddenly found it shitting the bed, forcing me to "pkg_delete -af && rm -fr /usr/local" and start over fresh due to leftover cruft populating /usr/local. I say all this well aware of what ports/UPDATING said -- however the instructions blindly make the assumption the person is building from source or using pkg (not pkg_* tools). The versions of perl on the official package mirrors in Latest/ do not work properly with these changes, and those are still packages which are **actively used** during **present-day-supported** FreeBSD installations. FreeBSD users do expect to "pkg_add -r" something (which can also be done from the installer on fresh installations), then install things from /usr/ports with "make install"; this is normal and must be supported. Something tells me this is one of those situations where if we still had dougb@ he would have caught it in advance and yelled loudly. -- | Jeremy Chadwick jdc@koitsu.org | | UNIX Systems Administrator http://jdc.koitsu.org/ | | Making life hard for others since 1977. PGP 4BD6C0CB |