[GConf2] Make gconftool-2 --makefile-install-rule force a config reload -HUP

Ray Strode rstrode at fedoraproject.org
Mon Apr 15 14:27:07 UTC 2013


commit 9a453412c7ab61fbaa4ff75808ebc229684cb830
Author: Ray Strode <rstrode at redhat.com>
Date:   Mon Apr 15 10:25:59 2013 -0400

    Make gconftool-2 --makefile-install-rule force a config reload -HUP

 GConf2.spec            |    5 ++-
 macros.gconf2          |    1 +
 workaround-crash.patch |   83 ++++++++++--------------------------------------
 3 files changed, 22 insertions(+), 67 deletions(-)
---
diff --git a/GConf2.spec b/GConf2.spec
index 537102d..735ea0f 100644
--- a/GConf2.spec
+++ b/GConf2.spec
@@ -6,7 +6,7 @@
 Summary: A process-transparent configuration system
 Name: GConf2
 Version: 3.2.6
-Release: 3%{?dist}
+Release: 4%{?dist}
 License: LGPLv2+ and GPLv2+
 Group: System Environment/Base
 #VCS: git:git://git.gnome.org/gconf
@@ -152,6 +152,9 @@ fi
 %doc %{_mandir}/man1/gsettings-schema-convert.1*
 
 %changelog
+* Mon Apr 15 2013 Ray Strode <rstrode at redhat.com> 3.2.6-4
+- Make pkill -HUP -f gconfd-2 work again
+
 * Fri Apr 12 2013 Ray Strode <rstrode at redhat.com> 3.2.6-3
 - Update GConf upgrade macros (Patch from Michael Schwendt)
   Resolves: #920615
diff --git a/macros.gconf2 b/macros.gconf2
index 928ec70..84f225e 100644
--- a/macros.gconf2
+++ b/macros.gconf2
@@ -82,5 +82,6 @@ for schema in %{*} ; do \
         export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` \
         gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/"$schema".schemas > /dev/null || : \
     fi \
+    pkill -HUP -f gconfd-2 || : \
 done \
 %{nil}
diff --git a/workaround-crash.patch b/workaround-crash.patch
index f57f2fc..50ce7a2 100644
--- a/workaround-crash.patch
+++ b/workaround-crash.patch
@@ -1,37 +1,10 @@
-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;
+diff -up GConf-3.2.6/gconf/gconfd.c.workaround-crash GConf-3.2.6/gconf/gconfd.c
+--- GConf-3.2.6/gconf/gconfd.c.workaround-crash	2013-04-15 10:12:54.480753142 -0400
++++ GConf-3.2.6/gconf/gconfd.c	2013-04-15 10:12:53.457736847 -0400
+@@ -1076,17 +1076,6 @@ periodic_cleanup_timeout(gpointer data)
+ #endif
+   drop_old_databases ();
  
--static gboolean
--periodic_cleanup_timeout(gpointer data)
--{  
--  if (need_db_reload)
--    {
--      gconf_log (GCL_INFO, _("SIGHUP received, reloading all databases"));
--
--      need_db_reload = FALSE;
--#ifdef HAVE_CORBA
--      logfile_save ();
--      shutdown_databases ();
--      init_databases ();
--      gconf_server_load_sources ();
--      logfile_read ();
--#endif
--#ifdef HAVE_DBUS
--      reload_databases ();
--#endif
--    }
--  
--  gconf_log (GCL_DEBUG, "Performing periodic cleanup, expiring cache cruft");
--  
--#ifdef HAVE_CORBA
--  drop_old_clients ();
--#endif
--  drop_old_databases ();
--
 -#ifdef HAVE_DBUS
 -  if (no_databases_in_use () && gconfd_dbus_client_count () == 0)
 -#else
@@ -43,44 +16,22 @@ diff -up GConf-3.2.5/gconf/gconfd.c.workaround-crash GConf-3.2.5/gconf/gconfd.c
 -      return FALSE;
 -    }
 -  
--  /* expire old locale cache entries */
--  gconfd_locale_cache_expire ();
--
--#ifdef HAVE_CORBA
--  if (!need_log_cleanup)
--    {
--      gconf_log (GCL_DEBUG, "No log file saving needed in periodic cleanup handler");
--      return TRUE;
--    }
--  
--  /* Compress the running state file */
--  logfile_save ();
--#endif
--
--  need_log_cleanup = FALSE;
--  
--  return TRUE;
--}
+   /* expire old locale cache entries */
+   gconfd_locale_cache_expire ();
+ 
+@@ -1105,7 +1094,6 @@ periodic_cleanup_timeout(gpointer data)
+   
+   return TRUE;
+ }
 -
  void
  gconfd_need_log_cleanup (void)
  {
-@@ -1123,26 +1066,14 @@ gconf_main(void)
- 
-   loop = g_main_loop_new (NULL, TRUE);
- 
--  if (main_loops == NULL)
--    {
--      gulong timeout_len = 60*0.5; /* 60 s/min * .5 min */
--      
--      g_assert(timeout_id == 0);
--      timeout_id = g_timeout_add_seconds (timeout_len,
--                                          periodic_cleanup_timeout,
--                                          NULL);
--
--    }
--  
+@@ -1131,14 +1119,14 @@ gconf_main(void)
+     }
+   
    main_loops = g_slist_prepend(main_loops, loop);
++  main_loops = g_slist_prepend(main_loops, loop);
  
    g_main_loop_run (loop);
  


More information about the scm-commits mailing list