dbus: mask the dbus-1 init script if using systemd

If the image is built with both systemd and sysvinit there'll be a dbus-1 init
script and a dbus service. This means systemd can try and launch both, which
won't work.

There's a systemctl mask to stop this in systemd-compat-units, but the logical
place for it to be is in the dbus recipe so it can't be left out of an image.

(From OE-Core rev: c910aa17689077362a25938aeebee7fb24057e30)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton
2014-02-06 13:15:39 +00:00
committed by Richard Purdie
parent 618931eb02
commit 3ca2ae1ea1

View File

@@ -62,6 +62,14 @@ RRECOMMENDS_${PN}-lib = "${PN}"
FILES_${PN}-dev += "${libdir}/dbus-1.0/include ${bindir}/dbus-glib-tool"
pkg_postinst_dbus() {
# If both systemd and sysvinit are enabled, mask the dbus-1 init script
if ${@base_contains('DISTRO_FEATURES','systemd sysvinit','true','false',d)}; then
if [ -n "$D" ]; then
OPTS="--root=$D"
fi
systemctl $OPTS mask dbus-1.service
fi
if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then
/etc/init.d/populate-volatile.sh update
fi