<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/f1103da80e8e2435b34a49ac47ddf3971bd0cd17">https://github.com/macports/macports-base/commit/f1103da80e8e2435b34a49ac47ddf3971bd0cd17</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 f1103da80 Use _variants_to_variations throughout macports1.0
</span>f1103da80 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit f1103da80e8e2435b34a49ac47ddf3971bd0cd17
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Tue Feb 11 19:35:04 2025 +1100
<span style='display:block; white-space:pre;color:#404040;'> Use _variants_to_variations throughout macports1.0
</span>---
src/macports1.0/macports.tcl | 43 +++++++------------------------------------
src/macports1.0/migrate.tcl | 2 +-
src/macports1.0/reclaim.tcl | 28 ++--------------------------
src/macports1.0/restore.tcl | 17 ++---------------
4 files changed, 12 insertions(+), 78 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 a168941fe..1e43ba426 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;'>@@ -2456,20 +2456,10 @@ proc mportopen_installed {name version revision variants options} {
</span> set regref [lindex [registry::entry imaged $name $version $revision $variants] 0]
set portfile_dir [file join ${registry.path} registry portfiles ${name}-${version}_${revision} [$regref portfile]]
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set variations [dict create]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Relies on all negated variants being at the end of requested_variants
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set minusvariant [lrange [split [$regref requested_variants] -] 1 end]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set plusvariant [lrange [split [$regref variants] +] 1 end]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach v $plusvariant {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dict set variations $v +
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach v $minusvariant {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[string first "+" $v] == -1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dict set variations $v -
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_warn "Invalid negated variant for $name @${version}_${revision}${variants}: $v"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set negative_variations [dict filter \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [macports::_variants_to_variations [$regref requested_variants]] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ value -]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set variations [dict merge $negative_variations [macports::_variants_to_variations [$regref variants]]]
</span>
dict set options subport $name
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4659,31 +4649,12 @@ proc macports::_upgrade {portname dspec variations options {depscachename {}}} {
</span> # open the port, and update the portinfo.
set porturl [dict get $portinfo porturl]
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # Relies on all negated variants being at the end of requested_variants
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set splitvariant [split $oldrequestedvariant -]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set minusvariant [lrange $splitvariant 1 end]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set splitvariant [split [lindex $splitvariant 0] +]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set plusvariant [lrange $splitvariant 1 end]
</span> ui_debug "Merging existing requested variants '${oldrequestedvariant}' into variants"
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set oldrequestedvariations [dict create]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set oldrequestedvariations [_variants_to_variations $oldrequestedvariant]
</span> # also save the current variants for dependency calculation
# purposes in case we don't end up upgrading this port
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set installedvariations [dict create]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach v $plusvariant {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dict set oldrequestedvariations $v +
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach v $minusvariant {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[string first "+" $v] == -1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dict set oldrequestedvariations $v -
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dict set installedvariations $v -
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_warn "Invalid negated variant for ${portname}: $v"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set plusvariant [lrange [split $oldvariant +] 1 end]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach v $plusvariant {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dict set installedvariations $v +
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set installedvariations [dict filter $oldrequestedvariations value -]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set installedvariations [dict merge $installedvariations [_variants_to_variations $oldvariant]]
</span>
# Now merge all the variations. Global (i.e. variants.conf) ones are
# overridden by the previous requested variants, which are overridden
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/macports1.0/migrate.tcl b/src/macports1.0/migrate.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index ab132f889..0fad2ebe9 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/macports1.0/migrate.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/macports1.0/migrate.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -203,7 +203,7 @@ namespace eval migrate {
</span> $progress update $portfile_counter $portfile_total
continue
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set variations [restore::variants_to_variations_arr $requested_variants]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set variations [macports::_variants_to_variations $requested_variants]
</span> # Set same options as restore code so it's more likely the open mports
# can be reused rather than having to be opened again.
set options [dict create ports_requested [$port requested] subport $portname]
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/macports1.0/reclaim.tcl b/src/macports1.0/reclaim.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index adaa46366..b19a41935 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/macports1.0/reclaim.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/macports1.0/reclaim.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -221,18 +221,7 @@ namespace eval reclaim {
</span> # installed with the given requested variants
proc get_variations {installed_variants} {
global macports::global_variations
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set vararray [dict create {*}[array get global_variations]]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set splitvariant [split $installed_variants -]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set minusvariant [lrange $splitvariant 1 end]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set splitvariant [split [lindex $splitvariant 0] +]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set plusvariant [lrange $splitvariant 1 end]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach v $plusvariant {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dict set vararray $v +
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach v $minusvariant {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dict set vararray $v -
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return $vararray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return [dict merge [array get global_variations] [macports::_variants_to_variations $installed_variants]]
</span> }
proc load_distfile_cache {varname} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -689,20 +678,7 @@ namespace eval reclaim {
</span> lassign [mportlookup $portname] portname portinfo
if {[dict exists $portinfo porturl]} {
set options [dict create subport $portname]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set splitvariant [split $requested_variants -]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set minusvariant [lrange $splitvariant 1 end]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set splitvariant [split [lindex $splitvariant 0] +]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set plusvariant [lrange $splitvariant 1 end]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set variations [dict create]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach v $plusvariant {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dict set variations $v +
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach v $minusvariant {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[string first "+" $v] == -1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dict set variations $v -
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set variations [macports::_variants_to_variations $requested_variants]
</span>
if {[catch {set mport [mportopen [dict get $portinfo porturl] $options $variations]} result]} {
ui_debug "unable to open port $name ${requested_variants}: $result"
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/macports1.0/restore.tcl b/src/macports1.0/restore.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 1f5c23619..433e8c6db 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/macports1.0/restore.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/macports1.0/restore.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -316,19 +316,6 @@ namespace eval restore {
</span> }
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- ##
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Convert a variant string into a serialized array of variations suitable for passing to mportopen
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- proc variants_to_variations_arr {variantstr} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set split_variants_re {([-+])([[:alpha:]_]+[\w\.]*)}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set result {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach {match sign variant} [regexp -all -inline -- $split_variants_re $variantstr] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- lappend result $variant $sign
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return $result
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> # Get the port that satisfies a depspec, with respect to the files
# in the snapshot for path-pased deps.
proc resolve_depspec {depspec ports snapshot_id} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -491,7 +478,7 @@ namespace eval restore {
</span> # Open the port with the requested variants from the snapshot
if {![dict exists $mports $portname]} {
set options [dict create ports_requested $requested subport $portname]
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set variations [variants_to_variations_arr $requested_variants]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set variations [macports::_variants_to_variations $requested_variants]
</span> if {[catch {set mport [mportopen $porturl $options $variations]} result]} {
$progress intermission
ui_error "Unable to open port '$portname' with variants '$requested_variants': $result"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -712,7 +699,7 @@ namespace eval restore {
</span> if {![dict exists $mports $portname]} {
set porturl [dict get $portinfo porturl]
set options [dict create ports_requested $requested subport $portname]
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set variations [variants_to_variations_arr $requested_variants]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set variations [macports::_variants_to_variations $requested_variants]
</span>
if {[catch {set mport [mportopen $porturl $options $variations]} result]} {
ui_debug $::errorInfo
</pre><pre style='margin:0'>
</pre>