new(google/open-vcdiff): VCDIFF (RFC 3284) encoder/decoder#13141
Conversation
|
Parking this PR — source build needs vendored gflags submodule + custom m4 macros. After 3 iterations, the structural issue is that open-vcdiff's To make this work properly, the recipe would need to:
Or patch Since this is an archived upstream (last commit 2023-08-26) and the recipe is a 30-line autotools build, the maintenance ROI is low. Leaving the PR open for review — happy to invest further iterations if maintainers consider it worth it, otherwise closing in favor of a leaner fix later. Symptoms documented in the recipe / commit log:
|
Canonical Google C++ implementation of the VCDIFF generic differencing format (RFC 3284). Used by Chrome's SDCH, Google's update protocol, and various delta-compression schemes. Upstream archived 2023-08-26; this remains the reference implementation. Apache-2.0. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Two compounding bugs in version resolution: 1. Upstream publishes git tags but ZERO GitHub Releases. Default `github: <repo>` mode queries /releases — empty. Switched to `github: google/open-vcdiff/tags`. 2. Tag `open-vcdiff-0.8` is 2-part — strict semver rejects. Added to `ignore:`. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
8c88388 to
d579dc6
Compare
The release tarball is a git-archive of the tag and no longer contains the in-tree gflags/gtest sources the shipped configure.ac / Makefile.am reference (they were Google-Code svn trees, dropped at GitHub migration, never submodules). autoreconf therefore dies on the missing gflags/src/gflags/*.h.in, and even past that `make` cannot build the bundled libgflags the vcdiff binary links against. Skip the build system: the library sources are self-contained under the open_vcdiff namespace, so compile them straight into a static vcdiff with a minimal portable config.h, linking the packaged gflags. This also drops the 2010 config.sub/libtool that couldn't target arm64. Verified on darwin/aarch64: builds + encode/decode round-trip identical. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
d579dc6 to
9422f2d
Compare
Removed platform specifications and simplified build commands.
Updated PLATFORM_FLAGS to use a list format for better readability.
Summary
Adds Google's canonical C++ implementation of the VCDIFF (RFC 3284) generic-differencing format.
Why now
VCDIFF underlies several systems still in use:
The upstream repo was archived on 2023-08-26, but the implementation remains RFC-compliant and is the canonical C++ reference. Nothing newer replaces it.
Build
autoreconf -fi+./configure+make); Apache-2.0.Test plan
Round-trip encode/decode of a small dictionary+target pair, verifying byte-identity after decode. Exercises both the encoder and decoder.
🤖 Generated with Claude Code