force specific Qt5 version install?

Joshua Root jmr at macports.org
Sat Apr 6 05:39:28 UTC 2019


On 2019-4-6 12:27 , Michael Dickens wrote:
> On Fri, Apr 5, 2019, at 6:33 PM, Ryan Schmidt wrote:
>> I am slightly concerned about this. The MacPorts base version is 
>> available to Portfiles, and Portfiles do occasionally need to do 
>> different things depending on the MacPorts base version. For example, 
>> the behavior of *.env options was changed a couple weeks ago, so until 
>> we release MacPorts 2.6.0, Portfiles need to use e.g. configure.env one 
>> way to support MacPorts 2.5.4 and earlier and a different way to 
>> support MacPorts 2.5.99 and later. These ports will check `if {[vercmp 
>> [macports_version] 2.5.99] >= 0}` to decide whether to use the new 
>> method. Now it just so happens that vercmp thinks "2019-03-23" is 
>> greater than "2.5.99" so it still works, and I don't immediately see a 
>> way that your change to the version number causes a problem, but I just 
>> wanted to point out that it has the potential to do so.
> 
> Interesting. I hadn't thought of setting the version as introducing potential issues & am happy I got lucky with my version choice! Would it be better from the MP internals perspective if I use "2.5.99-2019-03-23" or something similar (adding to the original setting)?

Yes, that is probably a better way to do it. If we could get the
makefiles to append the date of the latest commit when installing a
non-release version from a git checkout, that would be nice.

>> You mentioned your "OSX 10.12 boot" above. Do you use this ports tree 
>> with different OS versions? If so, you must regenerate the portindex 
>> (or `sudo port sync`, which redownloads or regenerates the portindex) 
>> every time you switch OS versions; the port index contains information 
>> that is specific to the OS version for which it was generated.
> 
> Ah ha! I bet this is the issue. I use a common partition for the base and ports (and other) repos, and assumed that the PortIndex would be common across all OSs once set.
That used to be how it worked long ago, but users expected the static
PortIndex info to match the dynamic info from parsing the Portfiles,
which is not unreasonable since it's used for searching. Base should
never trust the PortIndex info when it can use the version from the
Portfile instead, but sometimes index info, such as replaced_by, is used
to decide not to parse a Portfile at all.

- Josh


More information about the macports-dev mailing list