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