From chris at reproducible-builds.org Fri Oct 9 18:17:35 2026 From: chris at reproducible-builds.org (Chris Lamb) Date: Fri, 09 Oct 2026 11:17:35 -0700 Subject: [diffoscope] =?utf-8?q?diffoscope_333_released_=F0=9F=92=A0?= Message-ID: <179156944991.350411.16077337329857377513@bigcat> Hi, The diffoscope maintainers are pleased to announce the release of version 333 of diffoscope. diffoscope tries 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. Version 333 includes the following changes: [ Johannes Schauer Marin Rodrigues ] * Add support for showing differences in POSIX.1-2001 PAX headers within .tar files. [ Chris Lamb ] * Re-order various parts of the tar comparator to make it easier to progressively delve into its functionality. * Reflect that the use of the "case-match" language feature requires at least Python 3.10+. This can be worked around if it causes problems - let us know. * Update various copyright years. ## Download Version 333 is available from Debian as well as PyPI, and will shortly be available on other platforms shortly. More details can be found here: https://diffoscope.org/ ? but source tarballs may be located here: https://diffoscope.org/archive/ The corresponding Docker image may be run via (for example): $ docker run --rm -t -w $(pwd) -v $(pwd):$(pwd):ro \ registry.salsa.debian.org/reproducible-builds/diffoscope a b ## Contribute diffoscope is developed within the "Reproducible builds" effort. - Git repository https://salsa.debian.org/reproducible-builds/diffoscope - Docker image, eg. registry.salsa.debian.org/reproducible-builds/diffoscope https://salsa.debian.org/reproducible-builds/diffoscope - Issues and feature requests https://salsa.debian.org/reproducible-builds/diffoscope/issues - Contribution instructions (eg. to file an issue) https://reproducible-builds.org/contribute/salsa/ Regards, -- o ? ? Chris Lamb o o reproducible-builds.org ? ? ? o From guix at ikherbers.com Thu Oct 15 09:25:10 2026 From: guix at ikherbers.com (vicvbcun) Date: Thu, 15 Oct 2026 11:25:10 +0200 Subject: [diffoscope] diffoscope unable to use dumppdf.py Message-ID: Hello, The function `find_executable()` in diffoscope/tools.py allows commands to have a ".py" suffix, explicitly calling out dumppdf as an example, but the `Dumppdf` class in diffoscope/comparators/pdf.py hard codes "dumppdf" as command name. As a result, if dumppdf.py is available, one gets a traceback when comparing PDF files: --8<---------------cut here---------------start------------->8--- Traceback (most recent call last): | 0% ETA: --:--:-- File "/gnu/store/...-diffoscope-332/bin/.diffoscope-real", line 11, in sys.exit(obj()) ^^^^^ File "/gnu/store/...-diffoscope-332/lib/python3.12/site-packages/diffoscope/main.py", line 780, in main sys.exit(run_diffoscope(parsed_args)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/gnu/store/...-diffoscope-332/lib/python3.12/site-packages/diffoscope/main.py", line 720, in run_diffoscope difference = compare_root_paths(path1, path2) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/gnu/store/...-diffoscope-332/lib/python3.12/site-packages/diffoscope/comparators/utils/compare.py", line 75, in compare_root_paths difference = compare_files(file1, file2) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/gnu/store/...-diffoscope-332/lib/python3.12/site-packages/diffoscope/comparators/utils/compare.py", line 154, in compare_files return file1.compare(file2, source) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/gnu/store/...-diffoscope-332/lib/python3.12/site-packages/diffoscope/comparators/utils/file.py", line 536, in compare difference = self._compare_using_details(other, source) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/gnu/store/...-diffoscope-332/lib/python3.12/site-packages/diffoscope/comparators/utils/file.py", line 437, in _compare_using_details details.extend(self.compare_details(other, source)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/gnu/store/...-diffoscope-332/lib/python3.12/site-packages/diffoscope/comparators/pdf.py", line 105, in compare_details Difference.from_operation(Dumppdf, self.path, other.path) File "/gnu/store/...-diffoscope-332/lib/python3.12/site-packages/diffoscope/difference.py", line 267, in from_operation return Difference.from_operation_exc( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/gnu/store/...-diffoscope-332/lib/python3.12/site-packages/diffoscope/difference.py", line 288, in from_operation_exc feeder1, operation1, excluded1 = operation_and_feeder(path1) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/gnu/store/...-diffoscope-332/lib/python3.12/site-packages/diffoscope/difference.py", line 285, in operation_and_feeder operation.start() File "/gnu/store/...-diffoscope-332/lib/python3.12/site-packages/diffoscope/comparators/utils/command.py", line 48, in start self._process = subprocess.run( ^^^^^^^^^^^^^^^ File "/gnu/store/...-python-3.12.12/lib/python3.12/subprocess.py", line 548, in run with Popen(*popenargs, **kwargs) as process: ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/gnu/store/...-python-3.12.12/lib/python3.12/subprocess.py", line 1026, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, File "/gnu/store/...-python-3.12.12/lib/python3.12/subprocess.py", line 1955, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) FileNotFoundError: [Errno 2] No such file or directory: 'dumppdf' --8<---------------cut here---------------end--------------->8--- It is of course possible to patch the Guix `python-pdfminer-six` package to strip the ".py" suffix but the current handling seems suboptimal. vicvbcun P.S: I'm not subscribed to the list, so please CC me in replies. From chris at reproducible-builds.org Fri Oct 16 18:09:03 2026 From: chris at reproducible-builds.org (Chris Lamb) Date: Fri, 16 Oct 2026 11:09:03 -0700 Subject: [diffoscope] =?utf-8?q?diffoscope_334_released_=F0=9F=92=A0?= Message-ID: <179216641016.1553151.9898912112990414907@bigcat> Hi, The diffoscope maintainers are pleased to announce the release of version 334 of diffoscope. diffoscope tries 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. Version 334 includes the following changes: [ Chris Lamb ] * Fix a crash when using the latest versions of Androguard. Thanks, hc! (Closes: reproducible-builds/diffoscope#434) ## Download Version 334 is available from Debian as well as PyPI, and will shortly be available on other platforms shortly. More details can be found here: https://diffoscope.org/ ? but source tarballs may be located here: https://diffoscope.org/archive/ The corresponding Docker image may be run via (for example): $ docker run --rm -t -w $(pwd) -v $(pwd):$(pwd):ro \ registry.salsa.debian.org/reproducible-builds/diffoscope a b ## Contribute diffoscope is developed within the "Reproducible builds" effort. - Git repository https://salsa.debian.org/reproducible-builds/diffoscope - Docker image, eg. registry.salsa.debian.org/reproducible-builds/diffoscope https://salsa.debian.org/reproducible-builds/diffoscope - Issues and feature requests https://salsa.debian.org/reproducible-builds/diffoscope/issues - Contribution instructions (eg. to file an issue) https://reproducible-builds.org/contribute/salsa/ Regards, -- o ? ? Chris Lamb o o reproducible-builds.org ? ? ? o From chris at reproducible-builds.org Mon Oct 19 16:34:26 2026 From: chris at reproducible-builds.org (Chris Lamb) Date: Mon, 19 Oct 2026 09:34:26 -0700 Subject: [diffoscope] diffoscope unable to use dumppdf.py In-Reply-To: References: Message-ID: <9192ab5e-309b-4d02-b46c-92d16e6493c1@app.fastmail.com> Hey vicvbcun, > The function `find_executable()` in diffoscope/tools.py allows commands > to have a ".py" suffix, explicitly calling out dumppdf as an example, > but the `Dumppdf` class in diffoscope/comparators/pdf.py hard codes > "dumppdf" as command name. Thanks for the report. I think the fix is fairly straightforward: https://salsa.debian.org/reproducible-builds/diffoscope/commit/ee5fc6137c28e9bf52f6687c650b1e75a7174615 Let me know if that works for you. (I plan to release diffoscope again later this week if it is more convenient for you to test released versions over patches or Git HEAD.) Best wishes, -- o ? ? Chris Lamb o o reproducible-builds.org ? ? ? o From mail at ikherbers.com Tue Oct 20 08:54:08 2026 From: mail at ikherbers.com (Maik Herbers) Date: Tue, 20 Oct 2026 10:54:08 +0200 Subject: [diffoscope] diffoscope unable to use dumppdf.py In-Reply-To: <9192ab5e-309b-4d02-b46c-92d16e6493c1@app.fastmail.com> References: <9192ab5e-309b-4d02-b46c-92d16e6493c1@app.fastmail.com> Message-ID: Hey Chris, On 2026-10-19T09:34:26-0700, Chris Lamb wrote: >Thanks for the report. I think the fix is fairly straightforward: > > https://salsa.debian.org/reproducible-builds/diffoscope/commit/ee5fc6137c28e9bf52f6687c650b1e75a7174615 Thanks for patch! I can confirm that it fixes the issue. One thing maybe worth considering is that there might be other programs that suffer from the same issue. >Let me know if that works for you. (I plan to release diffoscope again >later this week if it is more convenient for you to test released versions >over patches or Git HEAD.) Using Guix this is as simple as guix shell --with-patch=diffoscope=... diffoscope # :-) Thanks again! vicvbcun From chris at reproducible-builds.org Fri Oct 23 15:28:47 2026 From: chris at reproducible-builds.org (Chris Lamb) Date: Fri, 23 Oct 2026 08:28:47 -0700 Subject: [diffoscope] =?utf-8?q?diffoscope_335_released_=F0=9F=92=A0?= Message-ID: <179276912923.2400225.16070045710912744451@bigcat> Hi, The diffoscope maintainers are pleased to announce the release of version 335 of diffoscope. diffoscope tries 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. Version 335 includes the following changes: [ Chris Lamb ] * Support the dumppdf binary being called dumppdf.py on the host system. * Update copyright years. * Fix a silly "prepend" typo. ## Download Version 335 is available from Debian as well as PyPI, and will shortly be available on other platforms shortly. More details can be found here: https://diffoscope.org/ ? but source tarballs may be located here: https://diffoscope.org/archive/ The corresponding Docker image may be run via (for example): $ docker run --rm -t -w $(pwd) -v $(pwd):$(pwd):ro \ registry.salsa.debian.org/reproducible-builds/diffoscope a b ## Contribute diffoscope is developed within the "Reproducible builds" effort. - Git repository https://salsa.debian.org/reproducible-builds/diffoscope - Docker image, eg. registry.salsa.debian.org/reproducible-builds/diffoscope https://salsa.debian.org/reproducible-builds/diffoscope - Issues and feature requests https://salsa.debian.org/reproducible-builds/diffoscope/issues - Contribution instructions (eg. to file an issue) https://reproducible-builds.org/contribute/salsa/ Regards, -- o ? ? Chris Lamb o o reproducible-builds.org ? ? ? o