dbus: add traditional-activation PACKAGECONFIG

Add traditional-activation PACKAGECONFIG to DBus recipe in order to allow
users to enable or disable traditional DBus service activation.

DBus service activation refers to automatically starting an application
when a DBus message is sent to a service provided by that application.
Traditionally, this is done by the DBus-daemon, thus, the term traditional
here. On systems using systemd, systemd can do this, instead.

On some systems it might be of interest to disable the traditional service
activation in order to ensure that services are always started via systemd.

Per default, traditional service activation is enabled for DBus. Thus, the
traditional-activation PACKAGECONFIG is added to the default PACKAGECONFIG.
Otherwise, we might introduce a breaking change here.

The binary dbus-daemon-launch-helper isn't created in case DBus is built
with traditional service activation disabled, so we change its attributes
only when traditional service activation is turned on.

(From OE-Core rev: 272aafbf0a2a1a158fdff42b6ce295fe861f1327)

Signed-off-by: Weisser, Pascal <pascal.weisser.ext@karlstorz.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Weisser, Pascal.ext
2025-07-22 13:32:50 +02:00
committed by Richard Purdie
parent 6003a9615d
commit 78f97b8762

View File

@@ -28,7 +28,7 @@ EXTRA_OEMESON = "-Dxml_docs=disabled \
"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)} \
user-session \
traditional-activation user-session \
${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
"
PACKAGECONFIG:class-native = ""
@@ -36,6 +36,7 @@ PACKAGECONFIG:class-nativesdk = ""
PACKAGECONFIG[systemd] = "-Dsystemd=enabled -Dsystemd_system_unitdir=${systemd_system_unitdir},-Dsystemd=disabled,systemd"
PACKAGECONFIG[x11] = "-Dx11_autolaunch=enabled,-Dx11_autolaunch=disabled, virtual/libx11 libsm"
PACKAGECONFIG[traditional-activation] = "-Dtraditional_activation=true,-Dtraditional_activation=false"
PACKAGECONFIG[user-session] = "-Duser_session=true -Dsystemd_user_unitdir=${systemd_user_unitdir},-Duser_session=false"
PACKAGECONFIG[verbose-mode] = "-Dverbose_mode=true,-Dverbose_mode=false,,"
PACKAGECONFIG[audit] = "-Dlibaudit=enabled,-Dlibaudit=disabled,audit"
@@ -152,8 +153,11 @@ do_install:append:class-target() {
chown messagebus:messagebus ${D}${localstatedir}/lib/dbus
chown root:messagebus ${D}${libexecdir}/dbus-daemon-launch-helper
chmod 4755 ${D}${libexecdir}/dbus-daemon-launch-helper
if [ "${@bb.utils.contains('PACKAGECONFIG', 'traditional-activation', '1', '0', d)}" = "1" ]
then
chown root:messagebus ${D}${libexecdir}/dbus-daemon-launch-helper
chmod 4755 ${D}${libexecdir}/dbus-daemon-launch-helper
fi
# Remove Red Hat initscript
rm -rf ${D}${sysconfdir}/rc.d