#58579 closed defect (fixed)
mysql8 @8.0.16: XCode 9.0 or newer is required!
Reported by: | ryandesign (Ryan Carsten Schmidt) | Owned by: | herbygillot (Herby Gillot) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | chrstphrchvz (Christopher Chavez) | |
Port: | mysql8 |
Description
On systems with Xcode 8 or earlier, building mysql8 fails:
CMake Error at cmake/os/Darwin.cmake:36 (MESSAGE): XCode 9.0 or newer is required! Call Stack (most recent call first): CMakeLists.txt:385 (INCLUDE)
Usually, Xcode is not actually required. Sure, a particularly new compiler may be required, or a particular SDK, but Xcode itself is typically not involved. So I suspect this check in the cmake files to be inaccurate. Could it be made to work by removing that check and just requiring a newer compiler, e.g. using the compiler_blacklist_versions portgroup? If a new SDK is required, then that will have to wait until my MacOSX.sdk port is ready.
Change History (7)
comment:1 Changed 5 years ago by herbygillot (Herby Gillot)
comment:2 Changed 5 years ago by kencu (Ken)
mysql8 built fine on 10.6.8 with clang-5.0, so it appears this worked.
comment:3 Changed 5 years ago by kencu (Ken)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
fixed by the above PR.
comment:4 Changed 4 years ago by chrstphrchvz (Christopher Chavez)
As a note, even if the Xcode 9 requirement is arbitrary, it is mentioned in upstream documentation: https://dev.mysql.com/doc/refman/8.0/en/source-installation-prerequisites.html
comment:5 Changed 4 years ago by chrstphrchvz (Christopher Chavez)
Cc: | chrstphrchvz added |
---|
comment:6 Changed 4 years ago by kencu (Ken)
Upstream seems to rarely understand the nuances between LLVM-clang compiler capabilities and Xcode versions.
After all -- why require a certain Xcode version? clang capability? We cover that easily with newer compilers. Certain system feature? LegacySupport supplies almost anything we need. Specific MacOSX SDK feature -- this might be an issue -- but often we can use a newer SDK, or work around it with a bit of minor #ifdef
ing.
There are really only very rare reasons a certain Xcode version might be needed -- when it exists, it seems to usually be Pull Request that is accepted, submitted by someone who often doesn't understand how to work around these issues like we might.
comment:7 Changed 4 years ago by chrstphrchvz (Christopher Chavez)
The arbitrary compiler requirement could simply be upstream deciding to not invest too much effort in supporting every potentially compatible compiler. As it is, MySQL will cut off support early for platforms deemed sufficiently unpopular (I don't know if they accept patches that improve compatibility for unsupported platforms, but they definitely won't if using one is mentioned: https://bugs.mysql.com/bug.php?id=99799). MySQL also recommends using their binary installer, so installing from source may also already be unpopular enough that they'll only bother with making sure it builds with the most popular/readily available compiler for each platform (Xcode in macOS' case).
I don't have access to older versions of XCode/Clang, but here is an attempt:
https://github.com/macports/macports-ports/pull/4568