[OE-core] [PATCH] dbus: fix paths in startup script, use useradd.bbclass for user creation
Phil Blundell
philb at gnu.org
Wed Sep 7 20:28:17 UTC 2011
Replace various hard-coded references to /usr, /var and /etc with symbolic equivalents.
Also replace adhoc usage of adduser/addgroup with useradd.bbclass
functionality. This should, in theory, remove the need for a postinst
to be run at boot time.
Signed-off-by: Phil Blundell <philb at gnu.org>
---
meta/recipes-core/dbus/dbus-1.4.12/dbus-1.init | 14 +++---
meta/recipes-core/dbus/dbus.inc | 58 ++++++++++++------------
meta/recipes-core/dbus/dbus_1.4.12.bb | 1 +
3 files changed, 37 insertions(+), 36 deletions(-)
diff --git a/meta/recipes-core/dbus/dbus-1.4.12/dbus-1.init b/meta/recipes-core/dbus/dbus-1.4.12/dbus-1.init
index 4abc4cb..1917ad3 100644
--- a/meta/recipes-core/dbus/dbus-1.4.12/dbus-1.init
+++ b/meta/recipes-core/dbus/dbus-1.4.12/dbus-1.init
@@ -16,22 +16,22 @@
set -e
-DAEMON=/usr/bin/dbus-daemon
+DAEMON=@BINDIR@/dbus-daemon
NAME=dbus
DAEMONUSER=messagebus
-PIDDIR=/var/run/dbus
+PIDDIR=@LOCALSTATEDIR@/run/dbus
PIDFILE=$PIDDIR/pid
-UUIDDIR=/var/lib/dbus
+UUIDDIR=@LOCALSTATEDIR@/lib/dbus
DESC="system message bus"
-EVENTDIR=/etc/dbus-1/event.d
+EVENTDIR=@SYSCONFDIR@/dbus-1/event.d
test -x $DAEMON || exit 0
# Source defaults file; edit that file to configure this script.
ENABLED=1
PARAMS=""
-if [ -e /etc/default/dbus ]; then
- . /etc/default/dbus
+if [ -e @SYSCONFDIR@/default/dbus ]; then
+ . @SYSCONFDIR@/default/dbus
fi
test "$ENABLED" != "0" || exit 0
@@ -113,7 +113,7 @@ case "$1" in
start_it_up
;;
*)
- echo "Usage: /etc/init.d/$NAME {start|stop|restart|reload|force-reload}" >&2
+ echo "Usage: @SYSCONFDIR@/init.d/$NAME {start|stop|restart|reload|force-reload}" >&2
exit 1
;;
esac
diff --git a/meta/recipes-core/dbus/dbus.inc b/meta/recipes-core/dbus/dbus.inc
index a8ecda8..34dbe4a 100644
--- a/meta/recipes-core/dbus/dbus.inc
+++ b/meta/recipes-core/dbus/dbus.inc
@@ -14,11 +14,19 @@ SRC_URI = "http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \
file://tmpdir.patch; \
file://dbus-1.init"
-inherit autotools pkgconfig gettext update-rc.d
+inherit autotools pkgconfig gettext update-rc.d useradd
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "-d ${MESSAGEHOME} -g ${MESSAGEUSER} -r ${MESSAGEUSER}"
+GROUPADD_PARAM_${PN} = "${MESSAGEUSER}; netdev"
INITSCRIPT_NAME = "dbus-1"
INITSCRIPT_PARAMS = "start 02 5 3 2 . stop 20 0 1 6 ."
+MESSAGEUSER=messagebus
+MESSAGEHOME="${localstatedir}/run/dbus"
+UUIDDIR="${localstatedir}/lib/dbus"
+
CONFFILES_${PN} = "${sysconfdir}/dbus-1/system.conf ${sysconfdir}/dbus-1/session.conf"
DEBIANNAME_${PN} = "dbus-1"
@@ -34,42 +42,27 @@ FILES_${PN} = "${bindir}/dbus-daemon* \
${bindir}/dbus-uuidgen \
${bindir}/dbus-cleanup-sockets \
${bindir}/dbus-send \
- ${bindir}/dbus-monitor \
+ ${bindir}/dbus-monitor \
+ ${bindir}/dbus-launch \
${libexecdir}/dbus* \
${sysconfdir} \
${datadir}/dbus-1/services \
- ${datadir}/dbus-1/system-services"
+ ${datadir}/dbus-1/system-services \
+ ${MESSAGEHOME} \
+ ${UUIDDIR}"
FILES_${PN}-lib = "${libdir}/lib*.so.*"
RRECOMMENDS_${PN}-lib = "${PN}"
FILES_${PN}-dev += "${libdir}/dbus-1.0/include ${bindir}/dbus-glib-tool"
-pkg_postinst_dbus() {
- # can't do adduser stuff offline
- if [ "x$D" != "x" ]; then
- exit 1
- fi
-
- MESSAGEUSER=messagebus
- MESSAGEHOME=/var/run/dbus
- UUIDDIR=/var/lib/dbus
-
- mkdir -p $MESSAGEHOME
- mkdir -p $UUIDDIR
- chgrp "$MESSAGEUSER" "$MESSAGEHOME" 2>/dev/null || addgroup "$MESSAGEUSER"
- chown "$MESSAGEUSER":"$MESSAGEUSER" "$MESSAGEHOME" 2>/dev/null || \
- adduser --system --home "$MESSAGEHOME" --no-create-home --disabled-password \
- --ingroup "$MESSAGEUSER" "$MESSAGEUSER"
+pkg_postinst_${PN}() {
+ chgrp "${MESSAGEUSER}" "${MESSAGEHOME}"
+ chown "${MESSAGEUSER}":"${MESSAGEUSER}" "${MESSAGEHOME}"
+ chown "${MESSAGEUSER}":"${MESSAGEUSER}" "${UUIDDIR}"
- chown "$MESSAGEUSER":"$MESSAGEUSER" "$UUIDDIR"
+ chown root:"${MESSAGEUSER}" $D${libexecdir}/dbus-daemon-launch-helper
+ chmod 4754 $D${libexecdir}/dbus-daemon-launch-helper
- grep -q netdev: /etc/group || addgroup netdev
-
- chown root:"$MESSAGEUSER" /usr/libexec/dbus-daemon-launch-helper
- chmod 4754 /usr/libexec/dbus-daemon-launch-helper
-
- # add volatile after new user/grp are created
- echo "d messagebus messagebus 0755 /var/run/dbus none" > /etc/default/volatiles/99_dbus
- if [ -e /etc/init.d/populate-volatile.sh ] ; then
+ if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then
/etc/init.d/populate-volatile.sh update
fi
}
@@ -90,11 +83,18 @@ do_install() {
autotools_do_install
install -d ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/dbus-1.init ${D}${sysconfdir}/init.d/dbus-1
+ sed 's:@SYSCONFDIR@:${sysconfdir}:;s:@BINDIR@:${bindir}:;s:@LOCALSTATEDIR@:${localstatedir}:' < ${WORKDIR}/dbus-1.init > ${D}${sysconfdir}/init.d/dbus-1
+ chmod 755 ${D}${sysconfdir}/init.d/dbus-1
# disable dbus-1 sysv script on systemd installs
# nearly all distros call the initscript plain 'dbus', but OE-core is different
ln -sf /dev/null ${D}/${base_libdir}/systemd/system/dbus-1.service
+
+ install -d ${D}${UUIDDIR}
+ install -d ${D}${MESSAGEHOME}
+
+ install -d ${D}${sysconfdir}/default/volatiles
+ echo "d messagebus messagebus 0755 ${localstatedir}/run/dbus none" > ${D}${sysconfdir}/default/volatiles/99_dbus
}
do_install_virtclass-native() {
diff --git a/meta/recipes-core/dbus/dbus_1.4.12.bb b/meta/recipes-core/dbus/dbus_1.4.12.bb
index ada53c9..51604aa 100644
--- a/meta/recipes-core/dbus/dbus_1.4.12.bb
+++ b/meta/recipes-core/dbus/dbus_1.4.12.bb
@@ -2,3 +2,4 @@ include dbus.inc
SRC_URI[md5sum] = "104f2ea94c10a896dfb1edecb5714cb1"
SRC_URI[sha256sum] = "da3c97fd546610558d588799e27c4fa81101e754acbcd34747a42c131f30dbe7"
+PR = "r6"
--
1.7.4.1
More information about the Openembedded-core
mailing list