diff --git a/dbus-glib-proxy-signals-once.patch b/dbus-glib-proxy-signals-once.patch new file mode 100644 index 0000000..2cdcf1f --- /dev/null +++ b/dbus-glib-proxy-signals-once.patch @@ -0,0 +1,22 @@ +diff -up dbus-glib-0.73/dbus/dbus-gproxy.c.foo dbus-glib-0.73/dbus/dbus-gproxy.c +--- dbus-glib-0.73/dbus/dbus-gproxy.c.foo 2007-02-08 20:59:39.000000000 -0500 ++++ dbus-glib-0.73/dbus/dbus-gproxy.c 2007-09-24 14:54:39.000000000 -0400 +@@ -1232,8 +1235,15 @@ dbus_g_proxy_manager_filter (DBusConnect + dbus_message_get_interface (message)); + + owner_list = g_hash_table_lookup (manager->proxy_lists, tri); +- if (owner_list != NULL) +- full_list = g_slist_concat (full_list, g_slist_copy (owner_list->proxies)); ++ if (owner_list != NULL) { ++ GSList *elt; ++ ++ /* Ignore duplicates when adding to full_list */ ++ for (elt = owner_list->proxies; elt; elt = g_slist_next (elt)) { ++ if (!g_slist_find (full_list, elt->data)) ++ full_list = g_slist_append (full_list, elt->data); ++ } ++ } + g_free (tri); + } + } + diff --git a/dbus-glib.spec b/dbus-glib.spec index 010409f..fac3d18 100644 --- a/dbus-glib.spec +++ b/dbus-glib.spec @@ -8,11 +8,12 @@ Summary: GLib bindings for D-Bus Name: dbus-glib Version: 0.73 -Release: 3%{?dist} +Release: 4%{?dist} URL: http://www.freedesktop.org/software/dbus/ Source0: http://dbus.freedesktop.org/releases/%{name}-%{version}.tar.gz Source1: dbus-bus-introspect.xml Patch0: broken-xml.patch +Patch1: dbus-glib-proxy-signals-once.patch License: AFL/GPL Group: System Environment/Libraries BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -114,6 +115,9 @@ rm -rf %{buildroot} %endif %changelog +* Mon Sep 24 2007 Dan Williams - 0.73-4 +- Dispatch NameOwnerChanged signals to proxies only once (fdo #12505) + * Sat Sep 15 2007 Matthias Clasen - 0.73-3 - Rebuild against new expat