[at-spi2-atk] prevent crashes

Matthias Clasen mclasen at fedoraproject.org
Fri Aug 27 20:02:57 UTC 2010


commit 1b7602fed916e55f25ae3a82b2f19d715f4eb3bf
Author: Matthias Clasen <mclasen at redhat.com>
Date:   Fri Aug 27 15:51:59 2010 -0400

    prevent crashes
    
    When gnome-settings-daemon dies, all non-resident gtk modules
    get reloaded in applications. the atk-bridge module is not prepared
    for that and causes crashes when it is reloaded. Therefore, we
    make it resident.

 at-spi2-atk.spec      |   10 +++++++++-
 resident-module.patch |   26 ++++++++++++++++++++++++++
 tab-not-space.patch   |   12 ++++++++++++
 3 files changed, 47 insertions(+), 1 deletions(-)
---
diff --git a/at-spi2-atk.spec b/at-spi2-atk.spec
index e532a8a..72d82e8 100644
--- a/at-spi2-atk.spec
+++ b/at-spi2-atk.spec
@@ -1,6 +1,6 @@
 Name:           at-spi2-atk
 Version:        0.3.90
-Release:        1%{?dist}
+Release:        2%{?dist}
 Summary:        A GTK+ module that bridges ATK to D-Bus at-spi
 
 Group:          System Environment/Libraries
@@ -25,6 +25,9 @@ Requires(pre): GConf2
 Requires(post): GConf2
 Requires(preun): GConf2
 
+Patch0: resident-module.patch
+Patch1: tab-not-space.patch
+
 %description
 at-spi allows assistive technologies to access GTK-based
 applications. Essentially it exposes the internals of applications for
@@ -41,11 +44,13 @@ D-Bus based at-spi.
 
 %prep
 %setup -q
+%patch0 -p1 -b .resident-module
 
 %build
 %configure
 sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
 sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
+patch -p1 < %{PATCH1}
 
 make %{?_smp_mflags}
 
@@ -84,6 +89,9 @@ rm $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/modules/libatk-bridge.la
 
 
 %changelog
+* Fri Aug 27 2010 Matthias Clasen <mclasen at redhat.com> - 0.3.90-2
+- Make the gtk module resident to prevent crashes
+
 * Wed Aug 18 2010 Matthias Clasen <mclasen at redhat.com> - 0.3.90-1
 - Update to 0.3.90
 
diff --git a/resident-module.patch b/resident-module.patch
new file mode 100644
index 0000000..316fb32
--- /dev/null
+++ b/resident-module.patch
@@ -0,0 +1,26 @@
+diff -up at-spi2-atk-0.3.90/atk-adaptor/bridge.c.resident-module at-spi2-atk-0.3.90/atk-adaptor/bridge.c
+--- at-spi2-atk-0.3.90/atk-adaptor/bridge.c.resident-module	2010-08-15 19:23:09.000000000 -0400
++++ at-spi2-atk-0.3.90/atk-adaptor/bridge.c	2010-08-27 15:43:12.153157998 -0400
+@@ -35,6 +35,7 @@
+ #include <atk/atk.h>
+ 
+ #include <droute/droute.h>
++#include <gmodule.h>
+ 
+ #include "bridge.h"
+ #include "event.h"
+@@ -774,6 +775,14 @@ gtk_module_init (gint * argc, gchar ** a
+   return 0;
+ }
+ 
++gchar*
++g_module_check_init (GModule *module)
++{
++  g_module_make_resident (module);
++
++  return NULL;
++}
++
+ void
+ gnome_accessibility_module_init (void)
+ {
diff --git a/tab-not-space.patch b/tab-not-space.patch
new file mode 100644
index 0000000..5289fb9
--- /dev/null
+++ b/tab-not-space.patch
@@ -0,0 +1,12 @@
+diff -up at-spi2-atk-0.3.90/Makefile.tab-not-space at-spi2-atk-0.3.90/Makefile
+--- at-spi2-atk-0.3.90/Makefile.tab-not-space	2010-08-27 15:45:49.587158000 -0400
++++ at-spi2-atk-0.3.90/Makefile	2010-08-27 15:46:01.616158003 -0400
+@@ -820,7 +820,7 @@ uninstall-am: uninstall-schemasDATA
+ %.schemas:   %.schemas.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+ 
+ install-data-local:
+-                if test -z "$(DESTDIR)" ; then \
++	if test -z "$(DESTDIR)" ; then \
+                         for p in $(schemas_DATA) ; do \
+                                 GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(top_builddir)/data/$$p ; \
+                         done \


More information about the scm-commits mailing list