[debhelper-devel] Bug#891187: debhelper: drop useless/insufficient dependency on binutils
Helmut Grohne
helmut at subdivi.de
Fri Feb 23 09:35:18 UTC 2018
Package: debhelper
Version: 11.1.4
Severity: wishlist
Hi Niels et al,
I was kinda surprised when I saw that debhelper depends on binutils. I
think this dependency is wrong for a couple of reasons.
* It likely exists for dh_strip. However, dh_strip calls
${DEB_HOST_GNU_TYPE}-strip and the binutils binary package does not
ensure its presence (it only does when build == host). Thus the
dependency is too weak in any case.
Fixing this would go like:
Package: debhelper
Architecture: any
Multi-Arch: same
Depends: binutils-for-host, ...
I think we agree that this has several downsides and likely isn't
worth pursuing.
* dh actively calls make (for checking override_ targets) without
depending on make. One might argue that this is a missing dependency,
but anyone using debhelper for building packages will have make
anyway due to build-essential.
As it happens, build-essential also pulls in binutils. The present
crossbuild-essential-${DEB_HOST_ARCH} approach actually ensures that
${DEB_HOST_GNU_TYPE}-strip is available papering over debhelper's
weak dependency.
Thus we could reasonably argue that the binutils dependency is
unnecessary like the make dependency is.
* If a binary package does not contain any ELF objects, dh_strip does
nothing successfully. So unless one creates any ELF objects, one
doesn't need any strip executable. Given that very many packages
don't contain any ELF objects, we may reasonably argue that the
dependency should be demoted to Recommends (or simply removed).
When one does produce ELF objects, the typical way of doing so
involves using binutils. So one will have binutils installed anyway
in relevant cases. It's a bit like lvm2's fsadm integrating with
e2fsprogs and being able to call resize2fs. It doesn't warrant a
dependency on e2fsprogs either.
* When dh_strip uses ${DEB_TARGET_GNU_TYPE}-strip, the necessary
dependency becomes inexpressible.
Thus I believe that the binutils dependency is none of sufficient,
necessary, warranted or correctly expressible. I suggest that you simply
drop it.
Helmut
More information about the debhelper-devel
mailing list