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