* Add a missing 'raise' statement
* document sending out an email upon release
* Drop the use of include_package_data=True in setup.py.
* Fix compatibility with pypdf 3.x, and correctly restore test
data.
* Rework PDF annotations processing into a separate method.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=86
* autopkgtest: fix tool name in the skippable list.
* autopkgtest: only install aapt and dexdump on architectures
where they are available.
* Drop backward compatibility assignment.
* Fix flake warnings, potentially reinstating PyPDF 1.x
support (untested).
* Update code to match latest version of Black.
* Require at least Black version 23.1.0 to run the internal
Black tests.
* Update copyright years.
* Fix compatibility with PyPDF2.
* Fix compatibility with ImageMagick 7.1.
* Update from PyPDF2 to pypdf.
* Add support for Android resources.arsc files.
* Add support for dexdump.
* 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.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=84
* 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.
* Add an external tool reference for GNU Guix (lzip).
* Drop an external tool reference for GNU Guix (pedump).
* 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
anymore.
* Comment and tidy the new extras_require.json handling.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=82
* Allow ICC tests to (temporarily) fail.
* Update debian/tests/control after the addition of PyPDF 3 support.
* Update regular expression for Android .APK files.
* Support PyPDF version 3.
- 231:
* Improve "[X] may produce better output" messages. Based on a patch by
Helmut Grohne. (Closes: #1026982)
- 230:
* Fix compatibility with file(1) version 5.43; thanks, Christoph Biedl.
* Support Berkeley DB version 6.
- 229:
* Skip test_html.py::test_diff if html2text is not installed.
(Closes: #1026034)
* Bump standards version to 4.6.2, no changes needed.
- 228:
* As an optimisation, don't run apktool if no differences are detected before
the signing block. (Closes: reproducible-builds/diffoscope!105)
* 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.
- 227:
* 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)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=80
- Support Haskell 9.x series files and update the test files to match. Thanks
to Scott Talbert for the relevant info about the new format.
(Closes: reproducible-builds/diffoscope#309)
- Fix a regression introduced in diffoscope version 207 where diffoscope
would crash if one directory contained a directory that wasn't in the
other. Thanks to Alderico Gallo for the report and the testcase.
(Closes: reproducible-builds/diffoscope#310)
- update to version 219:
- Don't traceback if we encounter an invalid Unicode character in Haskell
versioning headers. (Closes: reproducible-builds/diffoscope#307)
- Update various copyright years.
- update to version 218:
- Improve output of Markdown and reStructuredText to use code blocks with
syntax highlighting. (Closes: reproducible-builds/diffoscope#306)
- update to version 217:
- Update test fixtures for GNU readelf 2.38 (now in Debian unstable).
- Be more specific about the minimum required version of readelf (ie.
binutils) as it appears that this "patch" level version change resulted in
a change of output, not the "minor" version. (Closes: #1013348)
- Don't leak the (likely-temporary) pathname when comparing PDF documents.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=76
- Support both python-argcomplete 1.x and 2.x.
- Add external tool on GNU Guix for xb-tool.
- update to version 213:
- Don't mask differences in .zip/.jar central directory extra fields.
- Don't show a binary comparison of .zip/.jar files if we have at least
one observed nested difference.
- Use assert_diff in test_zip over get_data and separate assert.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=70
- Don't mask differences in .zip/.jar central directory extra fields.
- Don't show a binary comparison of .zip/.jar files if we have at least
one observed nested difference.
- Use assert_diff in test_zip over get_data and separate assert.
- update to version 212:
- Add support for extracting vmlinuz/vmlinux Linux kernel images.
(Closes: reproducible-builds/diffoscope#304)
- Some Python .pyc files report as "data", so support ".pyc" as a
fallback extension.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=69
* Fix a file(1)-related regression where .changes files that contained
non-ASCII text were not identified as being .changes files, resulting in
seemingly arbitrary packages on tests.reproducible-builds.org and elswhere
not comparing the package at all. The non-ASCII parts could have been in
the Maintainer or in the upload changelog, so we were effectively
penalising anyone outside of the Anglosphere.
(Closes: reproducible-builds/diffoscope#291)
* Don't print a warning to the console regarding NT_GNU_BUILD_ID changes in
ELF binaries.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=58
- Don't run the binwalk comparator tests as root (or fakeroot) as the
latest version of binwalk has some security protection against doing
precisely this.
- If we fail to scan a file using binwalk, return 'False' from
BinwalkFile.recognizes rather than raise a traceback.
- If we fail to import the Python "binwalk" module, don't accidentally report
that we are missing the "rpm" module instead.
- Use dependencies to ensure that "diffoscope" and "diffoscope-minimal"
packages always have the precise same version.
- update to version 203:
- Improve documentation for --timeout due to a few misconceptions.
Add an allowed-to-fail test regarding a regression in directory handling.
- Tidy control flow in Difference._reverse_self a little.
- Fix diffing CBFS names that contain spaces.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=56
- Improve documentation for --timeout due to a few misconceptions.
Add an allowed-to-fail test regarding a regression in directory handling.
- Tidy control flow in Difference._reverse_self a little.
- Fix diffing CBFS names that contain spaces.
- update to version 202:
- Don't fail if comparing a nonexistent file with a .pyc file (and add test).
(Closes: #1004312)
- Drop a reference in the manual page which claims the ability to compare
non-existent files on the command-line. This has not been possible since
version 32 which was released in September 2015. (Closes: #1004182)
- Add experimental support for incremental output support with a timeout.
Passing, for example, --timeout=60 will mean that diffoscope will not
recurse into any sub-archives after 60 seconds total execution time has
elapsed and mark the diff as being incomplete. (Note that this is not a
fixed/strict timeout due to implementation issues.)
(Closes: reproducible-builds/diffoscope#301)
- Don't return with an exit code of 0 if we encounter device file such as
/dev/stdin with human-readable metadata that matches literal, non-device,
file contents. (Closes: #1004198)
- Correct a "recompile" typo.
- Fix/update whitespace for Black 21.12.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=55
- Don't fail if comparing a nonexistent file with a .pyc file (and add test).
(Closes: #1004312)
- Drop a reference in the manual page which claims the ability to compare
non-existent files on the command-line. This has not been possible since
version 32 which was released in September 2015. (Closes: #1004182)
- Add experimental support for incremental output support with a timeout.
Passing, for example, --timeout=60 will mean that diffoscope will not
recurse into any sub-archives after 60 seconds total execution time has
elapsed and mark the diff as being incomplete. (Note that this is not a
fixed/strict timeout due to implementation issues.)
(Closes: reproducible-builds/diffoscope#301)
- Don't return with an exit code of 0 if we encounter device file such as
/dev/stdin with human-readable metadata that matches literal, non-device,
file contents. (Closes: #1004198)
- Correct a "recompile" typo.
- Fix/update whitespace for Black 21.12.
- update to version 201:
- If the debian.deb822 module raises any exception on import, re-raise it as
an ImportError instead. This should fix diffoscope on some Fedora systems.
Thanks to Mattia Rizzolo for suggesting this particular solution.
(Closes: reproducible-builds/diffoscope#300)
- Fix json detection with file-5.41-3.fc36.x86_64.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=54
- If the debian.deb822 module raises any exception on import, re-raise it as
an ImportError instead. This should fix diffoscope on some Fedora systems.
Thanks to Mattia Rizzolo for suggesting this particular solution.
(Closes: reproducible-builds/diffoscope#300)
- Fix json detection with file-5.41-3.fc36.x86_64.
- update to version 200:
- Even if a Sphinx .inv inventory file is labelled "The remainder of this
file is compressed using zlib", it might not actually be. In this case,
don't traceback, and simply return the original content.
(Closes: reproducible-builds/diffoscope#299)
- Update "X has been modified after NT_GNU_BUILD_ID has been applied" message
to, for instance, not duplicating the full filename in the primary
diffoscope's output.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=52
- Even if a Sphinx .inv inventory file is labelled "The remainder of this
file is compressed using zlib", it might not actually be. In this case,
don't traceback, and simply return the original content.
(Closes: reproducible-builds/diffoscope#299)
- Update "X has been modified after NT_GNU_BUILD_ID has been applied" message
to, for instance, not duplicating the full filename in the primary
diffoscope's output.
- update to version 199:
- Support both variants of "odt2txt", including the one provided by unoconv.
(Closes: reproducible-builds/diffoscope#298)
- Add external tool reference on Arch Linux for xb-tool.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=51
- Support showing "Ordering differences only" within .dsc field values.
(Closes: #1002002, reproducible-builds/diffoscope#297)
- Support OCaml versions 4.11, 4.12 and 4.13. (Closes: #1002678)
- Add support for XMLb files. (Closes: reproducible-builds/diffoscope#295)
- Also add, for example, /usr/lib/x86_64-linux-gnu to our internal PATH.
- Also recognize "GnuCash file" files as XML.
- update to version 197:
- Drop unnecessary has_same_content_as logging calls.
- Ignore the new "binary-with-bad-dynamic-table" Lintian tag.
- Support pgpdump 0.34 in the tests. Thanks to Michael Weiss
<dev.primeos@gmail.com> for reporting and testing the fix.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=49
- Drop unnecessary has_same_content_as logging calls.
- Ignore the new "binary-with-bad-dynamic-table" Lintian tag.
- Support pgpdump 0.34 in the tests. Thanks to Michael Weiss
<dev.primeos@gmail.com> for reporting and testing the fix.
- update to version 196:
- Add a comment/annotation when the GNU_BUILD_ID field has been modified.
- Fix the "Black" version detection.
- Replace "token" with anonymous variable "x" in order to remove extra lines.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=48
- Don't traceback when comparing nested directories with non-directories.
(Closes: reproducible-builds/diffoscope#288)
- update to version 193:
- Don't duplicate file lists at each directory level.
(Closes: #989192, reproducible-builds/diffoscope#263)
- When pretty-printing JSON, mark the difference as such, additionally
avoiding including the full path.
(Closes: reproducible-builds/diffoscope#205)
- Codebase improvements:
- Update a bunch of %-style string interpolations into f-strings or
str.format.
- Import itertools top-level directly.
- Drop some unused imports.
- Use isinstance(...) over type(...) ==
- Avoid aliasing variables if we aren't going to use them.
- Fix missing diff output on large diffs.
- Ignore a Python warning coming from a dependent library (triggered by
supporting Python 3.10)
- Document that support both Python 3.9 and 3.10.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=42
- Don't duplicate file lists at each directory level.
(Closes: #989192, reproducible-builds/diffoscope#263)
- When pretty-printing JSON, mark the difference as such, additionally
avoiding including the full path.
(Closes: reproducible-builds/diffoscope#205)
- Codebase improvements:
- Update a bunch of %-style string interpolations into f-strings or
str.format.
- Import itertools top-level directly.
- Drop some unused imports.
- Use isinstance(...) over type(...) ==
- Avoid aliasing variables if we aren't going to use them.
- Fix missing diff output on large diffs.
- Ignore a Python warning coming from a dependent library (triggered by
supporting Python 3.10)
- Document that support both Python 3.9 and 3.10.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=41
- Update .epub test methodology after improving XML file parsing.
- update to version 191:
- Detect XML files as XML files if either file(1) claims if they are XML
files, or if they are named .xml.
(Closes: #999438, reproducible-builds/diffoscope#287)
- Don't reject Debian .changes files if they contain non-printable
characters. (Closes: reproducible-builds/diffoscope#286)
- Continue loading a .changes file even if the referenced files inside it do
not exist, but include a comment in the diff as a result.
- Log the reason if we cannot load a Debian .changes file.
- Fix inverted logic in the assert_diff_startswith() utility.
- update to version 190:
- Don't raise a traceback if we cannot de-marshal Python bytecode to support
Python 3.7 loading newer .pyc files.
(Closes: reproducible-builds/diffoscope#284)
- Fix Python tests under Python 3.7 with file 5.39+.
- Skip Python bytecode testing when "file" is older than 5.39.
- Detect whether the GNU_BUILD_ID field has been modified.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=40
- Try some alternative suffixes (eg. ".py") to support distributions that
strip or retain them. (Closes: reproducible-builds/diffoscope#283)
- Skip Python bytecode testing where we do not have an expected diff.
(Closes: reproducible-builds/diffoscope#284)
- Refactor the find_executable utility into an explicit method.
- Split out a custom call to assert_diff to support a .startswith equivalent.
- Use skipif instead of manual conditionals in some tests.
- Add an external tool reference for Guix to support ppudump and dumppdf.
- Update uImage test output for file(1) version 5.41.
- Add Arch Linux as CI test target.
- Add external tools on Arch Linux for ffmpeg, openssl and ocalobjinfo.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=39
- Don't call close_archive when garbage-collecting Archive instances unless
open_archive returned successfully. This prevents, amongst others, an
AttributeError traceback due to PGPContainer's cleanup routines assuming
that its temporary directory had been created.
(Closes: reproducible-builds/diffoscope#276)
- Ensure that the string "RPM archives" exists in the package description,
regardless of whether python3-rpm is installed or not at build time.
- Fix the LVM Macho comparator for non-x86-64 architectures.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=34
- Fix the semantic comparison of R's .rdb files after a refactoring of
temporary directory handling in a previous version.
- Support a newer format version of R's .rds files.
- Update tests for OCaml 4.12. (Closes: reproducible-builds/diffoscope#274)
- Move diffoscope.versions to diffoscope.tests.utils.versions.
- Use assert_diff in tests/comparators/test_rdata.py.
- Reformat various modules with Black.
- Stop using the deprecated distutils module by adding a version
comparison class based on the RPM version rules.
- Update invocations of llvm-objdump for the latest version of LLVM.
- Adjust a test with one-byte text file for file(1) version 5.40.
- Improve the parsing of the version of OpenSSH.
- Add a --diff-context option to control the unified diff context size.
(reproducible-builds/diffoscope!88)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=32
- Also ignore, for example, spurious "fwGCC: (Debian ... )" lines in output
from strings(1).
- Only use "java -jar /path/to/apksigner.jar" if we have a .jar as newer
versions of apksigner use a shell wrapper script which will obviously be
rejected by the JVM. Also mention in the diff if apksigner is missing.
- Pass "-f" to apktool to avoid creating a strangely-named subdirectory and
to simplify code.
- If we specify a suffix for temporary file or directory, ensure it starts
with a "_" to make the generated filenames more human-readable.
- Drop an unused File import.
- Update the minimum version of the Black source code formatter.
- Support parsing the return value of squashfs versions which discriminate
between fatal and non-fatal errors.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=30
- New features and bug fixes:
- Don't require apksigner in order to compare .apk files using apktool.
- Add a special-case to squshfs image extraction to not fail if we aren't
root/superuser. (Closes: #991059)
- Reduce the maximum line length to avoid O(n^2) Wagner-Fischer algorithm,
which meant that diff generation took an inordinate amount of time.
(Closes: reproducible-builds/diffoscope#272)
- Include profiling information in --debug output if --profile is not set.
- Don't print an orphan newline when the Black source code formatter
self-test passes.
- Tests:
- Update test to check specific contents of squashfs listing, otherwise it
fails depending on the test systems uid-to-username mapping in passwd(5).
- Assign "seen" and "expected" values to local variables to improve
contextual information in/around failed tests.
- Misc changes:
- Print the size of generated HTML, text (etc.) reports.
- Profile calls to specialize and diffoscope.diff.linediff.
- Update various copyright years.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=29
- Don't include specific ".debug"-like lines in the output, as it invariably
a duplicate of the debug ID that exists in a better form in the readelf(1)
differences for this file.
- Also ignore include short "GCC" lines that differs on a single prefix byte
too. These are distracting, not very useful and are simply the strings(1)
command's idea of the build ID, which, again, is displayed nearby in the
file's diff.
- Update the invocation arguments and tests for the latest version of
odt2txt.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=28
- Don't traceback on an broken symlink in a directory.
(Closes: reproducible-builds/diffoscope#269)
- Rewrite the calculation of a file's "fuzzy hash" to make the control
flow cleaner.
- Support .deb package members compressed with the Zstandard algorithm.
(LP: #1923845)
- Overhaul the Mach-O executable file comparator.
- Implement tests for the Mach-O comparator.
- Switch to new argument format for the LLVM compiler.
- Fix test_libmix_differences in testsuite for the ELF format.
- Improve macOS compatibility for the Mach-O comparator.
- Add llvm-readobj and llvm-objdump to the internal EXTERNAL_TOOLS data
structure.
- Invoke gzip(1) with the short option variants to support Busybox's gzip.
- Update to version 177:
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=26
* Use the actual filesystem path name (instead of diffoscope's concept of the
source name) to correct APK filename filtering when an APK file is in
another container -- we need to filter the auto-generated "1.apk" instead
of "original-filename.apk". (Closes: reproducible-builds/diffoscope#255)
* Don't call os.path.basename twice.
* Correct grammar in a fsimage.py debug message.
* Add a comment about stripping filenames.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=18