aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-core/dbus
diff options
context:
space:
mode:
authorKoen Kooi <koen@dominion.thruhere.net>2011-03-17 21:41:22 +0100
committerKoen Kooi <koen@dominion.thruhere.net>2011-03-17 21:41:22 +0100
commitc58cc7d3796dcee6e93885c835ed04cb566abeb2 (patch)
tree3eea4d4ef6a4ef79e0f4e025d7012c1a5cc38835 /meta-oe/recipes-core/dbus
parenteec6ab97f712e06eb52c9f7c99e19ffab3ce9d74 (diff)
downloadmeta-openembedded-c58cc7d3796dcee6e93885c835ed04cb566abeb2.tar.gz
move layer into meta-oe in preparation for future splits
As per TSC decision Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Diffstat (limited to 'meta-oe/recipes-core/dbus')
-rw-r--r--meta-oe/recipes-core/dbus/dbus-1.2.24/0001-Make-the-default-DBus-reply-timeout-configurable.patch78
-rw-r--r--meta-oe/recipes-core/dbus/dbus-1.2.24/fix-install-daemon.patch13
-rw-r--r--meta-oe/recipes-core/dbus/dbus-c++-native_git.bb17
-rw-r--r--meta-oe/recipes-core/dbus/dbus-c++/fix-linking.patch13
-rw-r--r--meta-oe/recipes-core/dbus/dbus-c++_git.bb23
-rw-r--r--meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb19
-rw-r--r--meta-oe/recipes-core/dbus/dbus.inc104
-rw-r--r--meta-oe/recipes-core/dbus/dbus/add-configurable-reply-timeouts.patch48
-rw-r--r--meta-oe/recipes-core/dbus/dbus/anon.patch13
-rw-r--r--meta-oe/recipes-core/dbus/dbus/dbus-1.init111
-rw-r--r--meta-oe/recipes-core/dbus/dbus/reuseaddr01.patch64
-rw-r--r--meta-oe/recipes-core/dbus/dbus/reuseaddr02.patch38
-rw-r--r--meta-oe/recipes-core/dbus/dbus/tmpdir.patch30
-rw-r--r--meta-oe/recipes-core/dbus/dbus_1.2.24.bb19
-rw-r--r--meta-oe/recipes-core/dbus/dbus_1.4.0.bb18
15 files changed, 608 insertions, 0 deletions
diff --git a/meta-oe/recipes-core/dbus/dbus-1.2.24/0001-Make-the-default-DBus-reply-timeout-configurable.patch b/meta-oe/recipes-core/dbus/dbus-1.2.24/0001-Make-the-default-DBus-reply-timeout-configurable.patch
new file mode 100644
index 0000000000..a38e3db0de
--- /dev/null
+++ b/meta-oe/recipes-core/dbus/dbus-1.2.24/0001-Make-the-default-DBus-reply-timeout-configurable.patch
@@ -0,0 +1,78 @@
+From fb546488e93a1638d377b228bbb0d2ab58462168 Mon Sep 17 00:00:00 2001
+From: Daniel Willmann <daniel@totalueberwachung.de>
+Date: Thu, 2 Oct 2008 15:50:17 +0800
+Subject: [PATCH] Make the default DBus reply timeout configurable
+
+This patch adds an option --with-dbus-default-reply-timeout to configure
+that will set the default reply timeout used by libdbus in milliseconds.
+autoconf and autoheader need to be rerun in order to regenerate the
+correct configure and config.h.in files.
+---
+ configure.in | 9 +++++++++
+ dbus/dbus-connection-internal.h | 3 ---
+ dbus/dbus-pending-call.c | 1 +
+ 3 files changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 62ac387..5c912d7 100644
+--- a/configure.in
++++ b/configure.in
+@@ -88,6 +88,7 @@ AC_ARG_WITH(console-auth-dir, AS_HELP_STRING([--with-console-auth-dir=[dirname]]
+ AC_ARG_WITH(console-owner-file, AS_HELP_STRING([--with-console-owner-file=[filename]],[file whose owner determines current console owner]))
+ AC_ARG_WITH(dbus_user, AS_HELP_STRING([--with-dbus-user=<user>],[User for running the DBUS daemon (messagebus)]))
+ AC_ARG_WITH(dbus_daemondir, AS_HELP_STRING([--with-dbus-daemondir=[dirname]],[Directory for installing the DBUS daemon]))
++AC_ARG_WITH(dbus_default_reply_timeout, AS_HELP_STRING([--with-dbus-default-reply-timeout=[milliseconds]],[Default reply timeout for DBus method calls]))
+
+ AC_DEFINE(DBUS_UNIX,1,[dbus on unix])
+
+@@ -986,6 +987,13 @@ if test x$have_libaudit = xyes ; then
+ AC_DEFINE(HAVE_LIBAUDIT,1,[audit daemon SELinux support])
+ fi
+
++if test -z "$with_dbus_default_reply_timeout" ; then
++ DBUS_DEFAULT_REPLY_TIMEOUT=25000
++else
++ DBUS_DEFAULT_REPLY_TIMEOUT=$with_dbus_default_reply_timeout
++fi
++AC_DEFINE_UNQUOTED(_DBUS_DEFAULT_TIMEOUT_VALUE,$DBUS_DEFAULT_REPLY_TIMEOUT,[default timeout value for dbus calls])
++
+ #### Set up final flags
+ DBUS_CLIENT_CFLAGS=
+ DBUS_CLIENT_LIBS="$THREAD_LIBS"
+@@ -1348,6 +1356,7 @@ echo "
+ Gettext libs (empty OK): ${INTLLIBS}
+ Using XML parser: ${with_xml}
+ Init scripts style: ${with_init_scripts}
++ Default reply timeout: ${DBUS_DEFAULT_REPLY_TIMEOUT}
+ Abstract socket names: ${ac_cv_have_abstract_sockets}
+ System bus socket: ${DBUS_SYSTEM_SOCKET}
+ System bus address: ${DBUS_SYSTEM_BUS_DEFAULT_ADDRESS}
+diff --git a/dbus/dbus-connection-internal.h b/dbus/dbus-connection-internal.h
+index df54412..5fe536b 100644
+--- a/dbus/dbus-connection-internal.h
++++ b/dbus/dbus-connection-internal.h
+@@ -41,9 +41,6 @@ typedef enum
+ DBUS_ITERATION_BLOCK = 1 << 2 /**< Block if nothing to do. */
+ } DBusIterationFlags;
+
+-/** default timeout value when waiting for a message reply, 25 seconds */
+-#define _DBUS_DEFAULT_TIMEOUT_VALUE (25 * 1000)
+-
+ void _dbus_connection_lock (DBusConnection *connection);
+ void _dbus_connection_unlock (DBusConnection *connection);
+ DBusConnection * _dbus_connection_ref_unlocked (DBusConnection *connection);
+diff --git a/dbus/dbus-pending-call.c b/dbus/dbus-pending-call.c
+index 51b9378..5a7a5f4 100644
+--- a/dbus/dbus-pending-call.c
++++ b/dbus/dbus-pending-call.c
+@@ -21,6 +21,7 @@
+ *
+ */
+
++#include <config.h>
+ #include "dbus-internals.h"
+ #include "dbus-connection-internal.h"
+ #include "dbus-pending-call-internal.h"
+--
+1.5.6.4
+
diff --git a/meta-oe/recipes-core/dbus/dbus-1.2.24/fix-install-daemon.patch b/meta-oe/recipes-core/dbus/dbus-1.2.24/fix-install-daemon.patch
new file mode 100644
index 0000000000..5e25d1227d
--- /dev/null
+++ b/meta-oe/recipes-core/dbus/dbus-1.2.24/fix-install-daemon.patch
@@ -0,0 +1,13 @@
+Index: dbus-0.94/bus/Makefile.am
+===================================================================
+--- dbus-0.94.orig/bus/Makefile.am 2006-10-01 17:36:18.000000000 +0200
++++ dbus-0.94/bus/Makefile.am 2006-10-14 21:40:05.000000000 +0200
+@@ -110,7 +110,7 @@
+ $(mkinstalldirs) $(DESTDIR)$(DBUS_DAEMONDIR); \
+ chmod 755 $(DESTDIR)$(DBUS_DAEMONDIR); \
+ fi
+- $(INSTALL_PROGRAM) dbus-daemon $(DESTDIR)$(DBUS_DAEMONDIR)
++ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) dbus-daemon $(DESTDIR)$(DBUS_DAEMONDIR)
+ $(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus
+ $(mkinstalldirs) $(DESTDIR)$(configdir)/system.d
+ $(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/services
diff --git a/meta-oe/recipes-core/dbus/dbus-c++-native_git.bb b/meta-oe/recipes-core/dbus/dbus-c++-native_git.bb
new file mode 100644
index 0000000000..eba80b2e9a
--- /dev/null
+++ b/meta-oe/recipes-core/dbus/dbus-c++-native_git.bb
@@ -0,0 +1,17 @@
+require dbus-c++_git.bb
+inherit native
+
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/dbus-c++"
+# actually dbus-native and expat-native, but even the bearest build machine should have that nowadays...
+DEPENDS = ""
+
+do_compile() {
+ oe_runmake -C src libdbus-c++-1.la
+ oe_runmake -C tools dbusxx-xml2cpp
+ install -m 0755 tools/dbusxx-xml2cpp ${STAGING_BINDIR_NATIVE}
+}
+
+do_install() {
+ :
+}
+
diff --git a/meta-oe/recipes-core/dbus/dbus-c++/fix-linking.patch b/meta-oe/recipes-core/dbus/dbus-c++/fix-linking.patch
new file mode 100644
index 0000000000..822216916b
--- /dev/null
+++ b/meta-oe/recipes-core/dbus/dbus-c++/fix-linking.patch
@@ -0,0 +1,13 @@
+Index: dbus/tools/Makefile.am
+===================================================================
+--- dbus.orig/tools/Makefile.am
++++ dbus/tools/Makefile.am
+@@ -16,7 +16,7 @@ endif
+ bin_PROGRAMS = dbusxx-xml2cpp dbusxx-introspect
+
+ dbusxx_xml2cpp_SOURCES = xml.h xml.cpp xml2cpp.h xml2cpp.cpp
+-dbusxx_xml2cpp_LDADD = $(libdbus_cxx_la)
++dbusxx_xml2cpp_LDADD = $(libdbus_cxx_la) -lexpat
+
+ dbusxx_introspect_SOURCES = introspect.h introspect.cpp
+ dbusxx_introspect_LDADD = $(libdbus_cxx_la)
diff --git a/meta-oe/recipes-core/dbus/dbus-c++_git.bb b/meta-oe/recipes-core/dbus/dbus-c++_git.bb
new file mode 100644
index 0000000000..64598238da
--- /dev/null
+++ b/meta-oe/recipes-core/dbus/dbus-c++_git.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "C++ bindings for dbus"
+LICENSE = "LGPLv2.1+"
+SECTION = "libs"
+DEPENDS = "dbus dbus-c++-native expat"
+SRCREV = "530a887913d3b0dd7091eabb8eef8e3c279e3bb8"
+
+PE = "1"
+PV = "0.5.0+gitr${SRCPV}"
+
+SRC_URI = "git://gitorious.org/dbus-cplusplus/mainline.git;protocol=git"
+# file://fix-linking.patch"
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+do_compile_prepend() {
+ find . -name "Makefile.am" |xargs sed -i -e 's,$(top_builddir)/tools/dbusxx-xml2cpp,dbusxx-xml2cpp,'
+}
+
+FILES_${PN}-dbg += "${bindir}/dbusxx-xml2cpp ${bindir}/dbusxx-introspect"
+FILES_${PN}-dev += "${bindir}/.dev"
+FILES_${PN} = "${libdir}/*.so.*"
+
diff --git a/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb b/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb
new file mode 100644
index 0000000000..32ed7dbfd3
--- /dev/null
+++ b/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "dbus forwarding daemon"
+LICENSE = "LGPLv2.1+"
+DEPENDS = "dbus dbus-glib"
+SRCREV = "1226a0a1374628ff191f6d8a56000be5e53e7608"
+PV = "0.0.0+gitr${SRCPV}"
+PR = "r1"
+
+SRC_URI = "git://git.collabora.co.uk/git/user/alban/dbus-daemon-proxy;protocol=git"
+S = "${WORKDIR}/git"
+
+do_compile() {
+ ${CC} ${LDFLAGS} `pkg-config --cflags --libs dbus-glib-1` -o dbus-daemon-proxy dbus-daemon-proxy.c
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 dbus-daemon-proxy ${D}${bindir}
+}
+
diff --git a/meta-oe/recipes-core/dbus/dbus.inc b/meta-oe/recipes-core/dbus/dbus.inc
new file mode 100644
index 0000000000..40a670aac4
--- /dev/null
+++ b/meta-oe/recipes-core/dbus/dbus.inc
@@ -0,0 +1,104 @@
+DESCRIPTION = "A message bus system for inter-process communication"
+HOMEPAGE = "http://dbus.freedesktop.org"
+SECTION = "base"
+LICENSE = "AFL2.1 | GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=10dded3b58148f3f1fd804b26354af3e \
+ file://dbus/dbus.h;firstline=6;endline=20;md5=6eea2e0c7750dd8e620dcb1437312fa5"
+DEPENDS = "expat virtual/libintl libsm libice virtual/libx11"
+
+INC_PR = "r20"
+
+SRC_URI = "\
+ http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz;name=dbus \
+ file://cross.patch \
+ file://tmpdir.patch \
+ file://fix-install-daemon.patch \
+ file://0001-Make-the-default-DBus-reply-timeout-configurable.patch \
+ file://dbus-1.init \
+"
+
+S = "${WORKDIR}/dbus-${PV}"
+
+inherit autotools pkgconfig update-rc.d gettext
+
+EXTRA_OECONF_X = "--with-x"
+
+EXTRA_OECONF = "\
+ --disable-qt \
+ --disable-qt3 \
+ --disable-gtk \
+ --disable-tests \
+ --disable-checks \
+ --disable-xml-docs \
+ --disable-doxygen-docs \
+ --disable-libaudit \
+ --with-xml=expat \
+ --with-dbus-default-reply-timeout=200000 \
+ ${EXTRA_OECONF_X} \
+"
+
+# On mipsel, D-Bus fails to link with --gc-sections and segfaults before main()
+# when built with -fPIE/-pie.
+do_configure_prepend_mipsel() {
+ sed -i -e 's/\-fPIE//' \
+ -e 's/\-pie\ \-Wl\,\-z\,relro//' \
+ -e 's/-Wl,--gc-sections//' \
+ ${S}/configure.in
+}
+
+do_install_append() {
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/dbus-1.init ${D}${sysconfdir}/init.d/dbus-1
+ # the stock install seems to install the libtool wrapper script, so we have to copy this manually :M:
+ if [ -e bus/.libs/dbus-daemon-launch-helper ]; then
+ install -d ${D}${libexecdir}/
+ install -m 0755 bus/.libs/dbus-daemon-launch-helper ${D}${libexecdir}/
+ fi
+}
+
+RDEPENDS_${PN}-x11 = "${PN}"
+RRECOMMENDS_${PN}-lib = "${PN}"
+RCONFLICTS_${PN} = "dbus-1"
+RREPLACES_${PN} = "dbus-1"
+RPROVIDES_${PN} = "dbus-1"
+
+PACKAGES =+ "${PN}-lib ${PN}-x11"
+
+FILES_${PN} = "\
+${bindir}/dbus-daemon* \
+${bindir}/dbus-uuidgen \
+${bindir}/dbus-cleanup-sockets \
+${bindir}/dbus-send \
+${bindir}/dbus-monitor \
+${libexecdir}/dbus* \
+${sysconfdir} \
+${datadir}/dbus-1/services \
+${datadir}/dbus-1/system-services \
+"
+FILES_${PN}-lib = "${libdir}/lib*.so.*"
+FILES_${PN}-x11 = "\
+${bindir}/dbus-launch \
+"
+FILES_${PN}-dev += "${libdir}/dbus-1.0/include ${bindir}/dbus-glib-tool ${libdir}/"
+
+pkg_postinst_${PN}() {
+#!/bin/sh
+# can't do adduser stuff offline
+if [ "x$D" != "x" ]; then
+ exit 1
+fi
+MESSAGEUSER=messagebus
+MESSAGEHOME=/var/run/dbus
+mkdir -p $MESSAGEHOME || true
+grep -q ^$MESSAGEUSER: /etc/group || addgroup "$MESSAGEUSER"
+chgrp "$MESSAGEUSER" "$MESSAGEHOME"
+grep -q ^$MESSAGEUSER: /etc/passwd || adduser --system --home "$MESSAGEHOME" --no-create-home --disabled-password --ingroup "$MESSAGEUSER" "$MESSAGEUSER"
+chown "$MESSAGEUSER"."$MESSAGEUSER" "$MESSAGEHOME"
+grep -q netdev: /etc/group || addgroup netdev
+chmod u+s /usr/libexec/dbus-daemon-launch-helper
+}
+
+CONFFILES_${PN} = "${sysconfdir}/dbus-1/system.conf ${sysconfdir}/dbus-1/session.conf"
+
+INITSCRIPT_NAME = "dbus-1"
+INITSCRIPT_PARAMS = "start 02 5 2 . stop 20 0 1 6 ."
diff --git a/meta-oe/recipes-core/dbus/dbus/add-configurable-reply-timeouts.patch b/meta-oe/recipes-core/dbus/dbus/add-configurable-reply-timeouts.patch
new file mode 100644
index 0000000000..9cca38ddc8
--- /dev/null
+++ b/meta-oe/recipes-core/dbus/dbus/add-configurable-reply-timeouts.patch
@@ -0,0 +1,48 @@
+Index: dbus-1.3.1/configure.in
+===================================================================
+--- dbus-1.3.1.orig/configure.in
++++ dbus-1.3.1/configure.in
+@@ -137,6 +137,7 @@
+ AC_ARG_WITH(console-owner-file, AS_HELP_STRING([--with-console-owner-file=[filename]],[file whose owner determines current console owner]))
+ AC_ARG_WITH(dbus_user, AS_HELP_STRING([--with-dbus-user=<user>],[User for running the DBUS daemon (messagebus)]))
+ AC_ARG_WITH(dbus_daemondir, AS_HELP_STRING([--with-dbus-daemondir=[dirname]],[Directory for installing the DBUS daemon]))
++AC_ARG_WITH(dbus_default_reply_timeout, AS_HELP_STRING([--with-dbus-default-reply-timeout=[milliseconds]],[Default reply timeout for DBus method calls]))
+
+ dnl DBUS_BUILD_TESTS controls unit tests built in to .c files
+ dnl and also some stuff in the test/ subdir
+@@ -984,6 +985,13 @@
+ fi
+ fi
+
++if test -z "$with_dbus_default_reply_timeout" ; then
++ DBUS_DEFAULT_REPLY_TIMEOUT=25000
++else
++ DBUS_DEFAULT_REPLY_TIMEOUT=$with_dbus_default_reply_timeout
++fi
++AC_DEFINE_UNQUOTED(_DBUS_DEFAULT_TIMEOUT_VALUE,$DBUS_DEFAULT_REPLY_TIMEOUT,[default timeout value for dbus calls])
++
+ #### Set up final flags
+ DBUS_CLIENT_CFLAGS=
+ DBUS_CLIENT_LIBS="$THREAD_LIBS $NETWORK_libs"
+@@ -1625,6 +1633,7 @@
+ Gettext libs (empty OK): ${INTLLIBS}
+ Using XML parser: ${with_xml}
+ Init scripts style: ${with_init_scripts}
++ Default reply timeout: ${DBUS_DEFAULT_REPLY_TIMEOUT}
+ Abstract socket names: ${ac_cv_have_abstract_sockets}
+ System bus socket: ${DBUS_SYSTEM_SOCKET}
+ System bus address: ${DBUS_SYSTEM_BUS_DEFAULT_ADDRESS}
+Index: dbus-1.3.1/dbus/dbus-connection-internal.h
+===================================================================
+--- dbus-1.3.1.orig/dbus/dbus-connection-internal.h
++++ dbus-1.3.1/dbus/dbus-connection-internal.h
+@@ -41,9 +41,6 @@
+ DBUS_ITERATION_BLOCK = 1 << 2 /**< Block if nothing to do. */
+ } DBusIterationFlags;
+
+-/** default timeout value when waiting for a message reply, 25 seconds */
+-#define _DBUS_DEFAULT_TIMEOUT_VALUE (25 * 1000)
+-
+ void _dbus_connection_lock (DBusConnection *connection);
+ void _dbus_connection_unlock (DBusConnection *connection);
+ DBusConnection * _dbus_connection_ref_unlocked (DBusConnection *connection);
diff --git a/meta-oe/recipes-core/dbus/dbus/anon.patch b/meta-oe/recipes-core/dbus/dbus/anon.patch
new file mode 100644
index 0000000000..c9bf7bfa63
--- /dev/null
+++ b/meta-oe/recipes-core/dbus/dbus/anon.patch
@@ -0,0 +1,13 @@
+diff -Naur dbus-1.2.1.orig/dbus/dbus-transport.c dbus-1.2.1/dbus/dbus-transport.c
+--- dbus-1.2.1.orig/dbus/dbus-transport.c 2008-09-16 15:10:02.000000000 +0000
++++ dbus-1.2.1/dbus/dbus-transport.c 2008-09-16 15:10:10.000000000 +0000
+@@ -747,6 +747,9 @@
+ dbus_bool_t allow;
+ DBusCredentials *auth_identity;
+
++ // allow anonymous connections
++ _dbus_transport_set_allow_anonymous(transport, TRUE);
++
+ auth_identity = _dbus_auth_get_identity (transport->auth);
+ _dbus_assert (auth_identity != NULL);
+
diff --git a/meta-oe/recipes-core/dbus/dbus/dbus-1.init b/meta-oe/recipes-core/dbus/dbus/dbus-1.init
new file mode 100644
index 0000000000..a70e7a2373
--- /dev/null
+++ b/meta-oe/recipes-core/dbus/dbus/dbus-1.init
@@ -0,0 +1,111 @@
+#! /bin/sh
+# -*- coding: utf-8 -*-
+# Debian init.d script for D-BUS
+# Copyright © 2003 Colin Walters <walters@debian.org>
+# Copyright 2008 OE Team
+
+set -e
+
+DAEMON=/usr/bin/dbus-daemon
+NAME=dbus
+DAEMONUSER=messagebus
+RUNDIR=/var/run/dbus
+PIDFILE=/var/run/dbus/pid
+UUIDDIR=/var/lib/dbus
+DESC="system message bus"
+EVENTDIR=/etc/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
+fi
+
+test "$ENABLED" != "0" || exit 0
+
+start_it_up()
+{
+ if [ ! -d $RUNDIR ]; then
+ mkdir -p $RUNDIR
+ chown $DAEMONUSER $RUNDIR
+ chgrp $DAEMONUSER $RUNDIR
+ fi
+ if [ -e $PIDFILE ]; then
+ PIDDIR=/proc/$(cat $PIDFILE)
+ if [ -d ${PIDDIR} -a "$(readlink -f ${PIDDIR}/exe)" = "${DAEMON}" ]; then
+ echo "$DESC already started; not starting."
+ else
+ echo "Removing stale PID file $PIDFILE."
+ rm -f $PIDFILE
+ fi
+ fi
+
+ if [ ! -d $UUIDDIR ]; then
+ mkdir -p $UUIDDIR
+ chown $DAEMONUSER $UUIDDIR
+ chgrp $DAEMONUSER $UUIDDIR
+ fi
+
+ dbus-uuidgen --ensure
+
+ echo -n "Starting $DESC: "
+ start-stop-daemon --start --pidfile $PIDFILE \
+ --user $DAEMONUSER --exec $DAEMON -- --system $PARAMS
+ echo "$NAME."
+ if [ -d $EVENTDIR ]; then
+ run-parts --arg=start $EVENTDIR
+ fi
+}
+
+shut_it_down()
+{
+ if [ -d $EVENTDIR ]; then
+ # TODO: --reverse when busybox supports it
+ run-parts --arg=stop $EVENTDIR
+ fi
+ echo -n "Stopping $DESC: "
+ start-stop-daemon --stop --oknodo --pidfile $PIDFILE \
+ --user $DAEMONUSER
+ # We no longer include these arguments so that start-stop-daemon
+ # can do its job even given that we may have been upgraded.
+ # We rely on the pidfile being sanely managed
+ # --exec $DAEMON -- --system $PARAMS
+ echo "$NAME."
+ rm -f $PIDFILE
+}
+
+reload_it()
+{
+ echo -n "Reloading $DESC config: "
+ dbus-send --print-reply --system --type=method_call \
+ --dest=org.freedesktop.DBus \
+ / org.freedesktop.DBus.ReloadConfig > /dev/null
+ # hopefully this is enough time for dbus to reload it's config file.
+ echo "done."
+}
+
+case "$1" in
+ start)
+ start_it_up
+ ;;
+ stop)
+ shut_it_down
+ ;;
+ reload|force-reload)
+ reload_it
+ ;;
+ restart)
+ shut_it_down
+ sleep 1
+ start_it_up
+ ;;
+ *)
+ echo "Usage: /etc/init.d/$NAME {start|stop|restart|reload|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/meta-oe/recipes-core/dbus/dbus/reuseaddr01.patch b/meta-oe/recipes-core/dbus/dbus/reuseaddr01.patch
new file mode 100644
index 0000000000..e291bb8949
--- /dev/null
+++ b/meta-oe/recipes-core/dbus/dbus/reuseaddr01.patch
@@ -0,0 +1,64 @@
+From 8f5f340b77b51fed1f036a9ee9f70a31b201f2c9 Mon Sep 17 00:00:00 2001
+From: Sledz <sledz@MOBIL-400-586.intern.dresearch.de>
+Date: Tue, 29 Jun 2010 21:04:15 +0000
+Subject: sysdeps-unix: enable address reuse on TCP sockets
+
+This helps to avoid 'Address already in use' problems if server has been shut
+down, and then restarted while sockets are still active on its port.
+
+Signed-off-by: Steffen Sledz <sledz@dresearch.de>
+---
+diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c
+index ce3475a..b58d09a 100644
+--- a/dbus/dbus-sysdeps-unix.c
++++ b/dbus/dbus-sysdeps-unix.c
+@@ -623,6 +623,7 @@ _dbus_listen_unix_socket (const char *path,
+ int listen_fd;
+ struct sockaddr_un addr;
+ size_t path_len;
++ unsigned int reuseaddr;
+
+ _DBUS_ASSERT_ERROR_IS_CLEAR (error);
+
+@@ -696,7 +697,15 @@ _dbus_listen_unix_socket (const char *path,
+
+ strncpy (addr.sun_path, path, path_len);
+ }
+-
++
++ reuseaddr = 1;
++ if (setsockopt (listen_fd, SOL_SOCKET, SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr))==-1)
++ {
++ dbus_set_error (error, _dbus_error_from_errno (errno),
++ "Failed to set socket option\"%s\": %s",
++ path, _dbus_strerror (errno));
++ }
++
+ if (bind (listen_fd, (struct sockaddr*) &addr, _DBUS_STRUCT_OFFSET (struct sockaddr_un, sun_path) + path_len) < 0)
+ {
+ dbus_set_error (error, _dbus_error_from_errno (errno),
+@@ -870,6 +879,7 @@ _dbus_listen_tcp_socket (const char *host,
+ int nlisten_fd = 0, *listen_fd = NULL, res, i;
+ struct addrinfo hints;
+ struct addrinfo *ai, *tmp;
++ unsigned int reuseaddr;
+
+ *fds_p = NULL;
+ _DBUS_ASSERT_ERROR_IS_CLEAR (error);
+@@ -915,6 +925,14 @@ _dbus_listen_tcp_socket (const char *host,
+ }
+ _DBUS_ASSERT_ERROR_IS_CLEAR(error);
+
++ reuseaddr = 1;
++ if (setsockopt (fd, SOL_SOCKET, SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr))==-1)
++ {
++ dbus_set_error (error, _dbus_error_from_errno (errno),
++ "Failed to set socket option \"%s:%s\": %s",
++ host ? host : "*", port, _dbus_strerror (errno));
++ }
++
+ if (bind (fd, (struct sockaddr*) tmp->ai_addr, tmp->ai_addrlen) < 0)
+ {
+ _dbus_close(fd, NULL);
+--
+cgit v0.8.3-6-g21f6
diff --git a/meta-oe/recipes-core/dbus/dbus/reuseaddr02.patch b/meta-oe/recipes-core/dbus/dbus/reuseaddr02.patch
new file mode 100644
index 0000000000..10bc7edfdc
--- /dev/null
+++ b/meta-oe/recipes-core/dbus/dbus/reuseaddr02.patch
@@ -0,0 +1,38 @@
+From d365dd8141e709222f3a619d7b04ec4ded6429fd Mon Sep 17 00:00:00 2001
+From: Havoc Pennington <hp@pobox.com>
+Date: Tue, 31 Aug 2010 15:59:09 +0000
+Subject: Change failure of setsockopt SO_REUSEADDR to be a warning, not set an error
+
+It was previously setting an error but then continuing, which is
+not allowed since errors can't be "piled up"
+---
+diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c
+index e4ff6ee..3205bed 100644
+--- a/dbus/dbus-sysdeps-unix.c
++++ b/dbus/dbus-sysdeps-unix.c
+@@ -980,9 +980,8 @@ _dbus_listen_unix_socket (const char *path,
+ reuseaddr = 1;
+ if (setsockopt (listen_fd, SOL_SOCKET, SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr))==-1)
+ {
+- dbus_set_error (error, _dbus_error_from_errno (errno),
+- "Failed to set socket option\"%s\": %s",
+- path, _dbus_strerror (errno));
++ _dbus_warn ("Failed to set socket option\"%s\": %s",
++ path, _dbus_strerror (errno));
+ }
+
+ if (bind (listen_fd, (struct sockaddr*) &addr, _DBUS_STRUCT_OFFSET (struct sockaddr_un, sun_path) + path_len) < 0)
+@@ -1335,9 +1334,8 @@ _dbus_listen_tcp_socket (const char *host,
+ reuseaddr = 1;
+ if (setsockopt (fd, SOL_SOCKET, SO_REUSEADDR, &reuseaddr, sizeof(reuseaddr))==-1)
+ {
+- dbus_set_error (error, _dbus_error_from_errno (errno),
+- "Failed to set socket option \"%s:%s\": %s",
+- host ? host : "*", port, _dbus_strerror (errno));
++ _dbus_warn ("Failed to set socket option \"%s:%s\": %s",
++ host ? host : "*", port, _dbus_strerror (errno));
+ }
+
+ if (bind (fd, (struct sockaddr*) tmp->ai_addr, tmp->ai_addrlen) < 0)
+--
+cgit v0.8.3-6-g21f6
diff --git a/meta-oe/recipes-core/dbus/dbus/tmpdir.patch b/meta-oe/recipes-core/dbus/dbus/tmpdir.patch
new file mode 100644
index 0000000000..838b903f0a
--- /dev/null
+++ b/meta-oe/recipes-core/dbus/dbus/tmpdir.patch
@@ -0,0 +1,30 @@
+--- dbus-0.22/configure.in.orig 2004-08-13 00:57:16.000000000 +0200
++++ dbus-0.22/configure.in 2004-12-30 21:15:57.000000000 +0100
+@@ -1047,15 +1048,18 @@
+ AC_SUBST(ABSOLUTE_TOP_BUILDDIR)
+
+ #### Find socket directories
+-if ! test -z "$TMPDIR" ; then
+- DEFAULT_SOCKET_DIR=$TMPDIR
+-elif ! test -z "$TEMP" ; then
+- DEFAULT_SOCKET_DIR=$TEMP
+-elif ! test -z "$TMP" ; then
+- DEFAULT_SOCKET_DIR=$TMP
+-else
+- DEFAULT_SOCKET_DIR=/tmp
+-fi
++#if ! test -z "$TMPDIR" ; then
++# DEFAULT_SOCKET_DIR=$TMPDIR
++#elif ! test -z "$TEMP" ; then
++# DEFAULT_SOCKET_DIR=$TEMP
++#elif ! test -z "$TMP" ; then
++# DEFAULT_SOCKET_DIR=$TMP
++#else
++# DEFAULT_SOCKET_DIR=/tmp
++#fi
++
++# checks disabled to avoid expanding this at build time
++DEFAULT_SOCKET_DIR=/tmp
+
+ if ! test -z "$with_test_socket_dir" ; then
+ TEST_SOCKET_DIR="$with_test_socket_dir"
diff --git a/meta-oe/recipes-core/dbus/dbus_1.2.24.bb b/meta-oe/recipes-core/dbus/dbus_1.2.24.bb
new file mode 100644
index 0000000000..75825514b8
--- /dev/null
+++ b/meta-oe/recipes-core/dbus/dbus_1.2.24.bb
@@ -0,0 +1,19 @@
+include dbus.inc
+
+PR = "${INC_PR}.1"
+
+SRC_URI = "\
+ http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz;name=dbus \
+ file://tmpdir.patch \
+ file://fix-install-daemon.patch \
+ file://0001-Make-the-default-DBus-reply-timeout-configurable.patch \
+ file://dbus-1.init \
+ file://reuseaddr01.patch \
+ file://reuseaddr02.patch \
+"
+
+SRC_URI_append_hipox = "file://anon.patch"
+
+SRC_URI[dbus.md5sum] = "565346cecd9cfecf1463540c6086cc2c"
+SRC_URI[dbus.sha256sum] = "f12c748f4a703655e3d4c3db94cdf5a752a0cd0b36958c715804373bd3595c48"
+
diff --git a/meta-oe/recipes-core/dbus/dbus_1.4.0.bb b/meta-oe/recipes-core/dbus/dbus_1.4.0.bb
new file mode 100644
index 0000000000..2c4943b4f0
--- /dev/null
+++ b/meta-oe/recipes-core/dbus/dbus_1.4.0.bb
@@ -0,0 +1,18 @@
+include dbus.inc
+PR = "${INC_PR}.0"
+
+BBCLASSEXTEND = "native"
+
+SRC_URI = "\
+ http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \
+ \
+ file://tmpdir.patch \
+ file://add-configurable-reply-timeouts.patch \
+ file://dbus-1.init \
+"
+
+# This needs more testing before pushing as default dbus
+DEFAULT_PREFERENCE = "-1"
+
+SRC_URI[md5sum] = "f59618b18d2fb2bd1fce9e1c5a2a3282"
+SRC_URI[sha256sum] = "c96d2f86d40e158e2bf405925a0a42cce0533a8466098e2f2238aa1614926652"