Python dependencies (was: MacPorts 2.9.0-beta1 now available for testing)
Joshua Root
jmr at macports.org
Tue Jan 2 08:20:32 UTC 2024
On 2/1/2024 11:24, grey wrote:
> Installing llvm-17 goes OK, but:
>
> Why are python310 and python311 considered dependencies if I already
> have python312 installed and selected? Pretty sure that some other BSD
> ports systems I use do not seem to regress like MacPorts in similar
> dependency walks, the fact that my MacPorts now has three versions of
> Python installed seems a bit wonky to me.
Ports usually depend on a specific version of python so the build
environment will be consistent. The MacPorts default python version only
just changed from 3.11 to 3.12, so some ports just haven't been switched
over yet. Others aren't compatible with the newer version. And then...
there's this specific example.
Python 3.11 and later need to be built with a C11 compiler. On older
systems, Xcode doesn't ship one, so the C11 compiler that gets used is
one of the clang-* ports. The dependency on python311 in llvm-17
shouldn't be hard to switch over to python312, but python312 will also
have to be configured to avoid using the clang versions that use it.
The python310 dependency comes from libpsl, which is an indirect
dependency of cmake, which is needed to build all recent llvm versions.
This is trickier because all of the C11 capable clang versions need
cmake. We could possibly only hold back the python used by libpsl on
platforms without C11 support in Xcode, though that would mean a less
tested configuration for some users. Or it could probably be solved with
more use of *-bootstrap ports.
- Josh
More information about the macports-dev
mailing list