public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
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



             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