Skip to content

Please document and allow disabling of automatic inclusion of -dbgsym packages

This bug was originally reported by Johannes 'josch' Schauer (josch@debian.org) in Debian bug #920701:

Package: diffoscope
Version: 108
Severity: wishlist

Hi,

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
   directly

 - 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
   runtimes

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

Thanks!

cheers, josch
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information