]> git.ipfire.org Git - thirdparty/rsync.git/commit
old_versions: commit static binaries of old rsync releases
authorAndrew Tridgell <andrew@tridgell.net>
Sun, 31 May 2026 11:01:09 +0000 (21:01 +1000)
committerAndrew Tridgell <andrew@tridgell.net>
Mon, 1 Jun 2026 09:21:35 +0000 (19:21 +1000)
commite8d10dc2adc62ace14c07dd394daa9ca7fdcae47
tree05370900475d92179eecbfef19b135959f96a1d5
parentad14569561be37a9ee56613f867728924763e8db
old_versions: commit static binaries of old rsync releases

Nine statically-linked, stripped binaries for the version-mixing test
suite (and ad-hoc cross-version behaviour checks): every x.y.0 release
from 2.6.0 (2004, protocol 27) through 3.4.0, plus the 3.1.3/3.2.7/3.4.1
point releases. 2.6.0 is the practical floor; older tags need more
porting to build on a current toolchain.

build_static.sh rebuilds any release from its git tag, applying the
minimal patches needed to compile old sources on a modern toolchain:
K&R lseek64 redecl, gettimeofday, -std=gnu11, --disable-openssl, and
_FORTIFY_SOURCE disabled (modern FORTIFY=3 turns latent benign over-reads
in old rsync into aborts when it runs as a server). Pre-3.0 trees ship
configure.in, so it regenerates configure (autoheader/autoconf) after
neutralizing the dead AC_LIBOBJ replacement fallbacks, generates proto.h,
and stubs the dropped vendored lib/addrinfo.h -- all guarded to no-op on
newer versions.

.gitattributes marks the binaries binary (so the text=auto rule can't
corrupt them) and export-ignore (kept out of the release tarball).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
12 files changed:
.gitattributes
old_versions/README.md [new file with mode: 0644]
old_versions/build_static.sh [new file with mode: 0755]
old_versions/rsync_2.6.0 [new file with mode: 0755]
old_versions/rsync_3.0.0 [new file with mode: 0755]
old_versions/rsync_3.1.0 [new file with mode: 0755]
old_versions/rsync_3.1.3 [new file with mode: 0755]
old_versions/rsync_3.2.0 [new file with mode: 0755]
old_versions/rsync_3.2.7 [new file with mode: 0755]
old_versions/rsync_3.3.0 [new file with mode: 0755]
old_versions/rsync_3.4.0 [new file with mode: 0755]
old_versions/rsync_3.4.1 [new file with mode: 0755]