[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