summaryrefslogtreecommitdiff
path: root/meta/packages/dbus
diff options
context:
space:
mode:
Diffstat (limited to 'meta/packages/dbus')
-rw-r--r--meta/packages/dbus/dbus-0.60/dbus-1.init86
-rw-r--r--meta/packages/dbus/dbus-0.60/no-bindings.patch12
-rw-r--r--meta/packages/dbus/dbus-0.60/no-introspect.patch14
-rw-r--r--meta/packages/dbus/dbus-native_0.50.bb19
-rw-r--r--meta/packages/dbus/dbus-native_0.60.bb19
-rw-r--r--meta/packages/dbus/dbus.inc65
-rw-r--r--meta/packages/dbus/dbus/0.23.1.diff308
-rw-r--r--meta/packages/dbus/dbus/config.diff17
-rw-r--r--meta/packages/dbus/dbus/cross.patch15
-rw-r--r--meta/packages/dbus/dbus/dbus-1.init86
-rw-r--r--meta/packages/dbus/dbus/dbus-monitor.patch150
-rw-r--r--meta/packages/dbus/dbus/dbus-quiesce-startup-errors.patch23
-rw-r--r--meta/packages/dbus/dbus/dbussend.patch399
-rw-r--r--meta/packages/dbus/dbus/gettext.patch164
-rw-r--r--meta/packages/dbus/dbus/no-bindings.patch12
-rw-r--r--meta/packages/dbus/dbus/no-examples.patch8
-rw-r--r--meta/packages/dbus/dbus/no-introspect.patch19
-rw-r--r--meta/packages/dbus/dbus/spawn-priority.diff17
-rw-r--r--meta/packages/dbus/dbus/tmpdir.patch30
-rw-r--r--meta/packages/dbus/dbus/tools.diff12
-rw-r--r--meta/packages/dbus/dbus_0.60.bb13
-rw-r--r--meta/packages/dbus/dbus_0.60.inc64
22 files changed, 1552 insertions, 0 deletions
diff --git a/meta/packages/dbus/dbus-0.60/dbus-1.init b/meta/packages/dbus/dbus-0.60/dbus-1.init
new file mode 100644
index 0000000000..60440b7223
--- /dev/null
+++ b/meta/packages/dbus/dbus-0.60/dbus-1.init
@@ -0,0 +1,86 @@
+#! /bin/sh
+# -*- coding: utf-8 -*-
+# Debian init.d script for D-BUS
+# Copyright © 2003 Colin Walters <walters@debian.org>
+
+set -e
+
+DAEMON=/usr/bin/dbus-daemon
+NAME=dbus-1
+DAEMONUSER=messagebus
+PIDDIR=/var/run/dbus
+PIDFILE=$PIDDIR/pid
+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-1 ]; then
+ . /etc/default/dbus-1
+fi
+
+test "$ENABLED" != "0" || exit 0
+
+start_it_up()
+{
+ if [ ! -d $PIDDIR ]; then
+ mkdir -p $PIDDIR
+ chown $DAEMONUSER $PIDDIR
+ chgrp $DAEMONUSER $PIDDIR
+ 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
+ echo -n "Starting $DESC: "
+ start-stop-daemon --start --quiet --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
+ run-parts --reverse --arg=stop $EVENTDIR
+ fi
+ echo -n "Stopping $DESC: "
+ start-stop-daemon --stop --quiet --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
+}
+
+case "$1" in
+ start)
+ start_it_up
+ ;;
+ stop)
+ shut_it_down
+ ;;
+ restart|force-reload)
+ shut_it_down
+ sleep 1
+ start_it_up
+ ;;
+ *)
+ echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/meta/packages/dbus/dbus-0.60/no-bindings.patch b/meta/packages/dbus/dbus-0.60/no-bindings.patch
new file mode 100644
index 0000000000..ccfc3f88b2
--- /dev/null
+++ b/meta/packages/dbus/dbus-0.60/no-bindings.patch
@@ -0,0 +1,12 @@
+--- dbus-0.50/tools/Makefile.am.orig 2005-09-07 10:05:38 +0200
++++ dbus-0.50/tools/Makefile.am 2005-09-07 10:06:30 +0200
+@@ -6,9 +6,6 @@
+ nodist_libdbus_glib_HEADERS = dbus-glib-bindings.h
+ libdbus_glibdir = $(includedir)/dbus-1.0/dbus
+
+-dbus-glib-bindings.h: dbus-bus-introspect.xml $(top_builddir)/glib/dbus-binding-tool$(EXEEXT)
+- $(top_builddir)/glib/dbus-binding-tool --mode=glib-client --output=dbus-glib-bindings.h dbus-bus-introspect.xml
+-
+ BUILT_SOURCES = dbus-glib-bindings.h dbus-bus-introspect.xml
+
+ else
diff --git a/meta/packages/dbus/dbus-0.60/no-introspect.patch b/meta/packages/dbus/dbus-0.60/no-introspect.patch
new file mode 100644
index 0000000000..1e43dd121b
--- /dev/null
+++ b/meta/packages/dbus/dbus-0.60/no-introspect.patch
@@ -0,0 +1,14 @@
+--- dbus-0.50/tools/Makefile.am.orig 2005-09-07 10:03:49 +0200
++++ dbus-0.50/tools/Makefile.am 2005-09-07 10:04:28 +0200
+@@ -21,11 +21,6 @@
+ GTK_TOOLS=
+ endif
+
+-if HAVE_GLIB
+-dbus-bus-introspect.xml: $(top_builddir)/bus/dbus-daemon$(EXEEXT) dbus-launch$(EXEEXT) dbus-send$(EXEEXT) $(top_builddir)/bus/dbus-daemon$(EXEEXT) Makefile
+- DBUS_TOP_BUILDDIR=$(top_builddir) $(srcdir)/run-with-tmp-session-bus.sh ./dbus-send --print-reply=literal --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.Introspectable.Introspect > dbus-bus-introspect.xml.tmp && mv dbus-bus-introspect.xml.tmp dbus-bus-introspect.xml
+-endif
+-
+ bin_PROGRAMS=dbus-send $(GLIB_TOOLS) dbus-launch dbus-cleanup-sockets $(GTK_TOOLS)
+
+ dbus_send_SOURCES= \
diff --git a/meta/packages/dbus/dbus-native_0.50.bb b/meta/packages/dbus/dbus-native_0.50.bb
new file mode 100644
index 0000000000..9e661dbccf
--- /dev/null
+++ b/meta/packages/dbus/dbus-native_0.50.bb
@@ -0,0 +1,19 @@
+include dbus_${PV}.inc
+
+SRC_URI_EXTRA=""
+
+inherit native
+
+S = "${WORKDIR}/dbus-${PV}"
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/dbus"
+DEPENDS = "glib-2.0-native"
+
+PR = "r1"
+
+do_stage() {
+ oe_runmake install
+ install -d ${STAGING_DATADIR}/dbus
+ install -m 0644 tools/dbus-bus-introspect.xml ${STAGING_DATADIR}/dbus
+ install -m 0644 tools/dbus-glib-bindings.h ${STAGING_DATADIR}/dbus
+}
+
diff --git a/meta/packages/dbus/dbus-native_0.60.bb b/meta/packages/dbus/dbus-native_0.60.bb
new file mode 100644
index 0000000000..9e661dbccf
--- /dev/null
+++ b/meta/packages/dbus/dbus-native_0.60.bb
@@ -0,0 +1,19 @@
+include dbus_${PV}.inc
+
+SRC_URI_EXTRA=""
+
+inherit native
+
+S = "${WORKDIR}/dbus-${PV}"
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/dbus"
+DEPENDS = "glib-2.0-native"
+
+PR = "r1"
+
+do_stage() {
+ oe_runmake install
+ install -d ${STAGING_DATADIR}/dbus
+ install -m 0644 tools/dbus-bus-introspect.xml ${STAGING_DATADIR}/dbus
+ install -m 0644 tools/dbus-glib-bindings.h ${STAGING_DATADIR}/dbus
+}
+
diff --git a/meta/packages/dbus/dbus.inc b/meta/packages/dbus/dbus.inc
new file mode 100644
index 0000000000..1c63c37fdf
--- /dev/null
+++ b/meta/packages/dbus/dbus.inc
@@ -0,0 +1,65 @@
+SECTION = "base"
+PR = "r0"
+HOMEPAGE = "http://www.freedesktop.org/Software/dbus"
+DESCRIPTION = "message bus system for applications to talk to one another"
+LICENSE = "GPL"
+DEPENDS = "expat glib-2.0 virtual/libintl"
+DEFAULT_PREFERENCE = "-1"
+
+SRC_URI = "http://freedesktop.org/software/dbus/releases/dbus-${PV}.tar.gz \
+ file://cross.patch;patch=1 \
+ file://tmpdir.patch;patch=1 \
+ file://dbus-1.init \
+ ${SRC_URI_EXTRA}"
+
+
+inherit autotools pkgconfig update-rc.d gettext
+
+INITSCRIPT_NAME = "dbus-1"
+INITSCRIPT_PARAMS = "defaults"
+
+CONFFILES_${PN} = "${sysconfdir}/dbus-1/system.conf ${sysconfdir}/dbus-1/session.conf"
+
+FILES_${PN} = "${bindir}/dbus-daemon-1 ${bindir}/dbus-launch ${bindir}/dbus-cleanup-sockets ${bindir}/dbus-send ${bindir}/dbus-monitor ${sysconfdir} ${datadir}/dbus-1/services ${libdir}/lib*.so.*"
+FILES_${PN}-dev += "${libdir}/dbus-1.0/include ${bindir}/dbus-glib-tool"
+
+pkg_postinst_dbus() {
+#!/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
+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"
+}
+
+EXTRA_OECONF = "--disable-qt --disable-gtk --disable-tests \
+ --disable-checks --disable-xml-docs --disable-doxygen-docs \
+ --with-xml=expat --without-x"
+
+
+do_stage () {
+ oe_libinstall -so -C dbus libdbus-1 ${STAGING_LIBDIR}
+ oe_libinstall -so -C glib libdbus-glib-1 ${STAGING_LIBDIR}
+
+ autotools_stage_includes
+
+ mkdir -p ${STAGING_LIBDIR}/dbus-1.0/include/dbus/
+ install -m 0644 dbus/dbus-arch-deps.h ${STAGING_LIBDIR}/dbus-1.0/include/dbus/
+}
+
+do_install_append () {
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/dbus-1.init ${D}${sysconfdir}/init.d/dbus-1
+}
+
+python populate_packages_prepend () {
+ if (bb.data.getVar('DEBIAN_NAMES', d, 1)):
+ bb.data.setVar('PKG_dbus', 'dbus-1', d)
+}
diff --git a/meta/packages/dbus/dbus/0.23.1.diff b/meta/packages/dbus/dbus/0.23.1.diff
new file mode 100644
index 0000000000..d56e1afc9c
--- /dev/null
+++ b/meta/packages/dbus/dbus/0.23.1.diff
@@ -0,0 +1,308 @@
+diff -ur dbus-0.23/ChangeLog dbus-0.23.1/ChangeLog
+--- dbus-0.23/ChangeLog 2005-01-13 00:48:43.000000000 +0200
++++ dbus-0.23.1/ChangeLog 2005-02-11 20:25:48.000000000 +0200
+@@ -1,3 +1,33 @@
++2005-02-11 Joe Shaw <joeshaw@novell.com>
++
++ * NEWS: Update for 0.23.1
++
++ * configure.in: Release 0.23.1
++
++2005-02-10 Joe Shaw <joeshaw@novell.com>
++
++ * dbus/dbus-connection.c
++ (_dbus_connection_queue_received_message_link,
++ _dbus_connection_message_sent): Add the path to
++ the verbose output.
++ (_dbus_connection_send_preallocated_and_unlock): Added. Calls
++ _dbus_connection_send_preallocated_unlocked(), updated the
++ dispatch status, and unlocks. Fixes a bug where certain
++ situations (like a broken pipe) could cause a Disconnect message
++ to not be sent, tricking the bus into thinking a service was still
++ there when the process had quit.
++ (_dbus_connection_send_preallocated): Call
++ _dbus_connection_send_preallocated_and_unlock().
++ (_dbus_connection_send_and_unlock): Added. Calls
++ _dbus_connection_send_preallocated_and_unlock().
++ (dbus_connection_send): Call _dbus_connection_send_and_unlock().
++ (dbus_connection_send_with_reply): Update the dispatch status and
++ unlock.
++
++ * mono/Service.cs (~Service): Added. Removes the filter so that
++ we don't get unmanaged code calling back into a GCed delegate.
++ (RemoveFilter); Added.
++
+ 2005-01-12 Joe Shaw <joeshaw@novell.com>
+
+ * NEWS: Update for 0.23.
+diff -ur dbus-0.23/NEWS dbus-0.23.1/NEWS
+--- dbus-0.23/NEWS 2005-01-13 00:20:40.000000000 +0200
++++ dbus-0.23.1/NEWS 2005-02-11 20:25:16.000000000 +0200
+@@ -1,3 +1,11 @@
++D-BUS 0.23.1 (11 Feb 2005)
++===
++- fix a bug in which the bus daemon wouldn't recognize that a service
++ owner quit
++- fix a bug in the mono bindings that would cause unmanaged code to
++ call back into a delegate that had been garbage collected and
++ crashed.
++
+ D-BUS 0.23 (11 Jan 2005)
+ ===
+
+diff -ur dbus-0.23/configure dbus-0.23.1/configure
+--- dbus-0.23/configure 2005-01-13 00:21:25.000000000 +0200
++++ dbus-0.23.1/configure 2005-02-11 19:53:33.000000000 +0200
+@@ -1826,7 +1826,7 @@
+
+ # Define the identity of the package.
+ PACKAGE=dbus
+- VERSION=0.23
++ VERSION=0.23.1
+
+
+ cat >>confdefs.h <<_ACEOF
+diff -ur dbus-0.23/configure.in dbus-0.23.1/configure.in
+--- dbus-0.23/configure.in 2005-01-13 00:20:40.000000000 +0200
++++ dbus-0.23.1/configure.in 2005-02-11 19:53:09.000000000 +0200
+@@ -3,7 +3,7 @@
+
+ AC_INIT(dbus/dbus.h)
+
+-AM_INIT_AUTOMAKE(dbus, 0.23)
++AM_INIT_AUTOMAKE(dbus, 0.23.1)
+
+ AM_CONFIG_HEADER(config.h)
+
+diff -ur dbus-0.23/dbus/dbus-connection.c dbus-0.23.1/dbus/dbus-connection.c
+--- dbus-0.23/dbus/dbus-connection.c 2005-01-11 21:31:56.000000000 +0200
++++ dbus-0.23.1/dbus/dbus-connection.c 2005-02-11 19:52:47.000000000 +0200
+@@ -358,9 +358,10 @@
+
+ _dbus_connection_wakeup_mainloop (connection);
+
+- _dbus_verbose ("Message %p (%d %s %s '%s') added to incoming queue %p, %d incoming\n",
++ _dbus_verbose ("Message %p (%d %s %s %s '%s') added to incoming queue %p, %d incoming\n",
+ message,
+ dbus_message_get_type (message),
++ dbus_message_get_path (message),
+ dbus_message_get_interface (message) ?
+ dbus_message_get_interface (message) :
+ "no interface",
+@@ -473,9 +474,10 @@
+
+ connection->n_outgoing -= 1;
+
+- _dbus_verbose ("Message %p (%d %s %s '%s') removed from outgoing queue %p, %d left to send\n",
++ _dbus_verbose ("Message %p (%d %s %s %s '%s') removed from outgoing queue %p, %d left to send\n",
+ message,
+ dbus_message_get_type (message),
++ dbus_message_get_path (message),
+ dbus_message_get_interface (message) ?
+ dbus_message_get_interface (message) :
+ "no interface",
+@@ -1572,9 +1574,10 @@
+ }
+ #endif
+
+- _dbus_verbose ("Message %p (%d %s %s '%s') added to outgoing queue %p, %d pending to send\n",
++ _dbus_verbose ("Message %p (%d %s %s %s '%s') added to outgoing queue %p, %d pending to send\n",
+ message,
+ dbus_message_get_type (message),
++ dbus_message_get_path (message),
+ dbus_message_get_interface (message) ?
+ dbus_message_get_interface (message) :
+ "no interface",
+@@ -1606,12 +1609,30 @@
+ _dbus_connection_do_iteration (connection,
+ DBUS_ITERATION_DO_WRITING,
+ -1);
+-
++
+ /* If stuff is still queued up, be sure we wake up the main loop */
+ if (connection->n_outgoing > 0)
+ _dbus_connection_wakeup_mainloop (connection);
+ }
+
++static void
++_dbus_connection_send_preallocated_and_unlock (DBusConnection *connection,
++ DBusPreallocatedSend *preallocated,
++ DBusMessage *message,
++ dbus_uint32_t *client_serial)
++{
++ DBusDispatchStatus status;
++
++ _dbus_connection_send_preallocated_unlocked (connection,
++ preallocated,
++ message, client_serial);
++
++ status = _dbus_connection_get_dispatch_status_unlocked (connection);
++
++ /* this calls out to user code */
++ _dbus_connection_update_dispatch_status_and_unlock (connection, status);
++}
++
+ /**
+ * Sends a message using preallocated resources. This function cannot fail.
+ * It works identically to dbus_connection_send() in other respects.
+@@ -1642,10 +1663,9 @@
+ dbus_message_get_member (message) != NULL));
+
+ CONNECTION_LOCK (connection);
+- _dbus_connection_send_preallocated_unlocked (connection,
+- preallocated,
+- message, client_serial);
+- CONNECTION_UNLOCK (connection);
++ _dbus_connection_send_preallocated_and_unlock (connection,
++ preallocated,
++ message, client_serial);
+ }
+
+ static dbus_bool_t
+@@ -1670,6 +1690,27 @@
+ return TRUE;
+ }
+
++static dbus_bool_t
++_dbus_connection_send_and_unlock (DBusConnection *connection,
++ DBusMessage *message,
++ dbus_uint32_t *client_serial)
++{
++ DBusPreallocatedSend *preallocated;
++
++ _dbus_assert (connection != NULL);
++ _dbus_assert (message != NULL);
++
++ preallocated = _dbus_connection_preallocate_send_unlocked (connection);
++ if (preallocated == NULL)
++ return FALSE;
++
++ _dbus_connection_send_preallocated_and_unlock (connection,
++ preallocated,
++ message,
++ client_serial);
++ return TRUE;
++}
++
+ /**
+ * Adds a message to the outgoing message queue. Does not block to
+ * write the message to the network; that happens asynchronously. To
+@@ -1698,14 +1739,9 @@
+
+ CONNECTION_LOCK (connection);
+
+- if (!_dbus_connection_send_unlocked (connection, message, client_serial))
+- {
+- CONNECTION_UNLOCK (connection);
+- return FALSE;
+- }
+-
+- CONNECTION_UNLOCK (connection);
+- return TRUE;
++ return _dbus_connection_send_and_unlock (connection,
++ message,
++ client_serial);
+ }
+
+ static dbus_bool_t
+@@ -1784,6 +1820,7 @@
+ DBusMessage *reply;
+ DBusList *reply_link;
+ dbus_int32_t serial = -1;
++ DBusDispatchStatus status;
+
+ _dbus_return_val_if_fail (connection != NULL, FALSE);
+ _dbus_return_val_if_fail (message != NULL, FALSE);
+@@ -1845,8 +1882,11 @@
+ else
+ dbus_pending_call_unref (pending);
+
+- CONNECTION_UNLOCK (connection);
+-
++ status = _dbus_connection_get_dispatch_status_unlocked (connection);
++
++ /* this calls out to user code */
++ _dbus_connection_update_dispatch_status_and_unlock (connection, status);
++
+ return TRUE;
+
+ error:
+@@ -2256,9 +2296,10 @@
+ link = _dbus_list_pop_first_link (&connection->incoming_messages);
+ connection->n_incoming -= 1;
+
+- _dbus_verbose ("Message %p (%d %s %s '%s') removed from incoming queue %p, %d incoming\n",
++ _dbus_verbose ("Message %p (%d %s %s %s '%s') removed from incoming queue %p, %d incoming\n",
+ link->data,
+ dbus_message_get_type (link->data),
++ dbus_message_get_path (link->data),
+ dbus_message_get_interface (link->data) ?
+ dbus_message_get_interface (link->data) :
+ "no interface",
+diff -ur dbus-0.23/mono/Service.cs dbus-0.23.1/mono/Service.cs
+--- dbus-0.23/mono/Service.cs 2004-08-31 06:59:14.000000000 +0300
++++ dbus-0.23.1/mono/Service.cs 2005-02-11 19:52:47.000000000 +0200
+@@ -23,6 +23,9 @@
+ private static AssemblyBuilder proxyAssembly;
+ private ModuleBuilder module = null;
+
++ // Add a match for signals. FIXME: Can we filter the service?
++ private const string MatchRule = "type='signal'";
++
+ internal Service(string name, Connection connection)
+ {
+ this.name = name;
+@@ -47,6 +50,12 @@
+ this.local = true;
+ }
+
++ ~Service ()
++ {
++ if (this.filterCalled != null)
++ RemoveFilter ();
++ }
++
+ public static bool Exists(Connection connection, string name)
+ {
+ Error error = new Error();
+@@ -113,9 +122,17 @@
+ IntPtr.Zero))
+ throw new OutOfMemoryException();
+
+- // Add a match for signals. FIXME: Can we filter the service?
+- string rule = "type='signal'";
+- dbus_bus_add_match(connection.RawConnection, rule, IntPtr.Zero);
++ dbus_bus_add_match(connection.RawConnection, MatchRule, IntPtr.Zero);
++ }
++
++ private void RemoveFilter()
++ {
++ dbus_connection_remove_filter (Connection.RawConnection,
++ this.filterCalled,
++ IntPtr.Zero);
++ this.filterCalled = null;
++
++ dbus_bus_remove_match (connection.RawConnection, MatchRule, IntPtr.Zero);
+ }
+
+ private int Service_FilterCalled(IntPtr rawConnection,
+@@ -200,9 +217,19 @@
+ IntPtr freeData);
+
+ [DllImport("dbus-1")]
++ private extern static void dbus_connection_remove_filter(IntPtr rawConnection,
++ DBusHandleMessageFunction filter,
++ IntPtr userData);
++
++ [DllImport("dbus-1")]
+ private extern static void dbus_bus_add_match(IntPtr rawConnection,
+ string rule,
+ IntPtr erro);
+
++ [DllImport("dbus-1")]
++ private extern static void dbus_bus_remove_match(IntPtr rawConnection,
++ string rule,
++ IntPtr erro);
++
+ }
+ }
diff --git a/meta/packages/dbus/dbus/config.diff b/meta/packages/dbus/dbus/config.diff
new file mode 100644
index 0000000000..b67c8d72fe
--- /dev/null
+++ b/meta/packages/dbus/dbus/config.diff
@@ -0,0 +1,17 @@
+Only in /home/kihamala/svn/dbus/bus: .svn
+diff -ur bus/session.conf.in /home/kihamala/svn/dbus/bus/session.conf.in
+--- bus/session.conf.in 2004-10-25 21:48:58.000000000 +0300
++++ /home/kihamala/svn/dbus/bus/session.conf.in 2005-02-15 11:03:26.000000000 +0200
+@@ -8,9 +8,10 @@
+ <!-- Our well-known bus type, don't change this -->
+ <type>session</type>
+
+- <listen>unix:tmpdir=@DBUS_SESSION_SOCKET_DIR@</listen>
++ <listen>unix:path=/tmp/session_bus_socket</listen>
+
+- <servicedir>@EXPANDED_DATADIR@/dbus-1/services</servicedir>
++ <servicedir>@EXPANDED_LIBDIR@/dbus-1.0/services</servicedir>
++ <!-- <servicedir>/var/lib/install/usr/lib/dbus-1.0/services</servicedir> -->
+
+ <policy context="default">
+ <!-- Allow everything to be sent -->
diff --git a/meta/packages/dbus/dbus/cross.patch b/meta/packages/dbus/dbus/cross.patch
new file mode 100644
index 0000000000..6d1d9d8e7e
--- /dev/null
+++ b/meta/packages/dbus/dbus/cross.patch
@@ -0,0 +1,15 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- dbus-0.20/configure.in~cross
++++ dbus-0.20/configure.in
+@@ -466,6 +466,7 @@
+ exit (0);
+ ]])],
+ [have_abstract_sockets=yes],
++ [have_abstract_sockets=no],
+ [have_abstract_sockets=no])
+ AC_LANG_POP(C)
+ AC_MSG_RESULT($have_abstract_sockets)
diff --git a/meta/packages/dbus/dbus/dbus-1.init b/meta/packages/dbus/dbus/dbus-1.init
new file mode 100644
index 0000000000..adefe7c5b1
--- /dev/null
+++ b/meta/packages/dbus/dbus/dbus-1.init
@@ -0,0 +1,86 @@
+#! /bin/sh
+# -*- coding: utf-8 -*-
+# Debian init.d script for D-BUS
+# Copyright © 2003 Colin Walters <walters@debian.org>
+
+set -e
+
+DAEMON=/usr/bin/dbus-daemon-1
+NAME=dbus-1
+DAEMONUSER=messagebus
+PIDDIR=/var/run/dbus
+PIDFILE=$PIDDIR/pid
+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-1 ]; then
+ . /etc/default/dbus-1
+fi
+
+test "$ENABLED" != "0" || exit 0
+
+start_it_up()
+{
+ if [ ! -d $PIDDIR ]; then
+ mkdir -p $PIDDIR
+ chown $DAEMONUSER $PIDDIR
+ chgrp $DAEMONUSER $PIDDIR
+ 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
+ echo -n "Starting $DESC: "
+ start-stop-daemon --start --quiet --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
+ run-parts --reverse --arg=stop $EVENTDIR
+ fi
+ echo -n "Stopping $DESC: "
+ start-stop-daemon --stop --quiet --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
+}
+
+case "$1" in
+ start)
+ start_it_up
+ ;;
+ stop)
+ shut_it_down
+ ;;
+ restart|force-reload)
+ shut_it_down
+ sleep 1
+ start_it_up
+ ;;
+ *)
+ echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/meta/packages/dbus/dbus/dbus-monitor.patch b/meta/packages/dbus/dbus/dbus-monitor.patch
new file mode 100644
index 0000000000..c2f90c885b
--- /dev/null
+++ b/meta/packages/dbus/dbus/dbus-monitor.patch
@@ -0,0 +1,150 @@
+diff -urN dbus-0.22.orig/tools/dbus-monitor.1 dbus-0.22/tools/dbus-monitor.1
+--- dbus-0.22.orig/tools/dbus-monitor.1 2004-10-10 20:47:19.906823680 +1000
++++ dbus-0.22/tools/dbus-monitor.1 2004-10-10 20:47:27.791625008 +1000
+@@ -9,6 +9,7 @@
+ .PP
+ .B dbus-monitor
+ [\-\-system | \-\-session]
++[watch expressions]
+
+ .SH DESCRIPTION
+
+@@ -25,6 +26,11 @@
+ monitor the system or session buses respectively. If neither is
+ specified, \fIdbus-monitor\fP monitors the session bus.
+
++.PP
++In order to get \fIdbus-monitor\fP to see the messages you are interested
++in, you should specify a set of watch expressions as you would expect to
++be passed to the \fIdbus_bus_add_watch\fP function.
++
+ .PP
+ The message bus configuration may keep \fIdbus-monitor\fP from seeing
+ all messages, especially if you run the monitor as a non-root user.
+@@ -37,6 +43,15 @@
+ .I "--session"
+ Monitor the session message bus. (This is the default.)
+
++.SH EXAMPLE
++Here is an example of using dbus-monitor to watch for the gnome typing
++monitor to say things
++.nf
++
++ dbus-monitor "type='signal',sender='org.gnome.TypingMonitor',interface='org.gnome.TypingMonitor'"
++
++.fi
++
+ .SH AUTHOR
+ dbus-monitor was written by Philip Blundell.
+
+--- dbus-0.22-1ubuntu1/tools/dbus-monitor.c 2004-08-10 13:03:37.000000000 +1000
++++ dbus-0.22/tools/dbus-monitor.c 2004-10-10 21:38:08.532362152 +1000
+@@ -45,7 +45,7 @@
+ static void
+ usage (char *name, int ecode)
+ {
+- fprintf (stderr, "Usage: %s [--system | --session]\n", name);
++ fprintf (stderr, "Usage: %s [--system | --session] [watch expressions]\n", name);
+ exit (ecode);
+ }
+
+@@ -56,8 +56,8 @@
+ DBusError error;
+ DBusBusType type = DBUS_BUS_SESSION;
+ GMainLoop *loop;
+- int i;
+-
++ int i = 0, j = 0, numFilters = 0;
++ char **filters = NULL;
+ for (i = 1; i < argc; i++)
+ {
+ char *arg = argv[i];
+@@ -69,14 +69,18 @@
+ else if (!strcmp (arg, "--help"))
+ usage (argv[0], 0);
+ else if (!strcmp (arg, "--"))
+- break;
++ continue;
+ else if (arg[0] == '-')
+ usage (argv[0], 1);
++ else {
++ numFilters++;
++ filters = (char **)realloc(filters, numFilters * sizeof(char *));
++ filters[j] = (char *)malloc((strlen(arg) + 1) * sizeof(char *));
++ snprintf(filters[j], strlen(arg) + 1, "%s", arg);
++ j++;
++ }
+ }
+
+- if (argc > 2)
+- usage (argv[0], 1);
+-
+ loop = g_main_loop_new (NULL, FALSE);
+
+ dbus_error_init (&error);
+@@ -92,26 +102,45 @@
+
+ dbus_connection_setup_with_g_main (connection, NULL);
+
+- dbus_bus_add_match (connection,
+- "type='signal'",
+- &error);
+- if (dbus_error_is_set (&error))
+- goto lose;
+- dbus_bus_add_match (connection,
+- "type='method_call'",
+- &error);
+- if (dbus_error_is_set (&error))
+- goto lose;
+- dbus_bus_add_match (connection,
+- "type='method_return'",
+- &error);
+- if (dbus_error_is_set (&error))
+- goto lose;
+- dbus_bus_add_match (connection,
+- "type='error'",
+- &error);
+- if (dbus_error_is_set (&error))
+- goto lose;
++ if (numFilters)
++ {
++ for (i = 0; i < j; i++)
++ {
++ dbus_bus_add_match (connection, filters[i], &error);
++ if (dbus_error_is_set (&error))
++ {
++ fprintf (stderr, "Failed to setup match \"%s\": %s\n",
++ filters[i], error.message);
++ dbus_error_free (&error);
++ exit (1);
++ }
++ free(filters[i]);
++ }
++ }
++ else
++ {
++ dbus_bus_add_match (connection,
++ "type='signal'",
++ &error);
++ if (dbus_error_is_set (&error))
++ goto lose;
++ dbus_bus_add_match (connection,
++ "type='method_call'",
++ &error);
++ if (dbus_error_is_set (&error))
++ goto lose;
++ dbus_bus_add_match (connection,
++ "type='method_return'",
++ &error);
++ if (dbus_error_is_set (&error))
++ goto lose;
++ dbus_bus_add_match (connection,
++ "type='error'",
++ &error);
++ if (dbus_error_is_set (&error))
++ goto lose;
++ }
++
+ if (!dbus_connection_add_filter (connection, filter_func, NULL, NULL)) {
+ fprintf (stderr, "Couldn't add filter!\n");
+ exit (1);
diff --git a/meta/packages/dbus/dbus/dbus-quiesce-startup-errors.patch b/meta/packages/dbus/dbus/dbus-quiesce-startup-errors.patch
new file mode 100644
index 0000000000..ba5142af2f
--- /dev/null
+++ b/meta/packages/dbus/dbus/dbus-quiesce-startup-errors.patch
@@ -0,0 +1,23 @@
+--- dbus-0.20-virgin-patches/bus/config-parser.c 2003-10-14 21:30:21.000000000 +0100
++++ dbus-0.20/bus/config-parser.c 2004-02-10 00:40:05.000000000 +0000
+@@ -1710,8 +1710,18 @@
+ {
+ if (!include_file (parser, &full_path, TRUE, error))
+ {
+- _dbus_string_free (&full_path);
+- goto failed;
++ /* Debian patch to skip malformed /etc/dbus-1/system.d entries */
++ /*
++ * _dbus_string_free (&full_path);
++ * goto failed;
++ */
++ if (dbus_error_is_set (error))
++ {
++ _dbus_warn("\nEncountered error '%s' while parsing '%s'\n",
++ error->message,
++ _dbus_string_get_const_data(&full_path));
++ dbus_error_free (error);
++ }
+ }
+ }
+
diff --git a/meta/packages/dbus/dbus/dbussend.patch b/meta/packages/dbus/dbus/dbussend.patch
new file mode 100644
index 0000000000..49a251bbb0
--- /dev/null
+++ b/meta/packages/dbus/dbus/dbussend.patch
@@ -0,0 +1,399 @@
+Index: dbus-send.1
+===================================================================
+--- tools/dbus-send.1 (revision 691)
++++ tools/dbus-send.1 (working copy)
+@@ -36,8 +36,8 @@
+ specified. Following arguments, if any, are the message contents
+ (message arguments). These are given as a type name, a colon, and
+ then the value of the argument. The possible type names are: string,
+-int32, uint32, double, byte, boolean. (D-BUS supports more types than
+-these, but \fIdbus-send\fP currently does not.)
++int32, uint32, double, byte, boolean, array. (D-BUS supports more types
++than these, but \fIdbus-send\fP currently does not.)
+
+ .PP
+ Here is an example invocation:
+@@ -46,7 +46,8 @@
+ dbus-send \-\-dest='org.freedesktop.ExampleService' \\
+