summaryrefslogtreecommitdiff
path: root/recipes/dbus
diff options
context:
space:
mode:
authorMichael 'Mickey' Lauer <mickey@vanille-media.de>2009-08-07 22:07:39 +0000
committerMichael 'Mickey' Lauer <mickey@vanille-media.de>2009-08-07 22:09:15 +0000
commit2895b2dd1ef233b3844744f9844b1f691b039510 (patch)
treea7e6c6f41c716771e3a8f4d2d35d505bfa9cb980 /recipes/dbus
parentbfaa176eefb3239f9c043e29907e55b54ee227b0 (diff)
dbus-glib: add 0.82
Diffstat (limited to 'recipes/dbus')
-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.inc36
-rw-r--r--recipes/dbus/dbus-glib_0.82.bb2
5 files changed, 175 insertions, 0 deletions
diff --git a/recipes/dbus/dbus-glib-0.82/fix-async-dbus.patch b/recipes/dbus/dbus-glib-0.82/fix-async-dbus.patch
new file mode 100644
index 0000000000..0cea12431f
--- /dev/null
+++ b/recipes/dbus/dbus-glib-0.82/fix-async-dbus.patch
@@ -0,0 +1,115 @@
+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
new file mode 100644
index 0000000000..483153db74
--- /dev/null
+++ b/recipes/dbus/dbus-glib-0.82/no-examples.patch
@@ -0,0 +1,8 @@
+--- 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
new file mode 100644
index 0000000000..f667c06879
--- /dev/null
+++ b/recipes/dbus/dbus-glib-0.82/no-introspect.patch
@@ -0,0 +1,14 @@
+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.inc b/recipes/dbus/dbus-glib.inc
new file mode 100644
index 0000000000..ced9b37b8b
--- /dev/null
+++ b/recipes/dbus/dbus-glib.inc
@@ -0,0 +1,36 @@
+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 = "r0"
+
+SRC_URI = "\
+ http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-${PV}.tar.gz \
+ file://no-introspect.patch;patch=1 \
+ file://no-examples.patch;patch=1 \
+"
+
+inherit autotools pkgconfig gettext
+
+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
+}
+
+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 \
+ ${bindir}/dbus-binding-tool \
+"
diff --git a/recipes/dbus/dbus-glib_0.82.bb b/recipes/dbus/dbus-glib_0.82.bb
new file mode 100644
index 0000000000..f5790dcd0e
--- /dev/null
+++ b/recipes/dbus/dbus-glib_0.82.bb
@@ -0,0 +1,2 @@
+require dbus-glib.inc
+PR = "${INC_PR}.0"