The signature protects against compromised mirrors, not just corruption during transfer.

- Josh

On 30/8/2025 04:14, Jason Liu wrote:
Yes and no.

By default, rsync primarily relies on the file size and modification timestamps to determine whether a particular file needs to be (re-)synchronized. The -c/--checksum option in rsync runs checksums during the initial scan of both ends, instead of relying on file size and timestamp.

However, note that these checksums are only computed _prior_ to performing any data transfers. So using -c cannot serve as a file integrity check after the transfer has been performed. This is why, whenever I want to backup or archive stuff using rsync, I run the same rsync command _twice_, the first time using 'rsync -av', and then the second time using 'rsync -avc'. If the checksumming the second time doesn't result in any data being transferred, then you can essentially treat the second rsync as a file integrity check.

P.S.: One other downside to using rsync's -c option is that it uses a 128-bit MD4 checksum, not MD5 or SHA.

--
Jason Liu


On Fri, Aug 29, 2025 at 1:55 PM Nils Breunese <[email protected] <mailto:[email protected]>> wrote:

    Ryan Carsten Schmidt <[email protected]
    <mailto:[email protected]>> wrote:

     > On Aug 29, 2025, at 11:01, Dave Allured - NOAA Affiliate wrote:
     >
     >> What is the problem with just going back to rsync and hosting
    the uncompressed port tree?  Then only the changed files would be
    downloaded for port sync.  You could also offer a complete tarball
    available as an alternative, for new installs and full rebuilds.  I
    feel like I am missing something here.
     >
     > We switched to using a tarball so that its integrity could be
    verified with a signature.
     >
     > https://github.com/macports/macports-base/
    commit/476e4e15ff52ed1582cafa5d4be0476a6c05a5c1 <https://github.com/
    macports/macports-base/commit/476e4e15ff52ed1582cafa5d4be0476a6c05a5c1>

    AFAIK rsync can already do file-level integrity checksum checks, so
    maybe there is no need for this?

    Nils.


Reply via email to