diff --git a/GConf2.spec b/GConf2.spec index bb84399..d2108ba 100644 --- a/GConf2.spec +++ b/GConf2.spec @@ -1,11 +1,11 @@ %define libxml2_version 2.4.12 %define orbit2_version 2.8.0 -%define glib2_version 2.10.0 +%define glib2_version 2.14.0 Summary: A process-transparent configuration system Name: GConf2 Version: 2.22.0 -Release: 1%{?dist} +Release: 2%{?dist} License: LGPLv2+ Group: System Environment/Base Source: http://download.gnome.org/sources/GConf/2.22/GConf-%{version}.tar.bz2 @@ -29,6 +29,8 @@ Requires: /usr/bin/killall Patch0: GConf-2.18.0.1-reload.patch # http://bugzilla.gnome.org/show_bug.cgi?id=356573 Patch1: GConf2-2.14.0-timeout.patch +# http://bugzilla.gnome.org/show_bug.cgi?id=531063 +Patch2: gconf-timeouts.patch %description GConf is a process-transparent configuration database API used to @@ -65,6 +67,7 @@ which require GTK+. %setup -q -n GConf-%{version} %patch0 -p1 -b .reload %patch1 -p1 -b .timers +%patch2 -p1 -b .timeouts %build rm -f libtool @@ -132,6 +135,9 @@ fi %{_libdir}/pkgconfig/* %changelog +* Fri May 2 2008 Matthias Clasen - 2.22.0-2 +- Use g_timeout_add_seconds for long timeouts + * Mon Mar 10 2008 Matthias Clasen - 2.22.0-1 - Update to 2.22.0 diff --git a/gconf-timeouts.patch b/gconf-timeouts.patch new file mode 100644 index 0000000..197ae68 --- /dev/null +++ b/gconf-timeouts.patch @@ -0,0 +1,86 @@ +diff -up GConf-2.22.0/backends/markup-backend.c.timeouts GConf-2.22.0/backends/markup-backend.c +--- GConf-2.22.0/backends/markup-backend.c.timeouts 2008-05-02 09:36:25.000000000 -0400 ++++ GConf-2.22.0/backends/markup-backend.c 2008-05-02 09:36:46.000000000 -0400 +@@ -878,17 +878,17 @@ gconf_backend_get_vtable (void) + /* This timeout periodically unloads + * data that hasn't been used in a while. + */ ++#if 0 + static gboolean + cleanup_timeout (gpointer data) + { +-#if 0 + MarkupSource* ms = (MarkupSource*)data; + + cache_clean(ms->cache, 60*5 /* 5 minutes */); +-#endif + + return TRUE; + } ++#endif + + static MarkupSource* + ms_new (const char* root_dir, +@@ -903,9 +903,11 @@ ms_new (const char* root_dir, + + ms = g_new0(MarkupSource, 1); + ++#if 0 + ms->timeout_id = g_timeout_add (1000*60*5, /* 1 sec * 60 s/min * 5 min */ + cleanup_timeout, + ms); ++#endif + + ms->root_dir = g_strdup (root_dir); + +diff -up GConf-2.22.0/gconf/gconf-database.c.timeouts GConf-2.22.0/gconf/gconf-database.c +--- GConf-2.22.0/gconf/gconf-database.c.timeouts 2008-05-02 09:37:52.000000000 -0400 ++++ GConf-2.22.0/gconf/gconf-database.c 2008-05-02 09:38:12.000000000 -0400 +@@ -1008,7 +1008,7 @@ gconf_database_schedule_sync(GConfDataba + else + { + /* 1 minute timeout */ +- db->sync_timeout = g_timeout_add(60000, (GSourceFunc)gconf_database_sync_timeout, db); ++ db->sync_timeout = g_timeout_add_seconds(60, (GSourceFunc)gconf_database_sync_timeout, db); + } + } + +diff -up GConf-2.22.0/gconf/gconfd.c.timeouts GConf-2.22.0/gconf/gconfd.c +--- GConf-2.22.0/gconf/gconfd.c.timeouts 2008-05-02 09:36:57.000000000 -0400 ++++ GConf-2.22.0/gconf/gconfd.c 2008-05-02 09:37:43.000000000 -0400 +@@ -910,12 +910,12 @@ gconf_main(void) + + if (main_loops == NULL) + { +- gulong timeout_len = 1000*60*0.5; /* 1 sec * 60 s/min * .5 min */ ++ gulong timeout_len = 60*0.5; /* 60 s/min * .5 min */ + + g_assert(timeout_id == 0); +- timeout_id = g_timeout_add (timeout_len, +- periodic_cleanup_timeout, +- NULL); ++ timeout_id = g_timeout_add_seconds (timeout_len, ++ periodic_cleanup_timeout, ++ NULL); + + } + +@@ -1449,14 +1449,14 @@ open_append_handle (GError **err) + + + { +- const gulong timeout_len = 1000*60*0.5; /* 1 sec * 60 s/min * 0.5 min */ ++ const gulong timeout_len = 60*0.5; /* 60 s/min * 0.5 min */ + + if (append_handle_timeout != 0) + g_source_remove (append_handle_timeout); + +- append_handle_timeout = g_timeout_add (timeout_len, +- close_append_handle_timeout, +- NULL); ++ append_handle_timeout = g_timeout_add_seconds (timeout_len, ++ close_append_handle_timeout, ++ NULL); + } + } +