Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions projects/github.com/jmacd/xdelta/package.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# xdelta3 — open-source VCDIFF (RFC 3284) delta compression by Joshua MacDonald.
#
# The most widely used VCDIFF implementation outside Google's own
# open-vcdiff (which is archived as of 2023-08). xdelta is what
# Chromium auto-update uses for some delta channels, what many
# embedded firmware update pipelines run, and the canonical
# alternative reference for the format.
#
# Upstream is dormant since 2020 but the project is not archived;
# the algorithm and CLI surface are RFC-stable. C autotools build,
# GPL-2.0+.
#
# This packages the modern v3 line (`xdelta3/`). The older `xdelta1/`
# subdir is left out — that's the 1998 prototype, of historical
# interest only.

distributable:
url: https://github.com/jmacd/xdelta/archive/refs/tags/v{{version}}.tar.gz
strip-components: 1

versions:
# Upstream publishes git tags but ZERO GitHub Releases. Use /tags.
github: jmacd/xdelta/tags

platforms:
- linux/x86-64
- linux/aarch64
- darwin/x86-64
- darwin/aarch64

build:
working-directory: xdelta3
dependencies:
gnu.org/autoconf: '*'
gnu.org/automake: '*'
gnu.org/libtool: '*'
gnu.org/make: '*'
freedesktop.org/pkg-config: '*'
linux:
gnu.org/gcc: '*'
script:
- autoreconf -fi
- ./configure --prefix={{prefix}}
- make --jobs {{ hw.concurrency }}
- make install

provides:
- bin/xdelta3

test:
# Round-trip: source → delta → reconstructed-target; verify identity.
- run: |
printf 'the quick brown fox jumps over the lazy dog\n' > source.txt
printf 'the quick brown FOX jumps over the lazy DOG\n' > target.txt
xdelta3 -e -s source.txt target.txt delta.vcdiff
xdelta3 -d -s source.txt delta.vcdiff out.txt
diff -q target.txt out.txt
Loading