summaryrefslogtreecommitdiff
path: root/packages/dbus
diff options
context:
space:
mode:
authorKoen Kooi <koen@openembedded.org>2005-06-30 08:19:37 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2005-06-30 08:19:37 +0000
commitc8e5702127e507e82e6f68a4b8c546803accea9d (patch)
tree00583491f40ecc640f2b28452af995e3a63a09d7 /packages/dbus
parent87ec8ca4d2e2eb4d1c1e1e1a6b46a395d56805b9 (diff)
import clean BK tree at cset 1.3670
Diffstat (limited to 'packages/dbus')
-rw-r--r--packages/dbus/.mtn2git_empty0
-rw-r--r--packages/dbus/dbus/.mtn2git_empty0
-rw-r--r--packages/dbus/dbus/0.23.1.diff308
-rw-r--r--packages/dbus/dbus/config.diff17
-rw-r--r--packages/dbus/dbus/cross.patch15
-rw-r--r--packages/dbus/dbus/dbus-1.init57
-rw-r--r--packages/dbus/dbus/dbus-monitor.patch150
-rw-r--r--packages/dbus/dbus/dbus-quiesce-startup-errors.patch23
-rw-r--r--packages/dbus/dbus/dbussend.patch399
-rw-r--r--packages/dbus/dbus/gettext.patch164
-rw-r--r--packages/dbus/dbus/no-bindings.patch12
-rw-r--r--packages/dbus/dbus/no-introspect.patch19
-rw-r--r--packages/dbus/dbus/spawn-priority.diff17
-rw-r--r--packages/dbus/dbus/tmpdir.patch30
-rw-r--r--packages/dbus/dbus/tools.diff12
-rw-r--r--packages/dbus/dbus_0.23.1-osso5.bb71
-rw-r--r--packages/dbus/dbus_0.23.4.bb62
-rw-r--r--packages/dbus/dbus_0.34.inc65
18 files changed, 1421 insertions, 0 deletions
diff --git a/packages/dbus/.mtn2git_empty b/packages/dbus/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/dbus/.mtn2git_empty
diff --git a/packages/dbus/dbus/.mtn2git_empty b/packages/dbus/dbus/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/dbus/dbus/.mtn2git_empty
diff --git a/packages/dbus/dbus/0.23.1.diff b/packages/dbus/dbus/0.23.1.diff
index e69de29bb2..d56e1afc9c 100644
--- a/packages/dbus/dbus/0.23.1.diff
+++ b/packages/dbus/dbus/0.23.1.diff
@@ -0,0 +1,308 @@
+diff -ur dbus-0.23/ChangeLog dbus-0.23.1/ChangeLog
+--- dbus-0.23/ChangeLog 2005-01-13 00:48:43.000000000 +0200
++++ dbus-0.23.1/ChangeLog 2005-02-11 20:25:48.000000000 +0200
+@@ -1,3 +1,33 @@
++2005-02-11 Joe Shaw <joeshaw@novell.com>
++
++ * NEWS: Update for 0.23.1
++
++ * configure.in: Release 0.23.1
++
++2005-02-10 Joe Shaw <joeshaw@novell.com>
++
++ * dbus/dbus-connection.c
++ (_dbus_connection_queue_received_message_link,
++ _dbus_connection_message_sent): Add the path to
++ the verbose output.
++ (_dbus_connection_send_preallocated_and_unlock): Added. Calls
++ _dbus_connection_send_preallocated_unlocked(), updated the
++ dispatch status, and unlocks. Fixes a bug where certain
++ situations (like a broken pipe) could cause a Disconnect message
++ to not be sent, tricking the bus into thinking a service was still
++ there when the process had quit.
++ (_dbus_connection_send_preallocated): Call
++ _dbus_connection_send_preallocated_and_unlock().
++ (_dbus_connection_send_and_unlock): Added. Calls
++ _dbus_connection_send_preallocated_and_unlock().
++ (dbus_connection_send): Call _dbus_connection_send_and_unlock().
++ (dbus_connection_send_with_reply): Update the dispatch status and
++ unlock.
++
++ * mono/Service.cs (~Service): Added. Removes the filter so that
++ we don't get unmanaged code calling back into a GCed delegate.
++ (RemoveFilter); Added.
++
+ 2005-01-12 Joe Shaw <joeshaw@novell.com>
+
+ * NEWS: Update for 0.23.
+diff -ur dbus-0.23/NEWS dbus-0.23.1/NEWS
+--- dbus-0.23/NEWS 2005-01-13 00:20:40.000000000 +0200
++++ dbus-0.23.1/NEWS 2005-02-11 20:25:16.000000000 +0200
+@@ -1,3 +1,11 @@
++D-BUS 0.23.1 (11 Feb 2005)
++===
++- fix a bug in which the bus daemon wouldn't recognize that a service
++ owner quit
++- fix a bug in the mono bindings that would cause unmanaged code to
++ call back into a delegate that had been garbage collected and
++ crashed.
++
+ D-BUS 0.23 (11 Jan 2005)
+ ===
+
+diff -ur dbus-0.23/configure dbus-0.23.1/configure
+--- dbus-0.23/configure 2005-01-13 00:21:25.000000000 +0200
++++ dbus-0.23.1/configure 2005-02-11 19:53:33.000000000 +0200
+@@ -1826,7 +1826,7 @@
+
+ # Define the identity of the package.
+ PACKAGE=dbus
+- VERSION=0.23
++ VERSION=0.23.1
+
+
+ cat >>confdefs.h <<_ACEOF
+diff -ur dbus-0.23/configure.in dbus-0.23.1/configure.in
+--- dbus-0.23/configure.in 2005-01-13 00:20:40.000000000 +0200
++++ dbus-0.23.1/configure.in 2005-02-11 19:53:09.000000000 +0200
+@@ -3,7 +3,7 @@
+
+ AC_INIT(dbus/dbus.h)
+
+-AM_INIT_AUTOMAKE(dbus, 0.23)
++AM_INIT_AUTOMAKE(dbus, 0.23.1)
+
+ AM_CONFIG_HEADER(config.h)
+
+diff -ur dbus-0.23/dbus/dbus-connection.c dbus-0.23.1/dbus/dbus-connection.c
+--- dbus-0.23/dbus/dbus-connection.c 2005-01-11 21:31:56.000000000 +0200
++++ dbus-0.23.1/dbus/dbus-connection.c 2005-02-11 19:52:47.000000000 +0200
+@@ -358,9 +358,10 @@
+
+ _dbus_connection_wakeup_mainloop (connection);
+
+- _dbus_verbose ("Message %p (%d %s %s '%s') added to incoming queue %p, %d incoming\n",
++ _dbus_verbose ("Message %p (%d %s %s %s '%s') added to incoming queue %p, %d incoming\n",
+ message,
+ dbus_message_get_type (message),
++ dbus_message_get_path (message),
+ dbus_message_get_interface (message) ?
+ dbus_message_get_interface (message) :
+ "no interface",
+@@ -473,9 +474,10 @@
+
+ connection->n_outgoing -= 1;
+
+- _dbus_verbose ("Message %p (%d %s %s '%s') removed from outgoing queue %p, %d left to send\n",
++ _dbus_verbose ("Message %p (%d %s %s %s '%s') removed from outgoing queue %p, %d left to send\n",
+ message,
+ dbus_message_get_type (message),
++ dbus_message_get_path (message),
+ dbus_message_get_interface (message) ?
+ dbus_message_get_interface (message) :
+ "no interface",
+@@ -1572,9 +1574,10 @@
+ }
+ #endif
+
+- _dbus_verbose ("Message %p (%d %s %s '%s') added to outgoing queue %p, %d pending to send\n",
++ _dbus_verbose ("Message %p (%d %s %s %s '%s') added to outgoing queue %p, %d pending to send\n",
+ message,
+ dbus_message_get_type (message),
++ dbus_message_get_path (message),
+ dbus_message_get_interface (message) ?
+ dbus_message_get_interface (message) :
+ "no interface",
+@@ -1606,12 +1609,30 @@
+ _dbus_connection_do_iteration (connection,
+ DBUS_ITERATION_DO_WRITING,
+ -1);
+-
++
+ /* If stuff is still queued up, be sure we wake up the main loop */
+ if (connection->n_outgoing > 0)
+ _dbus_connection_wakeup_mainloop (connection);
+ }
+
++static void
++_dbus_connection_send_preallocated_and_unlock (DBusConnection *connection,
++ DBusPreallocatedSend *preallocated,
++ DBusMessage *message,
++ dbus_uint32_t *client_serial)
++{
++ DBusDispatchStatus status;
++
++ _dbus_connection_send_preallocated_unlocked (connection,
++ preallocated,
++ message, client_serial);
++
++ status = _dbus_connection_get_dispatch_status_unlocked (connection);
++
++ /* this calls out to user code */
++ _dbus_connection_update_dispatch_status_and_unlock (connection, status);
++}
++
+ /**
+ * Sends a message using preallocated resources. This function cannot fail.
+ * It works identically to dbus_connection_send() in other respects.
+@@ -1642,10 +1663,9 @@
+ dbus_message_get_member (message) != NULL));
+
+ CONNECTION_LOCK (connection);
+- _dbus_connection_send_preallocated_unlocked (connection,
+- preallocated,
+- message, client_serial);
+- CONNECTION_UNLOCK (connection);
++ _dbus_connection_send_preallocated_and_unlock (connection,
++ preallocated,
++ message, client_serial);
+ }
+
+ static dbus_bool_t
+@@ -1670,6 +1690,27 @@
+ return TRUE;
+ }
+
++static dbus_bool_t
++_dbus_connection_send_and_unlock (DBusConnection *connection,
++ DBusMessage *message,
++ dbus_uint32_t *client_serial)
++{
++ DBusPreallocatedSend *preallocated;
++
++ _dbus_assert (connection != NULL);
++ _dbus_assert (message != NULL);
++
++ preallocated = _dbus_connection_preallocate_send_unlocked (connection);
++ if (preallocated == NULL)
++ return FALSE;
++
++ _dbus_connection_send_preallocated_and_unlock (connection,
++ preallocated,
++ message,
++ client_serial);
++ return TRUE;
++}
++
+ /**
+ * Adds a message to the outgoing message queue. Does not block to
+ * write the message to the network; that happens asynchronously. To
+@@ -1698,14 +1739,9 @@
+
+ CONNECTION_LOCK (connection);
+
+- if (!_dbus_connection_send_unlocked (connection, message, client_serial))
+- {
+- CONNECTION_UNLOCK (connection);
+- return FALSE;
+- }
+-
+- CONNECTION_UNLOCK (connection);
+- return TRUE;
++ return _dbus_connection_send_and_unlock (connection,
++ message,
++ client_serial);
+ }
+
+ static dbus_bool_t
+@@ -1784,6 +1820,7 @@
+ DBusMessage *reply;
+ DBusList *reply_link;
+ dbus_int32_t serial = -1;
++ DBusDispatchStatus status;
+
+ _dbus_return_val_if_fail (connection != NULL, FALSE);
+ _dbus_return_val_if_fail (message != NULL, FALSE);
+@@ -1845,8 +1882,11 @@
+ else
+ dbus_pending_call_unref (pending);
+
+- CONNECTION_UNLOCK (connection);
+-
++ status = _dbus_connection_get_dispatch_status_unlocked (connection);
++
++ /* this calls out to user code */
++ _dbus_connection_update_dispatch_status_and_unlock (connection, status);
++
+ return TRUE;
+
+ error:
+@@ -2256,9 +2296,10 @@
+ link = _dbus_list_pop_first_link (&connection->incoming_messages);
+ connection->n_incoming -= 1;
+
+- _dbus_verbose ("Message %p (%d %s %s '%s') removed from incoming queue %p, %d incoming\n",
++ _dbus_verbose ("Message %p (%d %s %s %s '%s') removed from incoming queue %p, %d incoming\n",
+ link->data,
+ dbus_message_get_type (link->data),
++ dbus_message_get_path (link->data),
+ dbus_message_get_interface (link->data) ?
+ dbus_message_get_interface (link->data) :
+ "no interface",
+diff -ur dbus-0.23/mono/Service.cs dbus-0.23.1/mono/Service.cs
+--- dbus-0.23/mono/Service.cs 2004-08-31 06:59:14.000000000 +0300
++++ dbus-0.23.1/mono/Service.cs 2005-02-11 19:52:47.000000000 +0200
+@@ -23,6 +23,9 @@
+ private static AssemblyBuilder proxyAssembly;
+ private ModuleBuilder module = null;
+
++ // Add a match for signals. FIXME: Can we filter the service?
++ private const string MatchRule = "type='signal'";
++
+ internal Service(string name, Connection connection)
+ {
+ this.name = name;
+@@ -47,6 +50,12 @@
+ this.local = true;
+ }
+
++ ~Service ()
++ {
++ if (this.filterCalled != null)
++ RemoveFilter ();
++ }
++
+ public static bool Exists(Connection connection, string name)
+ {
+ Error error = new Error();
+@@ -113,9 +122,17 @@
+ IntPtr.Zero))
+ throw new OutOfMemoryException();
+
+- // Add a match for signals. FIXME: Can we filter the service?
+- string rule = "type='signal'";
+- dbus_bus_add_match(connection.RawConnection, rule, IntPtr.Zero);
++ dbus_bus_add_match(connection.RawConnection, MatchRule, IntPtr.Zero);
++ }
++
++ private void RemoveFilter()
++ {
++ dbus_connection_remove_filter (Connection.RawConnection,
++ this.filterCalled,
++ IntPtr.Zero);
++ this.filterCalled = null;
++
++ dbus_bus_remove_match (connection.RawConnection, MatchRule, IntPtr.Zero);
+ }
+
+ private int Service_FilterCalled(IntPtr rawConnection,
+@@ -200,9 +217,19 @@
+ IntPtr freeData);
+
+ [DllImport("dbus-1")]
++ private extern static void dbus_connection_remove_filter(IntPtr rawConnection,
++ DBusHandleMessageFunction filter,
++ IntPtr userData);
++
++ [DllImport("dbus-1")]
+ private extern static void dbus_bus_add_match(IntPtr rawConnection,
+ string rule,
+ IntPtr erro);
+
++ [DllImport("dbus-1")]
++ private extern static void dbus_bus_remove_match(IntPtr rawConnection,
++ string rule,
++ IntPtr erro);
++
+ }
+ }
diff --git a/packages/dbus/dbus/config.diff b/packages/dbus/dbus/config.diff
index e69de29bb2..b67c8d72fe 100644
--- a/packages/dbus/dbus/config.diff
+++ b/packages/dbus/dbus/config.diff
@@ -0,0 +1,17 @@
+Only in /home/kihamala/svn/dbus/bus: .svn
+diff -ur bus/session.conf.in /home/kihamala/svn/dbus/bus/session.conf.in
+--- bus/session.conf.in 2004-10-25 21:48:58.000000000 +0300
++++ /home/kihamala/svn/dbus/bus/session.conf.in 2005-02-15 11:03:26.000000000 +0200
+@@ -8,9 +8,10 @@
+ <!-- Our well-known bus type, don't change this -->
+ <type>session</type>
+
+- <listen>unix:tmpdir=@DBUS_SESSION_SOCKET_DIR@</listen>
++ <listen>unix:path=/tmp/session_bus_socket</listen>
+
+- <servicedir>@EXPANDED_DATADIR@/dbus-1/services</servicedir>
++ <servicedir>@EXPANDED_LIBDIR@/dbus-1.0/services</servicedir>
++ <!-- <servicedir>/var/lib/install/usr/lib/dbus-1.0/services</servicedir> -->
+
+ <policy context="default">
+ <!-- Allow everything to be sent -->
diff --git a/packages/dbus/dbus/cross.patch b/packages/dbus/dbus/cross.patch
index e69de29bb2..6d1d9d8e7e 100644
--- a/packages/dbus/dbus/cross.patch
+++ b/packages/dbus/dbus/cross.patch
@@ -0,0 +1,15 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- dbus-0.20/configure.in~cross
++++ dbus-0.20/configure.in
+@@ -466,6 +466,7 @@
+ exit (0);
+ ]])],
+ [have_abstract_sockets=yes],
++ [have_abstract_sockets=no],
+ [have_abstract_sockets=no])
+ AC_LANG_POP(C)
+ AC_MSG_RESULT($have_abstract_sockets)
diff --git a/packages/dbus/dbus/dbus-1.init b/packages/dbus/dbus/dbus-1.init
index e69de29bb2..118b801da7 100644
--- a/packages/dbus/dbus/dbus-1.init
+++ b/packages/dbus/dbus/dbus-1.init
@@ -0,0 +1,57 @@
+#! /bin/sh
+# -*- coding: iso8859-1 -*-
+# Debian init.d script for D-BUS
+# Copyright (c) 2003 Colin Walters <walters@debian.org>
+
+set -e
+
+DAEMON=/usr/bin/dbus-daemon-1
+NAME=dbus-1
+DAEMONUSER=messagebus
+PIDFILE=/var/run/dbus/pid
+DESC="system message bus"
+
+test -x $DAEMON || exit 0
+
+# Source defaults file; edit that file to configure this script.
+ENABLED=1
+PARAMS=""
+if [ -e /etc/default/dbus-1 ]; then
+ . /etc/default/dbus-1
+fi
+
+test "$ENABLED" != "0" || exit 0
+
+case "$1" in
+ start)
+ echo -n "Starting $DESC: "
+ if [ ! -d /var/run/dbus ]; then
+ mkdir /var/run/dbus
+ chown $DAEMONUSER:$DAEMONUSER /var/run/dbus
+ fi
+ start-stop-daemon -S \
+ -u $DAEMONUSER -x $DAEMON -- --system $PARAMS
+ echo "$NAME."
+ ;;
+ stop)
+ echo -n "Stopping $DESC: "
+ start-stop-daemon -K \
+ -u $DAEMONUSER -x $DAEMON -- --system $PARAMS
+ echo "$NAME."
+ ;;
+ restart|force-reload)
+ echo -n "Restarting $DESC: "
+ start-stop-daemon -K \
+ -u $DAEMONUSER -x $DAEMON -- --system $PARAMS
+ sleep 1
+ start-stop-daemon -S \
+ -u $DAEMONUSER -x $DAEMON -- --system $PARAMS
+ echo "$NAME."
+ ;;
+ *)
+ echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/packages/dbus/dbus/dbus-monitor.patch b/packages/dbus/dbus/dbus-monitor.patch
index e69de29bb2..c2f90c885b 100644
--- a/packages/dbus/dbus/dbus-monitor.patch
+++ b/packages/dbus/dbus/dbus-monitor.patch
@@ -0,0 +1,150 @@
+diff -urN dbus-0.22.orig/tools/dbus-monitor.1 dbus-0.22/tools/dbus-monitor.1
+--- dbus-0.22.orig/tools/dbus-monitor.1 2004-10-10 20:47:19.906823680 +1000
++++ dbus-0.22/tools/dbus-monitor.1 2004-10-10 20:47:27.791625008 +1000
+@@ -9,6 +9,7 @@
+ .PP
+ .B dbus-monitor
+ [\-\-system | \-\-session]
++[watch expressions]
+
+ .SH DESCRIPTION
+
+@@ -25,6 +26,11 @@
+ monitor the system or session buses respectively. If neither is
+ specified, \fIdbus-monitor\fP monitors the session bus.
+
++.PP
++In order to get \fIdbus-monitor\fP to see the messages you are interested
++in, you should specify a set of watch expressions as you would expect to
++be passed to the \fIdbus_bus_add_watch\fP function.
++
+ .PP
+ The message bus configuration may keep \fIdbus-monitor\fP from seeing
+ all messages, especially if you run the monitor as a non-root user.
+@@ -37,6 +43,15 @@
+ .I "--session"
+ Monitor the session message bus. (This is the default.)
+
++.SH EXAMPLE
++Here is an example of using dbus-monitor to watch for the gnome typing
++monitor to say things
++.nf
++
++ dbus-monitor "type='signal',sender='org.gnome.TypingMonitor',interface='org.gnome.TypingMonitor'"
++
++.fi
++
+ .SH AUTHOR
+ dbus-monitor was written by Philip Blundell.
+
+--- dbus-0.22-1ubuntu1/tools/dbus-monitor.c 2004-08-10 13:03:37.000000000 +1000
++++ dbus-0.22/tools/dbus-monitor.c 2004-10-10 21:38:08.532362152 +1000
+@@ -45,7 +45,7 @@
+ static void
+ usage (char *name, int ecode)
+ {
+- fprintf (stderr, "Usage: %s [--system | --session]\n", name);
++ fprintf (stderr, "Usage: %s [--system | --session] [watch expressions]\n", name);
+ exit (ecode);
+ }
+
+@@ -56,8 +56,8 @@
+ DBusError error;
+ DBusBusType type = DBUS_BUS_SESSION;
+ GMainLoop *loop;
+- int i;
+-
++ int i = 0, j = 0, numFilters = 0;
++ char **filters = NULL;
+ for (i = 1; i < argc; i++)
+ {
+ char *arg = argv[i];
+@@ -69,14 +69,18 @@
+ else if (!strcmp (arg, "--help"))
+ usage (argv[0], 0);
+ else if (!strcmp (arg, "--"))
+- break;
++ continue;
+ else if (arg[0] == '-')
+ usage (argv[0], 1);
++ else {
++ numFilters++;
++ filters = (char **)realloc(filters, numFilters * sizeof(char *));
++ filters[j] = (char *)malloc((strlen(arg) + 1) * sizeof(char *));
++ snprintf(filters[j], strlen(arg) + 1, "%s", arg);
++ j++;
++ }
+ }
+
+- if (argc > 2)
+- usage (argv[0], 1);
+-
+ loop = g_main_loop_new (NULL, FALSE);
+
+ dbus_error_init (&error);
+@@ -92,26 +102,45 @@
+
+ dbus_connection_setup_with_g_main (connection, NULL);
+
+- dbus_bus_add_match (connection,
+- "type='signal'",
+- &error);
+- if (dbus_error_is_set (&error))
+- goto lose;
+- dbus_bus_add_match (connection,
+- "type='method_call'",
+- &error);
+- if (dbus_error_is_set (&error))
+- goto lose;
+- dbus_bus_add_match (connection,
+- "type='method_return'",
+- &error);
+- if (dbus_error_is_set (&error))
+- goto lose;
+- dbus_bus_add_match (connection,
+- "type='error'",
+- &error);
+- if (dbus_error_is_set (&error))
+- goto lose;
++ if (numFilters)
++ {
++ for (i = 0; i < j; i++)
++ {
++ dbus_bus_add_match (connection, filters[i], &error);
++ if (dbus_error_is_set (&error))
++ {
++ fprintf (stderr, "Failed to setup match \"%s\": %s\n",
++ filters[i], error.message);
++ dbus_error_free (&error);
++ exit (1);
++ }
++ free(filters[i]);
++ }
++ }
++ else
++ {
++ dbus_bus_add_match (connection,
++ "type='signal'",
++ &error);
++ if (dbus_error_is_set (&error))
++ goto lose;
++ dbus_bus_add_match (connection,
++ "type='method_call'",
++ &error);
++ if (dbus_error_is_set (&error))
++ goto lose;
++ dbus_bus_add_match (connection,
++ "type='method_return'",
++ &error);
++ if (dbus_error_is_set (&error))
++ goto lose;
++ dbus_bus_add_match (connection,
++ "type='error'",
++ &error);
++ if (dbus_error_is_set (&error))
++ goto lose;
++ }
++
+ if (!dbus_connection_add_filter (connection, filter_func, NULL, NULL)) {
+ fprintf (stderr, "Couldn't add filter!\n");
+ exit (1);
diff --git a/packages/dbus/dbus/dbus-quiesce-startup-errors.patch b/packages/dbus/dbus/dbus-quiesce-startup-errors.patch
index e69de29bb2..ba5142af2f 100644
--- a/packages/dbus/dbus/dbus-quiesce-startup-errors.patch
+++ b/packages/dbus/dbus/dbus-quiesce-startup-errors.patch
@@ -0,0 +1,23 @@
+--- dbus-0.20-virgin-patches/bus/config-parser.c 2003-10-14 21:30:21.000000000 +0100
++++ dbus-0.20/bus/config-parser.c 2004-02-10 00:40:05.000000000 +0000
+@@ -1710,8 +1710,18 @@
+ {
+ if (!include_file (parser, &full_path, TRUE, error))
+ {
+- _dbus_string_free (&full_path);
+- goto failed;
++ /* Debian patch to skip malformed /etc/dbus-1/system.d entries */
++ /*
++ * _dbus_string_free (&full_path);
++ * goto failed;
++ */
++ if (dbus_error_is_set (error))
++ {
++ _dbus_warn("\nEncountered error '%s' while parsing '%s'\n",
++ error->message,
++ _dbus_string_get_const_data(&full_path));
++ dbus_error_free (error);
++ }
+ }
+ }
+
diff --git a/packages/dbus/dbus/dbussend.patch b/packages/dbus/dbus/dbussend.patch
index e69de29bb2..49a251bbb0 100644
--- a/packages/dbus/dbus/dbussend.patch
+++ b/packages/dbus/dbus/dbussend.patch
@@ -0,0 +1,399 @@
+Index: dbus-send.1
+===================================================================
+--- tools/dbus-send.1 (revision 691)
++++ tools/dbus-send.1 (working copy)
+@@ -36,8 +36,8 @@
+ specified. Following arguments, if any, are the message contents
+ (message arguments). These are given as a type name, a colon, and
+ then the value of the argument. The possible type names are: string,
+-int32, uint32, double, byte, boolean. (D-BUS supports more types than
+-these, but \fIdbus-send\fP currently does not.)
++int32, uint32, double, byte, boolean, array. (D-BUS supports more types
++than these, but \fIdbus-send\fP currently does not.)
+
+ .PP
+ Here is an example invocation:
+@@ -46,7 +46,8 @@
+ dbus-send \-\-dest='org.freedesktop.ExampleService' \\
+ /org/freedesktop/sample/object/name \\
+ org.freedesktop.ExampleInterface.ExampleMethod \\
+- int32:47 string:'hello world' double:65.32
++ int32:47 string:'hello world' double:65.32 \\
++ array:byte[0,1,2]
+
+ .fi
+
+Index: dbus-print-message.c
+===================================================================
+--- tools/dbus-print-message.c (revision 691)
++++ tools/dbus-print-message.c (working copy)
+@@ -39,6 +39,78 @@
+ }
+ }
+
++static void
++iterate (DBusMessageIter* iter, int entry_type)
++{
++ do
++ {
++ char *str;
++ dbus_uint32_t uint32;
++ dbus_int32_t int32;
++ double d;
++ unsigned char byte;
++ dbus_bool_t boolean;
++ int type = dbus_message_iter_get_arg_type (iter);
++
++ DBusMessageIter array_iter;
++ int array_type = DBUS_TYPE_INVALID;
++
++ if (type == DBUS_TYPE_INVALID)
++ {
++ if (entry_type == DBUS_TYPE_INVALID)
++ break;
++ else
++ type == entry_type;
++ }
++
++ switch (type)
++ {
++ case DBUS_TYPE_STRING:
++ str = dbus_message_iter_get_string (iter);
++ printf ("string:%s\n", str);
++ break;
++
++ case DBUS_TYPE_INT32:
++ int32 = dbus_message_iter_get_int32 (iter);
++ printf ("int32:%d\n", int32);
++ break;
++
++ case DBUS_TYPE_UINT32:
++ uint32 = dbus_message_iter_get_uint32 (iter);
++ printf ("int32:%u\n", uint32);
++ break;
++
++ case DBUS_TYPE_DOUBLE:
++ d = dbus_message_iter_get_double (iter);
++ printf ("double:%f\n", d);
++ break;
++
++ case DBUS_TYPE_BYTE:
++ byte = dbus_message_iter_get_byte (iter);
++ printf ("byte:%d\n", byte);
++ break;
++
++ case DBUS_TYPE_BOOLEAN:
++ boolean = dbus_message_iter_get_boolean (iter);
++ printf ("boolean:%s\n", boolean ? "true" : "false");
++ break;
++
++ case DBUS_TYPE_ARRAY:
++ dbus_message_iter_init_array_iterator (iter,
++ &array_iter,
++ &array_type);
++ printf ("array[\n");
++ iterate (&array_iter, array_type);
++ printf ("]\n");
++ break;
++
++ default:
++ printf ("(unknown arg type %d)\n", type);
++ break;
++ }
++ } while (dbus_message_iter_next (iter));
++}
++
+ void
+ print_message (DBusMessage *message)
+ {
+@@ -81,55 +153,6 @@
+
+ dbus_message_iter_init (message, &iter);
+
+- do
+- {
+- int type = dbus_message_iter_get_arg_type (&iter);
+- char *str;
+- dbus_uint32_t uint32;
+- dbus_int32_t int32;
+- double d;
+- unsigned char byte;
+- dbus_bool_t boolean;
+-
+- if (type == DBUS_TYPE_INVALID)
+- break;
+-
+- switch (type)
+- {
+- case DBUS_TYPE_STRING:
+- str = dbus_message_iter_get_string (&iter);
+- printf ("string:%s\n", str);
+- break;
+-
+- case DBUS_TYPE_INT32:
+- int32 = dbus_message_iter_get_int32 (&iter);
+- printf ("int32:%d\n", int32);
+- break;
+-
+- case DBUS_TYPE_UINT32:
+- uint32 = dbus_message_iter_get_uint32 (&iter);
+- printf ("int32:%u\n", uint32);
+- break;
+-
+- case DBUS_TYPE_DOUBLE:
+- d = dbus_message_iter_get_double (&iter);
+- printf ("double:%f\n", d);
+- break;
+-
+- case DBUS_TYPE_BYTE:
+- byte = dbus_message_iter_get_byte (&iter);
+- printf ("byte:%d\n", byte);
+- break;
+-
+- case DBUS_TYPE_BOOLEAN:
+- boolean = dbus_message_iter_get_boolean (&iter);
+- printf ("boolean:%s\n", boolean ? "true" : "false");
+- break;
+-
+- default:
+- printf ("(unknown arg type %d)\n", type);
+- break;
+- }
+- } while (dbus_message_iter_next (&iter));
++ iterate (&iter, DBUS_TYPE_INVALID);
+ }
+
+Index: dbus-send.c
+===================================================================
+--- tools/dbus-send.c (revision 691)
++++ tools/dbus-send.c (working copy)
+@@ -34,6 +34,146 @@
+ exit (ecode);
+ }
+
++
++static int
++get_type (char **argv, char *arg)
++{
++ int type;
++
++ if (arg[0] == 0 || !strcmp (arg, "string"))
++ type = DBUS_TYPE_STRING;
++ else if (!strcmp (arg, "int32"))
++ type = DBUS_TYPE_INT32;
++ else if (!strcmp (arg, "uint32"))
++ type = DBUS_TYPE_UINT32;
++ else if (!strcmp (arg, "double"))
++ type = DBUS_TYPE_DOUBLE;
++ else if (!strcmp (arg, "byte"))
++ type = DBUS_TYPE_BYTE;
++ else if (!strcmp (arg, "boolean"))
++ type = DBUS_TYPE_BOOLEAN;
++ else if (!strcmp (arg, "array"))
++ type = DBUS_TYPE_ARRAY;
++ else
++ {
++ fprintf (stderr, "%s: Unknown type \"%s\"\n", argv[0], arg);
++ exit (1);
++ }
++
++ return type;
++}
++
++
++static void
++append (char **argv, char *arg, char *c, DBusMessageIter *iter)
++{
++ int type, atype = 0;
++ dbus_uint32_t uint32;
++ dbus_int32_t int32;
++ double d;
++ unsigned char byte;
++ DBusMessageIter array_iter;
++ int end_found = 0;
++ char *next;
++
++ /* FIXME - we are ignoring OOM returns on all these functions */
++
++ type = get_type(argv, arg);
++ if (type == DBUS_TYPE_ARRAY)
++ {
++ arg = c;
++ c = strchr (c, '[');
++ if (c == NULL)
++ {
++ fprintf (stderr, "%s: Data item \"%s\" is badly formed\n", argv[0], arg);
++ exit (1);
++ }
++
++ if (strchr(c, ']') == NULL)
++ {
++ fprintf (stderr, "%s: Data item \"%s\" is badly formed\n", argv[0], arg);
++ exit (1);
++ }
++
++ *(c++) = 0;
++
++ atype = get_type(argv, arg);
++ }
++
++
++ switch (type)
++ {
++ case DBUS_TYPE_BYTE:
++ byte = strtoul (c, NULL, 0);
++ dbus_message_iter_append_byte (iter, byte);
++ break;
++
++ case DBUS_TYPE_DOUBLE:
++ d = strtod (c, NULL);
++ dbus_message_iter_append_double (iter, d);
++ break;
++
++ case DBUS_TYPE_INT32:
++ int32 = strtol (c, NULL, 0);
++ dbus_message_iter_append_int32 (iter, int32);
++ break;
++
++ case DBUS_TYPE_UINT32:
++ uint32 = strtoul (c, NULL, 0);
++ dbus_message_iter_append_uint32 (iter, uint32);
++ break;
++
++ case DBUS_TYPE_STRING:
++ dbus_message_iter_append_string (iter, c);
++ break;
++
++ case DBUS_TYPE_BOOLEAN:
++ if (strcmp(c, "true") == 0)
++ dbus_message_iter_append_boolean (iter, TRUE);
++ else if (strcmp(c, "false") == 0)
++ dbus_message_iter_append_boolean (iter, FALSE);
++ else
++ {
++ fprintf (stderr, "%s: Expected \"true\" or \"false\" instead of \"%s\"\n", argv[0], c);
++ exit (1);
++ }
++ break;
++
++ case DBUS_TYPE_ARRAY:
++ /* Decompose parameters and put it as array */
++ dbus_message_iter_append_array(iter, &array_iter, atype);
++
++ while(!end_found)
++ {
++ next = strchr(c, ',');
++ if (next == NULL)
++ {
++ next = strchr(c, ']');
++
++ if (next != NULL)
++ next[0] = 0;
++ else
++ break;
++
++ end_found = 1;
++ }
++ else
++ {
++ next[0] = 0;
++ next++;
++ }
++
++ append (argv, arg, c, &array_iter);
++ c = next;
++ }
++ break;
++
++ default:
++ fprintf (stderr, "%s: Unsupported data type\n", argv[0]);
++ exit (1);
++ }
++}
++
+ int
+ main (int argc, char *argv[])
+ {
+@@ -174,12 +314,7 @@
+ {
+ char *arg;
+ char *c;
+- int type;
+- dbus_uint32_t uint32;
+- dbus_int32_t int32;