<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/854b9f79a8ce6eb8bf9898a07912ae942d36c142">https://github.com/macports/mpbb/commit/854b9f79a8ce6eb8bf9898a07912ae942d36c142</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 854b9f7  mirror-multi: speedups
</span>854b9f7 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 854b9f79a8ce6eb8bf9898a07912ae942d36c142
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Wed Mar 19 21:09:34 2025 +1100

<span style='display:block; white-space:pre;color:#404040;'>    mirror-multi: speedups
</span>---
 tools/mirror-multi.tcl | 24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/tools/mirror-multi.tcl b/tools/mirror-multi.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 6685d14..0f8514d 100755
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/tools/mirror-multi.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/tools/mirror-multi.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -197,11 +197,11 @@ proc set_mirror_done_local {portname value} {
</span> 
 proc get_dep_list {portinfo} {
     global deptypes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set deps [list]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set deps [dict create]
</span>     foreach deptype $deptypes {
         if {[dict exists $portinfo $deptype]} {
             foreach dep [dict get $portinfo $deptype] {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                lappend deps [lindex [split $dep :] end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                dict set deps [lindex [split $dep :] end] 1
</span>             }
         }
     }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -257,7 +257,7 @@ proc skip_mirror {mport identifier} {
</span>         # no distfiles, no need to mirror
         return 1
     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    global distfiles_results check_distfiles_url distfiles_url
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global distfiles_results check_distfiles_url
</span>     if {![info exists distfiles]} {
         set distfiles [list]
     }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -266,6 +266,7 @@ proc skip_mirror {mport identifier} {
</span>     }
     if {$check_distfiles_url} {
         set dist_subdir [_mportkey $mport dist_subdir]
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        global distfiles_url distfiles_url_results
</span>     }
     set distpath [_mportkey $mport distpath]
     set filespath [_mportkey $mport filespath]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -276,8 +277,14 @@ proc skip_mirror {mport identifier} {
</span>         }
         set distfile [getdistname $distfile]
         if {$check_distfiles_url} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            set distfile_url ${distfiles_url}${dist_subdir}/[portfetch::percent_encode $distfile]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {![catch {curl getsize $distfile_url} size] && $size > 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[dict exists $distfiles_url_results ${dist_subdir}/${distfile}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set url_result [dict get $distfiles_url_results ${dist_subdir}/${distfile}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set distfile_url ${distfiles_url}${dist_subdir}/[portfetch::percent_encode $distfile]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set url_result [expr {![catch {curl getsize $distfile_url} size] && $size > 0}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                dict set distfiles_url_results ${dist_subdir}/${distfile} $url_result
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {$url_result} {
</span>                 continue
             }
         }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -341,7 +348,7 @@ proc mirror_port {portinfo} {
</span>             continue
         }
         set portinfo [mportinfo $mport]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        lappend deps {*}[get_dep_list $portinfo]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set deps [dict merge [get_dep_list $portinfo] $deps]
</span>         set skip_result [skip_mirror $mport "$portname +${variant}"]
         if {$do_mirror && $skip_result == 0} {
             incr attempted
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -365,7 +372,7 @@ proc mirror_port {portinfo} {
</span>             continue
         }
         set portinfo [mportinfo $mport]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        lappend deps {*}[get_dep_list $portinfo]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set deps [dict merge [get_dep_list $portinfo] $deps]
</span>         set skip_result [skip_mirror $mport "$portname darwin $os_major $os_arch"]
         if {$do_mirror && $skip_result == 0} {
             incr attempted
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -383,7 +390,7 @@ proc mirror_port {portinfo} {
</span>     }
 
     set dep_failed 0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach dep [lsort -unique $deps] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach dep [dict keys $deps] {
</span>         if {![dict exists $processed $dep] && [check_mirror_done $dep] == 0} {
             set result [mportlookup $dep]
             if {[llength $result] < 2} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -422,6 +429,7 @@ while {[string match -* [lindex $argv 0]]} {
</span>         }
         -d {
             set check_distfiles_url yes
<span style='display:block; white-space:pre;background:#e0ffe0;'>+            set distfiles_url_results [dict create]
</span>             set distfiles_url [lindex $argv 1]
             set argv [lrange $argv 1 end]
         }
</pre><pre style='margin:0'>

</pre>