From: Max Vilimpoc Date: Thu, 27 Aug 2026 23:56:49 +0000 (+0200) Subject: dotfiles: install the rsync release's ssh.exe beside rsync.exe X-Git-Url: https://vilimpoc.org/repos/dotfiles/commitdiff_plain/b8144088df5abe5fb042890ef5bc8fd72b279b79?hp=b8144088df5abe5fb042890ef5bc8fd72b279b79 dotfiles: install the rsync release's ssh.exe beside rsync.exe The rsync-windows release is now one zip per architecture -- rsync.exe, the ssh.exe it runs, and the licence texts, under exactly those names -- rather than a bare rsync.exe, so the pinned .../download/v3.5.0-g521ad8ad/rsync.exe this script fetched no longer exists. Fetch rsync-windows-x64.zip or rsync-windows-x86.zip by OS bitness, verify it against the .sha256 published beside it, unpack to a scratch directory and move out the four files we asked for -- so a future release adding a fifth cannot quietly drop it onto the machine PATH. The two exes go in together on purpose: rsync.exe prefers an ssh.exe in its own directory, and the release builds one because the client Windows ships reads its stdin 3KB at a time, which holds a transfer *from* the box at ~17MB/s however fast the link is. Nothing else about it differs -- same ~/.ssh, same ssh-agent, same known_hosts -- and a bare `ssh` still resolves to the in-box client, which sits ahead of C:\Tools\rsync on the PATH. That ssh.exe links against the libcrypto.dll the OpenSSH Client capability puts in System32, and ships no copy of its own, so that capability is now installed here rather than assumed: it was already the thing ssh-agent, the git core.sshCommand in the non-elevated half, and rsync's own transport all depend on. Where it is absent, or its LibreSSL is older than the 3.8.2 the release is built against, the script says so and installs rsync alone. The URL follows the releases/latest/download/ redirect rather than the API, whose unauthenticated 60/hour per-IP limit a provisioning run behind a shared NAT can genuinely exhaust; pin the tag in $RsyncUrl to hold a box on a build. Verified end to end against the live release under Windows PowerShell 5.1 -- which is what the .bat launches, and which refuses to Expand-Archive anything not named .zip, hence "download-$RsyncAsset" for the scratch file. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01D4ozcQcqMSJBi2Ez4Pfxyc ---