<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch release-2.5
in repository macports-base.

</pre>
<p><a href="https://github.com/macports/macports-base/commit/e0a9ced63ae2ce31d55f44cfe57202de2857c4a2">https://github.com/macports/macports-base/commit/e0a9ced63ae2ce31d55f44cfe57202de2857c4a2</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/release-2.5 by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new e0a9ced  Fix reclaim handling of circular deps
</span>e0a9ced is described below

<span style='display:block; white-space:pre;color:#808000;'>commit e0a9ced63ae2ce31d55f44cfe57202de2857c4a2
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Sun Jul 1 14:56:33 2018 +1000

<span style='display:block; white-space:pre;color:#404040;'>    Fix reclaim handling of circular deps
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Fixes: https://trac.macports.org/ticket/56730
</span><span style='display:block; white-space:pre;color:#404040;'>    (cherry picked from commit f4affbaedcd06329f4b85262267cce1a017fd183)
</span>---
 src/macports1.0/reclaim.tcl | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

<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 ecbb1b6..d73f408 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;'>@@ -511,23 +511,28 @@ namespace eval reclaim {
</span> 
         ui_msg "$macports::ui_prefix Checking for unnecessary unrequested ports"
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        array set ports {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>         foreach port [sort_portlist_by_dependendents [registry::entry imaged]] {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            set isrequested([$port name]) [registry::property_retrieve $port requested]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set ports([$port name]) $port
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {$isrequested([$port name]) == 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set portname [$port name]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {![info exists isrequested($portname)] || $isrequested($portname) == 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set isrequested($portname) [$port requested]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {$isrequested($portname) == 0} {
</span>                 foreach dependent [$port dependents] {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    if {$isrequested([$dependent name]) != 0} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        ui_debug "[$port name] is requested by [$dependent name]"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        set isrequested([$port name]) 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set dname [$dependent name]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    if {![info exists isrequested($dname)]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        ui_debug "$portname appears to have a circular dependency involving $dname"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        set isrequested($portname) 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        break
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    } elseif {$isrequested($dname) != 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        ui_debug "$portname is requested by $dname"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        set isrequested($portname) 1
</span>                         break
                     }
                 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                if {$isrequested([$port name]) == 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {$isrequested($portname) == 0} {
</span>                     lappend unnecessary_ports $port
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    lappend unnecessary_names [$port name]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    lappend unnecessary_names "$portname @[$port version]_[$port revision][$port variants]"
</span>                     incr unnecessary_count
                 }
             }
</pre><pre style='margin:0'>

</pre>