summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--extra/dbus-glib/.footprint.i6864
-rw-r--r--extra/dbus-glib/.footprint.x86_644
-rw-r--r--extra/dbus-glib/.md5sum.i6863
-rw-r--r--extra/dbus-glib/.md5sum.x86_643
-rwxr-xr-xextra/dbus-glib/Pkgfile15
-rw-r--r--extra/dbus-glib/bugfix-in-marshalling-objects-as-object-paths.patch40
-rw-r--r--extra/dbus-glib/registrations-test-only-listen-for-signals-not-all-messages.patch33
-rw-r--r--extra/dbus-glib/regression-test-for-fd.o.patch168
8 files changed, 261 insertions, 9 deletions
diff --git a/extra/dbus-glib/.footprint.i686 b/extra/dbus-glib/.footprint.i686
index 541599a27..517157b04 100644
--- a/extra/dbus-glib/.footprint.i686
+++ b/extra/dbus-glib/.footprint.i686
@@ -13,14 +13,14 @@ drwxr-xr-x root/root usr/include/dbus-1.0/dbus/
-rw-r--r-- root/root usr/include/dbus-1.0/dbus/dbus-gtype-specialized.h
-rw-r--r-- root/root usr/include/dbus-1.0/dbus/dbus-gvalue-parse-variant.h
drwxr-xr-x root/root usr/lib/
+-rwxr-xr-x root/root usr/lib/dbus-bash-completion-helper
+-rw-r--r-- root/root usr/lib/libdbus-glib-1.a
-rwxr-xr-x root/root usr/lib/libdbus-glib-1.la
lrwxrwxrwx root/root usr/lib/libdbus-glib-1.so -> libdbus-glib-1.so.2.2.0
lrwxrwxrwx root/root usr/lib/libdbus-glib-1.so.2 -> libdbus-glib-1.so.2.2.0
-rwxr-xr-x root/root usr/lib/libdbus-glib-1.so.2.2.0
drwxr-xr-x root/root usr/lib/pkgconfig/
-rw-r--r-- root/root usr/lib/pkgconfig/dbus-glib-1.pc
-drwxr-xr-x root/root usr/libexec/
--rwxr-xr-x root/root usr/libexec/dbus-bash-completion-helper
drwxr-xr-x root/root usr/share/
drwxr-xr-x root/root usr/share/man/
drwxr-xr-x root/root usr/share/man/man1/
diff --git a/extra/dbus-glib/.footprint.x86_64 b/extra/dbus-glib/.footprint.x86_64
index 541599a27..517157b04 100644
--- a/extra/dbus-glib/.footprint.x86_64
+++ b/extra/dbus-glib/.footprint.x86_64
@@ -13,14 +13,14 @@ drwxr-xr-x root/root usr/include/dbus-1.0/dbus/
-rw-r--r-- root/root usr/include/dbus-1.0/dbus/dbus-gtype-specialized.h
-rw-r--r-- root/root usr/include/dbus-1.0/dbus/dbus-gvalue-parse-variant.h
drwxr-xr-x root/root usr/lib/
+-rwxr-xr-x root/root usr/lib/dbus-bash-completion-helper
+-rw-r--r-- root/root usr/lib/libdbus-glib-1.a
-rwxr-xr-x root/root usr/lib/libdbus-glib-1.la
lrwxrwxrwx root/root usr/lib/libdbus-glib-1.so -> libdbus-glib-1.so.2.2.0
lrwxrwxrwx root/root usr/lib/libdbus-glib-1.so.2 -> libdbus-glib-1.so.2.2.0
-rwxr-xr-x root/root usr/lib/libdbus-glib-1.so.2.2.0
drwxr-xr-x root/root usr/lib/pkgconfig/
-rw-r--r-- root/root usr/lib/pkgconfig/dbus-glib-1.pc
-drwxr-xr-x root/root usr/libexec/
--rwxr-xr-x root/root usr/libexec/dbus-bash-completion-helper
drwxr-xr-x root/root usr/share/
drwxr-xr-x root/root usr/share/man/
drwxr-xr-x root/root usr/share/man/man1/
diff --git a/extra/dbus-glib/.md5sum.i686 b/extra/dbus-glib/.md5sum.i686
index e36b43666..03780d776 100644
--- a/extra/dbus-glib/.md5sum.i686
+++ b/extra/dbus-glib/.md5sum.i686
@@ -1 +1,4 @@
+2a3598342dd25722d452e7beaf21b5f3 bugfix-in-marshalling-objects-as-object-paths.patch
e1f1506a6f4941e67bffd614b1ad5af6 dbus-glib-0.94.tar.gz
+f7456df33215cdc290afa2aac19597fb registrations-test-only-listen-for-signals-not-all-messages.patch
+ea88b12a67991dae3394d328f50d2f44 regression-test-for-fd.o.patch
diff --git a/extra/dbus-glib/.md5sum.x86_64 b/extra/dbus-glib/.md5sum.x86_64
index e36b43666..03780d776 100644
--- a/extra/dbus-glib/.md5sum.x86_64
+++ b/extra/dbus-glib/.md5sum.x86_64
@@ -1 +1,4 @@
+2a3598342dd25722d452e7beaf21b5f3 bugfix-in-marshalling-objects-as-object-paths.patch
e1f1506a6f4941e67bffd614b1ad5af6 dbus-glib-0.94.tar.gz
+f7456df33215cdc290afa2aac19597fb registrations-test-only-listen-for-signals-not-all-messages.patch
+ea88b12a67991dae3394d328f50d2f44 regression-test-for-fd.o.patch
diff --git a/extra/dbus-glib/Pkgfile b/extra/dbus-glib/Pkgfile
index dd50401c2..0a2b03063 100755
--- a/extra/dbus-glib/Pkgfile
+++ b/extra/dbus-glib/Pkgfile
@@ -8,19 +8,24 @@
name=dbus-glib
version=0.94
release=1
-source=( http://dbus.freedesktop.org/releases/$name/$name-$version.tar.gz)
-
+source=(http://dbus.freedesktop.org/releases/$name/$name-$version.tar.gz
+ bugfix-in-marshalling-objects-as-object-paths.patch
+ registrations-test-only-listen-for-signals-not-all-messages.patch
+ regression-test-for-fd.o.patch)
build() {
cd $name-$version
+ patch -p1 < ../bugfix-in-marshalling-objects-as-object-paths.patch
+ patch -p1 < ../registrations-test-only-listen-for-signals-not-all-messages.patch
+ patch -p1 < ../regression-test-for-fd.o.patch
+
./configure --prefix=/usr \
--mandir=/usr/share/man \
- --infodir=/usr/share/info \
--sysconfdir=/etc \
--localstatedir=/var \
- --enable-static=no
+ --libexecdir=/usr/lib \
+ --enable-bash-completion
make
make DESTDIR=$PKG install
rm -rf $PKG/usr/share/gtk-doc
}
-
diff --git a/extra/dbus-glib/bugfix-in-marshalling-objects-as-object-paths.patch b/extra/dbus-glib/bugfix-in-marshalling-objects-as-object-paths.patch
new file mode 100644
index 000000000..246b85550
--- /dev/null
+++ b/extra/dbus-glib/bugfix-in-marshalling-objects-as-object-paths.patch
@@ -0,0 +1,40 @@
+From 3e0828f57c3925ea9b63d22ab82d991a0fea0536 Mon Sep 17 00:00:00 2001
+From: Simon McVittie <simon.mcvittie@collabora.co.uk>
+Date: Thu, 02 Jun 2011 12:49:51 +0000
+Subject: Fix regression in marshalling objects as object paths
+
+This regressed while fixing fd.o #36811. NetworkManager apparently uses
+this idiom.
+
+Bug: https://bugs.freedesktop.org/show_bug.cgi?id=37852
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=628890
+Tested-by: Michael Biebl <biebl@debian.org>
+Reviewed-by: Colin Walters <walters@verbum.org>
+---
+diff --git a/dbus/dbus-gobject.c b/dbus/dbus-gobject.c
+index 3b0bd17..7ee0b4f 100644
+--- a/dbus/dbus-gobject.c
++++ b/dbus/dbus-gobject.c
+@@ -3049,16 +3049,16 @@ out:
+ const char *
+ _dbus_gobject_get_path (GObject *obj)
+ {
+- GSList *registrations;
++ ObjectExport *oe;
+ ObjectRegistration *o;
+
+- registrations = g_object_get_data (obj, "dbus_glib_object_registrations");
++ oe = g_object_get_data (obj, "dbus_glib_object_registrations");
+
+- if (registrations == NULL)
++ if (oe == NULL || oe->registrations == NULL)
+ return NULL;
+
+ /* First one to have been registered wins */
+- o = registrations->data;
++ o = oe->registrations->data;
+
+ return o->object_path;
+ }
+--
+cgit v0.8.3-6-g21f6
diff --git a/extra/dbus-glib/registrations-test-only-listen-for-signals-not-all-messages.patch b/extra/dbus-glib/registrations-test-only-listen-for-signals-not-all-messages.patch
new file mode 100644
index 000000000..a12e42253
--- /dev/null
+++ b/extra/dbus-glib/registrations-test-only-listen-for-signals-not-all-messages.patch
@@ -0,0 +1,33 @@
+From f534276eb20d8035566a206d1e38fd651a1eeab9 Mon Sep 17 00:00:00 2001
+From: Simon McVittie <simon.mcvittie@collabora.co.uk>
+Date: Tue, 31 May 2011 16:03:59 +0000
+Subject: registrations test: only listen for signals, not all messages
+
+Otherwise, we'd reply with an error to messages not intended for us.
+
+Reviewed-by: Colin Walters <walters@verbum.org>
+---
+diff --git a/test/core/registrations.c b/test/core/registrations.c
+index 8da8d14..a316313 100644
+--- a/test/core/registrations.c
++++ b/test/core/registrations.c
+@@ -232,7 +232,7 @@ test_twice (Fixture *f,
+ f->object);
+
+ dbus_bus_add_match (dbus_g_connection_get_connection (f->bus),
+- "", NULL);
++ "type='signal'", NULL);
+ mem = dbus_connection_add_filter (dbus_g_connection_get_connection (f->bus),
+ frobnicate_cb, f, NULL);
+ g_assert (mem);
+@@ -269,7 +269,7 @@ test_clean_slate (Fixture *f,
+ dbus_bool_t mem;
+
+ dbus_bus_add_match (dbus_g_connection_get_connection (f->bus),
+- "", NULL);
++ "type='signal'", NULL);
+ mem = dbus_connection_add_filter (dbus_g_connection_get_connection (f->bus),
+ frobnicate_cb, f, NULL);
+ g_assert (mem);
+--
+cgit v0.8.3-6-g21f6
diff --git a/extra/dbus-glib/regression-test-for-fd.o.patch b/extra/dbus-glib/regression-test-for-fd.o.patch
new file mode 100644
index 000000000..a65e8a444
--- /dev/null
+++ b/extra/dbus-glib/regression-test-for-fd.o.patch
@@ -0,0 +1,168 @@
+From 2a85bd434e6d8dba9615a53d288a0a72d6b5e0cf Mon Sep 17 00:00:00 2001
+From: Simon McVittie <simon.mcvittie@collabora.co.uk>
+Date: Thu, 02 Jun 2011 12:50:20 +0000
+Subject: Regression test for fd.o #37852
+
+Bug: https://bugs.freedesktop.org/show_bug.cgi?id=37852
+Reviewed-by: Colin Walters <walters@verbum.org>
+---
+diff --git a/test/core/my-object.c b/test/core/my-object.c
+index ec0e301..0ff5562 100644
+--- a/test/core/my-object.c
++++ b/test/core/my-object.c
+@@ -23,6 +23,7 @@ enum
+ enum
+ {
+ FROBNICATE,
++ OBJECTIFIED,
+ SIG0,
+ SIG1,
+ SIG2,
+@@ -171,6 +172,15 @@ my_object_class_init (MyObjectClass *mobject_class)
+ g_cclosure_marshal_VOID__INT,
+ G_TYPE_NONE, 1, G_TYPE_INT);
+
++ signals[OBJECTIFIED] =
++ g_signal_new ("objectified",
++ G_OBJECT_CLASS_TYPE (mobject_class),
++ G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
++ 0,
++ NULL, NULL,
++ g_cclosure_marshal_VOID__OBJECT,
++ G_TYPE_NONE, 1, G_TYPE_OBJECT);
++
+ signals[SIG0] =
+ g_signal_new ("sig0",
+ G_OBJECT_CLASS_TYPE (mobject_class),
+@@ -866,3 +876,10 @@ my_object_terminate (MyObject *obj, GError **error)
+ g_main_loop_quit (loop);
+ return TRUE;
+ }
++
++void
++my_object_emit_objectified (MyObject *obj,
++ GObject *other)
++{
++ g_signal_emit (obj, signals[OBJECTIFIED], 0, other);
++}
+diff --git a/test/core/my-object.h b/test/core/my-object.h
+index 657140d..3657aa0 100644
+--- a/test/core/my-object.h
++++ b/test/core/my-object.h
+@@ -116,4 +116,6 @@ void my_object_async_throw_error (MyObject *obj, DBusGMethodInvocation *context)
+
+ void my_object_unsafe_disable_legacy_property_access (MyObject *obj);
+
++void my_object_emit_objectified (MyObject *obj, GObject *other);
++
+ #endif
+diff --git a/test/core/registrations.c b/test/core/registrations.c
+index a316313..d46b15a 100644
+--- a/test/core/registrations.c
++++ b/test/core/registrations.c
+@@ -50,6 +50,7 @@ typedef struct {
+ GObject *object;
+ DBusMessage *frobnicate1_message;
+ DBusMessage *frobnicate2_message;
++ gboolean received_objectified;
+ } Fixture;
+
+ static void
+@@ -324,6 +325,71 @@ test_clean_slate (Fixture *f,
+ f->frobnicate2_message = NULL;
+ }
+
++static DBusHandlerResult
++objectified_cb (DBusConnection *conn,
++ DBusMessage *message,
++ void *user_data)
++{
++ Fixture *f = user_data;
++
++ if (dbus_message_is_signal (message,
++ "org.freedesktop.DBus.GLib.Tests.MyObject", "Objectified"))
++ {
++ const char *sender = dbus_message_get_sender (message);
++ const char *path = dbus_message_get_path (message);
++ dbus_bool_t ok;
++ DBusError e;
++
++ dbus_error_init (&e);
++
++ g_assert (sender != NULL);
++ g_assert (path != NULL);
++
++ g_assert_cmpstr (path, ==, "/foo");
++ g_assert_cmpstr (sender, ==, dbus_bus_get_unique_name (
++ dbus_g_connection_get_connection (f->bus)));
++
++ path = NULL;
++ ok = dbus_message_get_args (message, &e,
++ DBUS_TYPE_OBJECT_PATH, &path,
++ DBUS_TYPE_INVALID);
++
++ if (dbus_error_is_set (&e))
++ g_error ("%s: %s", e.name, e.message);
++
++ g_assert (ok);
++ g_assert_cmpstr (path, ==, "/foo");
++
++ f->received_objectified = TRUE;
++ }
++
++ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
++}
++
++static void
++test_marshal_object (Fixture *f,
++ gconstpointer test_data G_GNUC_UNUSED)
++{
++ dbus_bool_t mem;
++
++ g_test_bug ("37852");
++
++ dbus_g_connection_register_g_object (f->bus, "/foo", f->object);
++ g_assert (dbus_g_connection_lookup_g_object (f->bus, "/foo") ==
++ f->object);
++
++ dbus_bus_add_match (dbus_g_connection_get_connection (f->bus),
++ "type='signal'", NULL);
++ mem = dbus_connection_add_filter (dbus_g_connection_get_connection (f->bus),
++ objectified_cb, f, NULL);
++ g_assert (mem);
++
++ my_object_emit_objectified ((MyObject *) f->object, f->object);
++
++ while (!f->received_objectified)
++ g_main_context_iteration (NULL, TRUE);
++}
++
+ int
+ main (int argc, char **argv)
+ {
+@@ -349,6 +415,8 @@ main (int argc, char **argv)
+ setup, test_twice, teardown);
+ g_test_add ("/registrations/clean-slate", Fixture, NULL,
+ setup, test_clean_slate, teardown);
++ g_test_add ("/registrations/marshal-object", Fixture, NULL,
++ setup, test_marshal_object, teardown);
+
+ return g_test_run ();
+ }
+diff --git a/test/core/test-service-glib.xml b/test/core/test-service-glib.xml
+index 94a836a..1b595cc 100644
+--- a/test/core/test-service-glib.xml
++++ b/test/core/test-service-glib.xml
+@@ -184,6 +184,10 @@
+ <!-- Export signals -->
+ <signal name="Frobnicate"/>
+
++ <signal name="Objectified">
++ <arg type="o"/>
++ </signal>
++
+ <method name="Terminate">
+ </method>
+ </interface>
+--
+cgit v0.8.3-6-g21f6