BigSur buildbot building software that will only run on 11.3+ ?
Ryan Schmidt
ryandesign at macports.org
Wed Jun 2 20:40:48 UTC 2021
On May 31, 2021, at 10:19, Ken Cunningham wrote:
> In this ticket
>
> https://trac.macports.org/ticket/63003
>
> it has been suggested by a knowledgable contributor that this issue:
>
> xcrun: error: unable execute utility "/opt/local/libexec/llvm-11/bin/clang" because it requires a newer version of macOS.
>
> Is being caused by the buildbot now being on 11.3, and that any binaries from that buildbot cannot run on any BigSur < 11.3.
>
> If that is so, that is both a change from what has happened in the past for our buildbots, and I have to disable buildbot binaries on my BigSur machines (at least until OpenCore gets sorted out for my MacPro, to allow BigSur beyond 11.2).
Unless something has changed in Big Sur (which is of course possible), this should be controlled by MACOSX_DEPLOYMENT_TARGET.
MacPorts 2.6.4, the first version to support macOS 11, made an assumption that the next major version of macOS after Big Sur would be 11.1, and therefore continued to use MAJOR.MINOR as the deployment target, as it had before for macOS 10.x. That assumption was wrong: Apple is using 11.1 and other 11.x numbers as Big Sur version numbers, unlike how they numbered macOS 10.x versions. As a result of this unanticipated change, MacPorts 2.6.4 sets deployment target incorrectly for macOS 11.1 and later: e.g. on macOS 11.1, the deployment target is set to 11.1 when it should be set to 11.0.
Because of this type of problem, for several months after macOS 11.1 and 11.2 appeared I kept the buildbot buildworker machines at macOS 11.0.1 and did not update them. However, there was also a bug in Xcode 12.2 related to its install_name_tool command, and when macOS 11.3 and Xcode 12.4 came out, since we had evidence of actual problems being caused by the broken install_name_tool command and we did not have any evidence that increasing the deployment target would cause any problem, I decided to update the workers to macOS 11.3 and Xcode 12.4, and they are now at macOS 11.4 and Xcode 12.5.
The wrong deployment target problem was fixed in MacPorts 2.7.0 but any ports built by MacPorts 2.6.4 on macOS 11.1 or later will have been built with the wrong deployment target, and if that is a problem for that particular software, then it should be rebuilt. To guarantee a correct build, in addition to revbumping the port, a check should be added that causes the port to exit with an error in pre-configure if the MacPorts version is less than 2.7.0.
I see that there is some discussion of this in the above ticket already and that llvm has been revbumped to rebuild it to fix this.
More information about the macports-dev
mailing list