Giter VIP home page Giter VIP logo

bsdiff's Introduction

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().

bsdiff's People

Contributors

fenrus75 avatar phmccarty avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bsdiff's Issues

Remove need for running test suite as root

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.

Allow to compile on Windows

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.

Test failure

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!!

Re-enable functional test #14

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.

Add zstd support

In addition to the current compression algorithms, we should add zstd support.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.