Your message dated Sun, 14 Oct 2012 16:03:10 +0100
with message-id <[email protected]>
and subject line Re: Bug#689361: unblock: at-spi2-atk/2.5.3-2
has caused the Debian Bug report #689361,
regarding unblock: at-spi2-atk/2.5.3-2
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
689361: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=689361
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: [email protected]
Usertags: unblock

Hello,

Please unblock package at-spi2-atk

unblock at-spi2-atk/2.5.3-2

Upstream has fixed a lot of reference leaks (which would translate into
memory leaks in applications, including long-running ones such as the
desktop).  These are recorded in patches/leak*.

In addition, bug #688094 shows that at-spi2-atk leaves a lot of sockets
in the user's home directory, and even root-owned ones for gksu
applications. This is mitigated by the two upstream fixes recorded in
patches/socket*

Lastly, there are a couple translation updates in patches/lv and
patches/pl

Samuel

-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1, 
'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.0.4 (SMP w/8 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

-- 
Samuel
<m> argh, pi est plus grand que 2. Ca casse tout
 -+- #ens-mim -+-
diff -Nru at-spi2-atk-2.5.3/debian/changelog at-spi2-atk-2.5.3/debian/changelog
--- at-spi2-atk-2.5.3/debian/changelog  2012-06-29 04:35:37.000000000 +0200
+++ at-spi2-atk-2.5.3/debian/changelog  2012-09-30 17:46:16.000000000 +0200
@@ -1,3 +1,13 @@
+at-spi2-atk (2.5.3-2) unstable; urgency=low
+
+  * patches/leak*: Cherry-pick from upstream: fix reference leaks.
+  * patches/socket*: Cherry-pick from upstream: mitigate at-spi socket
+    creation. (Closes: #688094)
+  * patches/lv: Cherry-pick from upstream: lv translation update.
+  * patches/pl: Cherry-pick from upstream: pl translation update.
+
+ -- Samuel Thibault <[email protected]>  Sun, 30 Sep 2012 16:28:06 +0200
+
 at-spi2-atk (2.5.3-1) unstable; urgency=low
 
   [ Samuel Thibault ]
diff -Nru at-spi2-atk-2.5.3/debian/patches/leak1 
at-spi2-atk-2.5.3/debian/patches/leak1
--- at-spi2-atk-2.5.3/debian/patches/leak1      1970-01-01 01:00:00.000000000 
+0100
+++ at-spi2-atk-2.5.3/debian/patches/leak1      2012-09-30 17:30:26.000000000 
+0200
@@ -0,0 +1,22 @@
+commit e4a899792e389b9d733f1a74702a8f4158f93acc
+Author: Cosimo Cecchi <[email protected]>
+Date:   Mon Jul 2 16:14:12 2012 -0400
+
+    atk-adaptor: plug a refcount leak
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=679285
+
+diff --git a/atk-adaptor/adaptors/accessible-adaptor.c 
b/atk-adaptor/adaptors/accessible-adaptor.c
+index 25d7823..77aacbb 100644
+--- a/atk-adaptor/adaptors/accessible-adaptor.c
++++ b/atk-adaptor/adaptors/accessible-adaptor.c
+@@ -337,6 +337,8 @@ impl_GetRelationSet (DBusConnection * bus,
+     }
+   dbus_message_iter_close_container (&iter, &iter_array);
+ oom:
++  if (set)
++    g_object_unref (set);
+   // TODO: handle out of memory */
+   return reply;
+ }
+
diff -Nru at-spi2-atk-2.5.3/debian/patches/leak2 
at-spi2-atk-2.5.3/debian/patches/leak2
--- at-spi2-atk-2.5.3/debian/patches/leak2      1970-01-01 01:00:00.000000000 
+0100
+++ at-spi2-atk-2.5.3/debian/patches/leak2      2012-09-30 17:30:31.000000000 
+0200
@@ -0,0 +1,21 @@
+commit 246c99e7f62d5009d5bd4b09c491b74afddae9a6
+Author: Cosimo Cecchi <[email protected]>
+Date:   Mon Jul 2 16:14:48 2012 -0400
+
+    atk-adaptor: plug a refcount leak
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=679285
+
+diff --git a/atk-adaptor/event.c b/atk-adaptor/event.c
+index d19f451..1cbda23 100644
+--- a/atk-adaptor/event.c
++++ b/atk-adaptor/event.c
+@@ -1017,6 +1017,7 @@ children_changed_event_listener (GSignalInvocationHint * 
signal_hint,
+                                             detail1);
+       emit_event (accessible, ITF_EVENT_OBJECT, name, minor, detail1, detail2,
+                   "(so)", ao, append_object);
++      g_object_unref (ao);
+     }
+   else
+     {
+
diff -Nru at-spi2-atk-2.5.3/debian/patches/leak3 
at-spi2-atk-2.5.3/debian/patches/leak3
--- at-spi2-atk-2.5.3/debian/patches/leak3      1970-01-01 01:00:00.000000000 
+0100
+++ at-spi2-atk-2.5.3/debian/patches/leak3      2012-09-30 17:30:34.000000000 
+0200
@@ -0,0 +1,57 @@
+commit d1e52eb847dcabf7a2be07dbd71cfcb4e0805306
+Author: Cosimo Cecchi <[email protected]>
+Date:   Thu Sep 13 13:37:50 2012 -0400
+
+    atk-adaptor: plug some refcount leaks
+    
+    cache->add_traversal holds GObject references, so when we remove/pop
+    items from it, we should also drop the reference, unless it's transfered
+    to another queue.
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=683979
+
+diff --git a/atk-adaptor/accessible-cache.c b/atk-adaptor/accessible-cache.c
+index afaedb0..3a30b51 100644
+--- a/atk-adaptor/accessible-cache.c
++++ b/atk-adaptor/accessible-cache.c
+@@ -180,7 +180,10 @@ remove_object (GObject * source, GObject * gobj, gpointer 
data)
+       g_hash_table_remove (cache->objects, gobj);
+     }
+   else
+-    g_queue_remove (cache->add_traversal, gobj);
++    {
++      g_queue_remove (cache->add_traversal, gobj);
++      g_object_unref (gobj);
++    }
+ }
+ 
+ static void
+@@ -277,12 +280,14 @@ add_pending_items (gpointer data)
+   while (!g_queue_is_empty (cache->add_traversal))
+     {
+       AtkStateSet *set;
+-      
++
++      /* cache->add_traversal holds a ref to current */
+       current = g_queue_pop_head (cache->add_traversal);
+       set = atk_object_ref_state_set (current);
+ 
+       if (set && !atk_state_set_contains_state (set, ATK_STATE_TRANSIENT))
+         {
++          /* transfer the ref into to_add */
+         g_queue_push_tail (to_add, current);
+           if (!spi_cache_in (cache, G_OBJECT (current)) &&
+               !atk_state_set_contains_state  (set, 
ATK_STATE_MANAGES_DESCENDANTS) &&
+@@ -291,6 +296,11 @@ add_pending_items (gpointer data)
+               append_children (current, cache->add_traversal);
+             }
+         }
++      else
++        {
++          /* drop the ref for the removed object */
++          g_object_unref (current);
++        }
+ 
+       if (set)
+         g_object_unref (set);
+
diff -Nru at-spi2-atk-2.5.3/debian/patches/leak4 
at-spi2-atk-2.5.3/debian/patches/leak4
--- at-spi2-atk-2.5.3/debian/patches/leak4      1970-01-01 01:00:00.000000000 
+0100
+++ at-spi2-atk-2.5.3/debian/patches/leak4      2012-09-30 17:30:39.000000000 
+0200
@@ -0,0 +1,46 @@
+commit 1b1fa3c23337e39eba5adfbf689302a9163d4c01
+Author: William Jon McCann <[email protected]>
+Date:   Fri Sep 14 16:39:58 2012 -0400
+
+    Don't leak strings
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=684077
+
+diff --git a/atk-adaptor/bridge.c b/atk-adaptor/bridge.c
+index e3056e9..738c10b 100644
+--- a/atk-adaptor/bridge.c
++++ b/atk-adaptor/bridge.c
+@@ -249,7 +249,9 @@ register_reply (DBusPendingCall *pending, void *user_data)
+           dbus_message_iter_next (&iter_struct);
+           dbus_message_iter_get_basic (&iter_struct, &obj_path);
+ 
++          g_free (app->desktop_name);
+           app->desktop_name = g_strdup (app_name);
++          g_free (app->desktop_path);
+           app->desktop_path = g_strdup (obj_path);
+         }
+     }
+@@ -275,8 +277,8 @@ register_application (SpiBridge * app)
+ 
+   /* These will be overridden when we get a reply, but in practice these
+      defaults should always be correct */
+-  app->desktop_name = ATSPI_DBUS_NAME_REGISTRY;
+-  app->desktop_path = ATSPI_DBUS_PATH_ROOT;
++  app->desktop_name = g_strdup (ATSPI_DBUS_NAME_REGISTRY);
++  app->desktop_path = g_strdup (ATSPI_DBUS_PATH_ROOT);
+ 
+   message = dbus_message_new_method_call (SPI_DBUS_NAME_REGISTRY,
+                                           ATSPI_DBUS_PATH_ROOT,
+@@ -339,6 +341,11 @@ deregister_application (SpiBridge * app)
+     g_free (app->app_tmp_dir);
+     app->app_tmp_dir = NULL;
+   }
++
++  g_free (app->desktop_name);
++  app->desktop_name = NULL;
++  g_free (app->desktop_path);
++  app->desktop_path = NULL;
+ }
+ 
+ 
/*---------------------------------------------------------------------------*/
+
diff -Nru at-spi2-atk-2.5.3/debian/patches/leak5 
at-spi2-atk-2.5.3/debian/patches/leak5
--- at-spi2-atk-2.5.3/debian/patches/leak5      1970-01-01 01:00:00.000000000 
+0100
+++ at-spi2-atk-2.5.3/debian/patches/leak5      2012-09-30 17:30:44.000000000 
+0200
@@ -0,0 +1,21 @@
+commit 5431ebbe7f471a01014236100ec803631dc3941b
+Author: William Jon McCann <[email protected]>
+Date:   Fri Sep 14 17:11:37 2012 -0400
+
+    Don't leak message
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=684077
+
+diff --git a/atk-adaptor/bridge.c b/atk-adaptor/bridge.c
+index 738c10b..a66f0e2 100644
+--- a/atk-adaptor/bridge.c
++++ b/atk-adaptor/bridge.c
+@@ -291,6 +291,7 @@ register_application (SpiBridge * app)
+     if (!dbus_connection_send_with_reply (app->bus, message, &pending, -1)
+         || !pending)
+     {
++        dbus_message_unref (message);
+         return FALSE;
+     }
+ 
+
diff -Nru at-spi2-atk-2.5.3/debian/patches/leak6 
at-spi2-atk-2.5.3/debian/patches/leak6
--- at-spi2-atk-2.5.3/debian/patches/leak6      1970-01-01 01:00:00.000000000 
+0100
+++ at-spi2-atk-2.5.3/debian/patches/leak6      2012-09-30 17:30:49.000000000 
+0200
@@ -0,0 +1,23 @@
+commit e1015608a0f79178be66220f17d1af5fab030bfa
+Author: William Jon McCann <[email protected]>
+Date:   Fri Sep 14 17:29:10 2012 -0400
+
+    Don't leak pending calls
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=684077
+
+diff --git a/atk-adaptor/bridge.c b/atk-adaptor/bridge.c
+index a66f0e2..99a6a36 100644
+--- a/atk-adaptor/bridge.c
++++ b/atk-adaptor/bridge.c
+@@ -291,6 +291,9 @@ register_application (SpiBridge * app)
+     if (!dbus_connection_send_with_reply (app->bus, message, &pending, -1)
+         || !pending)
+     {
++        if (pending)
++          dbus_pending_call_unref (pending);
++
+         dbus_message_unref (message);
+         return FALSE;
+     }
+
diff -Nru at-spi2-atk-2.5.3/debian/patches/leak7 
at-spi2-atk-2.5.3/debian/patches/leak7
--- at-spi2-atk-2.5.3/debian/patches/leak7      1970-01-01 01:00:00.000000000 
+0100
+++ at-spi2-atk-2.5.3/debian/patches/leak7      2012-09-30 17:30:53.000000000 
+0200
@@ -0,0 +1,26 @@
+commit da10ef8b744bf7b04d18bda4cead3a9d71548a3e
+Author: Mike Gorse <[email protected]>
+Date:   Mon Sep 17 19:06:40 2012 -0500
+
+    Fix an errant g_object_unref
+    
+    If an object is deregistered but not in the cache, then only unref it if
+    it was found in the queue of objects to be added (ie, it is possible
+    that it is leased, rather than queued to be cached, in which case it
+    should not be unrefed).
+
+diff --git a/atk-adaptor/accessible-cache.c b/atk-adaptor/accessible-cache.c
+index 3a30b51..be247e4 100644
+--- a/atk-adaptor/accessible-cache.c
++++ b/atk-adaptor/accessible-cache.c
+@@ -179,9 +179,8 @@ remove_object (GObject * source, GObject * gobj, gpointer 
data)
+       g_signal_emit (cache, cache_signals [OBJECT_REMOVED], 0, gobj);
+       g_hash_table_remove (cache->objects, gobj);
+     }
+-  else
++  else if (g_queue_remove (cache->add_traversal, gobj))
+     {
+-      g_queue_remove (cache->add_traversal, gobj);
+       g_object_unref (gobj);
+     }
+ }
diff -Nru at-spi2-atk-2.5.3/debian/patches/lv 
at-spi2-atk-2.5.3/debian/patches/lv
--- at-spi2-atk-2.5.3/debian/patches/lv 1970-01-01 01:00:00.000000000 +0100
+++ at-spi2-atk-2.5.3/debian/patches/lv 2012-09-30 17:24:55.000000000 +0200
@@ -0,0 +1,28 @@
+commit c74fce065b40f0fb2e82bf740bf7f2744eda4466
+Author: Rūdolfs Mazurs <[email protected]>
+Date:   Sat Sep 1 00:09:41 2012 +0300
+
+    Updated Latvian translation
+
+diff --git a/po/lv.po b/po/lv.po
+index 2cde3f7..3bdca61 100644
+--- a/po/lv.po
++++ b/po/lv.po
+@@ -1,7 +1,7 @@
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+ # This file is distributed under the same license as the PACKAGE package.
+ #
+-# Rudolfs <[email protected]>, 2011.
++# Rudolfs <[email protected]>, 2011, 2012.
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: \n"
+@@ -21,7 +21,7 @@ msgstr ""
+ #: ../atk-adaptor/bridge.c:538
+ #, c-format
+ msgid "atk-bridge: Couldn't listen on dbus server: %s"
+-msgstr "atk-bridge: neizdevās klausīties uz dbus servera: %s"
++msgstr "atk-bridge: neizdevās klausīties dbus serveri — %s"
+ 
+ #~ msgid "Enable DBus-based AT-SPI infrastructure"
+ #~ msgstr "Ieslēgt AT-SPI infrastruktūru uz DBus- pamata"
diff -Nru at-spi2-atk-2.5.3/debian/patches/pl 
at-spi2-atk-2.5.3/debian/patches/pl
--- at-spi2-atk-2.5.3/debian/patches/pl 1970-01-01 01:00:00.000000000 +0100
+++ at-spi2-atk-2.5.3/debian/patches/pl 2012-09-30 17:24:55.000000000 +0200
@@ -0,0 +1,20 @@
+commit 8149343f5034b1aca8d25db4ea24507f2fd9f06a
+Author: Piotr Drąg <[email protected]>
+Date:   Sat Sep 1 20:50:35 2012 +0200
+
+    Updated Polish translation
+
+diff --git a/po/pl.po b/po/pl.po
+index 2af1133..d9f1b83 100644
+--- a/po/pl.po
++++ b/po/pl.po
+@@ -4,6 +4,9 @@
+ # pomóc w jego rozwijaniu i pielęgnowaniu, napisz do nas:
+ # [email protected]
+ # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
++# Artur Flinta <[email protected]>, 2003.
++# Piotr Drąg <[email protected]>, 2010-2011.
++# Aviary.pl <[email protected]>, 2010-2011.
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: at-spi2-atk\n"
diff -Nru at-spi2-atk-2.5.3/debian/patches/series 
at-spi2-atk-2.5.3/debian/patches/series
--- at-spi2-atk-2.5.3/debian/patches/series     1970-01-01 01:00:00.000000000 
+0100
+++ at-spi2-atk-2.5.3/debian/patches/series     2012-09-30 17:31:24.000000000 
+0200
@@ -0,0 +1,11 @@
+leak1
+leak2
+leak3
+leak4
+leak5
+leak6
+leak7
+socket1
+socket2
+lv
+pl
diff -Nru at-spi2-atk-2.5.3/debian/patches/socket1 
at-spi2-atk-2.5.3/debian/patches/socket1
--- at-spi2-atk-2.5.3/debian/patches/socket1    1970-01-01 01:00:00.000000000 
+0100
+++ at-spi2-atk-2.5.3/debian/patches/socket1    2012-09-30 17:31:11.000000000 
+0200
@@ -0,0 +1,49 @@
+commit 7fc3c0ed67c52371855c5db456f26f27dfd22126
+Author: Mike Gorse <[email protected]>
+Date:   Tue Jul 3 20:52:25 2012 -0500
+
+    Don't create a sub-directory for the socket when running as root
+    
+    If an application is running as root but within a user's runtime directory,
+    then creating a temporary directory will result in the directory being 
owned
+    by root, and the user will not have permission to search the directory to
+    access the socket, so an AT running as the normal user will not be able to
+    connect to the application running as root.
+    Fixes regression introduced by the fix for BGO#678348.
+
+diff --git a/atk-adaptor/bridge.c b/atk-adaptor/bridge.c
+index 8c9d6bc..9880639 100644
+--- a/atk-adaptor/bridge.c
++++ b/atk-adaptor/bridge.c
+@@ -298,15 +298,23 @@ register_application (SpiBridge * app)
+     dbus_message_unref (message);
+ 
+ #ifndef DISABLE_P2P
+-  app->app_tmp_dir = g_build_filename (g_get_user_runtime_dir (),
+-                                       "at-spi2-XXXXXX", NULL);
+-  if (!g_mkdtemp (app->app_tmp_dir))
++  if (getuid () != 0)
+   {
+-    g_free (app->app_tmp_dir);
+-    app->app_tmp_dir = NULL;
+-    return FALSE;
++    app->app_tmp_dir = g_build_filename (g_get_user_runtime_dir (),
++                                         "at-spi2-XXXXXX", NULL);
++    if (!g_mkdtemp (app->app_tmp_dir))
++    {
++      g_free (app->app_tmp_dir);
++      app->app_tmp_dir = NULL;
++      return FALSE;
++    }
+   }
+-  app->app_bus_addr = g_strdup_printf ("unix:path=%s/socket", 
app->app_tmp_dir);
++
++  if (app->app_tmp_dir)
++    app->app_bus_addr = g_strdup_printf ("unix:path=%s/socket", 
app->app_tmp_dir);
++  else
++    app->app_bus_addr = g_strdup_printf ("unix:path=%s/at-spi2-socket-%d",
++                                         g_get_user_runtime_dir (), getpid 
());
+ #endif
+ 
+   return TRUE;
+
diff -Nru at-spi2-atk-2.5.3/debian/patches/socket2 
at-spi2-atk-2.5.3/debian/patches/socket2
--- at-spi2-atk-2.5.3/debian/patches/socket2    1970-01-01 01:00:00.000000000 
+0100
+++ at-spi2-atk-2.5.3/debian/patches/socket2    2012-09-30 17:31:16.000000000 
+0200
@@ -0,0 +1,174 @@
+commit 6fbb1ba2c5281706525ae93bd78ee6cd1f1c9bc8
+Author: Mike Gorse <[email protected]>
+Date:   Thu Jul 5 19:58:43 2012 -0500
+
+    Only create a directory and a socket when requested
+    
+    Currently, atk-bridge clutters XDG_RUNTIME_DIR with directories for 
sockets,
+    which is especially annoying since gtk currently does not call
+    atk_bridge_adaptor_cleanup, so the directories never go away. This change 
does
+    not really solve the problem--it only hides it from users who do not really
+    need AT-SPI--but, nevertheless, there is no reason to create a directory 
or a
+    socket if nothing has requested it, so doing this lazily makes sense.
+
+diff --git a/atk-adaptor/adaptors/application-adaptor.c 
b/atk-adaptor/adaptors/application-adaptor.c
+index dc2231d..260a4d7 100644
+--- a/atk-adaptor/adaptors/application-adaptor.c
++++ b/atk-adaptor/adaptors/application-adaptor.c
+@@ -104,6 +104,9 @@ DBusMessage *reply;
+   if (bus == spi_global_app_data->bus)
+     spi_atk_add_client (dbus_message_get_sender (msg));
+ 
++  if (!spi_global_app_data->app_bus_addr)
++    spi_atk_create_socket (spi_global_app_data);
++
+ reply = dbus_message_new_method_return(msg);
+ if (reply)
+     {
+diff --git a/atk-adaptor/bridge.c b/atk-adaptor/bridge.c
+index 9880639..08dfbd4 100644
+--- a/atk-adaptor/bridge.c
++++ b/atk-adaptor/bridge.c
+@@ -297,26 +297,6 @@ register_application (SpiBridge * app)
+   if (message)
+     dbus_message_unref (message);
+ 
+-#ifndef DISABLE_P2P
+-  if (getuid () != 0)
+-  {
+-    app->app_tmp_dir = g_build_filename (g_get_user_runtime_dir (),
+-                                         "at-spi2-XXXXXX", NULL);
+-    if (!g_mkdtemp (app->app_tmp_dir))
+-    {
+-      g_free (app->app_tmp_dir);
+-      app->app_tmp_dir = NULL;
+-      return FALSE;
+-    }
+-  }
+-
+-  if (app->app_tmp_dir)
+-    app->app_bus_addr = g_strdup_printf ("unix:path=%s/socket", 
app->app_tmp_dir);
+-  else
+-    app->app_bus_addr = g_strdup_printf ("unix:path=%s/at-spi2-socket-%d",
+-                                         g_get_user_runtime_dir (), getpid 
());
+-#endif
+-
+   return TRUE;
+ }
+ 
+@@ -539,37 +519,6 @@ new_connection_cb (DBusServer *server, DBusConnection 
*con, void *data)
+   spi_global_app_data->direct_connections = g_list_append 
(spi_global_app_data->direct_connections, con);
+ }
+ 
+-static int
+-setup_bus (void)
+-{
+-#ifndef DISABLE_P2P
+-  DBusServer *server;
+-  DBusError err;
+-
+-  if (!spi_global_app_data->app_bus_addr)
+-    return -1;
+-
+-  dbus_error_init(&err);
+-  server = dbus_server_listen(spi_global_app_data->app_bus_addr, &err);
+-  if (server == NULL)
+-  {
+-    g_warning ("atk-bridge: Couldn't listen on dbus server: %s", err.message);
+-    dbus_error_init (&err);
+-    spi_global_app_data->app_bus_addr [0] = '\0';
+-    g_main_context_unref (spi_global_app_data->main_context);
+-    spi_global_app_data->main_context = NULL;
+-    return -1;
+-  }
+-
+-  atspi_dbus_server_setup_with_g_main(server, NULL);
+-  dbus_server_set_new_connection_function(server, new_connection_cb, NULL, 
NULL);
+-
+-  spi_global_app_data->server = server;
+-#endif
+-
+-  return 0;
+-}
+-
+ 
+ gchar *atspi_dbus_name = NULL;
+ static gboolean atspi_no_register = FALSE;
+@@ -724,6 +673,55 @@ signal_filter (DBusConnection *bus, DBusMessage *message, 
void *user_data)
+   return result;
+ }
+ 
++int
++spi_atk_create_socket (SpiBridge *app)
++{
++#ifndef DISABLE_P2P
++  DBusServer *server;
++  DBusError err;
++
++  if (getuid () != 0)
++  {
++    app->app_tmp_dir = g_build_filename (g_get_user_runtime_dir (),
++                                         "at-spi2-XXXXXX", NULL);
++    if (!g_mkdtemp (app->app_tmp_dir))
++    {
++      g_free (app->app_tmp_dir);
++      app->app_tmp_dir = NULL;
++      return FALSE;
++    }
++  }
++
++  if (app->app_tmp_dir)
++    app->app_bus_addr = g_strdup_printf ("unix:path=%s/socket", 
app->app_tmp_dir);
++  else
++    app->app_bus_addr = g_strdup_printf ("unix:path=%s/at-spi2-socket-%d",
++                                         g_get_user_runtime_dir (), getpid 
());
++
++  if (!spi_global_app_data->app_bus_addr)
++    return -1;
++
++  dbus_error_init(&err);
++  server = dbus_server_listen(spi_global_app_data->app_bus_addr, &err);
++  if (server == NULL)
++  {
++    g_warning ("atk-bridge: Couldn't listen on dbus server: %s", err.message);
++    dbus_error_init (&err);
++    spi_global_app_data->app_bus_addr [0] = '\0';
++    g_main_context_unref (spi_global_app_data->main_context);
++    spi_global_app_data->main_context = NULL;
++    return -1;
++  }
++
++  atspi_dbus_server_setup_with_g_main(server, NULL);
++  dbus_server_set_new_connection_function(server, new_connection_cb, NULL, 
NULL);
++
++  spi_global_app_data->server = server;
++#endif
++
++  return 0;
++}
++
+ /*
+  * Checks the status of the environment variables
+  *
+@@ -896,8 +894,6 @@ atk_bridge_adaptor_init (gint * argc, gchar ** argv[])
+   else
+     get_registered_event_listeners (spi_global_app_data);
+ 
+-  setup_bus();
+-
+   return 0;
+ }
+ 
+diff --git a/atk-adaptor/bridge.h b/atk-adaptor/bridge.h
+index 2a79c6d..ddc79f5 100644
+--- a/atk-adaptor/bridge.h
++++ b/atk-adaptor/bridge.h
+@@ -70,6 +70,8 @@ extern SpiBridge *spi_global_app_data;
+ void spi_atk_add_client (const char *bus_name);
+ void spi_atk_remove_client (const char *bus_name);
+ 
++int spi_atk_create_socket (SpiBridge *app);
++
+ G_END_DECLS
+ 
+ #endif /* BRIDGE_H */

--- End Message ---
--- Begin Message ---
On 01.10.2012 22:48, Samuel Thibault wrote:
Please unblock package at-spi2-atk

unblock at-spi2-atk/2.5.3-2

Upstream has fixed a lot of reference leaks (which would translate into
memory leaks in applications, including long-running ones such as the
desktop).  These are recorded in patches/leak*.

In addition, bug #688094 shows that at-spi2-atk leaves a lot of sockets
in the user's home directory, and even root-owned ones for gksu
applications. This is mitigated by the two upstream fixes recorded in
patches/socket*

Unblocked; thanks.

Regards,

Adam

--- End Message ---

Reply via email to