<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/57847f7afa19806280ba7fb28ce3e12691e37454">https://github.com/macports/macports-base/commit/57847f7afa19806280ba7fb28ce3e12691e37454</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 57847f7af mportsync: use gzipped tarball if available
</span>57847f7af is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 57847f7afa19806280ba7fb28ce3e12691e37454
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Sun Jul 14 04:48:28 2024 +1000

<span style='display:block; white-space:pre;color:#404040;'>    mportsync: use gzipped tarball if available
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Should be compressed with --rsyncable in order to not defeat the rsync
</span><span style='display:block; white-space:pre;color:#404040;'>    algorithm and allow incremental updates.
</span>---
 doc/sources.conf             |  2 +-
 src/macports1.0/macports.tcl | 33 ++++++++++++++++++++++++++++++---
 2 files changed, 31 insertions(+), 4 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/doc/sources.conf b/doc/sources.conf
</span><span style='display:block; white-space:pre;color:#808080;'>index d6b695590..391d3500e 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/doc/sources.conf
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/doc/sources.conf
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -27,4 +27,4 @@
</span> # sites, etc.), the primary MacPorts source must always be tagged
 # "[default]", even if switched from the default "rsync://" URL.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-rsync://rsync.macports.org/macports/release/tarballs/ports.tar [default]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+rsync://rsync.macports.org/macports/release/tarballs/ports.tar.gz [default]
</span><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 89c8a404c..6a244762d 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;'>@@ -3243,6 +3243,9 @@ proc mportsync {{options {}}} {
</span> 
                 if {$is_tarball} {
                     set exclude_option "--exclude=*"
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                    if {$extension eq "tar"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        set filename ${filename}.gz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    }
</span>                     set include_option "--include=/${filename} --include=/${filename}.rmd160"
                     # need to do a few things before replacing the ports tree in this case
                     set destdir [file dirname $destdir]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3268,9 +3271,28 @@ proc mportsync {{options {}}} {
</span>                 }
 
                 if {$is_tarball} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    # verify signature for tarball
</span>                     global macports::archivefetch_pubkeys macports::hfscompression macports::autoconf::openssl_path
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    set tarball ${destdir}/[file tail $source]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set tarball [file join $destdir $filename]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    # Fetch plain .tar if .tar.gz is missing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    if {![file isfile $tarball]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        set filename [file rootname $filename]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        set include_option "--include=/${filename} --include=/${filename}.rmd160"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        set rsync_commandline "$rsync_path $rsync_options $include_option $exclude_option $srcstr $destdir"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        macports_try -pass_signal {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            system $rsync_commandline
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        } on error {} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            ui_error "Synchronization of the local ports tree failed doing rsync"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            incr numfailed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            continue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        set tarball [file join $destdir $filename]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        if {![file isfile $tarball]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            ui_error "Synchronization with rsync did not create $filename"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            incr numfailed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            continue
</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:#e0ffe0;'>+                    # verify signature for tarball
</span>                     set signature ${tarball}.rmd160
                     set openssl [macports::findBinary openssl $openssl_path]
                     set verified 0
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3301,7 +3323,8 @@ proc mportsync {{options {}}} {
</span>                     }
                     # extract tarball and move into place
                     file mkdir ${destdir}/tmp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    set tar_cmd "$tar -C ${destdir}/tmp -xf $tarball"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set zflag [expr {[file extension $tarball] eq ".gz" ? "z" : ""}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set tar_cmd "$tar -C ${destdir}/tmp -x${zflag}f $tarball"
</span>                     macports_try -pass_signal {
                         system $tar_cmd
                     } on error {eMessage} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3320,6 +3343,10 @@ proc mportsync {{options {}}} {
</span>                     file delete -force ${destdir}/ports
                     file rename ${destdir}/tmp/ports ${destdir}/ports
                     file delete -force ${destdir}/tmp
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                    # delete any old uncompressed tarball
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    if {[file extension $tarball] eq ".gz"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        file delete -force [file rootname $tarball]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    }
</span>                 }
 
                 set needs_portindex true
</pre><pre style='margin:0'>

</pre>