summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRisto Avila <risto.avila@qt.io>2016-09-22 14:21:08 +0300
committerRisto Avila <risto.avila@qt.io>2016-09-22 13:00:49 +0000
commit9785aefe8a6fea45325bc1ad1e23ab88f8900f5c (patch)
treee757bd138fe0e6d3579d1d3c0c4f9aefdf5fece7
parent2b9e77c40609da75fa44e3376341f484e0ab0288 (diff)
downloadmeta-boot2qt-9785aefe8a6fea45325bc1ad1e23ab88f8900f5c.tar.gz
Update dbus-session-init to work with systemd
Change-Id: I7a275d592222ef63f590668087a442f2bb1137a7 Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
-rw-r--r--recipes/dbus/dbus/dbus-session.init13
-rw-r--r--recipes/dbus/dbus/dbus-session.service13
-rw-r--r--recipes/dbus/dbus_%.bbappend24
3 files changed, 45 insertions, 5 deletions
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 @@
1#! /bin/sh 1#!/bin/sh
2### BEGIN INIT INFO 2### BEGIN INIT INFO
3# Provides: dbus 3# Provides: dbus
4# Required-Start: $remote_fs $syslog 4# Required-Start: $remote_fs $syslog
@@ -17,13 +17,16 @@
17# set -e 17# set -e
18 18
19# Source function library. 19# Source function library.
20. /etc/init.d/functions 20#. /etc/init.d/functions
21 21
22DAEMON=@bindir@/dbus-launch 22DAEMON=@bindir@/dbus-launch
23NAME=dbus-session 23NAME=dbus-session
24ADDRESSFILE=/var/run/dbus/session_bus_address 24ADDRESSFILE=/var/run/dbus/session_bus_address
25UUIDDIR=/var/lib/dbus 25UUIDDIR=/var/lib/dbus
26DESC="session message bus" 26DESC="session message bus"
27APPCONTROLLERPATH="/tmp/b2qt/appcontroller.conf.d"
28APPCONTROLLERADDRESSFILE="session_bus_address"
29
27 30
28test -x $DAEMON || exit 0 31test -x $DAEMON || exit 0
29 32
@@ -38,12 +41,18 @@ if [ -e $ADDRESSFILE ]; then
38 . $ADDRESSFILE 41 . $ADDRESSFILE
39fi 42fi
40 43
44if [ ! -d $APPCONTROLLERPATH ]; then
45mkdir -p $APPCONTROLLERPATH
46fi
47
41test "$ENABLED" != "0" || exit 0 48test "$ENABLED" != "0" || exit 0
42 49
43start_it_up() 50start_it_up()
44{ 51{
45 echo -n "Starting $DESC: " 52 echo -n "Starting $DESC: "
46 $DAEMON --auto-syntax > $ADDRESSFILE 53 $DAEMON --auto-syntax > $ADDRESSFILE
54 ADDR=`cat $ADDRESSFILE|grep -i DBUS_SESSION_BUS_ADDRESS=`
55 echo "env=${ADDR%?}" |tr -d \' > ${APPCONTROLLERPATH}/${APPCONTROLLERADDRESSFILE}
47 echo "$NAME." 56 echo "$NAME."
48} 57}
49 58
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 @@
1[Unit]
2Description=D-BUS Session Message Bus.
3After=dbus.service
4
5[Service]
6Type=forking
7ExecStart=/usr/bin/dbus-session.init start
8ExecStop=/usr/bin/dbus-session.init stop
9Environment=HOME=/home/root
10
11[Install]
12WantedBy=multi-user.target
13
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 @@
27## 27##
28############################################################################ 28############################################################################
29 29
30inherit systemd
31
30FILESEXTRAPATHS_append := ":${THISDIR}/${PN}" 32FILESEXTRAPATHS_append := ":${THISDIR}/${PN}"
31SRC_URI += " \ 33SRC_URI += " \
32 file://dbus-session.init \ 34 file://dbus-session.init \
35 file://dbus-session.service \
33 file://dbus-session-address \ 36 file://dbus-session-address \
34 " 37 "
35
36INITSCRIPT_PACKAGES = "${PN} ${PN}-session-init" 38INITSCRIPT_PACKAGES = "${PN} ${PN}-session-init"
37INITSCRIPT_NAME_${PN}-session-init = "dbus-session" 39INITSCRIPT_NAME_${PN}-session-init = "dbus-session"
38INITSCRIPT_PARAMS_${PN}-session-init = "start 20 5 3 2 . stop 10 0 1 6 ." 40INITSCRIPT_PARAMS_${PN}-session-init = "start 20 5 3 2 . stop 10 0 1 6 ."
39 41
40PACKAGES =+ "${PN}-session-init" 42PACKAGES =+ "${PN}-session-init"
43SYSTEMD_PACKAGES =+ "${PN}-session-init"
44
41FILES_${PN}-session-init = " \ 45FILES_${PN}-session-init = " \
42 ${sysconfdir}/init.d/dbus-session \ 46 ${sysconfdir}/init.d/dbus-session \
43 ${sysconfdir}/profile.d/dbus-session-address \ 47 ${sysconfdir}/profile.d/dbus-session-address \
48 ${bindir}/dbus-session.init \
49 ${systemd_unitdir}/system/dbus-session.service \
44 " 50 "
45 51
46do_install_append_class-target() { 52do_install_append_class-target() {
53 sed 's:@bindir@:${bindir}:' < ${WORKDIR}/dbus-session.init >${WORKDIR}/dbus-session.init
54
47 if ${@base_contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then 55 if ${@base_contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
48 install -d ${D}${sysconfdir}/init.d 56 install -d ${D}${sysconfdir}/init.d
49 sed 's:@bindir@:${bindir}:' < ${WORKDIR}/dbus-session.init >${WORKDIR}/dbus-session.init.sh 57 install -m 0755 ${WORKDIR}/dbus-session.init ${D}${sysconfdir}/init.d/dbus-session
50 install -m 0755 ${WORKDIR}/dbus-session.init.sh ${D}${sysconfdir}/init.d/dbus-session
51 fi 58 fi
59
60 if ${@base_contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
61 install -m 0755 -d ${D}${bindir}/
62 install -m 0755 ${WORKDIR}/dbus-session.init ${D}${bindir}/
63
64 install -m 0755 -d ${D}${systemd_unitdir}/system
65 install -m 0644 ${WORKDIR}/dbus-session.service ${D}${systemd_unitdir}/system/
66 fi
67
52 install -d ${D}${sysconfdir}/profile.d 68 install -d ${D}${sysconfdir}/profile.d
53 install -m 0755 ${WORKDIR}/dbus-session-address ${D}${sysconfdir}/profile.d/ 69 install -m 0755 ${WORKDIR}/dbus-session-address ${D}${sysconfdir}/profile.d/
54} 70}
71
72SYSTEMD_SERVICE_${PN}-session-init = "dbus-session.service"