<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>