Skip to main content

diffoscope

diffoscope will try to get to the bottom of what makes files or directories different. It will recursively unpack archives of many kinds and transform various binary formats into more human readable form to compare them. It can compare two tarballs, ISO images, or PDF just as easily.

It can be scripted through error codes, and a report can be produced with the detected differences. The report can be text or HTML. When no type of report has been selected, diffoscope defaults to write a text report on the standard output.

diffoscope is developed as part of the “reproducible builds” Debian project. It is meant to be able to quickly understand why two builds of the same package 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 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: libarchive-c, python-magic.

Optionally, the following modules will enhance it:

  • tlsh is used to recognize file renames. It is build from tlsh source. Available on Debian as python3-tlsh.

  • python-debian is used to inspect Debian control files. It is available on PyPI.

  • rpm-python is used to inspect RPM files. It is built from rpm. Available on Debian and Fedora as python3-rpm.

  • Magic-file-extension can be used instead of python-magic. It is built from file. Available on Debian and Fedora as python3-magic.

The various comparators rely on external commands being available. To get a list of them, please run:

$ bin/diffoscope --list-tools

Contributors

Lunar, Reiner Herrmann, Chris Lamb, Helmut Grohne, Holger Levsen, Mattia Rizzolo, Daniel Kahn Gillmor, Paul Gevers, Peter De Wachter, Yasushi SHOJI.

License

diffoscope is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

diffoscope is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with diffoscope. If not, see <http://www.gnu.org/licenses/>.

Metadata

Release files for diffoscope 41

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for diffoscope 41
File Size Uploaded Provenance Actions
diffoscope-41.tar.gz 267.6 kB Without provenance Details for diffoscope-41.tar.gz

Release files / diffoscope-41.tar.gz

Download URL diffoscope-41.tar.gz
Size 267.6 kB
Tags Source
SHA-256 checksum
How to use checksums
c74e1d14827b640964915abdd1fd9d1dace0b3e555afb3bc60239910dc787e6c
BLAKE2b-256 checksum
How to use checksums
3788484c11a75f39cd9e034855bb4506d038fae71d5f5a2002be04356466e5a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for diffoscope 41

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

41 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page