Perl5 (meta package) switched from 5.16 to 5.22 - p5-* and git not switched

Justin Vallon justinvallon at gmail.com
Tue Jan 12 13:19:53 PST 2016


On 1/12/16 3:26 PM, David Evans wrote:
> On 1/12/16 10:40 AM, Justin Vallon wrote:
>> I just did a selfupdate && upgrade, and perl5 was upgraded from perl5.16
>> to perl5.22.
>>
>> However, my p5-string-shellquote was not automatically upgraded from
>> p5.16- to p5.22-, and I had to reinstall it.
>>
>> Similar for git and ossp-uuid.  Each had a perl5_16 variant installed
>> and ugprade did nothing, but reinstalling ended up with perl5_22.
>>
>> My guess is that the perl5 Portfile was changed, so upgrade rebuilt it
>> and thus installed perl5.22, but p5-string-shellquote was not changed,
>> so did not get an automatic upgrade.
>>
>> Is this expected?
>>
> We're in the process of removing support for all perls older than perl5.22
> and perl5's default variant was recently changed from +perl5_16 to +perl5_22.  This
> change causes new installs of perl5 (without specifying a specific variant)
> to be updated to perl5.22 as you say and p5.22-* to be the default version
> of the p5-* module ports.  Upgrades would have honored the old installed variant
> (+perl5_16 and p5.16-* in your case).
>
> However, the older variants of perl5 were subsequently removed, breaking the
> desired upgrade behavior.  This step was premature and should have been deferred
> until support for the older perls had been obsoleted from the p5-* modules
> and the old perl variants removed from ports that use them so that the effected
> ports would automatically upgrade to the perl5.22 versions as you expected.
>
> It would then be safe to remove the old perl5 variants.
>
> I'm not sure what the best approach is now to heal this damage but I'm leaning
> toward restoring the older variants to perl5 until the other steps
> have been taken. You'll then be able to install perl5 +perl5_16 again and use
> your p5.16-* modules (if you haven't already upgraded them to p5.22-*
> manually).  In the interim you should be able to use your existing p5.16-* modules
> as long as perl5.16 is installed.
I fixed everything by either uninstalling and reinstalling (p5-*) or
"build git && install git", which ended up picking up the new default
variant (as far as I remember).

Your discussion does not appear to solve the problem of p5-* modules not
getting upgraded/rebuilt when perl5 is changed.  Consider:

1) perl5 was installed (default version 5.16), p5-blah module is installed
2) /opt/local/bin/perl can use the "Blah" module.
3) perl5 is upgraded to 5.22.  /opt/local/bin/perl is now 5.22.  p5-blah
is not automatically switched to 5.22.
4) /opt/local/bin/perl cannot find the "Blah" module.
5) reinstall p5-blah
6) /opt/local/bin/perl can use the "Blah" module again.

-- 
-Justin
JustinVallon at gmail.com


-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4251 bytes
Desc: S/MIME Cryptographic Signature
URL: <https://lists.macosforge.org/pipermail/macports-users/attachments/20160112/7db19e8e/attachment.p7s>


More information about the macports-users mailing list