From 9785aefe8a6fea45325bc1ad1e23ab88f8900f5c Mon Sep 17 00:00:00 2001 From: Risto Avila Date: Thu, 22 Sep 2016 14:21:08 +0300 Subject: Update dbus-session-init to work with systemd Change-Id: I7a275d592222ef63f590668087a442f2bb1137a7 Reviewed-by: Samuli Piippo --- recipes/dbus/dbus/dbus-session.init | 13 +++++++++++-- recipes/dbus/dbus/dbus-session.service | 13 +++++++++++++ recipes/dbus/dbus_%.bbappend | 24 +++++++++++++++++++++--- 3 files changed, 45 insertions(+), 5 deletions(-) create mode 100644 recipes/dbus/dbus/dbus-session.service diff --git a/recipes/dbus/dbus/dbus-session.init b/recipes/dbus/dbus/dbus-session.init index 11a6757..0690511 100644 --- a/recipes/dbus/dbus/dbus-session.init +++ b/recipes/dbus/dbus/dbus-session.init @@ -1,4 +1,4 @@ -#! /bin/sh +#!/bin/sh ### BEGIN INIT INFO # Provides: dbus # Required-Start: $remote_fs $syslog @@ -17,13 +17,16 @@ # set -e # Source function library. -. /etc/init.d/functions +#. /etc/init.d/functions DAEMON=@bindir@/dbus-launch NAME=dbus-session ADDRESSFILE=/var/run/dbus/session_bus_address UUIDDIR=/var/lib/dbus DESC="session message bus" +APPCONTROLLERPATH="/tmp/b2qt/appcontroller.conf.d" +APPCONTROLLERADDRESSFILE="session_bus_address" + test -x $DAEMON || exit 0 @@ -38,12 +41,18 @@ if [ -e $ADDRESSFILE ]; then . $ADDRESSFILE fi +if [ ! -d $APPCONTROLLERPATH ]; then +mkdir -p $APPCONTROLLERPATH +fi + test "$ENABLED" != "0" || exit 0 start_it_up() { echo -n "Starting $DESC: " $DAEMON --auto-syntax > $ADDRESSFILE + ADDR=`cat $ADDRESSFILE|grep -i DBUS_SESSION_BUS_ADDRESS=` + echo "env=${ADDR%?}" |tr -d \' > ${APPCONTROLLERPATH}/${APPCONTROLLERADDRESSFILE} echo "$NAME." } diff --git a/recipes/dbus/dbus/dbus-session.service b/recipes/dbus/dbus/dbus-session.service new file mode 100644 index 0000000..dbd6fcd --- /dev/null +++ b/recipes/dbus/dbus/dbus-session.service @@ -0,0 +1,13 @@ +[Unit] +Description=D-BUS Session Message Bus. +After=dbus.service + +[Service] +Type=forking +ExecStart=/usr/bin/dbus-session.init start +ExecStop=/usr/bin/dbus-session.init stop +Environment=HOME=/home/root + +[Install] +WantedBy=multi-user.target + diff --git a/recipes/dbus/dbus_%.bbappend b/recipes/dbus/dbus_%.bbappend index b7fff89..f9f1345 100644 --- a/recipes/dbus/dbus_%.bbappend +++ b/recipes/dbus/dbus_%.bbappend @@ -27,28 +27,46 @@ ## ############################################################################ +inherit systemd + FILESEXTRAPATHS_append := ":${THISDIR}/${PN}" SRC_URI += " \ file://dbus-session.init \ + file://dbus-session.service \ file://dbus-session-address \ " - INITSCRIPT_PACKAGES = "${PN} ${PN}-session-init" INITSCRIPT_NAME_${PN}-session-init = "dbus-session" INITSCRIPT_PARAMS_${PN}-session-init = "start 20 5 3 2 . stop 10 0 1 6 ." PACKAGES =+ "${PN}-session-init" +SYSTEMD_PACKAGES =+ "${PN}-session-init" + FILES_${PN}-session-init = " \ ${sysconfdir}/init.d/dbus-session \ ${sysconfdir}/profile.d/dbus-session-address \ + ${bindir}/dbus-session.init \ + ${systemd_unitdir}/system/dbus-session.service \ " do_install_append_class-target() { + sed 's:@bindir@:${bindir}:' < ${WORKDIR}/dbus-session.init >${WORKDIR}/dbus-session.init + if ${@base_contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then install -d ${D}${sysconfdir}/init.d - sed 's:@bindir@:${bindir}:' < ${WORKDIR}/dbus-session.init >${WORKDIR}/dbus-session.init.sh - install -m 0755 ${WORKDIR}/dbus-session.init.sh ${D}${sysconfdir}/init.d/dbus-session + install -m 0755 ${WORKDIR}/dbus-session.init ${D}${sysconfdir}/init.d/dbus-session fi + + if ${@base_contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -m 0755 -d ${D}${bindir}/ + install -m 0755 ${WORKDIR}/dbus-session.init ${D}${bindir}/ + + install -m 0755 -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/dbus-session.service ${D}${systemd_unitdir}/system/ + fi + install -d ${D}${sysconfdir}/profile.d install -m 0755 ${WORKDIR}/dbus-session-address ${D}${sysconfdir}/profile.d/ } + +SYSTEMD_SERVICE_${PN}-session-init = "dbus-session.service" -- cgit v1.2.3-54-g00ecf