[debhelper-devel] Bug#859724: debhelper: please consider using a non-multiarch libexecdir in new compat levels
Simon McVittie
smcv at debian.org
Thu Apr 6 12:50:57 UTC 2017
Package: debhelper
Version: 10.2.5
Severity: wishlist
In compat levels >= 9, debhelper defaults to
--libexecdir=\${prefix}/lib/$multiarch
--libdir=\${prefix}/lib/$multiarch
This can be problematic for multiarch, if a "registration" file in
a non-multiarch location (for example /usr/share/dbus-1/services for
D-Bus, /usr/share/thumbnailers for sandboxable thumbnailers in the
GNOME stack, or /lib/systemd/system or /usr/lib/systemd/user for systemd)
needs to reference a binary in ${libexecdir} or ${pkglibexecdir}.
The GNOME team has had issues with this for the gdk-pixbuf and librsvg
thumbnailers.
Using a non-architecture-varying libexecdir also makes it a lot simpler
to give debugging instructions that require running a daemon with special
options or environment variables, if that daemon is not normally run
manually and so should not be in $PATH. Writing autopkgtests or manual
test instructions based on GNOME-style installed-tests[1], which canonically
live in ${libexecdir}/installed-tests/mypackage, is similarly a lot simpler
if the libexecdir doesn't vary.
In Red-Hat-style (lib64) multilib, libexec programs are installed in
/usr/libexec regardless of architecture. I suspect that this means few
packages actually rely on having a multiarch-varying libexecdir, because
if they did, their co-installability would already be broken on
Red-Hat-style systems.
For the next compat level please consider defaulting to:
--libexecdir=\${prefix}/lib
--libdir=\${prefix}/lib/$multiarch (same as now)
(or perhaps even not overriding libexecdir at all, now that /usr/libexec
is officially blessed by FHS 3.0 - but this would require a Policy change[2].)
Regards,
S
[1] https://wiki.gnome.org/Initiatives/GnomeGoals/InstalledTests
[2] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=787816
More information about the debhelper-devel
mailing list