<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository mpbb.

</pre>
<p><a href="https://github.com/macports/mpbb/commit/c48853e678871e580dca89232e52a6d965a31812">https://github.com/macports/mpbb/commit/c48853e678871e580dca89232e52a6d965a31812</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit c48853e678871e580dca89232e52a6d965a31812
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Thu Oct 5 03:46:07 2023 +1100

<span style='display:block; white-space:pre;color:#404040;'>    dependencies.tcl: activate using already open mport
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Doing this instead of using registry::run_target saves running another
</span><span style='display:block; white-space:pre;color:#404040;'>    mportopen for each dependency, so should perform better. This wasn't
</span><span style='display:block; white-space:pre;color:#404040;'>    originally possible due to the workaround for
</span><span style='display:block; white-space:pre;color:#404040;'>    https://trac.macports.org/ticket/24857.
</span>---
 tools/dependencies.tcl | 26 ++++++++++----------------
 1 file changed, 10 insertions(+), 16 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/tools/dependencies.tcl b/tools/dependencies.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 08c873a..15a3f68 100755
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/tools/dependencies.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/tools/dependencies.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -425,7 +425,6 @@ proc install_dep {ditem} {
</span>     if {[registry::entry imaged $depinfo(name) $depinfo(version) $depinfo(revision) $depinfo(canonical_active_variants)] ne ""} {
         puts "Already installed, nothing to do"
         puts $::log_status_dependencies {[OK]}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        catch {mportclose $ditem}
</span>         return
     }
     # clean up any work directories left over from earlier
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -526,7 +525,6 @@ proc install_dep {ditem} {
</span>             failcache_update $depinfo(name) [ditem_key $ditem porturl] $depinfo(canonical_active_variants) 0
         }
     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    catch {mportclose $ditem}
</span>     puts $::log_status_dependencies {[OK]}
 }
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -561,21 +559,17 @@ if {$any_built} {
</span> }
 
 proc activate_dep {ditem} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    array set depinfo $::mportinfo_array($ditem)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set entrylist [registry::entry imaged $depinfo(name) $depinfo(version) $depinfo(revision) $depinfo(canonical_active_variants)]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[llength $entrylist] < 1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        puts stderr "Failed to activate $depinfo(name) @$depinfo(version)_$depinfo(revision)$depinfo(canonical_active_variants): Not installed?!"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        exit 2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[llength $entrylist] > 1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        puts stderr "Warning: got multiple registry entries matching $depinfo(name) @$depinfo(version)_$depinfo(revision)$depinfo(canonical_active_variants)"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set e [lindex $entrylist 0]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {![registry::run_target $e activate [list]]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-              && [catch {portimage::activate [$e name] [$e version] [$e revision] [$e variants] [list]} result]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set fail 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[catch {mportexec $ditem activate} result]} {
</span>         puts stderr $::errorInfo
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        puts stderr "Activating [$e name] @[$e version]_[$e revision][$e variants] failed: $result"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        exit 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_error "Activate failed: $result"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set fail 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {$fail || $result > 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        array set depinfo $::mportinfo_array($ditem)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        puts stderr "Activation of dependency '$depinfo(name)' with variants '$depinfo(canonical_active_variants)' failed, aborting."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        puts $::log_subports_progress "Building '$::portname' ... \[ERROR\] (failed to activate dependency '$depinfo(name)') maintainers: [get_maintainers $::portname $depinfo(name)]."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        exit 1
</span>     }
 }
 
</pre><pre style='margin:0'>

</pre>