Recursively Diff Packages

ankitg121 pts0 comments

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

diffoscope debian files report version package

Related Articles