./sysutils/py-diffoscope, In-depth comparison of files, archives, and directories

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 266, Package name: py311-diffoscope-266, Maintainer: pkgsrc-users

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

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 will exit with 0 if there's no differences and 1 if there
are. An HTML report can be produced with the detected differences.

diffoscope is developed as part of the "reproducible builds" Debian
It is meant to be able to quickly understand why two builds of the same
package produce different outputs. diffoscope was previously named

Required to run:
[editors/vim] [archivers/gtar-base] [devel/py-curses] [devel/py-setuptools] [devel/colordiff] [sysutils/py-magic] [archivers/py-libarchive-c] [devel/py-tlsh] [lang/python37]

Required to build:

Master sites:

Filesize: 3208.46 KB

Version history: (Expand)

CVS history: (Expand)

   2024-04-12 21:28:40 by nikita | Files touched by this commit (3) | Package updated
Log message:
py-diffoscope: update to version 264

Changelog (from \ 

diffoscope (264) unstable; urgency=medium
  [ Chris Lamb ]
  * Don't crash on invalid zipfiles, even if we encounter 'badness'
    halfway through the file. (Re: #1068705)
  [ FC (Fay) Stegerman ]
  * Fix a crash when there are (invalid) duplicate entries in .zip files.
    (Closes: #1068705)
  * Add note when there are duplicate entries in ZIP files.
    (Closes: reproducible-builds/diffoscope!140)
  [ Vagrant Cascadian ]
  * Add an external tool reference for GNU Guix for zipdetails.
 -- Chris Lamb <lamby@debian.org>  Fri, 12 Apr 2024 09:38:55 +0100
diffoscope (263) unstable; urgency=medium
  [ Chris Lamb ]
  * Add support for the zipdetails(1) tool included in the Perl distribution.
    Thanks to Larry Doolittle et al. for the pointer to this tool.
  * Don't use parenthesis within test "skipping…" messages; PyTest \ 
adds its own
    parenthesis, so we were ending up with double nested parens.
  * Fix the .epub tests after supporting zipdetails(1).
  * Update copyright years and debian/tests/control.
  [ FC (Fay) Stegerman ]
  * Fix MozillaZipContainer's monkeypatch after Python's zipfile module changed
    to detect potentially insecure overlapping entries within .zip files.
    (Closes: reproducible-builds/diffoscope#362)
 -- Chris Lamb <lamby@debian.org>  Fri, 05 Apr 2024 12:21:10 +0100
diffoscope (262) unstable; urgency=medium
  [ Chris Lamb ]
  * Factor out Python version checking in test_zip.py. (Re: #362)
  * Also skip some zip tests under 3.10.14 as well; a potential regression may
    have been backported to the 3.10.x series. The underlying cause is still to
    be investigated. (Re: #362)
 -- Chris Lamb <lamby@debian.org>  Fri, 29 Mar 2024 09:43:00 +0000
diffoscope (261) unstable; urgency=medium
  [ Chris Lamb ]
  * Don't crash if we encounter an .rdb file without an equivalent .rdx file.
    (Closes: #1066991)
  * In addition, don't identify Redis database dumps (etc.) as GNU R database
    files based simply on their filename. (Re: #1066991)
  * Update copyright years.
 -- Chris Lamb <lamby@debian.org>  Fri, 22 Mar 2024 09:42:15 +0000
diffoscope (260) unstable; urgency=medium
  [ Chris Lamb ]
  * Actually test 7z support in the test_7z set of tests, not the lz4
    functionality. (Closes: reproducible-builds/diffoscope#359)
  * In addition, correctly check for the 7z binary being available
    (and not lz4) when testing 7z.
  * Prevent a traceback when comparing a contentful .pyc file with an
    empty one. (Re: Debian:#1064973)

 -- Chris Lamb <lamby@debian.org>  Fri, 08 Mar 2024 11:07:49 +0000
diffoscope (259) unstable; urgency=medium
  [ Chris Lamb ]
  * Don't error-out with a traceback if we encounter \ 
    errors when parsing .pyc files. (Closes: #1064973)
  * Fix compatibility with PyTest 8.0. (Closes: reproducible-builds/diffoscope#365)
  * Don't try and compare rdb_expected_diff on non-GNU systems as %p formatting
    can vary. (Re: reproducible-builds/diffoscope#364)
 -- Chris Lamb <lamby@debian.org>  Fri, 01 Mar 2024 09:34:23 +0000
diffoscope (258) unstable; urgency=medium
  [ Chris Lamb ]
  * Use the 7zip package (over p7zip-full) after package transition.
    (Closes: #1063559)
  * Update debian/tests/control.
  [ Vagrant Cascadian ]
  * Fix a typo in the package name field (!) within debian/changelog.
 -- Chris Lamb <lamby@debian.org>  Fri, 23 Feb 2024 11:31:52 +0000
diffoscope (257) unstable; urgency=medium
  [ James Addison ]
  * Parse the header and hunksize of diffs strictly before parsing the context
    below. (Closes: reproducible-builds/diffoscope#363)
  * Reformat code to comply with the latest version of Black (24.1.1).
  [ Chris Lamb ]
  * Expand the previous changelog entry to include the CVE number that was
    subsequently assigned.
  * Bump the miniumum Black requirement to run the "Black clean" test \ 
and make
    test_zip.py Black clean.
 -- Chris Lamb <lamby@debian.org>  Mon, 12 Feb 2024 10:08:35 -0800
diffoscope (256) unstable; urgency=high
  * CVE-2024-25711: Use a determistic name when extracting content from GPG
    artifacts instead of trusting the value of gpg's --use-embedded-filenames.
    This prevents a potential information disclosure vulnerability that could
    have been exploited by providing a specially-crafted GPG file with an
    embedded filename of, say, "../../.ssh/id_rsa".
    Many thanks to Daniel Kahn Gillmor <dkg@debian.org> for reporting this
    issue and providing feedback.
    (Closes: reproducible-builds/diffoscope#361)
  * Temporarily fix support for Python 3.11.8 re. a potential regression
    with the handling of ZIP files. (See reproducible-builds/diffoscope#362)
 -- Chris Lamb <lamby@debian.org>  Fri, 09 Feb 2024 12:22:37 -0800
   2024-01-28 22:04:45 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-diffoscope: updated to 255

* Add/fix compatibility for Python progressbar 2.5 & 3.0 etc.
* Update copyright years.
   2024-01-25 00:53:04 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-diffoscope: updated to 254


* Reflow some code according to black.
* Add support for comparing the 'eXtensible ARchive' (.XAR/.PKG) file format.
* Add external tool on GNU Guix for 7z.
   2024-01-20 17:03:03 by Thomas Klausner | Files touched by this commit (1)
Log message:
py-diffoscope: add missing tools
   2024-01-15 21:03:39 by Amitai Schleier | Files touched by this commit (3) | Package updated
Log message:
py-diffoscope: update to 253. Changes:

- Improve DOS/MBR extraction by adding support for 7z.
  (Closes: reproducible-builds/diffoscope#333)
- Process objdump symbol comment filter inputs as the Python "bytes" type
  (and not str). (Closes: reproducible-builds/diffoscope#358)
- Add a missing RequiredToolNotFound import.
- Update copyright years.

- As UI/UX improvement, try and avoid printing an extended traceback if
  diffoscope runs out of memory. This may not always be possible to detect.
- Mark diffoscope as stable in setup.py (for PyPI.org). Whatever diffoscope
  is, at least, not "alpha" anymore.

- If the equivalent of `file -i` returns text/plain, fallback to comparing
  this file as a text file. This especially helps when file(1) miscategorises
  text files as some esoteric type. (Closes: Debian:#1053668)
- Update copyright years.

- Fix compatibility with file 5.45. (Closes: reproducible-builds/diffoscope#351)
- Add external tool references for GNU Guix (for html2text and ttx).

- Add specialize_as() method, and use it to speed up .smali comparison in
  APKs. (Closes: reproducible-builds/diffoscope!108)
- Add documentation for the new specialize_as, and expand the documentation
  of `specialize` too. (Re: reproducible-builds/diffoscope!108)
- Update copyright years.
- Correct typos in diffoscope/presenters/utils.py.

- Merge Docker "RUN" commands into single layer.

- Fix compataibility with file(1) version 5.45.
- Use assert_diff in test_uimage and test_cpio.
- xb-tool has moved in Debian bookworm.

- Add support for LLVM 16.

- Don't include file size in image metadata; it is, at best, distracting and
  it is already in the directory metadata.
- Move to using assert_diff in ICO and JPEG tests.
- Update copyright years.

- Address compatibility with python-libarchive-c version 5.
  (Closes: reproducible-builds/diffoscope#344)
- Testsuite changes:
  - Mark that test_dex::test_javap_14_differences requires procyon.
  - Fix "test skipped" textual reason generation in the case of a required
    version being outside of the required range.
  - Temporarily mark some Android-related as XFAIL due to Debian bugs
    #1040941 and #1040916.

- Drop Jenkins build reference in README.rst.
- Update FreeBSD package names
- Improve the documentation on to produce that binary blob that in the arsc

- If the binwalk Python module is not available, ensure the user knows they
  may be missing more differences in, for example, concatenated .cpio
- Factor out routine to generate a human-readable comments when
  Python modules are missing.

- Add a missing 'raise' statement dropped in 2d95ae41e. Thanks, Mattia!
- document sending out an email upon release

- Update Lintian override info format in debian/source/lintian-overrides.
- Add Lintian overrides for some "very long lines" in test cases.
- Update Lintian overrides for tests being tagged source-is-missing or
- Add Lintian override for very long lines for debian/tests/control.
- Re-add two Lintian overrides about (well-known) source-is-missing
- Drop the use of include_package_data=True in setup.py.

- Fix compatibility with pypdf 3.x, and correctly restore test data.
  (Closes: reproducible-builds/diffoscope#335)
- Rework PDF annotations processing into a separate method.

- autopkgtest: fix tool name in the skippable list.

- autopkgtest: only install aapt and dexdump on architectures where they are
  available. (Closes: #1031297)
- compartors/pdf:
  + Drop backward compatibility assignment.
  + Fix flake warnings, potentially reinstating PyPDF 1.x support (untested).

- Update code to match latest version of Black. (Closes: #1031433)
- Require at least Black version 23.1.0 to run the internal Black tests.
- Update copyright years.

- Update .gitlab-ci.yml to push versioned tags to the container registry.
  (Closes: reproducible-builds/diffoscope!119)
- Fix compatibility with PyPDF2. (Closes: reproducible-builds/diffoscope#331)
- Fix compatibility with ImageMagick 7.1.
  (Closes: reproducible-builds/diffoscope#330)
- Update from PyPDF2 to pypdf. (Closes: #1029741, #1029742)
- Add support for Android resources.arsc files.
  (Closes: reproducible-builds/diffoscope!116)
- Add support for dexdump. (Closes: reproducible-builds/diffoscope#134)
- Improve DexFile's FILE_TYPE_RE and add FILE_TYPE_HEADER_PREFIX, and remove
  "Dalvik dex file" from ApkFile's FILE_TYPE_RE as well.
- Update external tool for isoinfo on guix.
  (Closes: reproducible-builds/diffoscope!124)

- test_text_proper_indentation requires at least file version 5.44.
  (Closes: reproducible-builds/diffoscope#329)

pkgsrc changes:
- Convert to wheel.mk.
   2023-01-28 01:50:28 by Pierre Pronchery | Files touched by this commit (2) | Package updated
Log message:
py-diffoscope: update to 233

Changes in version 233:

[ FC Stegerman ]
* Split packaging metadata into an extras_require.json file instead of using
  the pep517 and the pip modules directly. This was causing build failures if
  not using a virtualenv and/or building without internet access.
  (Closes: #1029066, reproducible-builds/diffoscope#325)

[ Vagrant Cascadian ]
* Add an external tool reference for GNU Guix (lzip).
* Drop an external tool reference for GNU Guix (pedump).

[ Chris Lamb ]
* Split inline Python code in shell script to generate test dependencies to a
  separate Python script.
* No need for "from __future__ import print_function" import in setup.py
* Comment and tidy the new extras_require.json handling.

Changes in version 232:

[ Chris Lamb ]
* Allow ICC tests to (temporarily) fail.
* Update debian/tests/control after the addition of PyPDF 3 support.

[ FC Stegerman ]
* Update regular expression for Android .APK files.

[ Sam James ]
* Support PyPDF version 3.
   2023-01-07 08:20:29 by Pierre Pronchery | Files touched by this commit (2) | Package updated
Log message:
py-diffoscope: update to 231

Changes in version 231:

* Improve "[X] may produce better output" messages. Based on a patch by
  Helmut Grohne. (Closes: #1026982)

Changes in version 230:

[ Chris Lamb ]
* Fix compatibility with file(1) version 5.43; thanks, Christoph Biedl.

[ Jelle van der Waa ]
* Support Berkeley DB version 6.
   2022-12-28 04:58:58 by Pierre Pronchery | Files touched by this commit (2) | Package updated
Log message:
py-diffoscope: updated to 229

Changes in 229:

[ Chris Lamb ]
* Skip test_html.py::test_diff if html2text is not installed.
  (Closes: #1026034)

[ Holger Levsen ]
* Bump standards version to 4.6.2, no changes needed.

Changes in 228:

[ FC Stegerman ]
* As an optimisation, don't run apktool if no differences are detected before
  the signing block. (Closes: reproducible-builds/diffoscope!105)

[ Chris Lamb ]
* Support both the python3-progressbar and python3-progressbar2 Debian
  packages, two modules providing the "progressbar" Python module.
  (Closes: reproducible-builds/diffoscope#323)
* Ensure we recommend apksigcopier. (Re: reproducible-builds/diffoscope!105)
* Make the code clearer around generating the Debian substvars and tidy
  generation of os_list.
* Update copyright years.

Changes in 227:

[ Chris Lamb ]
* Don't attempt to attach text-only differences notice if there are no
  differences to begin with. (Closes: #1024171, #1024349)
* Don't run Python decompiling tests on Python bytecode that both file(1)
  cannot yet detect and Python 3.11 cannot demarshall. (Closes: #1024335)