From owner-freebsd-perl@freebsd.org Fri Mar 3 07:00:23 2017 Return-Path: Delivered-To: freebsd-perl@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6E2B2CF5230 for ; Fri, 3 Mar 2017 07:00:23 +0000 (UTC) (envelope-from freebsd@omnilan.de) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id 564DA165A for ; Fri, 3 Mar 2017 07:00:23 +0000 (UTC) (envelope-from freebsd@omnilan.de) Received: by mailman.ysv.freebsd.org (Postfix) id 52AB3CF5229; Fri, 3 Mar 2017 07:00:23 +0000 (UTC) Delivered-To: perl@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 524ACCF5228 for ; Fri, 3 Mar 2017 07:00:23 +0000 (UTC) (envelope-from freebsd@omnilan.de) Received: from mx0.gentlemail.de (mx0.gentlemail.de [IPv6:2a00:e10:2800::a130]) (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 038D01659; Fri, 3 Mar 2017 07:00:22 +0000 (UTC) (envelope-from freebsd@omnilan.de) Received: from mh0.gentlemail.de (mh0.gentlemail.de [78.138.80.135]) by mx0.gentlemail.de (8.14.5/8.14.5) with ESMTP id v2370KpO074808; Fri, 3 Mar 2017 08:00:20 +0100 (CET) (envelope-from freebsd@omnilan.de) Received: from titan.inop.mo1.omnilan.net (titan.inop.mo1.omnilan.net [IPv6:2001:a60:f0bb:1::3:1]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mh0.gentlemail.de (Postfix) with ESMTPSA id A3DF4855; Fri, 3 Mar 2017 08:00:19 +0100 (CET) Message-ID: <58B91483.6030701@omnilan.de> Date: Fri, 03 Mar 2017 08:00:19 +0100 From: Harry Schmalzbauer Organization: OmniLAN User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; de-DE; rv:1.9.2.8) Gecko/20100906 Lightning/1.0b2 Thunderbird/3.1.2 MIME-Version: 1.0 To: Mathieu Arnold CC: perl@FreeBSD.org Subject: Re: PERL5_DEFAULT != PERL5_DEFAULT depending on 'pwd' References: <58B864BC.1020501@omnilan.de> <58B86D2E.3070108@omnilan.de> In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Greylist: ACL 119 matched, not delayed by milter-greylist-4.2.7 (mx0.gentlemail.de [78.138.80.130]); Fri, 03 Mar 2017 08:00:20 +0100 (CET) X-Milter: Spamilter (Reciever: mx0.gentlemail.de; Sender-ip: 78.138.80.135; Sender-helo: mh0.gentlemail.de; ) X-BeenThere: freebsd-perl@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: maintainer of a number of perl-related ports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Mar 2017 07:00:23 -0000 Bezüglich Mathieu Arnold's Nachricht vom 03.03.2017 00:15 (localtime): > Le 02/03/2017 à 20:06, Harry Schmalzbauer a écrit : >> Bezüglich Harry Schmalzbauer's Nachricht vom 02.03.2017 19:30 (localtime): >>> hello, >>> >>> currently I'm trying to track the following problem: >>> >>> : cd /usr/ports/print/texinfo && make -VPERL5_DEFAULT >>> 5.24 >>> >>> : cd /usr/ports/lang/perl5.24/ && make -VPERL5_DEFAULT >>> 5.20 >>> >>> ??? >>> Any hints? >> direct caus was the file /tmp/PERL5_DEFAULT, which contained >> PERL5_DEFAULT=5.20. >> >> But I have absolutely no idea why/how this was created and why it only >> affects when pwd=lang/perl5.?? >> >> Still investigating.... > > TL;DR: You can remove that file. > > The idea is that if you add to your make.conf > DEFAULT_VERSIONS=perl5=5.22, install lang/perl5.22, and then remove > DEFAULT_VERSIONS, Perl 5.22 will still be the default, because it is the > installed version, and not 5.24 that is defined as the default in > bsd.default-versions.mk. Thank you very much for your explanation. I've had a quick look into bsd.default-versions.mk and found $_PERL5_FROM_BIN, so the above is clear. > Now, if you upgrade lang/perl5.22 from ports, either manually, or with > tools like portupgrade or portmaster, at one point, it removes the old > version, and installs the new one. The problem is that when the old > version has been removed, the default Perl version reverts back to 5.24, > and when lang/perl5.22 is installed again, it installs itself as a non > default version (which, for example, will not install > /usr/local/bin/perl) and you end up with a broken system. To mitigate > that problem, during the build, all lang/perl5.* ports store the current > default version, and use that stored value when installing, so that it > does not change mid-flight. Now I know what it is good for :-) To my environment: It's a plain building jail. I haven't defined any PER5_VER(SION), it gets just installed as build-depends. The dependency-installation (and removal) is probably done multiple times (during batch package building). So if I consider your last scenario, 'make deinstall' would be the target where /tmp/PERL5_DEFAULT could be created. But I think 'make (post-)install' can/should/must remove it, which didn't happen in my case. That seems to be a problem, because /tmp/PERL5_DEFAULT doesn't affect any other dependency-check outside lang/perl5.??. Not to mention "daily_clean_tmps_enable=yes" or md-backed /tmp... I haven't figured out which port insisted on 5.20. Like mentioned I haven't set any PERL5-related demand, so PERL5_DEFAULT=5.20 shouldn't have appeared anywhere. Unfortunately I don't have time to reproduce and figure out what's happening in which order to run into that dependency inconsitency. But I guess removing /tmp/PERL5_DEFAULT is the real fix. Thanks, -harry