From martin at NetBSD.org Fri Jul 4 17:34:12 2025 From: martin at NetBSD.org (Martin Husemann) Date: Fri, 4 Jul 2025 17:34:12 +0000 Subject: [diffoscope] Need a way to select objdump for different architectures Message-ID: Hi folks, I am trying to use diffoscoe to find differences in builds generated for atari and this is quite tricky due to the native objdump not being able to decode atari elf binaries. The suggested workaround in https://salsa.debian.org/reproducible-builds/diffoscope/-/issues/375 does not work with current diffoscope, if I make the m68k objdump available as "objdump" in some dir in my $PATH early diffoscope will fail to start up at all - apparently the ffi code accessing libarchive.so requires a native objdump. So I am lost, short of hacking the installed script (which I did for now) like this (in the python site-packages diffoscope/comparators/elf.py): @tool_required("objdump") def cmdline(self): return ( # HACK: hard code path to proper cross-objdump # [get_tool_name("objdump")] ['/home/builds/ab/HEAD/atari/20250703130037Z-tools/bin/m68k--netbsdelf-objdump'] + self.objdump_options() + ["--section={}".format(self._section_name), self.path] ) Would be cool if that path could be overriden by a command line option. Martin From chris at reproducible-builds.org Tue Jul 8 21:55:05 2025 From: chris at reproducible-builds.org (Chris Lamb) Date: Tue, 08 Jul 2025 14:55:05 -0700 Subject: [diffoscope] Need a way to select objdump for different architectures In-Reply-To: References: Message-ID: Hey Martin, > Would be cool if that path could be overriden by a command line option. Yes! Quick thought - does the following work for you? diffoscope --tool-prefix-binutils=/home/builds/ab/HEAD/atari/20250703130037Z-tools/bin/m68k--netbsdelf- file1 file2 NB. the trailing "-" on the --tool-prefix line is deliberate. Best wishes, -- o ? ? Chris Lamb o o reproducible-builds.org ? ? ? o From martin at NetBSD.org Wed Jul 9 11:52:43 2025 From: martin at NetBSD.org (Martin Husemann) Date: Wed, 9 Jul 2025 11:52:43 +0000 Subject: [diffoscope] Need a way to select objdump for different architectures In-Reply-To: References: Message-ID: On Tue, Jul 08, 2025 at 02:55:05PM -0700, Chris Lamb wrote: > Hey Martin, > > > Would be cool if that path could be overriden by a command line option. > > Yes! Quick thought - does the following work for you? > > diffoscope > --tool-prefix-binutils=/home/builds/ab/HEAD/atari/20250703130037Z-tools/bin/m68k--netbsdelf- > file1 > file2 > > NB. the trailing "-" on the --tool-prefix line is deliberate. Perfect - not sure how I overlooked that in the usage output. Thanks! Martin From chris at reproducible-builds.org Wed Jul 9 17:36:52 2025 From: chris at reproducible-builds.org (Chris Lamb) Date: Wed, 09 Jul 2025 10:36:52 -0700 Subject: [diffoscope] Need a way to select objdump for different architectures In-Reply-To: References: Message-ID: Hi Martin, >> diffoscope >> --tool-prefix-binutils=/home/builds/ab/HEAD/atari/20250703130037Z-tools/bin/m68k--netbsdelf- >> file1 >> file2 >> >> NB. the trailing "-" on the --tool-prefix line is deliberate. > > Perfect - not sure how I overlooked that in the usage output. No problem, it's a little-used feature after all, and the name "tool-prefix-binutils" won't jump out to you when looking at the --help output. I don't think I ever considered that users would pass a full, absolute path too, so I'm glad that works. Best wishes, -- o ? ? Chris Lamb o o reproducible-builds.org ? ? ? o From chris at reproducible-builds.org Fri Jul 11 21:34:48 2025 From: chris at reproducible-builds.org (Chris Lamb) Date: Fri, 11 Jul 2025 14:34:48 -0700 Subject: [diffoscope] =?utf-8?q?diffoscope_301_released_=F0=9F=92=A0?= Message-ID: <175224952645.208645.6884532286784480816@copycat> Hi, The diffoscope maintainers are pleased to announce the release of version 301 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 301 includes the following changes: [ Chris Lamb ] * Avoid spurious differences in h5dump output caused by exposure of absolute internal extraction paths. (Closes: #1108690) * Use our_check_output in the ODT comparator. * Memoize a number of calls to --version. Thanks, Jade! (Closes: #412) * Update copyright years. ## Download Version 301 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 Fri Jul 25 19:27:43 2025 From: chris at reproducible-builds.org (Chris Lamb) Date: Fri, 25 Jul 2025 12:27:43 -0700 Subject: [diffoscope] =?utf-8?q?diffoscope_302_released_=F0=9F=92=A0?= Message-ID: <175346614852.423928.14416584846490818204@copycat> Hi, The diffoscope maintainers are pleased to announce the release of version 302 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 302 includes the following changes: [ Chris Lamb ] * Mask stderr from the extract-vmlinux script. * Make it much more explicit that we return 'success' from the extract-vmlinux script instead of just falling through to the bottom of the script. * Use Difference.from_operation in an attempt to pipeline the output of extract-vmlinux, potentially avoiding it all residing in memory. This is an attempt to prevent out of memory issues on try.diffoscope.org. [ Siva Mahadevan ] * Use --print-armap long option with nm in the "ar" comparator for wider compatibility. ## Download Version 302 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 amansha at kth.se Tue Jul 29 14:07:12 2025 From: amansha at kth.se (Aman Sharma) Date: Tue, 29 Jul 2025 14:07:12 +0000 Subject: [diffoscope] javap exits with 1 on .classdata Message-ID: Hi, I am computing the difference between two Java classfiles that have an extension classdata, but diffoscope 302 does not process them using javap and falls back to hexdump. Running file over them also returns "compiled Java class data, version 52.0 (Java 1.8)" which seems to be a valid criteria to start comparing with Java comparators. These classes are reference and rebuild versions of `inst/io/opentelemetry/javaagent/instrumentation/rmi/context/jpms/ExposeRmiModuleInstrumentation$2.classdata` from this jar. If we simply rename their extensions to `.class` and then compare, there is a valid diff by javap. Regards, Aman Sharma PhD Student KTH Royal Institute of Technology School of Electrical Engineering and Computer Science (EECS) Department of Theoretical Computer Science (TCS) https://algomaster99.github.io/ -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: reference.classdata Type: application/octet-stream Size: 1606 bytes Desc: reference.classdata URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: rebuild.classdata Type: application/octet-stream Size: 1565 bytes Desc: rebuild.classdata URL: