Module Name: othersrc Committed By: agc Date: Fri Jan 11 06:27:01 UTC 2013
Update of /cvsroot/othersrc/external/bsd/binpatch In directory ivanova.netbsd.org:/tmp/cvs-serv26282 Log Message: Import a binary patch library, libbinpatch(3), and program, binpatch(1), into the othersrc repository. This can be used to encode a binary patch file from an original file, and a new file. To do this, 3 separate "instructions" are used, similar to those outlined in RFC 3284 - + add - addition of new data + copy - copying of data from original file + run - a run of characters, similar to memset(3) The binary patches generated here are a much simplified form of those described in the RFC, but have 64bit offsets and 32bit sizes in the instructions. The generated binary patch files are also much smaller than the original files, and even standard diffs, and are only just larger then the equivalent vcdiff binary patch file. % diff f1 f2 | wc 58 338 1969 % diff -u f1 f2 | wc 85 408 2530 % binpatch -e f1 f2 | wc 44 269 1801 % vcdiff encode -dictionary f1 -target f2 | wc 40 257 1663 (The last is the Google vcdiff program found in pkgsrc/devel/open-vcdiff) The binpatch(1) program can be used to generate binary patch files, and to reconstruct the target files, in the following way % binpatch -e -o patch f1 f2 % binpatch -f f1 -o recon patch % diff f2 recon % rm -f recon % binpatch -v -f f1 -o recon patch Add 1337 bytes Copy 187 bytes from 0 Copy 386 bytes from 198 Add 50 bytes Copy 173 bytes from 592 Add 55 bytes Copy 373 bytes from 816 Add 74 bytes Copy 34 bytes from 1189 Add 182 bytes Copy 23 bytes from 1262 diff f2 recon % diff f2 recon % rm -f recon binpatch(1) uses libbinpatch(3) and libnetdiff(3) to encode binary patch files, and libbinpatch(3) to decode binary patch files. Status: Vendor Tag: CROOKS Release Tags: binpatch-base N othersrc/external/bsd/binpatch/Makefile N othersrc/external/bsd/binpatch/bin/007.expected N othersrc/external/bsd/binpatch/bin/Makefile N othersrc/external/bsd/binpatch/bin/f1 N othersrc/external/bsd/binpatch/bin/f2 N othersrc/external/bsd/binpatch/dist/Makefile N othersrc/external/bsd/binpatch/dist/binpatch.c N othersrc/external/bsd/binpatch/dist/binpatch.h N othersrc/external/bsd/binpatch/dist/main.c N othersrc/external/bsd/binpatch/dist/libbinpatch.3 N othersrc/external/bsd/binpatch/dist/binpatch.1 N othersrc/external/bsd/binpatch/lib/Makefile N othersrc/external/bsd/binpatch/lib/shlib_version No conflicts created by this import