<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/733d6e71b5aaf6cc3f6b4e9f0652db8ea39e392c">https://github.com/macports/macports-base/commit/733d6e71b5aaf6cc3f6b4e9f0652db8ea39e392c</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 733d6e71 port diagnose: adjust Xcode version checking
</span>733d6e71 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 733d6e71b5aaf6cc3f6b4e9f0652db8ea39e392c
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Thu Sep 2 11:52:29 2021 +1000

<span style='display:block; white-space:pre;color:#404040;'>    port diagnose: adjust Xcode version checking
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Clarify that Xcode versions newer than any we know about are untested
</span><span style='display:block; white-space:pre;color:#404040;'>    rather than unsupported, which sounds less scary.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/63377
</span>---
 src/macports1.0/diagnose.tcl | 48 ++++++++++++++++++++++++++++++++++++--------
 1 file changed, 40 insertions(+), 8 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/macports1.0/diagnose.tcl b/src/macports1.0/diagnose.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 6c98ca3a..7c8f50b5 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/macports1.0/diagnose.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/macports1.0/diagnose.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -91,7 +91,7 @@ namespace eval diagnose {
</span> 
         array set config_options    [list]
         set parser_options          [list macports_location profile_path shell_location \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                                    xcode_version_${macports::macos_version_major} xcode_build]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                    xcode_build]
</span> 
         set user_config_path        "${macports::autoconf::macports_conf_path}/port_diagnose.ini"
         set xcode_config_path       [macports::getdefaultportresourcepath "macports1.0/xcode_versions.ini"]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -600,10 +600,42 @@ namespace eval diagnose {
</span>         if {$xcode_current in $xcode_versions} {
             success_fail 1
         } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            ui_error "currently installed version of Xcode, $xcode_current, is not supported by MacPorts. \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      For your currently installed system, only the following versions of Xcode are supported: \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      $xcode_versions"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            success_fail 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            foreach ver $xcode_versions {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {[vercmp $xcode_current $ver] < 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    # installed Xcode is older than a known good version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set too_old 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    break
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {![info exists too_old]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                foreach osvers_var [array names config -glob xcode_version_*] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set osvers [string range $osvers_var [string length xcode_version_] end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    if {[vercmp $osvers $mac_version] > 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        foreach xcvers $config(xcode_version_$osvers) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            if {[vercmp $xcode_current $xcvers] >= 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                # installed Xcode is for a newer OS version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                set too_new 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                break
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        if {[info exists too_new]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            break
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[info exists too_old] || [info exists too_new]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ui_error "The installed version of Xcode, $xcode_current, is not supported by MacPorts.\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                          For your currently installed system, the following versions of Xcode are supported:\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                          $xcode_versions"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                success_fail 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ui_warn "The installed version of Xcode, $xcode_current, is newer than the versions\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         currently known to MacPorts. It most likely works, but has not been tested.\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         For your currently installed system, the following versions of Xcode are known to work:\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         $xcode_versions"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                success_fail 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span>         }
     }
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -658,15 +690,15 @@ namespace eval diagnose {
</span>             #The tokens
             set tokens [split $line "="]
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            # Only care about things that are in $parser_options
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {[lindex $tokens 0] in $parser_options} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # Only care about things that are in $parser_options or are lists of xcode versions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[lindex $tokens 0] in $parser_options || [string match xcode_version_* [lindex $tokens 0]]} {
</span>                 set config([lindex $tokens 0]) [lindex $tokens 1]
 
             # Ignore whitespace
             } elseif {[lindex $tokens 0] eq ""} {
                 continue
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            } elseif {![string match xcode_version_* [lindex $tokens 0]]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } else {
</span>                 ui_error "unrecognized config option in file $path: [lindex $tokens 0]"
             }
         }
</pre><pre style='margin:0'>

</pre>