aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/dbus
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/dbus')
-rw-r--r--recipes/dbus/dbus-1.0.3/cross.patch10
-rw-r--r--recipes/dbus/dbus-1.0.3/dbus-1.init110
-rw-r--r--recipes/dbus/dbus-1.0.3/fedora-compile-fix.patch18
-rw-r--r--recipes/dbus/dbus-1.0.3/fix-install-daemon.patch13
-rw-r--r--recipes/dbus/dbus-1.0.3/fix-waitpid.patch11
-rw-r--r--recipes/dbus/dbus-1.2.20/0001-Make-the-default-DBus-reply-timeout-configurable.patch78
-rw-r--r--recipes/dbus/dbus-1.2.20/dbus-1.init111
-rw-r--r--recipes/dbus/dbus-1.2.20/fix-install-daemon.patch13
-rw-r--r--recipes/dbus/dbus-1.2.20/tmpdir.patch30
-rw-r--r--recipes/dbus/dbus-1.2.24/fix-install-daemon.patch2
-rw-r--r--recipes/dbus/dbus-1.3.0/0001-Make-the-default-DBus-reply-timeout-configurable.patch78
-rw-r--r--recipes/dbus/dbus-1.3.0/cross.patch10
-rw-r--r--recipes/dbus/dbus-1.3.0/fix-install-daemon.patch13
-rw-r--r--recipes/dbus/dbus-1.3.0/improve-threading-stability.patch38
-rw-r--r--recipes/dbus/dbus-1.3.0/tmpdir.patch30
-rw-r--r--recipes/dbus/dbus-1.3.0/will-1.patch25
-rw-r--r--recipes/dbus/dbus-1.3.0/will-2.patch370
-rw-r--r--recipes/dbus/dbus-1.3.0/will-3.patch119
-rw-r--r--recipes/dbus/dbus-1.3.0/will-4.patch56
-rw-r--r--recipes/dbus/dbus-1.3.0/will-5.patch116
-rw-r--r--recipes/dbus/dbus-1.3.0/will-6.patch456
-rw-r--r--recipes/dbus/dbus-1.3.1/add-configurable-reply-timeouts.patch (renamed from recipes/dbus/dbus-1.0.3/0001-Make-the-default-DBus-reply-timeout-configurable.patch)62
-rw-r--r--recipes/dbus/dbus-1.3.1/bugfix-17754.patch426
-rw-r--r--recipes/dbus/dbus-1.3.1/dbus-1.init (renamed from recipes/dbus/dbus-1.3.0/dbus-1.init)0
-rw-r--r--recipes/dbus/dbus-1.3.1/fix-install-daemon.patch13
-rw-r--r--recipes/dbus/dbus-1.3.1/tmpdir.patch (renamed from recipes/dbus/dbus-1.0.3/tmpdir.patch)0
-rw-r--r--recipes/dbus/dbus-c++-native_git.bb4
-rw-r--r--recipes/dbus/dbus-c++_git.bb2
-rw-r--r--recipes/dbus/dbus-daemon-proxy_git.bb3
-rw-r--r--recipes/dbus/dbus-glib-0.74/run-with-tmp-session-bus.patch (renamed from recipes/dbus/dbus-glib-native-0.74/run-with-tmp-session-bus.patch)0
-rw-r--r--recipes/dbus/dbus-glib-0.76/no-examples.patch8
-rw-r--r--recipes/dbus/dbus-glib-0.76/no-introspect.patch14
-rw-r--r--recipes/dbus/dbus-glib-0.78/run-with-tmp-session-bus.patch (renamed from recipes/dbus/dbus-glib-native-0.76/run-with-tmp-session-bus.patch)0
-rw-r--r--recipes/dbus/dbus-glib-0.82/fix-async-dbus.patch115
-rw-r--r--recipes/dbus/dbus-glib-0.82/no-examples.patch8
-rw-r--r--recipes/dbus/dbus-glib-0.82/no-introspect.patch14
-rw-r--r--recipes/dbus/dbus-glib-0.86/run-with-tmp-session-bus.patch24
-rw-r--r--recipes/dbus/dbus-glib-native_0.74.bb24
-rw-r--r--recipes/dbus/dbus-glib-native_0.76.bb24
-rw-r--r--recipes/dbus/dbus-glib.inc36
-rw-r--r--recipes/dbus/dbus-glib_0.74.bb30
-rw-r--r--recipes/dbus/dbus-glib_0.76.bb31
-rw-r--r--recipes/dbus/dbus-glib_0.78.bb25
-rw-r--r--recipes/dbus/dbus-glib_0.82.bb5
-rw-r--r--recipes/dbus/dbus-glib_0.86.bb14
-rw-r--r--recipes/dbus/dbus-native_1.0.3.bb35
-rw-r--r--recipes/dbus/dbus-native_1.2.1.bb21
-rw-r--r--recipes/dbus/dbus.inc19
-rw-r--r--recipes/dbus/dbus_1.0.3.bb7
-rw-r--r--recipes/dbus/dbus_1.2.20.bb13
-rw-r--r--recipes/dbus/dbus_1.2.22.bb8
-rw-r--r--recipes/dbus/dbus_1.2.24.bb8
-rw-r--r--recipes/dbus/dbus_1.3.0.bb26
-rw-r--r--recipes/dbus/dbus_1.3.1.bb18
54 files changed, 583 insertions, 2161 deletions
diff --git a/recipes/dbus/dbus-1.0.3/cross.patch b/recipes/dbus/dbus-1.0.3/cross.patch
deleted file mode 100644
index 268a3ae3de..0000000000
--- a/recipes/dbus/dbus-1.0.3/cross.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- /tmp/configure.in 2006-11-09 21:47:10.000000000 +0100
-+++ dbus-0.95/configure.in 2006-11-09 21:48:13.108554000 +0100
-@@ -719,6 +719,7 @@
- exit (0);
- ]])],
- [ac_cv_have_abstract_sockets=yes],
-+ [ac_cv_have_abstract_sockets=no],
- [ac_cv_have_abstract_sockets=no]
- )])
- AC_LANG_POP(C)
diff --git a/recipes/dbus/dbus-1.0.3/dbus-1.init b/recipes/dbus/dbus-1.0.3/dbus-1.init
deleted file mode 100644
index 0725083c69..0000000000
--- a/recipes/dbus/dbus-1.0.3/dbus-1.init
+++ /dev/null
@@ -1,110 +0,0 @@
-#! /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
-DAEMONUSER=messagebus
-PIDDIR=/var/run/dbus
-PIDFILE=$PIDDIR/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 $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
-
- 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 --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
- # TODO: --reverse when busybox supports it
- run-parts --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
-}
-
-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/recipes/dbus/dbus-1.0.3/fedora-compile-fix.patch b/recipes/dbus/dbus-1.0.3/fedora-compile-fix.patch
deleted file mode 100644
index eac37f04dd..0000000000
--- a/recipes/dbus/dbus-1.0.3/fedora-compile-fix.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Do not fail with udrec being unknown and say we are using
-_GNU_SOURCE. This is needed for the libc/header/gcc combo
-fedora 9 is using. bits/socket.h has struct udrec #ifdefed
-with _GNU.
-
-Index: dbus-1.0.3/dbus/dbus-sysdeps-unix.c
-===================================================================
---- dbus-1.0.3.orig/dbus/dbus-sysdeps-unix.c
-+++ dbus-1.0.3/dbus/dbus-sysdeps-unix.c
-@@ -22,6 +22,8 @@
- *
- */
-
-+#define _GNU_SOURCE
-+
- #include "dbus-internals.h"
- #include "dbus-sysdeps.h"
- #include "dbus-sysdeps-unix.h"
diff --git a/recipes/dbus/dbus-1.0.3/fix-install-daemon.patch b/recipes/dbus/dbus-1.0.3/fix-install-daemon.patch
deleted file mode 100644
index c31786357d..0000000000
--- a/recipes/dbus/dbus-1.0.3/fix-install-daemon.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-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)
-+ $(INSTALL_PROGRAM) .libs/dbus-daemon $(DESTDIR)$(DBUS_DAEMONDIR)
- $(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus
- $(mkinstalldirs) $(DESTDIR)$(configdir)/system.d
- $(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/services
diff --git a/recipes/dbus/dbus-1.0.3/fix-waitpid.patch b/recipes/dbus/dbus-1.0.3/fix-waitpid.patch
deleted file mode 100644
index 80c431809c..0000000000
--- a/recipes/dbus/dbus-1.0.3/fix-waitpid.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- /tmp/dbus-launch.c 2007-02-05 18:43:24.000000000 +0100
-+++ dbus-1.0.2/tools/dbus-launch.c 2007-02-05 18:43:37.675251000 +0100
-@@ -622,7 +622,7 @@
-
- exit_with_session = FALSE;
- config_file = NULL;
--
-+ signal(SIGCHLD, SIG_DFL);
- prev_arg = NULL;
- i = 1;
- while (i < argc)
diff --git a/recipes/dbus/dbus-1.2.20/0001-Make-the-default-DBus-reply-timeout-configurable.patch b/recipes/dbus/dbus-1.2.20/0001-Make-the-default-DBus-reply-timeout-configurable.patch
deleted file mode 100644
index a38e3db0de..0000000000
--- a/recipes/dbus/dbus-1.2.20/0001-Make-the-default-DBus-reply-timeout-configurable.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-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/recipes/dbus/dbus-1.2.20/dbus-1.init b/recipes/dbus/dbus-1.2.20/dbus-1.init
deleted file mode 100644
index 8209454088..0000000000
--- a/recipes/dbus/dbus-1.2.20/dbus-1.init
+++ /dev/null
@@ -1,111 +0,0 @@
-#! /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/recipes/dbus/dbus-1.2.20/fix-install-daemon.patch b/recipes/dbus/dbus-1.2.20/fix-install-daemon.patch
deleted file mode 100644
index c31786357d..0000000000
--- a/recipes/dbus/dbus-1.2.20/fix-install-daemon.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-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)
-+ $(INSTALL_PROGRAM) .libs/dbus-daemon $(DESTDIR)$(DBUS_DAEMONDIR)
- $(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus
- $(mkinstalldirs) $(DESTDIR)$(configdir)/system.d
- $(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/services
diff --git a/recipes/dbus/dbus-1.2.20/tmpdir.patch b/recipes/dbus/dbus-1.2.20/tmpdir.patch
deleted file mode 100644
index 838b903f0a..0000000000
--- a/recipes/dbus/dbus-1.2.20/tmpdir.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- 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/recipes/dbus/dbus-1.2.24/fix-install-daemon.patch b/recipes/dbus/dbus-1.2.24/fix-install-daemon.patch
index c31786357d..5e25d1227d 100644
--- a/recipes/dbus/dbus-1.2.24/fix-install-daemon.patch
+++ b/recipes/dbus/dbus-1.2.24/fix-install-daemon.patch
@@ -7,7 +7,7 @@ Index: dbus-0.94/bus/Makefile.am
chmod 755 $(DESTDIR)$(DBUS_DAEMONDIR); \
fi
- $(INSTALL_PROGRAM) dbus-daemon $(DESTDIR)$(DBUS_DAEMONDIR)
-+ $(INSTALL_PROGRAM) .libs/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/recipes/dbus/dbus-1.3.0/0001-Make-the-default-DBus-reply-timeout-configurable.patch b/recipes/dbus/dbus-1.3.0/0001-Make-the-default-DBus-reply-timeout-configurable.patch
deleted file mode 100644
index a38e3db0de..0000000000
--- a/recipes/dbus/dbus-1.3.0/0001-Make-the-default-DBus-reply-timeout-configurable.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-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/recipes/dbus/dbus-1.3.0/cross.patch b/recipes/dbus/dbus-1.3.0/cross.patch
deleted file mode 100644
index 268a3ae3de..0000000000
--- a/recipes/dbus/dbus-1.3.0/cross.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- /tmp/configure.in 2006-11-09 21:47:10.000000000 +0100
-+++ dbus-0.95/configure.in 2006-11-09 21:48:13.108554000 +0100
-@@ -719,6 +719,7 @@
- exit (0);
- ]])],
- [ac_cv_have_abstract_sockets=yes],
-+ [ac_cv_have_abstract_sockets=no],
- [ac_cv_have_abstract_sockets=no]
- )])
- AC_LANG_POP(C)
diff --git a/recipes/dbus/dbus-1.3.0/fix-install-daemon.patch b/recipes/dbus/dbus-1.3.0/fix-install-daemon.patch
deleted file mode 100644
index c31786357d..0000000000
--- a/recipes/dbus/dbus-1.3.0/fix-install-daemon.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-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)
-+ $(INSTALL_PROGRAM) .libs/dbus-daemon $(DESTDIR)$(DBUS_DAEMONDIR)
- $(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus
- $(mkinstalldirs) $(DESTDIR)$(configdir)/system.d
- $(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/services
diff --git a/recipes/dbus/dbus-1.3.0/improve-threading-stability.patch b/recipes/dbus/dbus-1.3.0/improve-threading-stability.patch
deleted file mode 100644
index 59de6ef27f..0000000000
--- a/recipes/dbus/dbus-1.3.0/improve-threading-stability.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From ae95a0ff9651a774cd983436d7e656c62492659c Mon Sep 17 00:00:00 2001
-From: Michael Meeks <michael.meeks@novell.com>
-Date: Fri, 12 Mar 2010 16:50:27 +0000
-Subject: [DBusConnection] When handling a watch, return if another thread is doing I/O
-
-http://lists.freedesktop.org/archives/dbus/2010-March/012337.html
-
-Previously, the watch handler would block until the I/O path was available.
-However, if another non-main thread was doing a synchronous call, this would
-cause the main thread to block on that thread, a highly undesirable
-thing because it's important for the main thread to remain responsive
-for user interfaces.
-
-Signed-off-by: Colin Walters <walters@verbum.org>
-Signed-off-by: Thiago Macieira <thiago@kde.org>
----
-diff --git a/dbus/dbus-connection.c b/dbus/dbus-connection.c
-index 5fb234d..69fdf53 100644
---- a/dbus/dbus-connection.c
-+++ b/dbus/dbus-connection.c
-@@ -1435,7 +1435,14 @@ _dbus_connection_handle_watch (DBusWatch *watch,
- _dbus_verbose ("%s start\n", _DBUS_FUNCTION_NAME);
-
- CONNECTION_LOCK (connection);
-- _dbus_connection_acquire_io_path (connection, -1);
-+
-+ if (!_dbus_connection_acquire_io_path (connection, 1))
-+ {
-+ /* another thread is handling the message */
-+ CONNECTION_UNLOCK (connection);
-+ return TRUE;
-+ }
-+
- HAVE_LOCK_CHECK (connection);
- retval = _dbus_transport_handle_watch (connection->transport,
- watch, condition);
---
-cgit v0.8.3-6-g21f6
diff --git a/recipes/dbus/dbus-1.3.0/tmpdir.patch b/recipes/dbus/dbus-1.3.0/tmpdir.patch
deleted file mode 100644
index 838b903f0a..0000000000
--- a/recipes/dbus/dbus-1.3.0/tmpdir.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- 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/recipes/dbus/dbus-1.3.0/will-1.patch b/recipes/dbus/dbus-1.3.0/will-1.patch
deleted file mode 100644
index eb3bb9049e..0000000000
--- a/recipes/dbus/dbus-1.3.0/will-1.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From aebf924fce126e4eb1409e995edb78f7c02f65b1 Mon Sep 17 00:00:00 2001
-From: Will Thompson <will.thompson@collabora.co.uk>
-Date: Wed, 29 Jul 2009 17:47:04 +0100
-Subject: [PATCH 1/6] Add a constant for the number of message types
-
----
- dbus/dbus-protocol.h | 2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/dbus/dbus-protocol.h b/dbus/dbus-protocol.h
-index a2284ee..17798e9 100644
---- a/dbus/dbus-protocol.h
-+++ b/dbus/dbus-protocol.h
-@@ -239,6 +239,8 @@ extern "C" {
- /** Message type of a signal message, see dbus_message_get_type() */
- #define DBUS_MESSAGE_TYPE_SIGNAL 4
-
-+#define DBUS_NUM_MESSAGE_TYPES 5
-+
- /* Header flags */
-
- /** If set, this flag means that the sender of a message does not care about getting
---
-1.6.3.3
-
diff --git a/recipes/dbus/dbus-1.3.0/will-2.patch b/recipes/dbus/dbus-1.3.0/will-2.patch
deleted file mode 100644
index e1c756bd64..0000000000
--- a/recipes/dbus/dbus-1.3.0/will-2.patch
+++ /dev/null
@@ -1,370 +0,0 @@
-From 2d4da5596b34cbd5de2b97971fbb484657a1f485 Mon Sep 17 00:00:00 2001
-From: Will Thompson <will.thompson@collabora.co.uk>
-Date: Wed, 29 Jul 2009 17:48:21 +0100
-Subject: [PATCH 2/6] Index match rules by message type
-
-This avoids scanning all the signal matches while dispatching method
-calls and returns, which are rarely matched against.
----
- bus/signals.c | 217 ++++++++++++++++++++++++++++++++++++--------------------
- 1 files changed, 139 insertions(+), 78 deletions(-)
-
-diff --git a/bus/signals.c b/bus/signals.c
-index b020a76..10e0b5e 100644
---- a/bus/signals.c
-+++ b/bus/signals.c
-@@ -1022,7 +1022,11 @@ struct BusMatchmaker
- {
- int refcount;
-
-- DBusList *all_rules;
-+ /* lists of rules, grouped by the type of message they match. 0
-+ * (DBUS_MESSAGE_TYPE_INVALID) represents rules that do not specify a message
-+ * type.
-+ */
-+ DBusList *rules_by_type[DBUS_NUM_MESSAGE_TYPES];
- };
-
- BusMatchmaker*
-@@ -1039,6 +1043,16 @@ bus_matchmaker_new (void)
- return matchmaker;
- }
-
-+static DBusList **
-+bus_matchmaker_get_rules (BusMatchmaker *matchmaker,
-+ int message_type)
-+{
-+ _dbus_assert (message_type >= 0);
-+ _dbus_assert (message_type < DBUS_NUM_MESSAGE_TYPES);
-+
-+ return matchmaker->rules_by_type + message_type;
-+}
-+
- BusMatchmaker *
- bus_matchmaker_ref (BusMatchmaker *matchmaker)
- {
-@@ -1057,14 +1071,20 @@ bus_matchmaker_unref (BusMatchmaker *matchmaker)
- matchmaker->refcount -= 1;
- if (matchmaker->refcount == 0)
- {
-- while (matchmaker->all_rules != NULL)
-+ int i;
-+
-+ for (i = DBUS_MESSAGE_TYPE_INVALID; i < DBUS_NUM_MESSAGE_TYPES; i++)
- {
-- BusMatchRule *rule;
-+ DBusList **rules = bus_matchmaker_get_rules (matchmaker, i);
-+
-+ while (*rules != NULL)
-+ {
-+ BusMatchRule *rule;
-
-- rule = matchmaker->all_rules->data;
-- bus_match_rule_unref (rule);
-- _dbus_list_remove_link (&matchmaker->all_rules,
-- matchmaker->all_rules);
-+ rule = (*rules)->data;
-+ bus_match_rule_unref (rule);
-+ _dbus_list_remove_link (rules, *rules);
-+ }
- }
-
- dbus_free (matchmaker);
-@@ -1076,14 +1096,18 @@ dbus_bool_t
- bus_matchmaker_add_rule (BusMatchmaker *matchmaker,
- BusMatchRule *rule)
- {
-+ DBusList **rules;
-+
- _dbus_assert (bus_connection_is_active (rule->matches_go_to));
-
-- if (!_dbus_list_append (&matchmaker->all_rules, rule))
-+ rules = bus_matchmaker_get_rules (matchmaker, rule->message_type);
-+
-+ if (!_dbus_list_append (rules, rule))
- return FALSE;
-
- if (!bus_connection_add_match_rule (rule->matches_go_to, rule))
- {
-- _dbus_list_remove_last (&matchmaker->all_rules, rule);
-+ _dbus_list_remove_last (rules, rule);
- return FALSE;
- }
-
-@@ -1171,13 +1195,13 @@ match_rule_equal (BusMatchRule *a,
- }
-
- static void
--bus_matchmaker_remove_rule_link (BusMatchmaker *matchmaker,
-+bus_matchmaker_remove_rule_link (DBusList **rules,
- DBusList *link)
- {
- BusMatchRule *rule = link->data;
-
- bus_connection_remove_match_rule (rule->matches_go_to, rule);
-- _dbus_list_remove_link (&matchmaker->all_rules, link);
-+ _dbus_list_remove_link (rules, link);
-
- #ifdef DBUS_ENABLE_VERBOSE_MODE
- {
-@@ -1196,8 +1220,12 @@ void
- bus_matchmaker_remove_rule (BusMatchmaker *matchmaker,
- BusMatchRule *rule)
- {
-+ DBusList **rules;
-+
- bus_connection_remove_match_rule (rule->matches_go_to, rule);
-- _dbus_list_remove (&matchmaker->all_rules, rule);
-+
-+ rules = bus_matchmaker_get_rules (matchmaker, rule->message_type);
-+ _dbus_list_remove (rules, rule);
-
- #ifdef DBUS_ENABLE_VERBOSE_MODE
- {
-@@ -1219,24 +1247,26 @@ bus_matchmaker_remove_rule_by_value (BusMatchmaker *matchmaker,
- DBusError *error)
- {
- /* FIXME this is an unoptimized linear scan */
--
-+ DBusList **rules;
- DBusList *link;
-
-+ rules = bus_matchmaker_get_rules (matchmaker, value->message_type);
-+
- /* we traverse backward because bus_connection_remove_match_rule()
- * removes the most-recently-added rule
- */
-- link = _dbus_list_get_last_link (&matchmaker->all_rules);
-+ link = _dbus_list_get_last_link (rules);
- while (link != NULL)
- {
- BusMatchRule *rule;
- DBusList *prev;
-
- rule = link->data;
-- prev = _dbus_list_get_prev_link (&matchmaker->all_rules, link);
-+ prev = _dbus_list_get_prev_link (rules, link);
-
- if (match_rule_equal (rule, value))
- {
-- bus_matchmaker_remove_rule_link (matchmaker, link);
-+ bus_matchmaker_remove_rule_link (rules, link);
- break;
- }
-
-@@ -1258,6 +1288,7 @@ bus_matchmaker_disconnected (BusMatchmaker *matchmaker,
- DBusConnection *disconnected)
- {
- DBusList *link;
-+ int i;
-
- /* FIXME
- *
-@@ -1270,41 +1301,46 @@ bus_matchmaker_disconnected (BusMatchmaker *matchmaker,
-
- _dbus_assert (bus_connection_is_active (disconnected));
-
-- link = _dbus_list_get_first_link (&matchmaker->all_rules);
-- while (link != NULL)
-+ for (i = DBUS_MESSAGE_TYPE_INVALID; i < DBUS_NUM_MESSAGE_TYPES; i++)
- {
-- BusMatchRule *rule;
-- DBusList *next;
-+ DBusList **rules = bus_matchmaker_get_rules (matchmaker, i);
-
-- rule = link->data;
-- next = _dbus_list_get_next_link (&matchmaker->all_rules, link);
--
-- if (rule->matches_go_to == disconnected)
-- {
-- bus_matchmaker_remove_rule_link (matchmaker, link);
-- }
-- else if (((rule->flags & BUS_MATCH_SENDER) && *rule->sender == ':') ||
-- ((rule->flags & BUS_MATCH_DESTINATION) && *rule->destination == ':'))
-+ link = _dbus_list_get_first_link (rules);
-+ while (link != NULL)
- {
-- /* The rule matches to/from a base service, see if it's the
-- * one being disconnected, since we know this service name
-- * will never be recycled.
-- */
-- const char *name;
--
-- name = bus_connection_get_name (disconnected);
-- _dbus_assert (name != NULL); /* because we're an active connection */
--
-- if (((rule->flags & BUS_MATCH_SENDER) &&
-- strcmp (rule->sender, name) == 0) ||
-- ((rule->flags & BUS_MATCH_DESTINATION) &&
-- strcmp (rule->destination, name) == 0))
-+ BusMatchRule *rule;
-+ DBusList *next;
-+
-+ rule = link->data;
-+ next = _dbus_list_get_next_link (rules, link);
-+
-+ if (rule->matches_go_to == disconnected)
- {
-- bus_matchmaker_remove_rule_link (matchmaker, link);
-+ bus_matchmaker_remove_rule_link (rules, link);
-+ }
-+ else if (((rule->flags & BUS_MATCH_SENDER) && *rule->sender == ':') ||
-+ ((rule->flags & BUS_MATCH_DESTINATION) && *rule->destination == ':'))
-+ {
-+ /* The rule matches to/from a base service, see if it's the
-+ * one being disconnected, since we know this service name
-+ * will never be recycled.
-+ */
-+ const char *name;
-+
-+ name = bus_connection_get_name (disconnected);
-+ _dbus_assert (name != NULL); /* because we're an active connection */
-+
-+ if (((rule->flags & BUS_MATCH_SENDER) &&
-+ strcmp (rule->sender, name) == 0) ||
-+ ((rule->flags & BUS_MATCH_DESTINATION) &&
-+ strcmp (rule->destination, name) == 0))
-+ {
-+ bus_matchmaker_remove_rule_link (rules, link);
-+ }
- }
-- }
-
-- link = next;
-+ link = next;
-+ }
- }
- }
-
-@@ -1504,38 +1540,16 @@ match_rule_matches (BusMatchRule *rule,
- return TRUE;
- }
-
--dbus_bool_t
--bus_matchmaker_get_recipients (BusMatchmaker *matchmaker,
-- BusConnections *connections,
-- DBusConnection *sender,
-- DBusConnection *addressed_recipient,
-- DBusMessage *message,
-- DBusList **recipients_p)
-+static dbus_bool_t
-+get_recipients_from_list (DBusList **rules,
-+ DBusConnection *sender,
-+ DBusConnection *addressed_recipient,
-+ DBusMessage *message,
-+ DBusList **recipients_p)
- {
-- /* FIXME for now this is a wholly unoptimized linear search */
-- /* Guessing the important optimization is to skip the signal-related
-- * match lists when processing method call and exception messages.
-- * So separate match rule lists for signals?
-- */
--
- DBusList *link;
-
-- _dbus_assert (*recipients_p == NULL);
--
-- /* This avoids sending same message to the same connection twice.
-- * Purpose of the stamp instead of a bool is to avoid iterating over
-- * all connections resetting the bool each time.
-- */
-- bus_connections_increment_stamp (connections);
--
-- /* addressed_recipient is already receiving the message, don't add to list.
-- * NULL addressed_recipient means either bus driver, or this is a signal
-- * and thus lacks a specific addressed_recipient.
-- */
-- if (addressed_recipient != NULL)
-- bus_connection_mark_stamp (addressed_recipient);
--
-- link = _dbus_list_get_first_link (&matchmaker->all_rules);
-+ link = _dbus_list_get_first_link (rules);
- while (link != NULL)
- {
- BusMatchRule *rule;
-@@ -1545,7 +1559,7 @@ bus_matchmaker_get_recipients (BusMatchmaker *matchmaker,
- #ifdef DBUS_ENABLE_VERBOSE_MODE
- {
- char *s = match_rule_to_string (rule);
--
-+
- _dbus_verbose ("Checking whether message matches rule %s for connection %p\n",
- s, rule->matches_go_to);
- dbus_free (s);
-@@ -1556,12 +1570,12 @@ bus_matchmaker_get_recipients (BusMatchmaker *matchmaker,
- sender, addressed_recipient, message))
- {
- _dbus_verbose ("Rule matched\n");
--
-+
- /* Append to the list if we haven't already */
- if (bus_connection_mark_stamp (rule->matches_go_to))
- {
- if (!_dbus_list_append (recipients_p, rule->matches_go_to))
-- goto nomem;
-+ return FALSE;
- }
- #ifdef DBUS_ENABLE_VERBOSE_MODE
- else
-@@ -1571,10 +1585,57 @@ bus_matchmaker_get_recipients (BusMatchmaker *matchmaker,
- #endif /* DBUS_ENABLE_VERBOSE_MODE */
- }
-
-- link = _dbus_list_get_next_link (&matchmaker->all_rules, link);
-+ link = _dbus_list_get_next_link (rules, link);
- }
-
- return TRUE;
-+}
-+
-+dbus_bool_t
-+bus_matchmaker_get_recipients (BusMatchmaker *matchmaker,
-+ BusConnections *connections,
-+ DBusConnection *sender,
-+ DBusConnection *addressed_recipient,
-+ DBusMessage *message,
-+ DBusList **recipients_p)
-+{
-+ /* FIXME for now this is a wholly unoptimized linear search */
-+ /* Guessing the important optimization is to skip the signal-related
-+ * match lists when processing method call and exception messages.
-+ * So separate match rule lists for signals?
-+ */
-+ int type;
-+
-+ _dbus_assert (*recipients_p == NULL);
-+
-+ /* This avoids sending same message to the same connection twice.
-+ * Purpose of the stamp instead of a bool is to avoid iterating over
-+ * all connections resetting the bool each time.
-+ */
-+ bus_connections_increment_stamp (connections);
-+
-+ /* addressed_recipient is already receiving the message, don't add to list.
-+ * NULL addressed_recipient means either bus driver, or this is a signal
-+ * and thus lacks a specific addressed_recipient.
-+ */
-+ if (addressed_recipient != NULL)
-+ bus_connection_mark_stamp (addressed_recipient);
-+
-+ /* We always need to try the rules that don't specify a message type */
-+ if (!get_recipients_from_list (
-+ bus_matchmaker_get_rules (matchmaker, DBUS_MESSAGE_TYPE_INVALID),
-+ sender, addressed_recipient, message, recipients_p))
-+ goto nomem;
-+
-+ /* Also try rules that match the type of this message */
-+ type = dbus_message_get_type (message);
-+ if (type > DBUS_MESSAGE_TYPE_INVALID && type < DBUS_NUM_MESSAGE_TYPES)
-+ if (!get_recipients_from_list (
-+ bus_matchmaker_get_rules (matchmaker, type),
-+ sender, addressed_recipient, message, recipients_p))
-+ goto nomem;
-+
-+ return TRUE;
-
- nomem:
- _dbus_list_clear (recipients_p);
---
-1.6.3.3
-
diff --git a/recipes/dbus/dbus-1.3.0/will-3.patch b/recipes/dbus/dbus-1.3.0/will-3.patch
deleted file mode 100644
index 80e1f33a03..0000000000
--- a/recipes/dbus/dbus-1.3.0/will-3.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-From 8946958989828312ecf58dbaa581cbcebea8bcea Mon Sep 17 00:00:00 2001
-From: Will Thompson <will.thompson@collabora.co.uk>
-Date: Wed, 29 Jul 2009 17:53:37 +0100
-Subject: [PATCH 3/6] Don't bother re-matching features we've checked.
-
-This is currently not a big deal, but will make more of a difference
-once the set of match rules is partitioned by more features than just
-the message type.
----
- bus/signals.c | 29 ++++++++++++++++++-----------
- 1 files changed, 18 insertions(+), 11 deletions(-)
-
-diff --git a/bus/signals.c b/bus/signals.c
-index 10e0b5e..0509dd5 100644
---- a/bus/signals.c
-+++ b/bus/signals.c
-@@ -1369,8 +1369,11 @@ static dbus_bool_t
- match_rule_matches (BusMatchRule *rule,
- DBusConnection *sender,
- DBusConnection *addressed_recipient,
-- DBusMessage *message)
-+ DBusMessage *message,
-+ BusMatchFlags already_matched)
- {
-+ int flags;
-+
- /* All features of the match rule are AND'd together,
- * so FALSE if any of them don't match.
- */
-@@ -1379,8 +1382,11 @@ match_rule_matches (BusMatchRule *rule,
- * or for addressed_recipient may mean a message with no
- * specific recipient (i.e. a signal)
- */
--
-- if (rule->flags & BUS_MATCH_MESSAGE_TYPE)
-+
-+ /* Don't bother re-matching features we've already checked implicitly. */
-+ flags = rule->flags & (~already_matched);
-+
-+ if (flags & BUS_MATCH_MESSAGE_TYPE)
- {
- _dbus_assert (rule->message_type != DBUS_MESSAGE_TYPE_INVALID);
-
-@@ -1388,7 +1394,7 @@ match_rule_matches (BusMatchRule *rule,
- return FALSE;
- }
-
-- if (rule->flags & BUS_MATCH_INTERFACE)
-+ if (flags & BUS_MATCH_INTERFACE)
- {
- const char *iface;
-
-@@ -1402,7 +1408,7 @@ match_rule_matches (BusMatchRule *rule,
- return FALSE;
- }
-
-- if (rule->flags & BUS_MATCH_MEMBER)
-+ if (flags & BUS_MATCH_MEMBER)
- {
- const char *member;
-
-@@ -1416,7 +1422,7 @@ match_rule_matches (BusMatchRule *rule,
- return FALSE;
- }
-
-- if (rule->flags & BUS_MATCH_SENDER)
-+ if (flags & BUS_MATCH_SENDER)
- {
- _dbus_assert (rule->sender != NULL);
-
-@@ -1433,7 +1439,7 @@ match_rule_matches (BusMatchRule *rule,
- }
- }
-
-- if (rule->flags & BUS_MATCH_DESTINATION)
-+ if (flags & BUS_MATCH_DESTINATION)
- {
- const char *destination;
-
-@@ -1456,7 +1462,7 @@ match_rule_matches (BusMatchRule *rule,
- }
- }
-
-- if (rule->flags & BUS_MATCH_PATH)
-+ if (flags & BUS_MATCH_PATH)
- {
- const char *path;
-
-@@ -1470,7 +1476,7 @@ match_rule_matches (BusMatchRule *rule,
- return FALSE;
- }
-
-- if (rule->flags & BUS_MATCH_ARGS)
-+ if (flags & BUS_MATCH_ARGS)
- {
- int i;
- DBusMessageIter iter;
-@@ -1567,7 +1573,8 @@ get_recipients_from_list (DBusList **rules,
- #endif
-
- if (match_rule_matches (rule,
-- sender, addressed_recipient, message))
-+ sender, addressed_recipient, message,
-+ BUS_MATCH_MESSAGE_TYPE))
- {
- _dbus_verbose ("Rule matched\n");
-
-@@ -2004,7 +2011,7 @@ check_matches (dbus_bool_t expected_to_match,
- _dbus_assert (rule != NULL);
-
- /* We can't test sender/destination rules since we pass NULL here */
-- matched = match_rule_matches (rule, NULL, NULL, message);
-+ matched = match_rule_matches (rule, NULL, NULL, message, 0);
-
- if (matched != expected_to_match)
- {
---
-1.6.3.3
-
diff --git a/recipes/dbus/dbus-1.3.0/will-4.patch b/recipes/dbus/dbus-1.3.0/will-4.patch
deleted file mode 100644
index 2b2303bab3..0000000000
--- a/recipes/dbus/dbus-1.3.0/will-4.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 9da8cbb9d9155bce885e0cfb39ba18a22ee6a76d Mon Sep 17 00:00:00 2001
-From: Will Thompson <will.thompson@collabora.co.uk>
-Date: Wed, 29 Jul 2009 18:52:28 +0100
-Subject: [PATCH 4/6] Extract freeing a DBusList<BusMatchRule>
-
----
- bus/signals.c | 26 ++++++++++++++------------
- 1 files changed, 14 insertions(+), 12 deletions(-)
-
-diff --git a/bus/signals.c b/bus/signals.c
-index 0509dd5..3cf846e 100644
---- a/bus/signals.c
-+++ b/bus/signals.c
-@@ -1029,6 +1029,19 @@ struct BusMatchmaker
- DBusList *rules_by_type[DBUS_NUM_MESSAGE_TYPES];
- };
-
-+static void
-+rule_list_free (DBusList **rules)
-+{
-+ while (*rules != NULL)
-+ {
-+ BusMatchRule *rule;
-+
-+ rule = (*rules)->data;
-+ bus_match_rule_unref (rule);
-+ _dbus_list_remove_link (rules, *rules);
-+ }
-+}
-+
- BusMatchmaker*
- bus_matchmaker_new (void)
- {
-@@ -1074,18 +1087,7 @@ bus_matchmaker_unref (BusMatchmaker *matchmaker)
- int i;
-
- for (i = DBUS_MESSAGE_TYPE_INVALID; i < DBUS_NUM_MESSAGE_TYPES; i++)
-- {
-- DBusList **rules = bus_matchmaker_get_rules (matchmaker, i);
--
-- while (*rules != NULL)
-- {
-- BusMatchRule *rule;
--
-- rule = (*rules)->data;
-- bus_match_rule_unref (rule);
-- _dbus_list_remove_link (rules, *rules);
-- }
-- }
-+ rule_list_free (bus_matchmaker_get_rules (matchmaker, i));
-
- dbus_free (matchmaker);
- }
---
-1.6.3.3
-
diff --git a/recipes/dbus/dbus-1.3.0/will-5.patch b/recipes/dbus/dbus-1.3.0/will-5.patch
deleted file mode 100644
index ed100005cf..0000000000
--- a/recipes/dbus/dbus-1.3.0/will-5.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From a40a026527e718547f32e134e7c27a561b1eba47 Mon Sep 17 00:00:00 2001
-From: Will Thompson <will.thompson@collabora.co.uk>
-Date: Wed, 29 Jul 2009 20:03:40 +0100
-Subject: [PATCH 5/6] Extract rule_list_remove_by_connection
-
----
- bus/signals.c | 82 +++++++++++++++++++++++++++++++-------------------------
- 1 files changed, 45 insertions(+), 37 deletions(-)
-
-diff --git a/bus/signals.c b/bus/signals.c
-index 3cf846e..c6f122b 100644
---- a/bus/signals.c
-+++ b/bus/signals.c
-@@ -1285,11 +1285,54 @@ bus_matchmaker_remove_rule_by_value (BusMatchmaker *matchmaker,
- return TRUE;
- }
-
-+static void
-+rule_list_remove_by_connection (DBusList **rules,
-+ DBusConnection *disconnected)
-+{
-+ DBusList *link;
-+
-+ link = _dbus_list_get_first_link (rules);
-+ while (link != NULL)
-+ {
-+ BusMatchRule *rule;
-+ DBusList *next;
-+
-+ rule = link->data;
-+ next = _dbus_list_get_next_link (rules, link);
-+
-+ if (rule->matches_go_to == disconnected)
-+ {
-+ bus_matchmaker_remove_rule_link (rules, link);
-+ }
-+ else if (((rule->flags & BUS_MATCH_SENDER) && *rule->sender == ':') ||
-+ ((rule->flags & BUS_MATCH_DESTINATION) && *rule->destination == ':'))
-+ {
-+ /* The rule matches to/from a base service, see if it's the
-+ * one being disconnected, since we know this service name
-+ * will never be recycled.
-+ */
-+ const char *name;
-+
-+ name = bus_connection_get_name (disconnected);
-+ _dbus_assert (name != NULL); /* because we're an active connection */
-+
-+ if (((rule->flags & BUS_MATCH_SENDER) &&
-+ strcmp (rule->sender, name) == 0) ||
-+ ((rule->flags & BUS_MATCH_DESTINATION) &&
-+ strcmp (rule->destination, name) == 0))
-+ {
-+ bus_matchmaker_remove_rule_link (rules, link);
-+ }
-+ }
-+
-+ link = next;
-+ }
-+}
-+
- void
- bus_matchmaker_disconnected (BusMatchmaker *matchmaker,
- DBusConnection *disconnected)
- {
-- DBusList *link;
- int i;
-
- /* FIXME
-@@ -1307,42 +1350,7 @@ bus_matchmaker_disconnected (BusMatchmaker *matchmaker,
- {
- DBusList **rules = bus_matchmaker_get_rules (matchmaker, i);
-
-- link = _dbus_list_get_first_link (rules);
-- while (link != NULL)
-- {
-- BusMatchRule *rule;
-- DBusList *next;
--
-- rule = link->data;
-- next = _dbus_list_get_next_link (rules, link);
--
-- if (rule->matches_go_to == disconnected)
-- {
-- bus_matchmaker_remove_rule_link (rules, link);
-- }
-- else if (((rule->flags & BUS_MATCH_SENDER) && *rule->sender == ':') ||
-- ((rule->flags & BUS_MATCH_DESTINATION) && *rule->destination == ':'))
-- {
-- /* The rule matches to/from a base service, see if it's the
-- * one being disconnected, since we know this service name
-- * will never be recycled.
-- */
-- const char *name;
--
-- name = bus_connection_get_name (disconnected);
-- _dbus_assert (name != NULL); /* because we're an active connection */
--
-- if (((rule->flags & BUS_MATCH_SENDER) &&
-- strcmp (rule->sender, name) == 0) ||
-- ((rule->flags & BUS_MATCH_DESTINATION) &&
-- strcmp (rule->destination, name) == 0))
-- {
-- bus_matchmaker_remove_rule_link (rules, link);
-- }
-- }
--
-- link = next;
-- }
-+ rule_list_remove_by_connection (rules, disconnected);
- }
- }
-
---
-1.6.3.3
-
diff --git a/recipes/dbus/dbus-1.3.0/will-6.patch b/recipes/dbus/dbus-1.3.0/will-6.patch
deleted file mode 100644
index 05d9c49e30..0000000000
--- a/recipes/dbus/dbus-1.3.0/will-6.patch
+++ /dev/null
@@ -1,456 +0,0 @@
-From 023bb6fdc82304866353a28cd503863e80c3ea0d Mon Sep 17 00:00:00 2001
-From: Will Thompson <will.thompson@collabora.co.uk>
-Date: Thu, 30 Jul 2009 10:49:33 +0100
-Subject: [PATCH 6/6] Group match rules by their interface.
-
-In my informal studies of "normal" sets of match rules, only checking
-match rules with the appropriate interface for the message reduces the
-number that need to be checked by almost 100x on average (ranging from
-halving for messages from the bus daemon, to a >200x reduction in many
-cases). This reduces the overhead added to dispatching each message by
-having lots of irrelevant match rules.
----
- bus/signals.c | 292 ++++++++++++++++++++++++++++++++++++++++++++++-----------
- 1 files changed, 239 insertions(+), 53 deletions(-)
-
-diff --git a/bus/signals.c b/bus/signals.c
-index c6f122b..23bf98a 100644
---- a/bus/signals.c
-+++ b/bus/signals.c
-@@ -1018,15 +1018,25 @@ bus_match_rule_parse (DBusConnection *matches_go_to,
- return rule;
- }
-
-+typedef struct RulePool RulePool;
-+struct RulePool
-+{
-+ /* Maps non-NULL interface names to non-NULL (DBusList **)s */
-+ DBusHashTable *rules_by_iface;
-+
-+ /* List of BusMatchRules which don't specify an interface */
-+ DBusList *rules_without_iface;
-+};
-+
- struct BusMatchmaker
- {
- int refcount;
-
-- /* lists of rules, grouped by the type of message they match. 0
-+ /* Pools of rules, grouped by the type of message they match. 0
- * (DBUS_MESSAGE_TYPE_INVALID) represents rules that do not specify a message
- * type.
- */
-- DBusList *rules_by_type[DBUS_NUM_MESSAGE_TYPES];
-+ RulePool rules_by_type[DBUS_NUM_MESSAGE_TYPES];
- };
-
- static void
-@@ -1042,28 +1052,139 @@ rule_list_free (DBusList **rules)
- }
- }
-
-+static void
-+rule_list_ptr_free (DBusList **list)
-+{
-+ /* We have to cope with NULL because the hash table frees the "existing"
-+ * value (which is NULL) when creating a new table entry...
-+ */
-+ if (list != NULL)
-+ {
-+ rule_list_free (list);
-+ dbus_free (list);
-+ }
-+}
-+
- BusMatchmaker*
- bus_matchmaker_new (void)
- {
- BusMatchmaker *matchmaker;
-+ int i;
-
- matchmaker = dbus_new0 (BusMatchmaker, 1);
- if (matchmaker == NULL)
- return NULL;
-
- matchmaker->refcount = 1;
--
-+
-+ for (i = DBUS_MESSAGE_TYPE_INVALID; i < DBUS_NUM_MESSAGE_TYPES; i++)
-+ {
-+ RulePool *p = matchmaker->rules_by_type + i;
-+
-+ p->rules_by_iface = _dbus_hash_table_new (DBUS_HASH_STRING,
-+ dbus_free, (DBusFreeFunction) rule_list_ptr_free);
-+
-+ if (p->rules_by_iface == NULL)
-+ goto nomem;
-+ }
-+
- return matchmaker;
-+
-+ nomem:
-+ for (i = DBUS_MESSAGE_TYPE_INVALID; i < DBUS_NUM_MESSAGE_TYPES; i++)
-+ {
-+ RulePool *p = matchmaker->rules_by_type + i;
-+
-+ if (p->rules_by_iface == NULL)
-+ break;
-+ else
-+ _dbus_hash_table_unref (p->rules_by_iface);
-+ }
-+
-+ return NULL;
- }
-
- static DBusList **
- bus_matchmaker_get_rules (BusMatchmaker *matchmaker,
-- int message_type)
-+ int message_type,
-+ const char *interface,
-+ dbus_bool_t create)
- {
-+ RulePool *p;
-+
- _dbus_assert (message_type >= 0);
- _dbus_assert (message_type < DBUS_NUM_MESSAGE_TYPES);
-
-- return matchmaker->rules_by_type + message_type;
-+ _dbus_verbose ("Looking up rules for message_type %d, interface %s\n",
-+ message_type,
-+ interface != NULL ? interface : "<null>");
-+
-+ p = matchmaker->rules_by_type + message_type;
-+
-+ if (interface == NULL)
-+ {
-+ return &p->rules_without_iface;
-+ }
-+ else
-+ {
-+ DBusList **list;
-+
-+ list = _dbus_hash_table_lookup_string (p->rules_by_iface, interface);
-+
-+ if (list == NULL && create)
-+ {
-+ char *dupped_interface;
-+
-+ list = dbus_new0 (DBusList *, 1);
-+ if (list == NULL)
-+ return NULL;
-+
-+ dupped_interface = _dbus_strdup (interface);
-+ if (dupped_interface == NULL)
-+ {
-+ dbus_free (list);
-+ return NULL;
-+ }
-+
-+ _dbus_verbose ("Adding list for type %d, iface %s\n", message_type,
-+ interface);
-+
-+ if (!_dbus_hash_table_insert_string (p->rules_by_iface,
-+ dupped_interface, list))
-+ {
-+ dbus_free (list);
-+ dbus_free (dupped_interface);
-+ return NULL;
-+ }
-+ }
-+
-+ return list;
-+ }
-+}
-+
-+static void
-+bus_matchmaker_gc_rules (BusMatchmaker *matchmaker,
-+ int message_type,
-+ const char *interface,
-+ DBusList **rules)
-+{
-+ RulePool *p;
-+
-+ if (interface == NULL)
-+ return;
-+
-+ if (*rules != NULL)
-+ return;
-+
-+ _dbus_verbose ("GCing HT entry for message_type %u, interface %s\n",
-+ message_type, interface);
-+
-+ p = matchmaker->rules_by_type + message_type;
-+
-+ _dbus_assert (_dbus_hash_table_lookup_string (p->rules_by_iface, interface)
-+ == rules);
-+
-+ _dbus_hash_table_remove_string (p->rules_by_iface, interface);
- }
-
- BusMatchmaker *
-@@ -1087,7 +1208,12 @@ bus_matchmaker_unref (BusMatchmaker *matchmaker)
- int i;
-
- for (i = DBUS_MESSAGE_TYPE_INVALID; i < DBUS_NUM_MESSAGE_TYPES; i++)
-- rule_list_free (bus_matchmaker_get_rules (matchmaker, i));
-+ {
-+ RulePool *p = matchmaker->rules_by_type + i;
-+
-+ _dbus_hash_table_unref (p->rules_by_iface);
-+ rule_list_free (&p->rules_without_iface);
-+ }
-
- dbus_free (matchmaker);
- }
-@@ -1102,7 +1228,15 @@ bus_matchmaker_add_rule (BusMatchmaker *matchmaker,
-
- _dbus_assert (bus_connection_is_active (rule->matches_go_to));
-
-- rules = bus_matchmaker_get_rules (matchmaker, rule->message_type);
-+ _dbus_verbose ("Adding rule with message_type %d, interface %s\n",
-+ rule->message_type,
-+ rule->interface != NULL ? rule->interface : "<null>");
-+
-+ rules = bus_matchmaker_get_rules (matchmaker, rule->message_type,
-+ rule->interface, TRUE);
-+
-+ if (rules == NULL)
-+ return FALSE;
-
- if (!_dbus_list_append (rules, rule))
- return FALSE;
-@@ -1110,9 +1244,11 @@ bus_matchmaker_add_rule (BusMatchmaker *matchmaker,
- if (!bus_connection_add_match_rule (rule->matches_go_to, rule))
- {
- _dbus_list_remove_last (rules, rule);
-+ bus_matchmaker_gc_rules (matchmaker, rule->message_type,
-+ rule->interface, rules);
- return FALSE;
- }
--
-+
- bus_match_rule_ref (rule);
-
- #ifdef DBUS_ENABLE_VERBOSE_MODE
-@@ -1224,10 +1360,23 @@ bus_matchmaker_remove_rule (BusMatchmaker *matchmaker,
- {
- DBusList **rules;
-
-+ _dbus_verbose ("Removing rule with message_type %d, interface %s\n",
-+ rule->message_type,
-+ rule->interface != NULL ? rule->interface : "<null>");
-+
- bus_connection_remove_match_rule (rule->matches_go_to, rule);
-
-- rules = bus_matchmaker_get_rules (matchmaker, rule->message_type);
-+ rules = bus_matchmaker_get_rules (matchmaker, rule->message_type,
-+ rule->interface, FALSE);
-+
-+ /* We should only be asked to remove a rule by identity right after it was
-+ * added, so there should be a list for it.
-+ */
-+ _dbus_assert (rules != NULL);
-+
- _dbus_list_remove (rules, rule);
-+ bus_matchmaker_gc_rules (matchmaker, rule->message_type, rule->interface,
-+ rules);
-
- #ifdef DBUS_ENABLE_VERBOSE_MODE
- {
-@@ -1248,31 +1397,38 @@ bus_matchmaker_remove_rule_by_value (BusMatchmaker *matchmaker,
- BusMatchRule *value,
- DBusError *error)
- {
-- /* FIXME this is an unoptimized linear scan */
- DBusList **rules;
-- DBusList *link;
-+ DBusList *link = NULL;
-
-- rules = bus_matchmaker_get_rules (matchmaker, value->message_type);
-+ _dbus_verbose ("Removing rule by value with message_type %d, interface %s\n",
-+ value->message_type,
-+ value->interface != NULL ? value->interface : "<null>");
-
-- /* we traverse backward because bus_connection_remove_match_rule()
-- * removes the most-recently-added rule
-- */
-- link = _dbus_list_get_last_link (rules);
-- while (link != NULL)
-+ rules = bus_matchmaker_get_rules (matchmaker, value->message_type,
-+ value->interface, FALSE);
-+
-+ if (rules != NULL)
- {
-- BusMatchRule *rule;
-- DBusList *prev;
-+ /* we traverse backward because bus_connection_remove_match_rule()
-+ * removes the most-recently-added rule
-+ */
-+ link = _dbus_list_get_last_link (rules);
-+ while (link != NULL)
-+ {
-+ BusMatchRule *rule;
-+ DBusList *prev;
-
-- rule = link->data;
-- prev = _dbus_list_get_prev_link (rules, link);
-+ rule = link->data;
-+ prev = _dbus_list_get_prev_link (rules, link);
-
-- if (match_rule_equal (rule, value))
-- {
-- bus_matchmaker_remove_rule_link (rules, link);
-- break;
-- }
-+ if (match_rule_equal (rule, value))
-+ {
-+ bus_matchmaker_remove_rule_link (rules, link);
-+ break;
-+ }
-
-- link = prev;
-+ link = prev;
-+ }
- }
-
- if (link == NULL)
-@@ -1282,6 +1438,9 @@ bus_matchmaker_remove_rule_by_value (BusMatchmaker *matchmaker,
- return FALSE;
- }
-
-+ bus_matchmaker_gc_rules (matchmaker, value->message_type, value->interface,
-+ rules);
-+
- return TRUE;
- }
-
-@@ -1341,16 +1500,29 @@ bus_matchmaker_disconnected (BusMatchmaker *matchmaker,
- * for the rules belonging to the connection, since we keep
- * a list of those; but for the rules that just refer to
- * the connection we'd need to do something more elaborate.
-- *
- */
--
-+
- _dbus_assert (bus_connection_is_active (disconnected));
-
-+ _dbus_verbose ("Removing all rules for connection %p\n", disconnected);
-+
- for (i = DBUS_MESSAGE_TYPE_INVALID; i < DBUS_NUM_MESSAGE_TYPES; i++)
- {
-- DBusList **rules = bus_matchmaker_get_rules (matchmaker, i);
-+ RulePool *p = matchmaker->rules_by_type + i;
-+ DBusHashIter iter;
-+
-+ rule_list_remove_by_connection (&p->rules_without_iface, disconnected);
-+
-+ _dbus_hash_iter_init (p->rules_by_iface, &iter);
-+ while (_dbus_hash_iter_next (&iter))
-+ {
-+ DBusList **items = _dbus_hash_iter_get_value (&iter);
-
-- rule_list_remove_by_connection (rules, disconnected);
-+ rule_list_remove_by_connection (items, disconnected);
-+
-+ if (*items == NULL)
-+ _dbus_hash_iter_remove_entry (&iter);
-+ }
- }
- }
-
-@@ -1565,6 +1737,9 @@ get_recipients_from_list (DBusList **rules,
- {
- DBusList *link;
-
-+ if (rules == NULL)
-+ return TRUE;
-+
- link = _dbus_list_get_first_link (rules);
- while (link != NULL)
- {
-@@ -1581,10 +1756,10 @@ get_recipients_from_list (DBusList **rules,
- dbus_free (s);
- }
- #endif
--
-+
- if (match_rule_matches (rule,
- sender, addressed_recipient, message,
-- BUS_MATCH_MESSAGE_TYPE))
-+ BUS_MATCH_MESSAGE_TYPE | BUS_MATCH_INTERFACE))
- {
- _dbus_verbose ("Rule matched\n");
-
-@@ -1616,12 +1791,9 @@ bus_matchmaker_get_recipients (BusMatchmaker *matchmaker,
- DBusMessage *message,
- DBusList **recipients_p)
- {
-- /* FIXME for now this is a wholly unoptimized linear search */
-- /* Guessing the important optimization is to skip the signal-related
-- * match lists when processing method call and exception messages.
-- * So separate match rule lists for signals?
-- */
- int type;
-+ const char *interface;
-+ DBusList **neither, **just_type, **just_iface, **both;
-
- _dbus_assert (*recipients_p == NULL);
-
-@@ -1638,25 +1810,39 @@ bus_matchmaker_get_recipients (BusMatchmaker *matchmaker,
- if (addressed_recipient != NULL)
- bus_connection_mark_stamp (addressed_recipient);
-
-- /* We always need to try the rules that don't specify a message type */
-- if (!get_recipients_from_list (
-- bus_matchmaker_get_rules (matchmaker, DBUS_MESSAGE_TYPE_INVALID),
-- sender, addressed_recipient, message, recipients_p))
-- goto nomem;
--
-- /* Also try rules that match the type of this message */
- type = dbus_message_get_type (message);
-+ interface = dbus_message_get_interface (message);
-+
-+ neither = bus_matchmaker_get_rules (matchmaker, DBUS_MESSAGE_TYPE_INVALID,
-+ NULL, FALSE);
-+ just_type = just_iface = both = NULL;
-+
-+ if (interface != NULL)
-+ just_iface = bus_matchmaker_get_rules (matchmaker,
-+ DBUS_MESSAGE_TYPE_INVALID, interface, FALSE);
-+
- if (type > DBUS_MESSAGE_TYPE_INVALID && type < DBUS_NUM_MESSAGE_TYPES)
-- if (!get_recipients_from_list (
-- bus_matchmaker_get_rules (matchmaker, type),
-- sender, addressed_recipient, message, recipients_p))
-- goto nomem;
-+ {
-+ just_type = bus_matchmaker_get_rules (matchmaker, type, NULL, FALSE);
-
-- return TRUE;
-+ if (interface != NULL)
-+ both = bus_matchmaker_get_rules (matchmaker, type, interface, FALSE);
-+ }
-
-- nomem:
-- _dbus_list_clear (recipients_p);
-- return FALSE;
-+ if (!(get_recipients_from_list (neither, sender, addressed_recipient,
-+ message, recipients_p) &&
-+ get_recipients_from_list (just_iface, sender, addressed_recipient,
-+ message, recipients_p) &&
-+ get_recipients_from_list (just_type, sender, addressed_recipient,
-+ message, recipients_p) &&
-+ get_recipients_from_list (both, sender, addressed_recipient,
-+ message, recipients_p)))
-+ {
-+ _dbus_list_clear (recipients_p);
-+ return FALSE;
-+ }
-+
-+ return TRUE;
- }
-
- #ifdef DBUS_BUILD_TESTS
---
-1.6.3.3
-
diff --git a/recipes/dbus/dbus-1.0.3/0001-Make-the-default-DBus-reply-timeout-configurable.patch b/recipes/dbus/dbus-1.3.1/add-configurable-reply-timeouts.patch
index a38e3db0de..9cca38ddc8 100644
--- a/recipes/dbus/dbus-1.0.3/0001-Make-the-default-DBus-reply-timeout-configurable.patch
+++ b/recipes/dbus/dbus-1.3.1/add-configurable-reply-timeouts.patch
@@ -1,32 +1,17 @@
-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]]
+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]))
- 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])
+ 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
@@ -38,8 +23,8 @@ index 62ac387..5c912d7 100644
+
#### Set up final flags
DBUS_CLIENT_CFLAGS=
- DBUS_CLIENT_LIBS="$THREAD_LIBS"
-@@ -1348,6 +1356,7 @@ echo "
+ 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}
@@ -47,11 +32,11 @@ index 62ac387..5c912d7 100644
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
+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;
@@ -61,18 +46,3 @@ index df54412..5fe536b 100644
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/recipes/dbus/dbus-1.3.1/bugfix-17754.patch b/recipes/dbus/dbus-1.3.1/bugfix-17754.patch
new file mode 100644
index 0000000000..f4568f377e
--- /dev/null
+++ b/recipes/dbus/dbus-1.3.1/bugfix-17754.patch
@@ -0,0 +1,426 @@
+From 6ff1d079316cb730a54b4e0e95bd3e6e31f439de Mon Sep 17 00:00:00 2001
+From: Thiago Macieira <thiago@kde.org>
+Date: Tue, 22 Jun 2010 13:13:23 +0000
+Subject: Fix the reentrancy issue reported on bug 17754.
+
+Patch based on patch by Havoc Pennington, with the references that
+this is temporary removed.
+
+ Patch based on one from Olivier Hochreutiner <olivier.hochreutiner
+ gmail.com>
+
+ * dbus/dbus-connection.c (protected_change_timeout): remove the
+ elaborate nonworking hack to try to drop locks and just keep the
+ locks; this isn't right either, but at least is correct, though
+ it puts restrictions on apps.
+
+ * dbus/dbus-connection.c (protected_change_watch): make the same
+ change as for timeouts
+
+ * dbus/dbus-connection.c (dbus_connection_set_timeout_functions):
+ don't drop the lock here; add documentation of the problem to API
+ docs
+ (dbus_connection_set_watch_functions): same
+
+ * dbus/dbus-connection.c (dbus_connection_get_data)
+ (dbus_connection_set_data): introduce a separate slot_mutex
+ protecting connection->slot_list so these two functions can be
+ called inside watch and timeout functions. Not sure this
+ is going to be a good idea.
+
+ * dbus/dbus-connection.c (dbus_connection_unref)
+ (dbus_connection_ref): avoid using connection lock in ref/unref
+ so these can also be used in watch and timeout functions
+---
+diff --git a/dbus/dbus-connection.c b/dbus/dbus-connection.c
+index 7f828c5..6f38d14 100644
+--- a/dbus/dbus-connection.c
++++ b/dbus/dbus-connection.c
+@@ -75,6 +75,14 @@
+ _dbus_mutex_unlock ((connection)->mutex); \
+ } while (0)
+
++#define SLOTS_LOCK(connection) do { \
++ _dbus_mutex_lock ((connection)->slot_mutex); \
++ } while (0)
++
++#define SLOTS_UNLOCK(connection) do { \
++ _dbus_mutex_unlock ((connection)->slot_mutex); \
++ } while (0)
++
+ #define DISPATCH_STATUS_NAME(s) \
+ ((s) == DBUS_DISPATCH_COMPLETE ? "complete" : \
+ (s) == DBUS_DISPATCH_DATA_REMAINS ? "data remains" : \
+@@ -263,6 +271,7 @@ struct DBusConnection
+
+ DBusList *filter_list; /**< List of filters. */
+
++ DBusMutex *slot_mutex; /**< Lock on slot_list so overall connection lock need not be taken */
+ DBusDataSlotList slot_list; /**< Data stored by allocated integer ID */
+
+ DBusHashTable *pending_replies; /**< Hash of message serials to #DBusPendingCall. */
+@@ -655,39 +664,42 @@ protected_change_watch (DBusConnection *connection,
+ DBusWatchToggleFunction toggle_function,
+ dbus_bool_t enabled)
+ {
+- DBusWatchList *watches;
+ dbus_bool_t retval;
+-
++
+ HAVE_LOCK_CHECK (connection);
+
+- /* This isn't really safe or reasonable; a better pattern is the "do everything, then
+- * drop lock and call out" one; but it has to be propagated up through all callers
++ /* The original purpose of protected_change_watch() was to hold a
++ * ref on the connection while dropping the connection lock, then
++ * calling out to the app. This was a broken hack that did not
++ * work, since the connection was in a hosed state (no WatchList
++ * field) while calling out.
++ *
++ * So for now we'll just keep the lock while calling out. This means
++ * apps are not allowed to call DBusConnection methods inside a
++ * watch function or they will deadlock.
++ *
++ * The "real fix" is to use the _and_unlock() pattern found
++ * elsewhere in the code, to defer calling out to the app until
++ * we're about to drop locks and return flow of control to the app
++ * anyway.
++ *
++ * See http://lists.freedesktop.org/archives/dbus/2007-July/thread.html#8144
+ */
+-
+- watches = connection->watches;
+- if (watches)
+- {
+- connection->watches = NULL;
+- _dbus_connection_ref_unlocked (connection);
+- CONNECTION_UNLOCK (connection);
+
++ if (connection->watches)
++ {
+ if (add_function)
+- retval = (* add_function) (watches, watch);
++ retval = (* add_function) (connection->watches, watch);
+ else if (remove_function)
+ {
+ retval = TRUE;
+- (* remove_function) (watches, watch);
++ (* remove_function) (connection->watches, watch);
+ }
+ else
+ {
+ retval = TRUE;
+- (* toggle_function) (watches, watch, enabled);
++ (* toggle_function) (connection->watches, watch, enabled);
+ }
+-
+- CONNECTION_LOCK (connection);
+- connection->watches = watches;
+- _dbus_connection_unref_unlocked (connection);
+-
+ return retval;
+ }
+ else
+@@ -776,39 +788,42 @@ protected_change_timeout (DBusConnection *connection,
+ DBusTimeoutToggleFunction toggle_function,
+ dbus_bool_t enabled)
+ {
+- DBusTimeoutList *timeouts;
+ dbus_bool_t retval;
+-
++
+ HAVE_LOCK_CHECK (connection);
+
+- /* This isn't really safe or reasonable; a better pattern is the "do everything, then
+- * drop lock and call out" one; but it has to be propagated up through all callers
++ /* The original purpose of protected_change_timeout() was to hold a
++ * ref on the connection while dropping the connection lock, then
++ * calling out to the app. This was a broken hack that did not
++ * work, since the connection was in a hosed state (no TimeoutList
++ * field) while calling out.
++ *
++ * So for now we'll just keep the lock while calling out. This means
++ * apps are not allowed to call DBusConnection methods inside a
++ * timeout function or they will deadlock.
++ *
++ * The "real fix" is to use the _and_unlock() pattern found
++ * elsewhere in the code, to defer calling out to the app until
++ * we're about to drop locks and return flow of control to the app
++ * anyway.
++ *
++ * See http://lists.freedesktop.org/archives/dbus/2007-July/thread.html#8144
+ */
+-
+- timeouts = connection->timeouts;
+- if (timeouts)
+- {
+- connection->timeouts = NULL;
+- _dbus_connection_ref_unlocked (connection);
+- CONNECTION_UNLOCK (connection);
+
++ if (connection->timeouts)
++ {
+ if (add_function)
+- retval = (* add_function) (timeouts, timeout);
++ retval = (* add_function) (connection->timeouts, timeout);
+ else if (remove_function)
+ {
+ retval = TRUE;
+- (* remove_function) (timeouts, timeout);
++ (* remove_function) (connection->timeouts, timeout);
+ }
+ else
+ {
+ retval = TRUE;
+- (* toggle_function) (timeouts, timeout, enabled);
++ (* toggle_function) (connection->timeouts, timeout, enabled);
+ }
+-
+- CONNECTION_LOCK (connection);
+- connection->timeouts = timeouts;
+- _dbus_connection_unref_unlocked (connection);
+-
+ return retval;
+ }
+ else
+@@ -1269,6 +1284,10 @@ _dbus_connection_new_for_transport (DBusTransport *transport)
+ if (connection->io_path_cond == NULL)
+ goto error;
+
++ _dbus_mutex_new_at_location (&connection->slot_mutex);
++ if (connection->slot_mutex == NULL)
++ goto error;
++
+ disconnect_message = dbus_message_new_signal (DBUS_PATH_LOCAL,
+ DBUS_INTERFACE_LOCAL,
+ "Disconnected");
+@@ -1345,6 +1364,7 @@ _dbus_connection_new_for_transport (DBusTransport *transport)
+ _dbus_mutex_free_at_location (&connection->mutex);
+ _dbus_mutex_free_at_location (&connection->io_path_mutex);
+ _dbus_mutex_free_at_location (&connection->dispatch_mutex);
++ _dbus_mutex_free_at_location (&connection->slot_mutex);
+ dbus_free (connection);
+ }
+ if (pending_replies)
+@@ -2618,9 +2638,14 @@ dbus_connection_ref (DBusConnection *connection)
+
+ /* The connection lock is better than the global
+ * lock in the atomic increment fallback
++ *
++ * (FIXME but for now we always use the atomic version,
++ * to avoid taking the connection lock, due to
++ * the mess with set_timeout_functions()/set_watch_functions()
++ * calling out to the app without dropping locks)
+ */
+
+-#ifdef DBUS_HAVE_ATOMIC_INT
++#if 1
+ _dbus_atomic_inc (&connection->refcount);
+ #else
+ CONNECTION_LOCK (connection);
+@@ -2732,6 +2757,8 @@ _dbus_connection_last_unref (DBusConnection *connection)
+ _dbus_mutex_free_at_location (&connection->io_path_mutex);
+ _dbus_mutex_free_at_location (&connection->dispatch_mutex);
+
++ _dbus_mutex_free_at_location (&connection->slot_mutex);
++
+ _dbus_mutex_free_at_location (&connection->mutex);
+
+ dbus_free (connection);
+@@ -2766,9 +2793,14 @@ dbus_connection_unref (DBusConnection *connection)
+
+ /* The connection lock is better than the global
+ * lock in the atomic increment fallback
++ *
++ * (FIXME but for now we always use the atomic version,
++ * to avoid taking the connection lock, due to
++ * the mess with set_timeout_functions()/set_watch_functions()
++ * calling out to the app without dropping locks)
+ */
+
+-#ifdef DBUS_HAVE_ATOMIC_INT
++#if 1
+ last_unref = (_dbus_atomic_dec (&connection->refcount) == 1);
+ #else
+ CONNECTION_LOCK (connection);
+@@ -4819,9 +4851,11 @@ dbus_connection_dispatch (DBusConnection *connection)
+ * should be that dbus_connection_set_watch_functions() has no effect,
+ * but the add_function and remove_function may have been called.
+ *
+- * @todo We need to drop the lock when we call the
+- * add/remove/toggled functions which can be a side effect
+- * of setting the watch functions.
++ * @note The thread lock on DBusConnection is held while
++ * watch functions are invoked, so inside these functions you
++ * may not invoke any methods on DBusConnection or it will deadlock.
++ * See the comments in the code or http://lists.freedesktop.org/archives/dbus/2007-July/tread.html#8144
++ * if you encounter this issue and want to attempt writing a patch.
+ *
+ * @param connection the connection.
+ * @param add_function function to begin monitoring a new descriptor.
+@@ -4840,42 +4874,18 @@ dbus_connection_set_watch_functions (DBusConnection *connection,
+ DBusFreeFunction free_data_function)
+ {
+ dbus_bool_t retval;
+- DBusWatchList *watches;
+
+ _dbus_return_val_if_fail (connection != NULL, FALSE);
+
+ CONNECTION_LOCK (connection);
+
+-#ifndef DBUS_DISABLE_CHECKS
+- if (connection->watches == NULL)
+- {
+- _dbus_warn_check_failed ("Re-entrant call is not allowed\n");
+- return FALSE;
+- }
+-#endif
+-
+- /* ref connection for slightly better reentrancy */
+- _dbus_connection_ref_unlocked (connection);
+-
+- /* This can call back into user code, and we need to drop the
+- * connection lock when it does. This is kind of a lame
+- * way to do it.
+- */
+- watches = connection->watches;
+- connection->watches = NULL;
+- CONNECTION_UNLOCK (connection);
+-
+- retval = _dbus_watch_list_set_functions (watches,
++ retval = _dbus_watch_list_set_functions (connection->watches,
+ add_function, remove_function,
+ toggled_function,
+ data, free_data_function);
+- CONNECTION_LOCK (connection);
+- connection->watches = watches;
+-
++
+ CONNECTION_UNLOCK (connection);
+- /* drop our paranoid refcount */
+- dbus_connection_unref (connection);
+-
++
+ return retval;
+ }
+
+@@ -4904,6 +4914,12 @@ dbus_connection_set_watch_functions (DBusConnection *connection,
+ * given remove_function. The timer interval may change whenever the
+ * timeout is added, removed, or toggled.
+ *
++ * @note The thread lock on DBusConnection is held while
++ * timeout functions are invoked, so inside these functions you
++ * may not invoke any methods on DBusConnection or it will deadlock.
++ * See the comments in the code or http://lists.freedesktop.org/archives/dbus/2007-July/thread.html#8144
++ * if you encounter this issue and want to attempt writing a patch.
++ *
+ * @param connection the connection.
+ * @param add_function function to add a timeout.
+ * @param remove_function function to remove a timeout.
+@@ -4921,37 +4937,17 @@ dbus_connection_set_timeout_functions (DBusConnection *connection,
+ DBusFreeFunction free_data_function)
+ {
+ dbus_bool_t retval;
+- DBusTimeoutList *timeouts;
+
+ _dbus_return_val_if_fail (connection != NULL, FALSE);
+
+ CONNECTION_LOCK (connection);
+
+-#ifndef DBUS_DISABLE_CHECKS
+- if (connection->timeouts == NULL)
+- {
+- _dbus_warn_check_failed ("Re-entrant call is not allowed\n");
+- return FALSE;
+- }
+-#endif
+-
+- /* ref connection for slightly better reentrancy */
+- _dbus_connection_ref_unlocked (connection);
+-
+- timeouts = connection->timeouts;
+- connection->timeouts = NULL;
+- CONNECTION_UNLOCK (connection);
+-
+- retval = _dbus_timeout_list_set_functions (timeouts,
++ retval = _dbus_timeout_list_set_functions (connection->timeouts,
+ add_function, remove_function,
+ toggled_function,
+ data, free_data_function);
+- CONNECTION_LOCK (connection);
+- connection->timeouts = timeouts;
+-
++
+ CONNECTION_UNLOCK (connection);
+- /* drop our paranoid refcount */
+- dbus_connection_unref (connection);
+
+ return retval;
+ }
+@@ -5911,6 +5907,15 @@ dbus_connection_free_data_slot (dbus_int32_t *slot_p)
+ * the connection is finalized. The slot number
+ * must have been allocated with dbus_connection_allocate_data_slot().
+ *
++ * @note This function does not take the
++ * main thread lock on DBusConnection, which allows it to be
++ * used from inside watch and timeout functions. (See the
++ * note in docs for dbus_connection_set_watch_functions().)
++ * A side effect of this is that you need to know there's
++ * a reference held on the connection while invoking
++ * dbus_connection_set_data(), or the connection could be
++ * finalized during dbus_connection_set_data().
++ *
+ * @param connection the connection
+ * @param slot the slot number
+ * @param data the data to store
+@@ -5930,14 +5935,14 @@ dbus_connection_set_data (DBusConnection *connection,
+ _dbus_return_val_if_fail (connection != NULL, FALSE);
+ _dbus_return_val_if_fail (slot >= 0, FALSE);
+
+- CONNECTION_LOCK (connection);
++ SLOTS_LOCK (connection);
+
+ retval = _dbus_data_slot_list_set (&slot_allocator,
+ &connection->slot_list,
+ slot, data, free_data_func,
+ &old_free_func, &old_data);
+
+- CONNECTION_UNLOCK (connection);
++ SLOTS_UNLOCK (connection);
+
+ if (retval)
+ {
+@@ -5953,6 +5958,15 @@ dbus_connection_set_data (DBusConnection *connection,
+ * Retrieves data previously set with dbus_connection_set_data().
+ * The slot must still be allocated (must not have been freed).
+ *
++ * @note This function does not take the
++ * main thread lock on DBusConnection, which allows it to be
++ * used from inside watch and timeout functions. (See the
++ * note in docs for dbus_connection_set_watch_functions().)
++ * A side effect of this is that you need to know there's
++ * a reference held on the connection while invoking
++ * dbus_connection_get_data(), or the connection could be
++ * finalized during dbus_connection_get_data().
++ *
+ * @param connection the connection
+ * @param slot the slot to get data from
+ * @returns the data, or #NULL if not found
+@@ -5965,13 +5979,13 @@ dbus_connection_get_data (DBusConnection *connection,
+
+ _dbus_return_val_if_fail (connection != NULL, NULL);
+
+- CONNECTION_LOCK (connection);
++ SLOTS_LOCK (connection);
+
+ res = _dbus_data_slot_list_get (&slot_allocator,
+ &connection->slot_list,
+ slot);
+
+- CONNECTION_UNLOCK (connection);
++ SLOTS_UNLOCK (connection);
+
+ return res;
+ }
+--
+cgit v0.8.3-6-g21f6
diff --git a/recipes/dbus/dbus-1.3.0/dbus-1.init b/recipes/dbus/dbus-1.3.1/dbus-1.init
index a70e7a2373..a70e7a2373 100644
--- a/recipes/dbus/dbus-1.3.0/dbus-1.init
+++ b/recipes/dbus/dbus-1.3.1/dbus-1.init
diff --git a/recipes/dbus/dbus-1.3.1/fix-install-daemon.patch b/recipes/dbus/dbus-1.3.1/fix-install-daemon.patch
new file mode 100644
index 0000000000..562cb0eb48
--- /dev/null
+++ b/recipes/dbus/dbus-1.3.1/fix-install-daemon.patch
@@ -0,0 +1,13 @@
+Index: dbus-1.3.1/bus/Makefile.am
+===================================================================
+--- dbus-1.3.1.orig/bus/Makefile.am
++++ dbus-1.3.1/bus/Makefile.am
+@@ -206,7 +206,7 @@
+ $(mkinstalldirs) $(DESTDIR)$(DBUS_DAEMONDIR); \
+ chmod 755 $(DESTDIR)$(DBUS_DAEMONDIR); \
+ fi
+- $(INSTALL_PROGRAM) dbus-daemon$(EXEEXT) $(DESTDIR)$(DBUS_DAEMONDIR)
++ $(INSTALL_PROGRAM) .libs/dbus-daemon$(EXEEXT) $(DESTDIR)$(DBUS_DAEMONDIR)
+ $(mkinstalldirs) $(DESTDIR)$(libexecdir)/dbus-1
+ if test -f dbus-daemon-launch-helper$(EXEEXT) ; then \
+ $(INSTALL_PROGRAM) dbus-daemon-launch-helper$(EXEEXT) $(DESTDIR)$(libexecdir); \
diff --git a/recipes/dbus/dbus-1.0.3/tmpdir.patch b/recipes/dbus/dbus-1.3.1/tmpdir.patch
index 838b903f0a..838b903f0a 100644
--- a/recipes/dbus/dbus-1.0.3/tmpdir.patch
+++ b/recipes/dbus/dbus-1.3.1/tmpdir.patch
diff --git a/recipes/dbus/dbus-c++-native_git.bb b/recipes/dbus/dbus-c++-native_git.bb
index dd43f911fe..eba80b2e9a 100644
--- a/recipes/dbus/dbus-c++-native_git.bb
+++ b/recipes/dbus/dbus-c++-native_git.bb
@@ -11,10 +11,6 @@ do_compile() {
install -m 0755 tools/dbusxx-xml2cpp ${STAGING_BINDIR_NATIVE}
}
-do_stage() {
- autotools_stage_all
-}
-
do_install() {
:
}
diff --git a/recipes/dbus/dbus-c++_git.bb b/recipes/dbus/dbus-c++_git.bb
index 06e1cb386b..7d9db3e7a6 100644
--- a/recipes/dbus/dbus-c++_git.bb
+++ b/recipes/dbus/dbus-c++_git.bb
@@ -8,7 +8,7 @@ PE = "1"
PV = "0.5.0+gitr${SRCPV}"
SRC_URI = "git://gitorious.org/dbus-cplusplus/mainline.git;protocol=git"
-# file://fix-linking.patch;patch=1"
+# file://fix-linking.patch"
S = "${WORKDIR}/git"
inherit autotools pkgconfig
diff --git a/recipes/dbus/dbus-daemon-proxy_git.bb b/recipes/dbus/dbus-daemon-proxy_git.bb
index 99f4372b72..16cc34f080 100644
--- a/recipes/dbus/dbus-daemon-proxy_git.bb
+++ b/recipes/dbus/dbus-daemon-proxy_git.bb
@@ -3,12 +3,13 @@ LICENSE = "GPL"
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} `pkg-config --cflags --libs dbus-glib-1` -o dbus-daemon-proxy dbus-daemon-proxy.c
+ ${CC} ${LDFLAGS} `pkg-config --cflags --libs dbus-glib-1` -o dbus-daemon-proxy dbus-daemon-proxy.c
}
do_install() {
diff --git a/recipes/dbus/dbus-glib-native-0.74/run-with-tmp-session-bus.patch b/recipes/dbus/dbus-glib-0.74/run-with-tmp-session-bus.patch
index ba117d0309..ba117d0309 100644
--- a/recipes/dbus/dbus-glib-native-0.74/run-with-tmp-session-bus.patch
+++ b/recipes/dbus/dbus-glib-0.74/run-with-tmp-session-bus.patch
diff --git a/recipes/dbus/dbus-glib-0.76/no-examples.patch b/recipes/dbus/dbus-glib-0.76/no-examples.patch
deleted file mode 100644
index 483153db74..0000000000
--- a/recipes/dbus/dbus-glib-0.76/no-examples.patch
+++ /dev/null
@@ -1,8 +0,0 @@
---- dbus-glib-0.70/dbus/Makefile.am.orig 2006-07-23 16:04:43.000000000 +0200
-+++ dbus-glib-0.70/dbus/Makefile.am 2006-07-23 16:04:52.000000000 +0200
-@@ -1,4 +1,4 @@
--SUBDIRS = . examples
-+SUBDIRS = .
-
- INCLUDES=-I$(top_srcdir) $(DBUS_CFLAGS) $(DBUS_GLIB_CFLAGS) $(DBUS_GLIB_TOOL_CFLAGS) -DDBUS_COMPILATION=1 -DDBUS_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\"
-
diff --git a/recipes/dbus/dbus-glib-0.76/no-introspect.patch b/recipes/dbus/dbus-glib-0.76/no-introspect.patch
deleted file mode 100644
index 9115801f71..0000000000
--- a/recipes/dbus/dbus-glib-0.76/no-introspect.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Index: dbus-glib-0.73/tools/Makefile.am
-===================================================================
---- dbus-glib-0.73.orig/tools/Makefile.am 2006-10-25 21:10:36.000000000 +0200
-+++ dbus-glib-0.73/tools/Makefile.am 2006-10-27 10:07:35.000000000 +0200
-@@ -3,9 +3,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)/dbus/dbus-binding-tool$(EXEEXT)
-- $(top_builddir)/dbus/dbus-binding-tool --mode=glib-client --prefix=dbus_bus --output=dbus-glib-bindings.h dbus-bus-introspect.xml
--
- BUILT_SOURCES = dbus-glib-bindings.h dbus-bus-introspect.xml
-
- if USE_INTROSPECT_XML
diff --git a/recipes/dbus/dbus-glib-native-0.76/run-with-tmp-session-bus.patch b/recipes/dbus/dbus-glib-0.78/run-with-tmp-session-bus.patch
index a04f404f75..a04f404f75 100644
--- a/recipes/dbus/dbus-glib-native-0.76/run-with-tmp-session-bus.patch
+++ b/recipes/dbus/dbus-glib-0.78/run-with-tmp-session-bus.patch
diff --git a/recipes/dbus/dbus-glib-0.82/fix-async-dbus.patch b/recipes/dbus/dbus-glib-0.82/fix-async-dbus.patch
deleted file mode 100644
index 0cea12431f..0000000000
--- a/recipes/dbus/dbus-glib-0.82/fix-async-dbus.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-diff -ur dbus-glib-0.78/dbus/dbus-gproxy.c patched/dbus-glib-0.78/dbus/dbus-gproxy.c
---- dbus-glib-0.78/dbus/dbus-gproxy.c 2008-11-17 19:45:50.000000000 +0100
-+++ patched/dbus-glib-0.78/dbus/dbus-gproxy.c 2009-01-30 18:12:51.000000000 +0100
-@@ -2175,6 +2175,41 @@
- return NULL;
- }
-
-+struct dbus_g_proxy_begin_call_internal_helper_args
-+{
-+ DBusGProxy *proxy;
-+ DBusGProxyCallNotify notify;
-+ guint call_id;
-+ gpointer user_data;
-+ GDestroyNotify destroy;
-+};
-+
-+static void
-+dbus_g_proxy_begin_call_internal_helper (DBusPendingCall *pending, void *user_data)
-+{
-+ struct dbus_g_proxy_begin_call_internal_helper_args *t1 = user_data;
-+ DBusGProxyPrivate *priv = DBUS_G_PROXY_GET_PRIVATE(t1->proxy);
-+ GPendingNotifyClosure *closure;
-+
-+
-+ t1->call_id = ++priv->call_id_counter;
-+
-+ if (t1->notify != NULL)
-+ {
-+ closure = g_new (GPendingNotifyClosure, 1);
-+ closure->proxy = t1->proxy; /* No need to ref as the lifecycle is tied to proxy */
-+ closure->call_id = t1->call_id;
-+ closure->func = t1->notify;
-+ closure->data = t1->user_data;
-+ closure->free_data_func = t1->destroy;
-+ dbus_pending_call_set_notify (pending, d_pending_call_notify,
-+ closure,
-+ d_pending_call_free);
-+ }
-+
-+ g_hash_table_insert (priv->pending_calls, GUINT_TO_POINTER (t1->call_id), pending);
-+}
-+
- static guint
- dbus_g_proxy_begin_call_internal (DBusGProxy *proxy,
- const char *method,
-@@ -2182,52 +2217,42 @@
- gpointer user_data,
- GDestroyNotify destroy,
- GValueArray *args,
-- int timeout)
-+ int timeout)
- {
-+ struct dbus_g_proxy_begin_call_internal_helper_args t1;
-+
- DBusMessage *message;
- DBusPendingCall *pending;
-- GPendingNotifyClosure *closure;
-- guint call_id;
- DBusGProxyPrivate *priv = DBUS_G_PROXY_GET_PRIVATE(proxy);
-
-+ t1.proxy = proxy;
-+ t1.notify = notify;
-+ t1.user_data = user_data;
-+ t1.destroy = destroy;
-+
- pending = NULL;
-
- message = dbus_g_proxy_marshal_args_to_message (proxy, method, args);
- if (!message)
- goto oom;
-
-- if (!dbus_connection_send_with_reply (priv->manager->connection,
-- message,
-- &pending,
-- timeout))
-+ if (!dbus_connection_send_with_reply_setup (priv->manager->connection,
-+ message,
-+ &pending,
-+ dbus_g_proxy_begin_call_internal_helper,
-+ &t1,
-+ timeout))
- goto oom;
- dbus_message_unref (message);
--
-+
- /* If we got a NULL pending, that means the connection was disconnected,
-- * and we need to abort this call.
-+ * and we need to abort this call.
- * https://bugs.freedesktop.org/show_bug.cgi?id=12675
- */
- if (pending == NULL)
- return 0;
-
-- call_id = ++priv->call_id_counter;
--
-- if (notify != NULL)
-- {
-- closure = g_new (GPendingNotifyClosure, 1);
-- closure->proxy = proxy; /* No need to ref as the lifecycle is tied to proxy */
-- closure->call_id = call_id;
-- closure->func = notify;
-- closure->data = user_data;
-- closure->free_data_func = destroy;
-- dbus_pending_call_set_notify (pending, d_pending_call_notify,
-- closure,
-- d_pending_call_free);
-- }
--
-- g_hash_table_insert (priv->pending_calls, GUINT_TO_POINTER (call_id), pending);
--
-- return call_id;
-+ return t1.call_id;
- oom:
- g_error ("Out of memory");
- return 0;
diff --git a/recipes/dbus/dbus-glib-0.82/no-examples.patch b/recipes/dbus/dbus-glib-0.82/no-examples.patch
deleted file mode 100644
index 483153db74..0000000000
--- a/recipes/dbus/dbus-glib-0.82/no-examples.patch
+++ /dev/null
@@ -1,8 +0,0 @@
---- dbus-glib-0.70/dbus/Makefile.am.orig 2006-07-23 16:04:43.000000000 +0200
-+++ dbus-glib-0.70/dbus/Makefile.am 2006-07-23 16:04:52.000000000 +0200
-@@ -1,4 +1,4 @@
--SUBDIRS = . examples
-+SUBDIRS = .
-
- INCLUDES=-I$(top_srcdir) $(DBUS_CFLAGS) $(DBUS_GLIB_CFLAGS) $(DBUS_GLIB_TOOL_CFLAGS) -DDBUS_COMPILATION=1 -DDBUS_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\"
-
diff --git a/recipes/dbus/dbus-glib-0.82/no-introspect.patch b/recipes/dbus/dbus-glib-0.82/no-introspect.patch
deleted file mode 100644
index f667c06879..0000000000
--- a/recipes/dbus/dbus-glib-0.82/no-introspect.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Index: dbus-glib-0.82/tools/Makefile.am
-===================================================================
---- dbus-glib-0.82.orig/tools/Makefile.am
-+++ dbus-glib-0.82/tools/Makefile.am
-@@ -3,9 +3,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)/dbus/dbus-binding-tool$(EXEEXT)
-- $(DBUS_BINDING_TOOL) --mode=glib-client --prefix=dbus_bus --output=dbus-glib-bindings.h dbus-bus-introspect.xml
--
- BUILT_SOURCES = dbus-glib-bindings.h dbus-bus-introspect.xml
-
- if USE_INTROSPECT_XML
diff --git a/recipes/dbus/dbus-glib-0.86/run-with-tmp-session-bus.patch b/recipes/dbus/dbus-glib-0.86/run-with-tmp-session-bus.patch
new file mode 100644
index 0000000000..a04f404f75
--- /dev/null
+++ b/recipes/dbus/dbus-glib-0.86/run-with-tmp-session-bus.patch
@@ -0,0 +1,24 @@
+Index: dbus-glib-0.76/tools/run-with-tmp-session-bus.sh
+===================================================================
+--- dbus-glib-0.76.orig/tools/run-with-tmp-session-bus.sh 2008-06-13 16:31:54.000000000 +0100
++++ dbus-glib-0.76/tools/run-with-tmp-session-bus.sh 2008-06-13 16:32:54.000000000 +0100
+@@ -30,17 +30,15 @@
+ echo "escaped service dir is: $ESCAPED_SERVICE_DIR" >&2
+
+ ## create a configuration file based on the standard session.conf
+-cat $DBUS_TOP_SRCDIR/tools/session.conf | \
++cat $datadir/tools/session.conf | \
+ sed -e 's/<servicedir>.*$/<servicedir>'$ESCAPED_SERVICE_DIR'<\/servicedir>/g' | \
+ sed -e 's/<include.*$//g' \
+ > $CONFIG_FILE
+
+ echo "Created configuration file $CONFIG_FILE" >&2
+
+-PATH=$DBUS_TOP_BUILDDIR/bus:$PATH
+-export PATH
+ ## the libtool script found by the path search should already do this, but
+-LD_LIBRARY_PATH=$DBUS_TOP_BUILDDIR/dbus/.libs:$LD_LIBRARY_PATH
++LD_LIBRARY_PATH=$libdir:$LD_LIBRARY_PATH
+ export PATH
+ unset DBUS_SESSION_BUS_ADDRESS
+ unset DBUS_SESSION_BUS_PID
diff --git a/recipes/dbus/dbus-glib-native_0.74.bb b/recipes/dbus/dbus-glib-native_0.74.bb
deleted file mode 100644
index 0fc745eb62..0000000000
--- a/recipes/dbus/dbus-glib-native_0.74.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SECTION = "base"
-PR = "r1"
-HOMEPAGE = "http://www.freedesktop.org/Software/dbus"
-DESCRIPTION = "Message bus system for applications to talk to one another"
-LICENSE = "GPL"
-
-SRC_URI = "http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-${PV}.tar.gz \
- file://run-with-tmp-session-bus.patch;patch=1"
-
-inherit autotools pkgconfig gettext native
-
-S = "${WORKDIR}/dbus-glib-${PV}"
-FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/dbus-glib-${PV}"
-DEPENDS = "glib-2.0-native dbus-native"
-
-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
-}
-
-SRC_URI[md5sum] = "0923d825a0aff2e4eb23338b630286fb"
-SRC_URI[sha256sum] = "e870d8cd619834eda066e37fe69b441d629f9ad3a871ef2854fbbcd753b3abe2"
diff --git a/recipes/dbus/dbus-glib-native_0.76.bb b/recipes/dbus/dbus-glib-native_0.76.bb
deleted file mode 100644
index 06d7bace00..0000000000
--- a/recipes/dbus/dbus-glib-native_0.76.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SECTION = "base"
-PR = "r1"
-HOMEPAGE = "http://www.freedesktop.org/Software/dbus"
-DESCRIPTION = "message bus system for applications to talk to one another"
-LICENSE = "GPL"
-
-SRC_URI = "http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-${PV}.tar.gz \
- file://run-with-tmp-session-bus.patch;patch=1"
-
-inherit autotools pkgconfig gettext native
-
-S = "${WORKDIR}/dbus-glib-${PV}"
-FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/dbus-glib-${PV}"
-DEPENDS = "glib-2.0-native dbus-native"
-
-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
-}
-
-SRC_URI[md5sum] = "d3b716a7e798faa1c6a867675f00306a"
-SRC_URI[sha256sum] = "8bc083faaf3efdd444a8a44bbcbfea501a7b547736fda3c2d83bfdc9b5b672a3"
diff --git a/recipes/dbus/dbus-glib.inc b/recipes/dbus/dbus-glib.inc
index bfc7f7c037..4db734b1e2 100644
--- a/recipes/dbus/dbus-glib.inc
+++ b/recipes/dbus/dbus-glib.inc
@@ -2,28 +2,50 @@ DESCRIPTION = "GLib bindings for the dbus message bus system"
HOMEPAGE = "http://www.freedesktop.org/Software/dbus"
SECTION = "libs"
LICENSE = "GPL"
+
DEPENDS = "expat glib-2.0 virtual/libintl dbus-glib-native dbus"
-INC_PR = "r1"
+DEPENDS_virtclass-native = "expat-native glib-2.0-native dbus-native"
+
+INC_PR = "r2"
+
SRC_URI = "\
- http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-${PV}.tar.gz;name=archive \
- file://no-introspect.patch;patch=1 \
- file://no-examples.patch;patch=1 \
-"
+ http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-${PV}.tar.gz \
+ file://no-examples.patch \
+ file://no-introspect.patch \
+ "
+
+SRC_URI_virtclass-native = "http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-${PV}.tar.gz"
inherit autotools pkgconfig gettext
+BBCLASSEXTEND = "native"
+
do_configure_prepend() {
- install -m 0644 ${STAGING_DATADIR_NATIVE}/dbus/dbus-bus-introspect.xml ${S}/tools/
- install -m 0644 ${STAGING_DATADIR_NATIVE}/dbus/dbus-glib-bindings.h ${S}/tools/
+ install -m 0644 ${STAGING_DATADIR_NATIVE}/dbus/dbus-bus-introspect.xml ${S}/tools/
+ install -m 0644 ${STAGING_DATADIR_NATIVE}/dbus/dbus-glib-bindings.h ${S}/tools/
+
+}
+
+do_configure_virtclass-native() {
+ autotools_do_configure
+}
+
+do_install_virtclass-native() {
+ autotools_do_install
+ install -d ${D}${datadir}/dbus
+ install -m 0644 tools/dbus-glib-bindings.h ${D}${datadir}/dbus
}
PACKAGES += "${PN}-bash-completion"
+
FILES_${PN}-bash-completion = "\
${sysconfdir}/bash_completion.d \
${prefix}/libexec/dbus-bash-completion-helper \
"
+
FILES_${PN} = "${libdir}/lib*.so.*"
+
FILES_${PN}-dev += "\
${libdir}/dbus-1.0/include \
${bindir}/dbus-glib-tool \
diff --git a/recipes/dbus/dbus-glib_0.74.bb b/recipes/dbus/dbus-glib_0.74.bb
index c69c2452e1..e6822b13f4 100644
--- a/recipes/dbus/dbus-glib_0.74.bb
+++ b/recipes/dbus/dbus-glib_0.74.bb
@@ -1,31 +1,13 @@
-SECTION = "base"
-PR = "r1"
-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 dbus-glib-native dbus"
+require dbus-glib.inc
-SRC_URI = "http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-${PV}.tar.gz \
- file://no-examples.patch;patch=1 \
- file://no-introspect.patch;patch=1"
+PR = "${INC_PR}.1"
-inherit autotools pkgconfig gettext
+SRC_URI_virtclass-native += "file://run-with-tmp-session-bus.patch"
-FILES_${PN} = "${libdir}/lib*.so.*"
-FILES_${PN}-dev += "${libdir}/dbus-1.0/include ${bindir}/dbus-glib-tool"
-
-do_configure_prepend() {
- install -m 0644 ${STAGING_DATADIR_NATIVE}/dbus/dbus-bus-introspect.xml ${S}/tools/
- install -m 0644 ${STAGING_DATADIR_NATIVE}/dbus/dbus-glib-bindings.h ${S}/tools/
+do_install_virtclass-native_prepend() {
+ install -d ${D}${datadir}/dbus
+ install -m 0644 tools/dbus-bus-introspect.xml ${D}${datadir}/dbus
}
-do_stage () {
- oe_libinstall -so -C dbus libdbus-glib-1 ${STAGING_LIBDIR}
-
- autotools_stage_includes
-}
-
-FILES_${PN}-dev += "${bindir}/dbus-binding-tool"
-
SRC_URI[md5sum] = "0923d825a0aff2e4eb23338b630286fb"
SRC_URI[sha256sum] = "e870d8cd619834eda066e37fe69b441d629f9ad3a871ef2854fbbcd753b3abe2"
diff --git a/recipes/dbus/dbus-glib_0.76.bb b/recipes/dbus/dbus-glib_0.76.bb
deleted file mode 100644
index 982ffd070b..0000000000
--- a/recipes/dbus/dbus-glib_0.76.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SECTION = "base"
-PR = "r1"
-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 dbus-glib-native dbus"
-
-SRC_URI = "http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-${PV}.tar.gz \
- file://no-examples.patch;patch=1 \
- file://no-introspect.patch;patch=1"
-
-inherit autotools pkgconfig gettext
-
-FILES_${PN} = "${libdir}/lib*.so.*"
-FILES_${PN}-dev += "${libdir}/dbus-1.0/include ${bindir}/dbus-glib-tool"
-
-do_configure_prepend() {
- install -m 0644 ${STAGING_DATADIR_NATIVE}/dbus/dbus-bus-introspect.xml ${S}/tools/
- install -m 0644 ${STAGING_DATADIR_NATIVE}/dbus/dbus-glib-bindings.h ${S}/tools/
-}
-
-do_stage () {
- oe_libinstall -so -C dbus libdbus-glib-1 ${STAGING_LIBDIR}
-
- autotools_stage_includes
-}
-
-FILES_${PN}-dev += "${bindir}/dbus-binding-tool"
-
-SRC_URI[md5sum] = "d3b716a7e798faa1c6a867675f00306a"
-SRC_URI[sha256sum] = "8bc083faaf3efdd444a8a44bbcbfea501a7b547736fda3c2d83bfdc9b5b672a3"
diff --git a/recipes/dbus/dbus-glib_0.78.bb b/recipes/dbus/dbus-glib_0.78.bb
index f11d244a46..30a5e0c78c 100644
--- a/recipes/dbus/dbus-glib_0.78.bb
+++ b/recipes/dbus/dbus-glib_0.78.bb
@@ -1,26 +1,13 @@
-SECTION = "base"
-PR = "r1"
-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 dbus-glib-native dbus"
+require dbus-glib.inc
-SRC_URI = "http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-${PV}.tar.gz \
- file://no-examples.patch;patch=1 \
- file://no-introspect.patch;patch=1"
+PR = "${INC_PR}.1"
-inherit autotools_stage gettext
-AUTOTOOLS_STAGE_PKGCONFIG = "1"
+SRC_URI_virtclass-native += "file://run-with-tmp-session-bus.patch"
-FILES_${PN} = "${libdir}/lib*.so.* ${libexecdir}/dbus* ${sysconfdir}/profile.d"
-FILES_${PN}-dev += "${libdir}/dbus-1.0/include ${bindir}/dbus-glib-tool"
-
-do_configure_prepend() {
- install -m 0644 ${STAGING_DATADIR_NATIVE}/dbus/dbus-bus-introspect.xml ${S}/tools/
- install -m 0644 ${STAGING_DATADIR_NATIVE}/dbus/dbus-glib-bindings.h ${S}/tools/
+do_install_virtclass-native_prepend() {
+ install -d ${D}${datadir}/dbus
+ install -m 0644 tools/dbus-bus-introspect.xml ${D}${datadir}/dbus
}
-FILES_${PN}-dev += "${bindir}/dbus-binding-tool"
-
SRC_URI[md5sum] = "d4aa04b9df35b4bd663be38e959941c8"
SRC_URI[sha256sum] = "ca366fed6035f75c6ca038f99b780260a0e19f282067b2dd20243ba54105fc21"
diff --git a/recipes/dbus/dbus-glib_0.82.bb b/recipes/dbus/dbus-glib_0.82.bb
deleted file mode 100644
index cca1d45159..0000000000
--- a/recipes/dbus/dbus-glib_0.82.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require dbus-glib.inc
-PR = "${INC_PR}.1"
-
-SRC_URI[archive.md5sum] = "aa2a4517de0e9144be3bce2cf8cdd924"
-SRC_URI[archive.sha256sum] = "ddfb062797341b5c5a22555ffe80138953cc61a67ba805647b2746f519bfbde1"
diff --git a/recipes/dbus/dbus-glib_0.86.bb b/recipes/dbus/dbus-glib_0.86.bb
index abb555304d..ce87d5d43e 100644
--- a/recipes/dbus/dbus-glib_0.86.bb
+++ b/recipes/dbus/dbus-glib_0.86.bb
@@ -1,6 +1,14 @@
require dbus-glib.inc
-PR = "${INC_PR}.0"
-SRC_URI[archive.md5sum] = "cd0ab148fb0c786fc88be49d19971f50"
-SRC_URI[archive.sha256sum] = "5351a6e7f38ffc641c34b4a4cdd9bed1c1dc7043a501096bac00a2876ea90bdc"
+PR = "${INC_PR}.1"
+
+SRC_URI_virtclass-native += "file://run-with-tmp-session-bus.patch"
+
+do_install_virtclass-native_prepend() {
+ install -d ${D}${datadir}/dbus
+ install -m 0644 dbus-bus-introspect.xml ${D}${datadir}/dbus
+}
+
+SRC_URI[md5sum] = "cd0ab148fb0c786fc88be49d19971f50"
+SRC_URI[sha256sum] = "5351a6e7f38ffc641c34b4a4cdd9bed1c1dc7043a501096bac00a2876ea90bdc"
diff --git a/recipes/dbus/dbus-native_1.0.3.bb b/recipes/dbus/dbus-native_1.0.3.bb
deleted file mode 100644
index faad448bf1..0000000000
--- a/recipes/dbus/dbus-native_1.0.3.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-require dbus.inc
-
-PR = "${INC_PR}.0"
-DEFAULT_PREFERENCE = "-1"
-
-inherit native
-
-EXTRA_OECONF_X = "--without-x"
-
-DEPENDS = "glib-2.0-native libxml2-native expat-native"
-FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/dbus-${PV}"
-
-SRC_URI = "\
- http://freedesktop.org/software/dbus/releases/dbus/dbus-${PV}.tar.gz \
- file://cross.patch;patch=1 \
- file://tmpdir.patch;patch=1 \
- file://fedora-compile-fix.patch;patch=1 \
- file://dbus-1.init \
-"
-
-do_stage() {
- oe_runmake install
- autotools_stage_all
-
- # for dbus-glib-native introspection generation
- install -d ${STAGING_DATADIR}/dbus
- install -m 0644 bus/session.conf ${STAGING_DATADIR}/dbus/session.conf
-}
-
-do_install() {
- :
-}
-
-SRC_URI[md5sum] = "ce328423db5743fe9006d39113b5324d"
-SRC_URI[sha256sum] = "4be82f4ef8f4657f997a44b3daddba3f95dbb6518487509767d803dd72bf529e"
diff --git a/recipes/dbus/dbus-native_1.2.1.bb b/recipes/dbus/dbus-native_1.2.1.bb
index 2626095a43..0bca311fae 100644
--- a/recipes/dbus/dbus-native_1.2.1.bb
+++ b/recipes/dbus/dbus-native_1.2.1.bb
@@ -1,5 +1,5 @@
require dbus.inc
-PR = "${INC_PR}.2"
+PR = "${INC_PR}.3"
RRECOMMENDS_${PN} = ""
RDEPENDS_${PN} = ""
inherit native
@@ -11,24 +11,19 @@ FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/dbus-${PV}"
SRC_URI = "\
http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \
- file://cross.patch;patch=1 \
- file://tmpdir.patch;patch=1 \
- file://fix-install-daemon.patch;patch=1 \
+ file://cross.patch \
+ file://tmpdir.patch \
+ file://fix-install-daemon.patch \
file://dbus-1.init \
"
-do_stage() {
- oe_runmake install
- autotools_stage_all
-
+do_install_append() {
# for dbus-glib-native introspection generation
- install -d ${STAGING_DATADIR}/dbus
- install -m 0644 bus/session.conf ${STAGING_DATADIR}/dbus/session.conf
+ install -d ${D}${datadir}/dbus
+ install -m 0644 bus/session.conf ${D}${datadir}/dbus/session.conf
}
-do_install() {
- :
-}
+NATIVE_INSTALL_WORKS = "1"
SRC_URI[md5sum] = "b57aa1ba0834cbbb1e7502dc2cbfacc2"
SRC_URI[sha256sum] = "8016540602189e1dca6aca6b7c0735706387e4f85ced75217c6a874980fd0e86"
diff --git a/recipes/dbus/dbus.inc b/recipes/dbus/dbus.inc
index 2c41eb12c9..55a156d8f5 100644
--- a/recipes/dbus/dbus.inc
+++ b/recipes/dbus/dbus.inc
@@ -4,14 +4,14 @@ SECTION = "base"
LICENSE = "GPL"
DEPENDS = "expat glib-2.0 virtual/libintl libsm libice virtual/libx11"
-INC_PR = "r18"
+INC_PR = "r19"
SRC_URI = "\
http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz;name=dbus \
- file://cross.patch;patch=1 \
- file://tmpdir.patch;patch=1 \
- file://fix-install-daemon.patch;patch=1 \
- file://0001-Make-the-default-DBus-reply-timeout-configurable.patch;patch=1 \
+ 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 \
"
@@ -35,8 +35,13 @@ EXTRA_OECONF = "\
${EXTRA_OECONF_X} \
"
-do_compile_prepend_mipsel() {
- sed -i -e 's/\-fPIE//' -e 's/\-pie\ \-Wl\,\-z\,relro//' bus/Makefile
+# 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() {
diff --git a/recipes/dbus/dbus_1.0.3.bb b/recipes/dbus/dbus_1.0.3.bb
deleted file mode 100644
index c4eef9be57..0000000000
--- a/recipes/dbus/dbus_1.0.3.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require dbus.inc
-PR = "${INC_PR}.0"
-
-DEFAULT_PREFERENCE = "-1"
-
-SRC_URI[dbus.md5sum] = "ce328423db5743fe9006d39113b5324d"
-SRC_URI[dbus.sha256sum] = "4be82f4ef8f4657f997a44b3daddba3f95dbb6518487509767d803dd72bf529e"
diff --git a/recipes/dbus/dbus_1.2.20.bb b/recipes/dbus/dbus_1.2.20.bb
deleted file mode 100644
index 0e96b74c54..0000000000
--- a/recipes/dbus/dbus_1.2.20.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-include dbus.inc
-
-SRC_URI = "\
- http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz;name=dbus \
- file://tmpdir.patch;patch=1 \
- file://fix-install-daemon.patch;patch=1 \
- file://0001-Make-the-default-DBus-reply-timeout-configurable.patch;patch=1 \
- file://dbus-1.init \
-"
-
-SRC_URI[dbus.md5sum] = "63f4e2412f6599a5e7b10281b9ddc0ac"
-SRC_URI[dbus.sha256sum] = "0ef086d738710384d525130797ee86a0ce2daebffa7dc4d28386503ef7448011"
-
diff --git a/recipes/dbus/dbus_1.2.22.bb b/recipes/dbus/dbus_1.2.22.bb
index 2e10ddebaf..74386ed95f 100644
--- a/recipes/dbus/dbus_1.2.22.bb
+++ b/recipes/dbus/dbus_1.2.22.bb
@@ -1,10 +1,12 @@
include dbus.inc
+PR = "${INC_PR}.0"
+
SRC_URI = "\
http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz;name=dbus \
- file://tmpdir.patch;patch=1 \
- file://fix-install-daemon.patch;patch=1 \
- file://0001-Make-the-default-DBus-reply-timeout-configurable.patch;patch=1 \
+ file://tmpdir.patch \
+ file://fix-install-daemon.patch \
+ file://0001-Make-the-default-DBus-reply-timeout-configurable.patch \
file://dbus-1.init \
"
diff --git a/recipes/dbus/dbus_1.2.24.bb b/recipes/dbus/dbus_1.2.24.bb
index 0be93b07d5..a2b7eea2a6 100644
--- a/recipes/dbus/dbus_1.2.24.bb
+++ b/recipes/dbus/dbus_1.2.24.bb
@@ -1,10 +1,12 @@
include dbus.inc
+PR = "${INC_PR}.0"
+
SRC_URI = "\
http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz;name=dbus \
- file://tmpdir.patch;patch=1 \
- file://fix-install-daemon.patch;patch=1 \
- file://0001-Make-the-default-DBus-reply-timeout-configurable.patch;patch=1 \
+ file://tmpdir.patch \
+ file://fix-install-daemon.patch \
+ file://0001-Make-the-default-DBus-reply-timeout-configurable.patch \
file://dbus-1.init \
"
diff --git a/recipes/dbus/dbus_1.3.0.bb b/recipes/dbus/dbus_1.3.0.bb
deleted file mode 100644
index 77043e0e45..0000000000
--- a/recipes/dbus/dbus_1.3.0.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-include dbus.inc
-
-SRC_URI = "\
- http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \
- \
- file://will-1.patch;patch=1 \
- file://will-2.patch;patch=1 \
- file://will-3.patch;patch=1 \
- file://will-4.patch;patch=1 \
- file://will-5.patch;patch=1 \
- file://will-6.patch;patch=1 \
- \
- file://improve-threading-stability.patch;patch=1 \
- file://tmpdir.patch;patch=1 \
- file://fix-install-daemon.patch;patch=1 \
- file://0001-Make-the-default-DBus-reply-timeout-configurable.patch;patch=1 \
- file://dbus-1.init \
-"
-
-# This is the development version of dbus that will lead to 1.4.x
-DEFAULT_PREFERENCE = "-1"
-
-PR = "r2"
-
-SRC_URI[md5sum] = "b3298d5ce0e4ad4731b1e4e1787d56bb"
-SRC_URI[sha256sum] = "fe32b49667894cf91b0a97503163be5c4814ecf67259e8feb26d1ba57cb03dae"
diff --git a/recipes/dbus/dbus_1.3.1.bb b/recipes/dbus/dbus_1.3.1.bb
new file mode 100644
index 0000000000..2d09dc9ba5
--- /dev/null
+++ b/recipes/dbus/dbus_1.3.1.bb
@@ -0,0 +1,18 @@
+include dbus.inc
+PR = "${INC_PR}.1"
+
+SRC_URI = "\
+ http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \
+ \
+ file://bugfix-17754.patch \
+ file://tmpdir.patch \
+ file://fix-install-daemon.patch \
+ file://add-configurable-reply-timeouts.patch \
+ file://dbus-1.init \
+"
+
+# This is a development version of dbus that will lead to 1.4.0
+DEFAULT_PREFERENCE = "-1"
+
+SRC_URI[md5sum] = "1aab02bdcac4d662d3760896790f0ede"
+SRC_URI[sha256sum] = "f58de339c9b1fbea4c9acf555742650443bea5a8851268ca254bcb86bbbf5768"