<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/124263e0f23e0737499a4ec56a4e04f53dd675bc">https://github.com/macports/macports-base/commit/124263e0f23e0737499a4ec56a4e04f53dd675bc</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 124263e0f23e0737499a4ec56a4e04f53dd675bc
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Fri Apr 18 00:32:25 2025 +1000
<span style='display:block; white-space:pre;color:#404040;'> _archive_available: also check ARCHIVE_SITE_LOCAL
</span>---
src/port1.0/portutil.tcl | 59 ++++++++++++++++++++++++++----------------------
1 file changed, 32 insertions(+), 27 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portutil.tcl b/src/port1.0/portutil.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 245e0d4ab..172249bbe 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portutil.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portutil.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3454,8 +3454,8 @@ proc _archive_available {} {
</span> return 1
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # check if there's an archive available on the server
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- global archive_sites
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # check if there's an archive on the primary or local servers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global archive_sites env
</span> set mirrors macports_archives
if {[lsearch $archive_sites macports_archives::*] == -1} {
set mirrors [lindex [split [lindex $archive_sites 0] :] 0]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3465,32 +3465,37 @@ proc _archive_available {} {
</span> return 0
}
set archivetype $portfetch::mirror_sites::archive_type($mirrors)
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set archivename "${archiverootname}.${archivetype}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set archivename ${archiverootname}.${archivetype}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set sites_entries [list]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[info exists env(ARCHIVE_SITE_LOCAL)]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lappend sites_entries {*}$env(ARCHIVE_SITE_LOCAL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> # grab first site, should conventionally be the master mirror
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set sites_entry [lindex $portfetch::mirror_sites::sites($mirrors) 0]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # look for and strip off any tag, which will start with the first colon after the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # first slash after the ://
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set lastcolon [string last : $sites_entry]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set aftersep [expr {[string first : $sites_entry] + 3}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set firstslash [string first / $sites_entry $aftersep]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {$firstslash != -1 && $firstslash < $lastcolon} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- incr lastcolon -1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set site [string range $sites_entry 0 $lastcolon]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set site $sites_entry
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[string index $site end] ne "/"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- append site /
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- append site [option archive.subdir]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set url [portfetch::assemble_url $site $archivename]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_debug "Fetching $archivename archive size"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # curl getsize can return -1 instead of throwing an error for
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # nonexistent files on FTP sites.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {![catch {curl getsize $url} size] && $size > 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- && ![catch {curl getsize ${url}.rmd160} sigsize] && $sigsize > 0} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set archive_available_result 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lappend sites_entries [lindex $portfetch::mirror_sites::sites($mirrors) 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach sites_entry $sites_entries {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # look for and strip off any tag, which will start with the first colon after the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # first slash after the ://
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set lastcolon [string last : $sites_entry]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set aftersep [expr {[string first : $sites_entry] + 3}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set firstslash [string first / $sites_entry $aftersep]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {$firstslash != -1 && $firstslash < $lastcolon} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set site [string range $sites_entry 0 ${lastcolon}-1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set site $sites_entry
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set orig_site $site
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[string index $site end] ne "/"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ append site /
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set url [portfetch::assemble_url ${site}[option archive.subdir] $archivename]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_debug "Checking if $archivename exists at $site"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # curl getsize can return -1 instead of throwing an error for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # nonexistent files on FTP sites.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![catch {curlwrap getsize $orig_site {} $url} size] && $size > 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && ![catch {curlwrap getsize $orig_site {} ${url}.rmd160} sigsize] && $sigsize > 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set archive_available_result 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
set archive_available_result 0
</pre><pre style='margin:0'>
</pre>