Install the service executables in libexecdir
Created by: bochecha
This is the proper directory according to the GNU guidelines:
The directory for installing executable programs to be run by other programs rather than by users.
https://www.gnu.org/prep/standards/html_node/Directory-Variables.html#index-libexecdir
Libexecdir used to be absent from the FHS but it was added in version 3.0 of the standard, which was released in 2015:
/usr/libexec includes internal binaries that are not intended to be executed directly by users or shell scripts. Applications may use a single subdirectory under /usr/libexec.
https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html#usrlibexec
Those executables are the launchers for the background services, and are not intended to be run by users (e.g the Linux one is run by DBus) which makes libexecdir the better place to install them.
The default as recommanded by GNU is $(prefix)/libexec
. This is what Linux distributions like Fedora use.
However, other distributions (most notably Debian) mandate in their policy that libexecdir
must be libdir
. The second commit in this branch makes it possible for those distributions to override the default.