<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository macports-base.
</pre>
<p><a href="https://github.com/macports/macports-base/commit/2bf5c3683cfa827e98bfa6cac7f586cf460af636">https://github.com/macports/macports-base/commit/2bf5c3683cfa827e98bfa6cac7f586cf460af636</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 2bf5c3683cfa827e98bfa6cac7f586cf460af636
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Tue Dec 12 21:52:55 2023 +1100
<span style='display:block; white-space:pre;color:#404040;'> Check for missing/outdated CLTs
</span>---
src/port1.0/portutil.tcl | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portutil.tcl b/src/port1.0/portutil.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index ff8ca25e4..577b21971 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portutil.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portutil.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3396,7 +3396,8 @@ proc check_supported_archs {} {
</span>
# check if the installed xcode version is new enough
proc _check_xcode_version {} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- global os.subplatform os.major macos_version_major xcodeversion use_xcode subport
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global os.subplatform os.major macos_version_major xcodeversion \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xcodecltversion use_xcode subport
</span>
if {${os.subplatform} eq "macosx"} {
switch $macos_version_major {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3494,6 +3495,9 @@ proc _check_xcode_version {} {
</span> ui_error "Port ${subport} requires a full Xcode installation, which was not found on your system."
ui_error "You can install Xcode from the Mac App Store or https://developer.apple.com/xcode/"
return 1
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ } elseif {$xcodecltversion eq "none"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set missingdevtools 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Deal with this below after explaining possible problems.
</span> }
} elseif {[vercmp $xcodeversion $min] < 0} {
ui_error "The installed version of Xcode (${xcodeversion}) is too old to use on the installed OS version. Version $rec or later is recommended on macOS ${macos_version_major}."
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3503,7 +3507,8 @@ proc _check_xcode_version {} {
</span> }
# Xcode 4.3 and above requires the command-line utilities package to be installed.
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[vercmp $xcodeversion 4.3] >= 0 || ($xcodeversion eq "none" && [file exists "/Applications/Xcode.app"])} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This will always be the case on 10.8 and later.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.major} >= 12 || [vercmp $xcodeversion >= 4.3]} {
</span> if {[vercmp $macos_version_major 10.9] >= 0} {
# on Mavericks, /usr/bin/make might always installed as a shim into the command line tools installer.
# Let's check for /Library/Developer/CommandLineTools, installed by the
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3529,7 +3534,7 @@ proc _check_xcode_version {} {
</span> }
if {${os.major} >= 18} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- global xcodecltversion configure.sdk_version macosx_sdk_version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global configure.sdk_version macosx_sdk_version
</span> if {$xcodecltversion eq "none" && [file executable [file join $cltpath usr bin make]]} {
ui_warn "The Xcode Command Line Tools package appears to be installed, but its receipt appears to be missing."
ui_warn "The Command Line Tools may be outdated, which can cause problems."
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3546,6 +3551,16 @@ proc _check_xcode_version {} {
</span> }
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[info exists missingdevtools]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_error "Neither Xcode nor the Command Line Tools were found."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_error "Please install at least one of them to be able to build ports."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![tbool use_xcode] && ${os.major} >= 12 && $xcodecltversion ne "none" && [vercmp $xcodecltversion < $min]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_error "The installed version of the Command Line Tools for Xcode (${xcodecltversion}) is too old to use on the installed OS version. Please install version $ok or later on macOS ${macos_version_major}."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # Check whether users have agreed to the Xcode license agreement
catch {exec [findBinary xcrun $portutil::autoconf::xcrun_path] clang 2>@1} output
set output [join [lrange [split $output "\n"] 0 end-1] "\n"]
</pre><pre style='margin:0'>
</pre>