* 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
- update to version 174:
* Check that we are parsing an actual Debian .buildinfo file, not just
a file with that extension.
(Closes: deb#987994, reproducible-builds/diffoscope#254)
* Support signed .buildinfo files again -- file(1) reports them as
"PGP signed message".
* Make the testsuite pass with file(1) version 5.40.
* Embed some short test fixtures in the test code itself.
* Fix recognition of compressed .xz files with file(1) 5.40.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=17
- remove fix-tests-libmix_differences.patch, merged upstream
- added fix-file-5.40.patch
- update to version 173
* Add support for showing annotations in PDF files.
(Closes: reproducible-builds/diffoscope#249)
* Move to assert_diff in test_pdf.py.
* Difference.__init__: Demote unified_diff argument to a Python "kwarg".
- update to version 172
* If zipinfo(1) shows a difference but we cannot uncover a difference within
the underlying .zip or .apk file, add a comment and show the binary
comparison. (Closes: reproducible-builds/diffoscope#246)
* Make "error extracting X, falling back to binary comparison E" error
message nicer.
- update to version 171
* Do not list as a "skipping reason" tools that do exist.
* Drop the "compose" tool from the list of required tools for these tests,
since it doesn't seem to be required.
- update to version 170
* Avoid frequent long lines in RPM header outputs that cause very very slow
HTML outputs. (Closes: reproducible-builds/diffoscope#245)
* Fix test_libmix_differences on openSUSE Tumbleweed.
(Closes: reproducible-builds/diffoscope#244)
* Move test_rpm to use the assert_diff utility helper.
* Add a diffoscope.tools.get_tools() method to support programmatically
fetching Diffoscope's config.
* Become tolerant of malformed Debian .changes files.
- update to version 169
* Optimisations:
- Use larger buffer/block sizes when extracting files from libarchive-
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/diffoscope?expand=0&rev=14