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

Package: diffoscope
Version: 108
Severity: wishlist


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
   explicitly specified

 - 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
   need it


cheers, josch

More information about the Reproducible-builds mailing list