GitHub - anthraxx/diffoscope · GitHub
/" data-turbo-transient="true" />
Skip to content
Search or jump to...
Search code, repositories, users, issues, pull requests...
-->
Search
Clear
Search syntax tips
Provide feedback
--><br>We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel
Submit feedback
Saved searches
Use saved searches to filter your results more quickly
-->
Name
Query
To see all available qualifiers, see our documentation.
Cancel
Create saved search
Sign in
/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up
Appearance settings
Resetting focus
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
anthraxx
diffoscope
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star<br>92
master
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>1,250 Commits<br>1,250 Commits
bin
bin
debian
debian
diffoscope
diffoscope
tests
tests
.coveragerc
.coveragerc
.gitattributes
.gitattributes
.gitignore
.gitignore
.travis.yml
.travis.yml
COPYING
COPYING
MANIFEST.in
MANIFEST.in
README.rst
README.rst
logo.svg
logo.svg
setup.py
setup.py
View all files
Repository files navigation
diffoscope
diffoscope will try to get to the bottom of what makes files or<br>directories different. It will recursively unpack archives of many kinds<br>and transform various binary formats into more human readable form to<br>compare them. It can compare two tarballs, ISO images, or PDF just as<br>easily.
It can be scripted through error codes, and a report can be produced<br>with the detected differences. The report can be text or HTML.<br>When no type of report has been selected, diffoscope defaults<br>to write a text report on the standard output.
diffoscope was initially started by the "reproducible builds" Debian<br>project and now being developed as part of the (wider) “Reproducible<br>Builds” initiative. It is meant<br>to be able to quickly understand why two builds of the same package<br>produce different outputs. diffoscope was previously named debbindiff.
Example
To compare two files in-depth and produce an HTML report, run something like:
$ bin/diffoscope --html output.html build1.changes build2.changes
diffoscope will exit with 0 if there's no differences and 1 if there<br>are.
diffoscope can also compare non-existent files:
$ bin/diffoscope /nonexistent archive.zip
To get all possible options, run:
$ bin/diffoscope --help
External dependencies
diffoscope requires Python 3 and the following modules available on PyPI:<br>libarchive-c,<br>python-magic.
The various comparators rely on external commands being available. To<br>get a list of them, please run:
$ bin/diffoscope --list-tools
Contributing
The preferred way to report bugs about diffoscope, as well as suggest fixes and<br>requests for improvements, is to submit reports to the Debian bug tracker for<br>the diffoscope package. You can do this over e-mail, simply write an email<br>as follows:
To: submit@bugs.debian.org<br>Subject:
Source: diffoscope<br>Version:<br>Severity:
There are more detailed instructions available more detailed instructions<br>available] about reporting a bug in the Debian bug tracker.
If you're on a Debian-based system, you can install and use the reportbug<br>package to help walk you through the process.
You can also submit patches to the Debian bug tracke. Start by cloning the Git<br>repository,<br>make your changes and commit them as you normally would. You can then use<br>Git's format-patch command to save your changes as a series of patches that<br>can be attached to the report you submit. For example:
git clone git://anonscm.debian.org/reproducible/diffoscope.git<br>cd diffoscope<br>git checkout origin/master -b<br>git commit -a<br>git format-patch -M origin/master
The format-patch command will create a series of .patch files in your<br>checkout. Attach these files to your submission in your e-mail client or<br>reportbug.
Uploading the package
When uploading diffoscope to the Debian archive, please take extra care to make<br>sure the uploaded source package is correct, that is it includes the files<br>tests/data/test(1|2).(a|o) which in some cases are removed by dpkg-dev when<br>building the package. See #834315 for an example<br>FTBFS bug caused by this. (See #735377 and followups<br>to learn how this happened and how to prevent it)
Please also release a signed tarball:
$ VERSION=FIXME<br>$ git archive --format=tar --prefix=diffoscope-${VERSION}/ ${VERSION} | bzip2 -9 > diffoscope-${VERSION}.tar.bz2<br>$ gpg --detach-sig --armor --output=diffoscope-${VERSION}.tar.bz2.asc<br>After uploading, please also update the version on PyPI using:
$ python3 setup.py sdist upload --sign
Once the...