clearlinux / bsdiff Goto Github PK
View Code? Open in Web Editor NEWBinary delta tools and library
License: Other
Binary delta tools and library
License: Other
This project is a forked version of BSDiff, as taken from the Chromium project at SVN Revision 122769. See README.chromium for background on its origins. Significant changes after the fork include: - Changing the BSDiff file format to support file owner, group, and permission information. - Adding more robust error handling. - Adding a new program, bsdump, that outputs BSDiff header information. - Converting the core functionality into a library, libbsdiff, with public API functions make_bsdiff_delta() and apply_bsdiff_delta().
After the bspatch
program applies a delta to FILE1 to produce FILE2, it runs chmod(2)
and chown(2)
to set permissions and ownership for FILE2 according to the metadata in the delta file.
This behavior is a convenience for some use cases. For example, consumers of the delta files (like swupd
from swupd-client) do not have to bother running the ownership/permission modifications on FILE2 after an update.
But from a testing perspective, requiring root privileges to apply delta files is an inconvenience when those delta files specify to change ownership to an arbitrary user ID and group ID, and the user running the test suite might lack privileges to carry out the operation.
To sidestep the root requirement, it would be nice to either make the chmod(2)
and chown(2)
calls optional in some way, or add a mechanism to hotpatch delta files on-the-fly to set the user/group ID to the effective user/group ID of the calling process, specifically for the test suite.
Hello.
Your versions of bsdiff is great with improvements to an original algorithm, and i want to use it on windows too.
It'd be great if some linux specific headers were removed and tool were compatible with MSVC.
Thanks for understanding.
I have 2 10MB big files where the bsdiff runs 82 minutes
bsdiff file_a file_b delta.diff
Hi, I could see the failures in the test script, I suspect the binary loaded in the source got some issue while syncing in the github.
Could you verify and update the test data?
/bsdiff-1.0.4/test$ sh run.sh
Running test #8 ...
Failed to apply delta (-1)
not ok 4 -
Running test #10 ...
Failed to apply delta (-1)
diff: 10.out: No such file or directory
not ok 6 - output does not match expected!!
There is a disabled functional test (number 14) that suffers from performance issues. The issue needs to be root caused and then we can re-enable that test.
It seems both https://github.com/thoughtpolice/minibsdiff and this project try to do similar things. Is there a chance that the api could be expanded a bit to allow custom compression algos?
In addition to the current compression algorithms, we should add zstd support.
It would be convenient to be able to run the test suite by calling run.sh
directly without needing to call make check
at toplevel. See #13.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.