<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/1e6539d9d656867f4ae2ef55e3b32ebeb389f4cb">https://github.com/macports/macports-base/commit/1e6539d9d656867f4ae2ef55e3b32ebeb389f4cb</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 1e6539d9d Reduce number of rsync connections
</span>1e6539d9d is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 1e6539d9d656867f4ae2ef55e3b32ebeb389f4cb
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Mon Sep 26 13:32:01 2022 +1000

<span style='display:block; white-space:pre;color:#404040;'>    Reduce number of rsync connections
</span>---
 src/macports1.0/macports.tcl   |  8 ++++----
 src/macports1.0/selfupdate.tcl | 18 ++++++++++--------
 2 files changed, 14 insertions(+), 12 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/macports1.0/macports.tcl b/src/macports1.0/macports.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index ac2ec6569..42f1d5682 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/macports1.0/macports.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/macports1.0/macports.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2909,14 +2909,16 @@ proc mportsync {{optionslist {}}} {
</span>                 # now sync the index if the local file is missing or older than a day
                 if {![file isfile $indexfile] || [clock seconds] - [file mtime $indexfile] > 86400
                       || [info exists options(no_reindex)]} {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set include_option "--include=/PortIndex --exclude=*"
</span>                     if {$is_tarball} {
                         # chop ports.tar off the end
                         set index_source [string range $source 0 end-[string length [file tail $source]]]
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                        set include_option "--include=/PortIndex.rmd160 ${include_option}"
</span>                     } else {
                         set index_source $source
                     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    set remote_indexfile "${index_source}PortIndex_${macports::os_platform}_${macports::os_major}_${macports::os_arch}/PortIndex"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    set rsync_commandline "$macports::autoconf::rsync_path $rsync_options $remote_indexfile $destdir"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set remote_indexdir "${index_source}PortIndex_${macports::os_platform}_${macports::os_major}_${macports::os_arch}/"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set rsync_commandline "$macports::autoconf::rsync_path $rsync_options $include_option $remote_indexdir $destdir"
</span>                     macports_try -pass_signal {
                         system $rsync_commandline
                         
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2926,8 +2928,6 @@ proc mportsync {{optionslist {}}} {
</span>                             set ok 0
                             set needs_portindex true
                             # verify signature for PortIndex
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                            set rsync_commandline "$macports::autoconf::rsync_path $rsync_options ${remote_indexfile}.rmd160 $destdir"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            system $rsync_commandline
</span>                             foreach pubkey $macports::archivefetch_pubkeys {
                                 macports_try -pass_signal {
                                     exec $openssl dgst -ripemd160 -verify $pubkey -signature ${destdir}/PortIndex.rmd160 ${destdir}/PortIndex
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/macports1.0/selfupdate.tcl b/src/macports1.0/selfupdate.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 979c02966..74ac8db70 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/macports1.0/selfupdate.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/macports1.0/selfupdate.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -49,16 +49,23 @@ proc selfupdate::main {{optionslist {}} {updatestatusvar {}}} {
</span>         set updatestatus no
     }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    set rsync_url rsync://${rsync_server}/
</span>     # are we syncing a tarball? (implies detached signature)
     set is_tarball 0
     if {[string range $rsync_dir end-3 end] eq ".tar"} {
         set is_tarball 1
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set mp_source_path [file join $portdbpath sources $rsync_server [file dirname $rsync_dir]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set tarballs_dir [file dirname $rsync_dir]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        append rsync_url ${tarballs_dir}/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set mp_source_path [file join $portdbpath sources $rsync_server $tarballs_dir]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set tarfile [file tail $rsync_dir]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set include_options " --include=[macports::shellescape /${tarfile}] --include=[macports::shellescape /${tarfile}.rmd160] --exclude=*"
</span>     } else {
         if {[string index $rsync_dir end] ne "/"} {
             append rsync_dir /
         }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        append rsync_url $rsync_dir
</span>         set mp_source_path [file join $portdbpath sources $rsync_server $rsync_dir]
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        set include_options ""
</span>     }
     # create the path to the to be downloaded sources if it doesn't exist
     if {![file exists $mp_source_path]} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -69,7 +76,7 @@ proc selfupdate::main {{optionslist {}} {updatestatusvar {}}} {
</span>     # sync the MacPorts sources
     ui_msg "$macports::ui_prefix Updating MacPorts base sources using rsync"
     macports_try -pass_signal {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        system "$rsync_path $rsync_options [macports::shellescape rsync://${rsync_server}/$rsync_dir] [macports::shellescape $mp_source_path]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        system "$rsync_path ${rsync_options}${include_options} [macports::shellescape $rsync_url] [macports::shellescape $mp_source_path]"
</span>     } on error {eMessage} {
         error "Error synchronizing MacPorts sources: $eMessage"
     }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -77,13 +84,8 @@ proc selfupdate::main {{optionslist {}} {updatestatusvar {}}} {
</span>     if {$is_tarball} {
         # verify signature for tarball
         global macports::archivefetch_pubkeys
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        macports_try -pass_signal {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            system "$rsync_path $rsync_options [macports::shellescape rsync://${rsync_server}/${rsync_dir}.rmd160] [macports::shellescape $mp_source_path]"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        } on error {eMessage} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            error "Error synchronizing MacPorts source signature: $eMessage"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span>         set openssl [macports::findBinary openssl $macports::autoconf::openssl_path]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set tarball ${mp_source_path}/[file tail $rsync_dir]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set tarball ${mp_source_path}/${tarfile}
</span>         set signature ${tarball}.rmd160
         set verified 0
         foreach pubkey $macports::archivefetch_pubkeys {
</pre><pre style='margin:0'>

</pre>