From: "Alexandre Restovtsev" <tetromino@gmail.com>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/gnome:master commit in: app-accessibility/at-spi2-core/files/, app-accessibility/at-spi2-core/
Date: Fri, 24 Jun 2011 17:35:51 +0000 (UTC) [thread overview]
Message-ID: <5894528e3d3f33049db21603f3303391d859f3a3.tetromino@gentoo> (raw)
commit: 5894528e3d3f33049db21603f3303391d859f3a3
Author: Alexandre Rostovtsev <tetromino <AT> gmail <DOT> com>
AuthorDate: Wed Jun 15 15:41:01 2011 +0000
Commit: Alexandre Restovtsev <tetromino <AT> gmail <DOT> com>
CommitDate: Sun Jun 19 02:21:56 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=5894528e
app-accessibility/at-spi2-core: patch for gnome bug #652215
Resolves the problem where multiple instances of at-spi-bus-launcher
could get started after running a gnome application as root, breaking
accessibility support for the session and resulting in "Couldn't
register with accessibility bus" error messages.
The patch is taken from upstream git master branch; gnome-3-0 branch
hasn't been fixed yet.
---
...e-2.0.2.ebuild => at-spi2-core-2.0.2-r1.ebuild} | 4 +
...-spi2-core-2.0.2-abort-if-already-running.patch | 88 ++++++++++++++++++++
2 files changed, 92 insertions(+), 0 deletions(-)
diff --git a/app-accessibility/at-spi2-core/at-spi2-core-2.0.2.ebuild b/app-accessibility/at-spi2-core/at-spi2-core-2.0.2-r1.ebuild
similarity index 83%
rename from app-accessibility/at-spi2-core/at-spi2-core-2.0.2.ebuild
rename to app-accessibility/at-spi2-core/at-spi2-core-2.0.2-r1.ebuild
index 41c561a..2d960fa 100644
--- a/app-accessibility/at-spi2-core/at-spi2-core-2.0.2.ebuild
+++ b/app-accessibility/at-spi2-core/at-spi2-core-2.0.2-r1.ebuild
@@ -39,5 +39,9 @@ src_prepare() {
# disable teamspaces test since that requires Novell.ICEDesktop.Daemon
epatch "${FILESDIR}/${PN}-2.0.2-disable-teamspaces-test.patch"
+ # https://bugzilla.gnome.org/show_bug.cgi?id=652215
+ # Fixed in upstream git master branch, but not in gnome-3-0 branch
+ epatch "${FILESDIR}/${PN}-2.0.2-abort-if-already-running.patch"
+
gnome2_src_prepare
}
diff --git a/app-accessibility/at-spi2-core/files/at-spi2-core-2.0.2-abort-if-already-running.patch b/app-accessibility/at-spi2-core/files/at-spi2-core-2.0.2-abort-if-already-running.patch
new file mode 100644
index 0000000..0e39dcf
--- /dev/null
+++ b/app-accessibility/at-spi2-core/files/at-spi2-core-2.0.2-abort-if-already-running.patch
@@ -0,0 +1,88 @@
+From 72b5b5733841657af00f31370d26bdfd5a0b60b7 Mon Sep 17 00:00:00 2001
+From: Mike Gorse <mgorse@novell.com>
+Date: Thu, 09 Jun 2011 16:50:58 +0000
+Subject: Make the bus launcher abort if an instance is already running
+
+Upon starting up, at-spi-bus-launcher now looks for an X property with
+the bus address and tries to connect to it, aborting if successful.
+This fixes a bug where, if the launcher was run twice (perhaps by both
+an autostart script and a request for the bus address), the second
+instance would start its main loop, eventually abort, and delete the X
+property, which would cause a new X property to be created later,
+overriding the old one, if a different user requested the address,
+leading to a11y breakage.
+---
+diff --git a/bus/at-spi-bus-launcher.c b/bus/at-spi-bus-launcher.c
+index 9300979..dcc35e4 100644
+--- a/bus/at-spi-bus-launcher.c
++++ b/bus/at-spi-bus-launcher.c
+@@ -27,6 +27,7 @@
+ #include <signal.h>
+ #include <sys/wait.h>
+ #include <errno.h>
++#include <stdio.h>
+
+ #include <gio/gio.h>
+ #include <X11/Xlib.h>
+@@ -349,6 +350,49 @@ is_a11y_using_corba (void)
+ return result;
+ }
+
++static gboolean
++already_running ()
++{
++ Atom AT_SPI_BUS;
++ Atom actual_type;
++ Display *bridge_display;
++ int actual_format;
++ unsigned char *data = NULL;
++ unsigned long nitems;
++ unsigned long leftover;
++ gboolean result = FALSE;
++
++ bridge_display = XOpenDisplay (NULL);
++ if (!bridge_display)
++ return FALSE;
++
++ AT_SPI_BUS = XInternAtom (bridge_display, "AT_SPI_BUS", False);
++ XGetWindowProperty (bridge_display,
++ XDefaultRootWindow (bridge_display),
++ AT_SPI_BUS, 0L,
++ (long) BUFSIZ, False,
++ (Atom) 31, &actual_type, &actual_format,
++ &nitems, &leftover, &data);
++
++ if (data)
++ {
++ GDBusConnection *bus;
++ GError *error = NULL;
++ const gchar *old_session = g_getenv ("DBUS_SESSION_BUS_ADDRESS");
++ /* TODO: Is there a better way to connect? This is really hacky */
++ g_setenv ("DBUS_SESSION_BUS_ADDRESS", data, TRUE);
++ bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
++ g_setenv ("DBUS_SESSION_BUS_ADDRESS", old_session, TRUE);
++ if (bus != NULL)
++ result = TRUE;
++ g_object_unref (bus);
++ }
++
++ XCloseDisplay (bridge_display);
++ return result;
++}
++
++
+ int
+ main (int argc,
+ char **argv)
+@@ -363,6 +407,9 @@ main (int argc,
+ if (is_a11y_using_corba ())
+ return 0;
+
++ if (already_running ())
++ return 0;
++
+ _global_app = g_slice_new0 (A11yBusLauncher);
+ _global_app->loop = g_main_loop_new (NULL, FALSE);
+ _global_app->launch_immediately = (argc == 2 && strcmp (argv[1], "--launch-immediately") == 0);
+--
+cgit v0.9
next reply other threads:[~2011-06-24 17:36 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-24 17:35 Alexandre Restovtsev [this message]
-- strict thread matches above, loose matches on Subject: below --
2011-05-28 4:51 [gentoo-commits] proj/gnome:master commit in: app-accessibility/at-spi2-core/files/, app-accessibility/at-spi2-core/ Gilles Dartiguelongue
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5894528e3d3f33049db21603f3303391d859f3a3.tetromino@gentoo \
--to=tetromino@gmail.com \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox