What's the push to require the latest Perl?

Bill Cole macportsusers-20171215 at billmail.scconsult.com
Thu Jan 4 18:23:19 UTC 2018


On 4 Jan 2018, at 4:53, Ryan Schmidt wrote:

> On Dec 30, 2017, at 20:27, Bill Cole wrote:
>
[...]
>> If anyone involved in making MacPorts policy can explain this 
>> coherently, I'd greatly appreciate it.
>
> What other explanation would you like?

Well, I'm not entirely sure...

I think I've figured out by experimentation that it isn't as risky as I 
thought. In the case of a guinea pig system which could mostly be 
upgraded with binaries (i.e. few build dependencies pulled in by 
'upgrade') the endpoint was a 2-version Perl universe with 5.24 
remaining the default version and a partial duplication of modules 
across the version sub-trees. Not ideal, but not catastrophic.

Absent clear documentation of that being the way it is meant to work, my 
fear was that I would end up with 5.26 as the default and/or a jumble of 
modules where neither version sub-tree had the full desired collection 
intact because some modules got "upgraded" while others did not. I have 
managed to achieve such a benighted state in the past, probably by my 
own error, which is why I compulsively pre-flight upgrades now.

> Now that perl5.26 is stable, we would like all ports that require a 
> specific version of perl (e.g. because they require perl modules) to 
> require perl5.26.

So there *is* something of an issue there. In the 1st case that I 
noticed, updating p5.24-net-dns to the latest version of the module 
brought in (via a dependency chain including some build-time-only steps) 
perl5.26 and p5.26-locale-gettext. The key links in that were 
libunistring requiring texinfo to build and texinfo demanding perl5.26 
as a library dependency and help2man to build, which in turn requires 
both perl5.26 and p5.26-locale-gettext.

In fact, neither texinfo nor help2man really requires 5.26 in the 
upstream code. They require minimum 5.6 and 5.8 respectively. Hence, it 
seems to me that those ports really should not specify a single version 
of Perl but rather require any version greater than their actually 
required minimum, while help2man should not specify both perl5.26 and 
p5.26-locale-gettext but rather just p5-locale-gettext, which in turn 
will build the appropriate sub-port based on perl5.default_branch. If 
help2man is being installed without an existing perl5.*, the version 
determination and dependency should be in the required module, I think.

OR: maybe there's a conceptual model for how MacPorts handles Perl 
versioning and dependencies to which I'm being totally oblivious, 
consistent with current behavior rather than with how I think it should 
work or how I feared that it might. If so, THAT is the explanation I 
need.


More information about the macports-users mailing list