Is MacPorts considered stable on Big Sur?
ryandesign at macports.org
Wed Jun 2 22:57:51 UTC 2021
On Jun 2, 2021, at 17:40, Gerben Wierda wrote:
> My production ‘server’ system still runs Mojave. I was planning to move to Catalina somewhere the coming months. But I might move to BigSur instead. What would stop me is if ports I need won’t work properly on Big Sur. When Big Sur was new, I recall that some core changes affected MacPorts and certain ports.
> Is there an overview somewhere that will tell me of remaining problems/issues with MacPorts and/or ports on Big Sur?
Many ports build on macOS 11. Some don't. As ever, file bug reports when you encounter problems.
You can check https://ports.macports.org to see if the ports you want to use show a green indicator for macOS 11 on your architecture. This indicator is not authoritative and the information might be stale, but it is a place to start. You can also search the issue tracker for ports you care about (and their dependencies) to see if any have been reported.
https://trac.macports.org/wiki/BigSurProblems is a good place to look.
The major problems continue to be:
1. Many ports use libtool. libtool code was written to assume that the macOS version is always 10.x so it does not recognize macOS 11 or later when implementing a feature which some software uses (allowing undefined symbols). We have submitted a fix to the developers of libtool and they have not responded to it.
We have patched the libtool port to include the fix, however because of the way libtool works, each port that builds with libtool needs its own copy of the fix (unless that port runs autoreconf which then inherits the fix from the libtool port).
We have patched many affected ports to include the fix, but undoubtedly not all of them. When you encounter undefined symbols when building software on macOS 11, file a bug report with us and we can apply the fix there as well.
1(b). This same general problem -- build systems that assume the macOS version is always 10.x -- can appear in limitless variations in other build systems, with limitless possible adverse consequences. These will all need to be identified and fixed.
2. Many older software packages written in C do not declare functions before using them. Officially, this is prohibited by the 1999 version of the C standard and later, but in practice compilers allowed it, therefore even some relatively new code has this problem due to oversight. Apple fixed clang to make this an error in Xcode 12 and later (for Big Sur and Catalina), thus causing these programming mistakes to cause builds to fail -- sometimes. These errors can also be present in configure scripts, where they can either cause configure to fail with an unexpected message, such as that it cannot figure out the size of a basic type or that a required dependency is not found even though it is in fact present, or the build could succeed but could be missing features that configure mistakenly thought were absent. In each case, the software must be fixed so that functions are declared before being used.
3. A lot of ports don't build on Apple Silicon for any number of reasons.
More information about the macports-users