Package: debhelper Version: 13.8 Severity: serious X-Debbugs-Cc: debian-devel@lists.debian.org
[ debian-devel is in Cc for getting further input. ] dh_dwz is part of the standard sequence in dh since debhelper compat 12. dwz offers small optimizations of debug info, the typical benefit seems to be ~ 3% size reduction. These optimizations are only in the -dbgsym packages that nearly noone installs and nearly noone uses. Debug info is super useful when needed, but it is not installed by default and dwz optimizations have little practical relevance in the cases when it is used. OTOH, the cases where dh_dwz has created additional work for maintainers are many.[1] dwz is processing debug info from several producers on many architectures, and this sometimes breaks in various ways. On arm64, gcc in stable sometime produces debug info that dwz in stable cannot handle.[2] C++ code can result in huge debuginfo, resulting in dwz exhausting the address space on 32bit architectures, requiring workarounds from maintainers.[3] clang 14 which is now default in instable defaults to DWARF 5, and dwz in unstable has some problems with that.[4,5] Scroll through [1] for more workarounds for problems in dwz. The track record of such bugs in dwz getting fixed swiftly is not good. This is a real problem if dwz is a core toolchain tool most packages are using by default, and usually maintainers are forced to use override_dh_dwz whenever dwz chokes on what it is supposed to process. IMHO the small benefits of dh_dwz are not worth the constant extra work it causes, and it should be dropped from the standard sequence in dh. Dropping dh_dwz from the standard sequence in dh could also be done in the compat levels 12 and 13 since such a change should not cause user-visible changes (except for a slight size increase of -dbgsym) Ignoring errors from dh_dwz by default might work if we can trust that dwz does not touch the file in case of errors, but it feels wrong to ignore errors. [1] https://codesearch.debian.net/search?q=override_dh_dwz&literal=1 [2] https://sources.debian.org/src/qt6-base/6.2.4%2Bdfsg-10~bpo11%2B1/debian/rules/#L97 [3] https://sources.debian.org/src/qtcreator/8.0.0-2/debian/rules/#L66 [4] https://bugs.debian.org/1016329 [5] https://bugs.debian.org/1016330