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 <[email protected]> --- 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 _______________________________________________ Openembedded-core mailing list [email protected] http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
