<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/cc766c6fd171f4fdc8449a83eca3a830409cb607">https://github.com/macports/macports-base/commit/cc766c6fd171f4fdc8449a83eca3a830409cb607</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 cc766c6fd Use registry2 for registry_installed/action_location
</span>cc766c6fd is described below
<span style='display:block; white-space:pre;color:#808000;'>commit cc766c6fd171f4fdc8449a83eca3a830409cb607
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Wed Feb 7 17:02:12 2024 +1100
<span style='display:block; white-space:pre;color:#404040;'> Use registry2 for registry_installed/action_location
</span>---
src/port/port.tcl | 57 +++++++++++++++++++++++++++++--------------------------
1 file changed, 30 insertions(+), 27 deletions(-)
<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 9e79c405f..a9a0d1f4e 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;'>@@ -146,27 +146,39 @@ proc map_friendly_field_names { field } {
</span>
proc registry_installed {portname {portversion ""}} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set ilist [registry::installed $portname $portversion]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if { [llength $ilist] > 1 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set possible_matches [registry::entry imaged $portname]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {$portversion ne ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set matches [list]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach p $possible_matches {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Ambiguous syntax for version, may or may not include the revision
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {"[$p version]_[$p revision][$p variants]" eq $portversion || [$p version] eq $portversion} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lappend matches $p
</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;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set matches $possible_matches
</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 {[llength $matches] > 1} {
</span> # set portname again since the one we were passed may not have had the correct case
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set portname [lindex $ilist 0 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set portname [[lindex $matches 0] name]
</span> ui_notice "The following versions of $portname are currently installed:"
<span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach i [portlist_sortint $ilist] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set iname [lindex $i 0]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set iversion [lindex $i 1]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set irevision [lindex $i 2]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set ivariants [lindex $i 3]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set iactive [lindex $i 4]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if { $iactive == 0 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts " $iname @${iversion}_${irevision}${ivariants}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } elseif { $iactive == 1 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts " $iname @${iversion}_${irevision}${ivariants} (active)"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach i $matches {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[$i state] eq "installed"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts " $portname @[$i version]_[$i revision][$i variants] (active)"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts " $portname @[$i version]_[$i revision][$i variants]"
</span> }
}
return -code error "Registry error: Please specify the full version as recorded in the port registry."
<span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return [lindex $ilist 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } elseif {[llength $matches] == 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {$portversion eq ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return -code error "Registry error: $portname not registered as installed."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return -code error "Registry error: $portname $portversion not registered as installed."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ return [lindex $matches 0]
</span> }
# Add the entry to the given portlist, adding default values for name,
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2088,22 +2100,13 @@ proc action_location { action portlist opts } {
</span> return 1
}
foreachport $portlist {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if { [catch {set ilist [registry_installed $portname [composite_version $portversion $variations]]} result] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[catch {set ref [registry_installed $portname [composite_version $portversion $variations]]} result]} {
</span> ui_debug $::errorInfo
break_softcontinue "port location failed: $result" 1 status
<span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # set portname again since the one we were passed may not have had the correct case
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set portname [lindex $ilist 0]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set version [lindex $ilist 1]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set revision [lindex $ilist 2]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set variants [lindex $ilist 3]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set epoch [lindex $ilist 5]
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set ref [registry::open_entry $portname $version $revision $variants $epoch]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set imagedir [registry::property_retrieve $ref location]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_notice "Port $portname ${version}_${revision}${variants} is installed as an image in:"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts $imagedir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_notice "Port [$ref name] [$ref version]_[$ref revision][$ref variants] is installed as an image in:"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts [$ref location]
</span> }
return $status
</pre><pre style='margin:0'>
</pre>