<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/1b4db00efac269d81cc4e461ac5f6e2aa4a60969">https://github.com/macports/macports-base/commit/1b4db00efac269d81cc4e461ac5f6e2aa4a60969</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 1b4db00efac269d81cc4e461ac5f6e2aa4a60969
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Thu Nov 2 01:12:49 2023 +1100

<span style='display:block; white-space:pre;color:#404040;'>    Allow "any" in registry os_{platform,major}
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Now setting these values on installation the same way as the platform
</span><span style='display:block; white-space:pre;color:#404040;'>    string in the archive filename. Also don't consider a port outdated due
</span><span style='display:block; white-space:pre;color:#404040;'>    to platform mismatch if it has an "any" value for these.
</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/68256
</span>---
 src/macports1.0/macports.tcl |  4 ++--
 src/port/port.tcl            | 12 ++++++------
 src/port1.0/portinstall.tcl  |  5 +++--
 src/port1.0/portutil.tcl     | 24 +++++++++++++++---------
 4 files changed, 26 insertions(+), 19 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/macports1.0/macports.tcl b/src/macports1.0/macports.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 8c20905e8..3706262a0 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/macports1.0/macports.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/macports1.0/macports.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4322,9 +4322,9 @@ proc macports::_upgrade {portname dspec variationslist optionslist {depscachenam
</span>         } elseif {[info exists options(ports_upgrade_enforce-variants)] && $options(ports_upgrade_enforce-variants)
                   && [info exists portinfo(canonical_active_variants)] && $portinfo(canonical_active_variants) ne $oldvariant} {
             ui_debug "variant override ... upgrading!"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        } elseif {$os_platform_installed ne "" && $os_major_installed ne "" && $os_platform_installed != 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } elseif {$os_platform_installed ni [list any "" 0] && $os_major_installed ne ""
</span>                   && ([_mportkey $mport os.platform] ne $os_platform_installed
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                  || [_mportkey $mport os.major] != $os_major_installed)} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  || ($os_major_installed ne "any" && [_mportkey $mport os.major] != $os_major_installed))} {
</span>             ui_debug "platform mismatch ... upgrading!"
             set build_override 1
         } elseif {$cxx_stdlib_overridden == 0 && ($cxx_stdlib_installed eq "libstdc++" || $cxx_stdlib_installed eq "libc++")
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port/port.tcl b/src/port/port.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 368fc0443..c808977f4 100755
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port/port.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port/port.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -790,9 +790,9 @@ proc get_outdated_ports {} {
</span>                 } else {
                     set wrong_stdlib libc++
                 }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                if {($os_platform_installed ne "" && $os_platform_installed != 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    && $os_major_installed ne "" && $os_major_installed != 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    && ($os_platform_installed != ${macports::os_platform} || $os_major_installed != ${macports::os_major}))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {($os_platform_installed ni [list any "" 0] && $os_major_installed ni [list "" 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    && ($os_platform_installed != ${macports::os_platform} 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        || ($os_major_installed ne "any" && $os_major_installed != ${macports::os_major})))
</span>                     || ($cxx_stdlib_overridden == 0 && $cxx_stdlib_installed eq $wrong_stdlib)} {
                     set comp_result -1
                 }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3475,9 +3475,9 @@ proc action_outdated { action portlist opts } {
</span>                 set regref [registry::open_entry $portname $installed_version $installed_revision [lindex $i 3] $installed_epoch]
                 set os_platform_installed [registry::property_retrieve $regref os_platform]
                 set os_major_installed [registry::property_retrieve $regref os_major]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                if {$os_platform_installed ne "" && $os_platform_installed != 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    && $os_major_installed ne "" && $os_major_installed != 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    && ($os_platform_installed != ${macports::os_platform} || $os_major_installed != ${macports::os_major})} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {$os_platform_installed ni [list any "" 0] && $os_major_installed ni [list "" 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    && ($os_platform_installed != ${macports::os_platform} 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        || ($os_major_installed ne "any" && $os_major_installed != ${macports::os_major}))} {
</span>                     set comp_result -1
                     set reason { (platform $os_platform_installed $os_major_installed != ${macports::os_platform} ${macports::os_major})}
                 } else {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portinstall.tcl b/src/port1.0/portinstall.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index b572da3eb..a18240f33 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portinstall.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portinstall.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -383,8 +383,9 @@ proc portinstall::install_main {args} {
</span>     } else {
         lappend regref requested 0
     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    lappend regref os_platform ${os.platform}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    lappend regref os_major ${os.major}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    lassign [_get_compatible_platform] os_platform os_major
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    lappend regref os_platform $os_platform
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    lappend regref os_major $os_major
</span>     lappend regref archs [get_canonical_archs]
     if {${portinstall::actual_cxx_stdlib} ne ""} {
         lappend regref cxx_stdlib ${portinstall::actual_cxx_stdlib}
<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 855296658..1a3f8c083 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;'>@@ -895,19 +895,25 @@ proc _handle_platforms {option action args} {
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Platform specifier for binary archive name
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# "any" in platforms means the built archive will work on any OS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Platform and major version this port will be compatible with in built form
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# "any" in platforms means the built port will work on any OS
</span> # "darwin any" means it will work on any darwin version
<span style='display:block; white-space:pre;background:#ffe0e0;'>-proc _get_archive_platform {} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    global platforms os.platform os.subplatform os.major
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach p $platforms {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Returns a list: {platform major}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc _get_compatible_platform {} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global os.platform
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach p [option platforms] {
</span>         if {$p eq "any"} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            return any_any
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        } elseif {[lindex $p 0] in [list ${os.platform} ${os.subplatform}] && [lindex $p 1] eq "any"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            return ${os.platform}_any
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            return [list any any]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } elseif {[lindex $p 0] in [list ${os.platform} [option os.subplatform]] && [lindex $p 1] eq "any"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            return [list ${os.platform} any]
</span>         }
     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    return ${os.platform}_${os.major}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return [list ${os.platform} [option os.major]]
</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;'>+# Platform specifier string for binary archive name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc _get_archive_platform {} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return [join [_get_compatible_platform] _]
</span> }
 
 # Portfiles may define more than one port.
</pre><pre style='margin:0'>

</pre>