<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>