diff --git a/GConf2.spec b/GConf2.spec index 8db5c4c..1033ad5 100644 --- a/GConf2.spec +++ b/GConf2.spec @@ -6,7 +6,7 @@ Summary: A process-transparent configuration system Name: GConf2 Version: 3.2.5 -Release: 2%{?dist} +Release: 3%{?dist} License: LGPLv2+ Group: System Environment/Base #VCS: git:git://git.gnome.org/gconf @@ -161,6 +161,10 @@ fi %doc %{_mandir}/man1/gsettings-schema-convert.1* %changelog +* Mon Sep 24 2012 Ray Strode 3.2.5-3 +- More crasher workarounds + Resolves: #858348 + * Thu Sep 13 2012 Ray Strode 3.2.5-2 - Work around crasher bug Resolves: #755992 diff --git a/workaround-crash.patch b/workaround-crash.patch index 2d1c6ba..f57f2fc 100644 --- a/workaround-crash.patch +++ b/workaround-crash.patch @@ -1,18 +1,6 @@ -From d9e9fe3d550693c530658583b73212ce94bf3f21 Mon Sep 17 00:00:00 2001 -From: Ray Strode -Date: Thu, 13 Sep 2012 18:18:48 -0400 -Subject: [PATCH] daemon: don't exit on timeout - -The client library isn't robust enough to handle the daemon going away, -so don't make it go away automatically. ---- - gconf/gconfd.c | 68 ---------------------------------------------------------- - 1 file changed, 68 deletions(-) - -diff --git a/gconf/gconfd.c b/gconf/gconfd.c -index d42ce1e..557e906 100644 ---- a/gconf/gconfd.c -+++ b/gconf/gconfd.c +diff -up GConf-3.2.5/gconf/gconfd.c.workaround-crash GConf-3.2.5/gconf/gconfd.c +--- GConf-3.2.5/gconf/gconfd.c.workaround-crash 2012-03-07 13:08:55.000000000 -0500 ++++ GConf-3.2.5/gconf/gconfd.c 2012-09-24 10:04:22.604652720 -0400 @@ -1053,63 +1053,6 @@ static GSList* main_loops = NULL; static guint timeout_id = 0; static gboolean need_log_cleanup = FALSE; @@ -77,7 +65,7 @@ index d42ce1e..557e906 100644 void gconfd_need_log_cleanup (void) { -@@ -1123,17 +1066,6 @@ gconf_main(void) +@@ -1123,26 +1066,14 @@ gconf_main(void) loop = g_main_loop_new (NULL, TRUE); @@ -95,6 +83,13 @@ index d42ce1e..557e906 100644 main_loops = g_slist_prepend(main_loops, loop); g_main_loop_run (loop); --- -1.7.12 - + + main_loops = g_slist_remove(main_loops, loop); + +- if (main_loops == NULL) ++ if (main_loops == NULL && timeout_id != 0) + { +- g_assert(timeout_id != 0); + g_source_remove(timeout_id); + timeout_id = 0; + }