new(zsync.moria.org.uk): zsync — rsync-style transfer over plain HTTP#13115
Open
tannevaled wants to merge 2 commits into
Open
new(zsync.moria.org.uk): zsync — rsync-style transfer over plain HTTP#13115tannevaled wants to merge 2 commits into
tannevaled wants to merge 2 commits into
Conversation
Original C reference implementation of zsync (Colin Phipps, Artistic-2.0) — a one-sided rsync-style protocol that does the rolling-checksum matching on the client and pulls only the differing blocks from any plain HTTP server. Ships zsyncmake (build .zsync metadata) and zsync (delta-download a target file). Builds the bundled tarball at zsync.moria.org.uk; pinned to -std=gnu89 plus _DARWIN_C_SOURCE/_GNU_SOURCE so the K&R-style bundled zlib and the timegm() call compile under recent clang in default-strict mode.
The upstream tarball bundles config.guess/config.sub timestamped 2009-06-10, which predates the aarch64 triplet, so configure bails out on linux/aarch64 with 'cannot guess build type; you must specify one'. Drop in current FSF copies (same fix Debian's dh-autoreconf applies).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds zsync, the original C reference implementation (Colin Phipps, Artistic-2.0). zsync is a one-sided rsync-style protocol: the client does the rolling-checksum matching locally and pulls only the differing blocks from any plain HTTP server — no special server-side tooling required.
Ships:
The recipe targets the upstream tarball at zsync.moria.org.uk (currently 0.6.4, released 2026-05-14); the same source line Debian/Ubuntu's `apt-get install zsync` ships. Two CFLAGS workarounds are needed under recent clang in default-strict mode:
Both are inline-documented in the recipe. Built and tested locally (darwin/aarch64); the test verifies version banner + `zsyncmake` generates a valid `.zsync` metadata file.
Refs: zsync.moria.org.uk, homebrew/zsync (which packages a Go fork — this recipe sticks with the canonical C reference).