<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/00aab6a7db2b0be80bfa8a3a5a0cda9719fbc093">https://github.com/macports/macports-base/commit/00aab6a7db2b0be80bfa8a3a5a0cda9719fbc093</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 00aab6a7db2b0be80bfa8a3a5a0cda9719fbc093
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Sat Mar 8 12:18:28 2025 +1100

<span style='display:block; white-space:pre;color:#404040;'>    checksites: fix handling of sites from env with tags
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Correctly append the sites from the environment variable to the urlmap
</span><span style='display:block; white-space:pre;color:#404040;'>    for each tag, rather than appending to the main list once per tag. Only
</span><span style='display:block; white-space:pre;color:#404040;'>    add untagged sites to all tags. Only iterate over site_list once.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/57719
</span>---
 src/port1.0/fetch_common.tcl | 37 +++++++++++++++++++------------------
 1 file changed, 19 insertions(+), 18 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/fetch_common.tcl b/src/port1.0/fetch_common.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index bd87795a6..ba5187fa0 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/fetch_common.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/fetch_common.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -164,14 +164,19 @@ proc portfetch::checksites {sitelists mirrorfile} {
</span>         global ${listname}.mirror_subdir
         set full_list [set $listname]
         # add the specified global and user-defined mirrors
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set sglobal ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set senv ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set global_sites [list]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set untagged_env_sites [list]
</span>         if {[llength $extras] >= 2} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            set sglobal [lindex $extras 0]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set senv [lindex $extras 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            lassign $extras sglobal senv
</span>             lappend full_list $sglobal
<span style='display:block; white-space:pre;background:#e0ffe0;'>+            set global_sites [mirror_sites $sglobal "" "" $mirrorfile]
</span>             if {[info exists env($senv)]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                set full_list [concat $env($senv) $full_list]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                foreach env_site $env($senv) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    lappend full_list $env_site
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    if {![regexp $tagged_url_re $env_site]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        lappend untagged_env_sites $env_site
</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:#e0e0e0;'>@@ -192,26 +197,22 @@ proc portfetch::checksites {sitelists mirrorfile} {
</span>             }
         }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        # add in the global and user-defined mirrors for each tag
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        foreach site $site_list {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {[regexp $tagged_url_re $site match site tag] && ![info exists extras_added($tag)]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                if {$sglobal ne ""} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    lappend site_list {*}[mirror_sites $sglobal $tag "" $mirrorfile]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                if {[info exists env($senv)]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    set site_list [concat $env($senv) $site_list]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                set extras_added($tag) yes
</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;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set tags [dict create]
</span>         foreach site $site_list {
             if {[regexp $tagged_url_re $site match site tag]} {
                 lappend urlmap($tag) $site
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                dict set tags $tag 1
</span>             } else {
                 lappend urlmap($listname) $site
             }
         }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # add in the global and user-defined mirrors for each tag
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach tag [dict keys $tags] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # Only add untagged sites from the environment here.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # Tagged ones will already be in the list.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            lappend urlmap($tag) {*}$untagged_env_sites {*}$global_sites
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>     }
 }
 
</pre><pre style='margin:0'>

</pre>