Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org 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 <sthiba...@debian.org> 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 <cosi...@gnome.org> +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 <cosi...@gnome.org> +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 <cosi...@gnome.org> +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 <jmcc...@redhat.com> +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 <jmcc...@redhat.com> +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 <jmcc...@redhat.com> +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 <mgo...@suse.com> +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 <rudol...@src.gnome.org> +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 <rudolfs.maz...@gmail.com>, 2011. ++# Rudolfs <rudolfs.maz...@gmail.com>, 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 <piotrd...@gmail.com> +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: + # gnom...@aviary.pl + # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ++# Artur Flinta <afli...@at.kernel.pl>, 2003. ++# Piotr Drąg <piotrd...@gmail.com>, 2010-2011. ++# Aviary.pl <gnom...@aviary.pl>, 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 <mgo...@suse.com> +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 <mgo...@suse.com> +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 */