On Wed, 04 Jul 2018 at 16:13:33 +0200, Michael Biebl wrote:
> Just wondering: What would be the benefit of such a change?

The main thing I wanted was for the default to be *any* non-multiarch
libexecdir, which can solve multiarch co-installability for files like
GNOME thumbnailers, D-Bus services and systemd services, and makes
writing automated tests and manual test instructions more straightforward
because the path to the helper binary doesn't have the varying multiarch
tuple in it:
<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859724#5>

If we are changing the default libexecdir away from ${libdir}
(which in general is multiarch), then it seems like it makes sense to
use the Autoconf and Meson default, as Niels said he'd prefer in
<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859724#12>.
This would also make Debian put these binaries in the same place as
some other distributions (e.g. Red Hat family and Gentoo, although
openSUSE uses libexecdir=/usr/lib and Arch uses
libexecdir=/usr/lib/$package).

> Atm, if I look through my process list, packages seems to pretty much
> consistently use /usr/lib/foo/bar or /lib/foo/bar
> Some even hard-code that to be like that, e.g. systemd has
> 
> rootlibexecdir = join_paths(rootprefixdir, 'lib/systemd')

systemd is a special case because historically it specifically used /lib,
in its role as the root filesystem's equivalent of all of /usr/lib,
/usr/libexec and /usr/share (there is no /libexec or /share).

The FHS doesn't forbid this use of /{usr/,}lib.

> The result will be, that we now have daemons being started from
> /usr/libexec/, /lib/foo/ or /usr/lib/foo/

I don't see that as a big problem tbh. We already have daemons variously
being started from /usr/bin, /usr/lib (in its role as the substitute for
libexec), /usr/sbin, and their root-filesystem equivalents on non-usrmerge
systems.

In a previous mail you said:
> Apparently there are a few packages using pkglibexecdir although I have
> never encountered one myself.

ostree, dovecot, vala and man-db are examples. You
probably didn't notice them because it's difficult to
distinguish between for example (libexecdir=/usr/lib/flatpak,
libexec_PROGRAMS=flatpak-dbus-proxy) and (libexecdir=/usr/lib,
PACKAGE=libostree, pkglibexec_PROGRAMS=ostree-trivial-httpd)
which end up as /usr/lib/flatpak/flatpak-dbus-proxy and
/usr/lib/libostree/ostree-trivial-httpd respectively.

    smcv

Reply via email to