Bug#920701: diffoscope: Please document and allow to disable automatic inclusion of dbgsym packages
Johannes 'josch' Schauer
josch at debian.org
Mon Jan 28 12:39:55 GMT 2019
steps to reproduce:
Input: two directories dirA and dirB with some sbuild build artifacts,
so .changes file, .buildinfo file, .deb and .dbgsym packages.
Command: diffoscope dirA/foo.deb dirB/foo.deb
Expectation: diffoscope accesses dirA/foo.deb and dirB/foo.deb and
recursively analyses its content to show the differences.
Reality: diffoscope tries to be clever and also accesses dirA/foo.dbgsym
and dirB/foo.dbgsym in addition to the explicitly specified input files
in an attempt to produce more useful output.
The problems are:
- I assume that most people would expect that if they give two files to
a "diff" command, then that command will only use these two files as
input and will not implicitly add other files.
- If I wanted diffoscope to also consider the .dbgsym packages, then I
would've given diffoscope the .changes file and not the .deb files
- I have a package with a 180 MB .dbgsym package. I cancelled
diffoscope after it was running for over two hours. Even when I add
--exclude-command=objdump, diffoscope will still take 3 minutes,
because extracting two 180 MB xz-archives takes a while. Only when I
copy the .deb packages elsewhere, is diffoscope done in 1.5 minutes.
- This behaviour is not documented
- This behaviour cannot be switched off
I suggest to at least:
- document this behaviour because I find it extremely unexpected for a
diff program to consider other input files outside the ones that were
- add an option to switch off this behaviour because I don't want to
always have to copy my .deb packages elsewhere to achieve reasonable
Though personally I would instead remove this magic completely or change
the default for the following reasons:
- even if it's documented, the current default behaviour is still
unexpected for a diff program
- if the user wants diffoscope to consider the .dbgsym packages, then
they can just ask for a comparison of the .changes file instead
- after it has been switched off by default, there could be a command
line argument to switch this behaviour on for the users who want or
More information about the Reproducible-builds