From 3f0535a4e21dc963a669437075e5ef4ec32f633b Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Aug 23 2008 00:58:24 +0000 Subject: 2.23.2 --- diff --git a/.cvsignore b/.cvsignore index 5edbbf5..9d7cf59 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -GConf-2.23.1.tar.bz2 +GConf-2.23.2.tar.bz2 diff --git a/GConf2.spec b/GConf2.spec index a183f3c..07bdf82 100644 --- a/GConf2.spec +++ b/GConf2.spec @@ -6,7 +6,7 @@ Summary: A process-transparent configuration system Name: GConf2 -Version: 2.23.1 +Version: 2.23.2 Release: 1%{?dist} License: LGPLv2+ Group: System Environment/Base @@ -25,9 +25,7 @@ BuildRequires: pkgconfig >= 0.14 BuildRequires: gettext BuildRequires: openldap-devel BuildRequires: perl(XML::Parser) -BuildRequires: libtool, autoconf, automake BuildRequires: intltool -# for patch3 BuildRequires: PolicyKit-devel >= 0.8 BuildRequires: dbus-glib-devel >= 0.8 Requires: dbus @@ -38,10 +36,6 @@ 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=531169 -Patch6: defaults.patch -Patch7: fix-defaults.patch - %description GConf is a process-transparent configuration database API used to store user preferences. It has pluggable backends and features to @@ -77,14 +71,9 @@ which require GTK+. %setup -q -n GConf-%{version} %patch0 -p1 -b .reload %patch1 -p1 -b .timers -%patch6 -p1 -b .defaults -%patch7 -p1 -b .fix-defaults %build -rm -f libtool -libtoolize --force --copy -autoreconf -%configure --disable-static +%configure --disable-static --enable-defaults-service make %install @@ -151,6 +140,10 @@ fi %{_libdir}/pkgconfig/* %changelog +* Fri Aug 22 2008 Matthias Clasen - 2.23.2-1 +- Update to 2.23.2 +- Drop upstreamed patches + * Wed Jun 4 2008 Matthias Clasen - 2.23.1-1 - Upodate to 2.23.1 diff --git a/defaults.patch b/defaults.patch deleted file mode 100644 index b8ef71a..0000000 --- a/defaults.patch +++ /dev/null @@ -1,1622 +0,0 @@ -diff -up GConf-2.22.0/configure.in.defaults GConf-2.22.0/configure.in ---- GConf-2.22.0/configure.in.defaults 2008-03-10 10:52:28.000000000 -0400 -+++ GConf-2.22.0/configure.in 2008-05-04 18:25:49.000000000 -0400 -@@ -166,6 +166,7 @@ AC_SUBST(DEPENDENT_WITH_GTK_CFLAGS) - AC_SUBST(DEPENDENT_WITH_XML_AND_GTK_LIBS) - AC_SUBST(DEPENDENT_WITH_XML_AND_GTK_CFLAGS) - -+PKG_CHECK_MODULES(DEFAULTS, glib-2.0 gobject-2.0 dbus-1 dbus-glib-1 polkit-dbus) - - ORBIT_IDL="`$PKG_CONFIG --variable=orbit_idl ORBit-2.0`" - AC_SUBST(ORBIT_IDL) -@@ -261,6 +262,7 @@ doc/Makefile - doc/gconf/Makefile - examples/Makefile - tests/Makefile -+defaults/Makefile - gconf-2.0.pc - ]) - -diff -up /dev/null GConf-2.22.0/defaults/gconf-defaults.c ---- /dev/null 2008-05-04 08:09:30.807030239 -0400 -+++ GConf-2.22.0/defaults/gconf-defaults.c 2008-05-04 18:25:49.000000000 -0400 -@@ -0,0 +1,704 @@ -+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- -+ * -+ * Copyright (C) 2008 Matthias Clasen -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ */ -+ -+#include "config.h" -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+#include -+#include -+ -+#include -+#include -+ -+#define GCONF_ENABLE_INTERNALS -+#include -+#include -+ -+#include "gconf-defaults.h" -+#include "gconf-defaults-glue.h" -+ -+static gboolean -+do_exit (gpointer user_data) -+{ -+ g_debug ("Exiting due to inactivity"); -+ exit (1); -+ return FALSE; -+} -+ -+static guint timer_id = 0; -+ -+static void -+stop_killtimer (void) -+{ -+ if (timer_id > 0) { -+ g_source_remove (timer_id); -+ timer_id = 0; -+ } -+} -+ -+static void -+start_killtimer (void) -+{ -+ g_debug ("Setting killtimer to 30 seconds..."); -+ timer_id = g_timeout_add_seconds (30, do_exit, NULL); -+} -+ -+struct GConfDefaultsPrivate -+{ -+ DBusGConnection *system_bus_connection; -+ DBusGProxy *system_bus_proxy; -+ PolKitContext *pol_ctx; -+}; -+ -+static void gconf_defaults_finalize (GObject *object); -+ -+G_DEFINE_TYPE (GConfDefaults, gconf_defaults, G_TYPE_OBJECT) -+ -+#define GCONF_DEFAULTS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GCONF_TYPE_DEFAULTS, GConfDefaultsPrivate)) -+ -+GQuark -+gconf_defaults_error_quark (void) -+{ -+ static GQuark ret = 0; -+ -+ if (ret == 0) { -+ ret = g_quark_from_static_string ("gconf_defaults_error"); -+ } -+ -+ return ret; -+} -+ -+ -+#define ENUM_ENTRY(NAME, DESC) { NAME, "" #NAME "", DESC } -+ -+GType -+gconf_defaults_error_get_type (void) -+{ -+ static GType etype = 0; -+ -+ if (etype == 0) -+ { -+ static const GEnumValue values[] = -+ { -+ ENUM_ENTRY (GCONF_DEFAULTS_ERROR_GENERAL, "GeneralError"), -+ ENUM_ENTRY (GCONF_DEFAULTS_ERROR_NOT_PRIVILEGED, "NotPrivileged"), -+ { 0, 0, 0 } -+ }; -+ -+ g_assert (GCONF_DEFAULTS_NUM_ERRORS == G_N_ELEMENTS (values) - 1); -+ -+ etype = g_enum_register_static ("GConfDefaultsError", values); -+ } -+ -+ return etype; -+} -+ -+ -+static GObject * -+gconf_defaults_constructor (GType type, -+ guint n_construct_properties, -+ GObjectConstructParam *construct_properties) -+{ -+ GConfDefaults *mechanism; -+ GConfDefaultsClass *klass; -+ -+ klass = GCONF_DEFAULTS_CLASS (g_type_class_peek (GCONF_TYPE_DEFAULTS)); -+ -+ mechanism = GCONF_DEFAULTS (G_OBJECT_CLASS (gconf_defaults_parent_class)->constructor ( -+ type, -+ n_construct_properties, -+ construct_properties)); -+ -+ return G_OBJECT (mechanism); -+} -+ -+static void -+gconf_defaults_class_init (GConfDefaultsClass *klass) -+{ -+ GObjectClass *object_class = G_OBJECT_CLASS (klass); -+ -+ object_class->constructor = gconf_defaults_constructor; -+ object_class->finalize = gconf_defaults_finalize; -+ -+ g_type_class_add_private (klass, sizeof (GConfDefaultsPrivate)); -+ -+ dbus_g_object_type_install_info (GCONF_TYPE_DEFAULTS, &dbus_glib_gconf_defaults_object_info); -+ -+ dbus_g_error_domain_register (GCONF_DEFAULTS_ERROR, NULL, GCONF_DEFAULTS_TYPE_ERROR); -+ -+} -+ -+static void -+gconf_defaults_init (GConfDefaults *mechanism) -+{ -+ mechanism->priv = GCONF_DEFAULTS_GET_PRIVATE (mechanism); -+} -+ -+static void -+gconf_defaults_finalize (GObject *object) -+{ -+ GConfDefaults *mechanism; -+ -+ g_return_if_fail (object != NULL); -+ g_return_if_fail (GCONF_IS_DEFAULTS (object)); -+ -+ mechanism = GCONF_DEFAULTS (object); -+ -+ g_return_if_fail (mechanism->priv != NULL); -+ -+ g_object_unref (mechanism->priv->system_bus_proxy); -+ -+ G_OBJECT_CLASS (gconf_defaults_parent_class)->finalize (object); -+} -+ -+static gboolean -+pk_io_watch_have_data (GIOChannel *channel, GIOCondition condition, gpointer user_data) -+{ -+ int fd; -+ PolKitContext *pk_context = user_data; -+ fd = g_io_channel_unix_get_fd (channel); -+ polkit_context_io_func (pk_context, fd); -+ return TRUE; -+} -+ -+static int -+pk_io_add_watch (PolKitContext *pk_context, int fd) -+{ -+ guint id = 0; -+ GIOChannel *channel; -+ channel = g_io_channel_unix_new (fd); -+ if (channel == NULL) -+ goto out; -+ id = g_io_add_watch (channel, G_IO_IN, pk_io_watch_have_data, pk_context); -+ if (id == 0) { -+ g_io_channel_unref (channel); -+ goto out; -+ } -+ g_io_channel_unref (channel); -+out: -+ return id; -+} -+ -+static void -+pk_io_remove_watch (PolKitContext *pk_context, int watch_id) -+{ -+ g_source_remove (watch_id); -+} -+ -+static gboolean -+register_mechanism (GConfDefaults *mechanism) -+{ -+ GError *error = NULL; -+ -+ mechanism->priv->pol_ctx = polkit_context_new (); -+ polkit_context_set_io_watch_functions (mechanism->priv->pol_ctx, pk_io_add_watch, pk_io_remove_watch); -+ if (!polkit_context_init (mechanism->priv->pol_ctx, NULL)) { -+ g_critical ("cannot initialize libpolkit"); -+ goto error; -+ } -+ -+ error = NULL; -+ mechanism->priv->system_bus_connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); -+ if (mechanism->priv->system_bus_connection == NULL) { -+ if (error != NULL) { -+ g_critical ("error getting system bus: %s", error->message); -+ g_error_free (error); -+ } -+ goto error; -+ } -+ -+ dbus_g_connection_register_g_object (mechanism->priv->system_bus_connection, "/", -+ G_OBJECT (mechanism)); -+ -+ mechanism->priv->system_bus_proxy = dbus_g_proxy_new_for_name (mechanism->priv->system_bus_connection, -+ DBUS_SERVICE_DBUS, -+ DBUS_PATH_DBUS, -+ DBUS_INTERFACE_DBUS); -+ -+ start_killtimer (); -+ -+ return TRUE; -+ -+error: -+ return FALSE; -+} -+ -+ -+GConfDefaults * -+gconf_defaults_new (void) -+{ -+ GObject *object; -+ gboolean res; -+ -+ object = g_object_new (GCONF_TYPE_DEFAULTS, NULL); -+ -+ res = register_mechanism (GCONF_DEFAULTS (object)); -+ if (! res) { -+ g_object_unref (object); -+ return NULL; -+ } -+ -+ return GCONF_DEFAULTS (object); -+} -+ -+static const char * -+polkit_action_for_gconf_path (GConfDefaults *mechanism, -+ const char *annotation_key, -+ const char *path) -+{ -+ PolKitPolicyCache *cache; -+ PolKitPolicyFileEntry *entry; -+ char *prefix, *p; -+ const char *action; -+ -+ cache = polkit_context_get_policy_cache (mechanism->priv->pol_ctx); -+ prefix = g_strdup (path); -+ -+ while (1) { -+ entry = polkit_policy_cache_get_entry_by_annotation (cache, -+ annotation_key, -+ prefix); -+ if (entry) { -+ action = polkit_policy_file_entry_get_id (entry); -+ break; -+ } -+ -+ p = strrchr (prefix, '/'); -+ -+ if (p == NULL || p == prefix) { -+ action = NULL; -+ break; -+ } -+ -+ *p = 0; -+ } -+ -+ g_free (prefix); -+ -+ return action; -+} -+ -+static gboolean -+check_polkit_for_action (GConfDefaults *mechanism, -+ DBusGMethodInvocation *context, -+ const char *action) -+{ -+ const char *sender; -+ GError *error; -+ DBusError dbus_error; -+ PolKitCaller *pk_caller; -+ PolKitAction *pk_action; -+ PolKitResult pk_result; -+ -+ error = NULL; -+ -+ /* Check that caller is privileged */ -+ sender = dbus_g_method_get_sender (context); -+ dbus_error_init (&dbus_error); -+ pk_caller = polkit_caller_new_from_dbus_name ( -+ dbus_g_connection_get_connection (mechanism->priv->system_bus_connection), -+ sender, -+ &dbus_error); -+ if (pk_caller == NULL) { -+ error = g_error_new (GCONF_DEFAULTS_ERROR, -+ GCONF_DEFAULTS_ERROR_GENERAL, -+ "Error getting information about caller: %s: %s", -+ dbus_error.name, dbus_error.message); -+ dbus_error_free (&dbus_error); -+ dbus_g_method_return_error (context, error); -+ g_error_free (error); -+ return FALSE; -+ } -+ -+ pk_action = polkit_action_new (); -+ polkit_action_set_action_id (pk_action, action); -+ pk_result = polkit_context_is_caller_authorized (mechanism->priv->pol_ctx, pk_action, pk_caller, TRUE, NULL); -+ polkit_caller_unref (pk_caller); -+ -+ if (pk_result != POLKIT_RESULT_YES) { -+ dbus_error_init (&dbus_error); -+ polkit_dbus_error_generate (pk_action, pk_result, &dbus_error); -+ dbus_set_g_error (&error, &dbus_error); -+ dbus_g_method_return_error (context, error); -+ dbus_error_free (&dbus_error); -+ g_error_free (error); -+ polkit_action_unref (pk_action); -+ return FALSE; -+ } -+ -+ polkit_action_unref (pk_action); -+ return TRUE; -+} -+ -+static char * -+gconf_address_for_caller (GConfDefaults *mechanism, -+ DBusGMethodInvocation *context, -+ GError **gerror) -+{ -+ char *sender; -+ DBusConnection *conn; -+ uid_t uid; -+ struct passwd *pwd; -+ char *result; -+ DBusError error; -+ -+ conn = dbus_g_connection_get_connection (mechanism->priv->system_bus_connection); -+ sender = dbus_g_method_get_sender (context); -+ -+ dbus_error_init (&error); -+ uid = dbus_bus_get_unix_user (conn, sender, &error); -+ g_free (sender); -+ if (uid == (unsigned)-1) { -+ dbus_set_g_error (gerror, &error); -+ dbus_error_free (&error); -+ return NULL; -+ } -+ -+ pwd = getpwuid (uid); -+ if (pwd == NULL) { -+ g_set_error (gerror, -+ 0, 0, -+ "Failed to get passwd information for uid %d", uid); -+ return NULL; -+ } -+ -+ result = g_strconcat ("xml:merged:", pwd->pw_dir, "/.gconf", NULL); -+ return result; -+} -+ -+static gboolean -+path_is_excluded (const char *path, -+ const char **excludes) -+{ -+ int i; -+ -+ for (i = 0; excludes && excludes[i]; i++) { -+ if (g_str_has_prefix (path, excludes[i])) -+ return TRUE; -+ } -+ -+ return FALSE; -+} -+ -+static void -+copy_tree (GConfClient *src, -+ const char *path, -+ GConfChangeSet *changes, -+ const char **excludes) -+{ -+ GSList *list, *l; -+ GConfEntry *entry; -+ -+ if (path_is_excluded (path, excludes)) -+ return; -+ -+ list = gconf_client_all_entries (src, path, NULL); -+ for (l = list; l; l = l->next) { -+ entry = l->data; -+ if (!path_is_excluded (entry->key, excludes)) -+ gconf_change_set_set (changes, entry->key, entry->value); -+ } -+ g_slist_foreach (list, (GFunc)gconf_entry_free, NULL); -+ g_slist_free (list); -+ -+ list = gconf_client_all_dirs (src, path, NULL); -+ for (l = list; l; l = l->next) -+ copy_tree (src, (const char *)l->data, changes, excludes); -+ g_slist_foreach (list, (GFunc)g_free, NULL); -+ g_slist_free (list); -+} -+ -+static void -+copy_entry (GConfClient *src, -+ const char *path, -+ GConfChangeSet *changes, -+ const char **excludes) -+{ -+ GConfValue *value; -+ -+ if (path_is_excluded (path, excludes)) -+ return; -+ -+ value = gconf_client_get (src, path, NULL); -+ if (value) { -+ gconf_change_set_set (changes, path, value); -+ gconf_value_free (value); -+ } -+} -+ -+ -+void -+do_copy (GConfDefaults *mechanism, -+ gboolean mandatory, -+ const char **includes, -+ const char **excludes, -+ DBusGMethodInvocation *context) -+{ -+ char *address = NULL; -+ GConfClient *source = NULL; -+ GConfClient *dest = NULL; -+ GConfChangeSet *changes = NULL; -+ GConfEngine *engine; -+ GError *error; -+ GError *error2; -+ const char *action; -+ const char *annotation_key; -+ const char *default_action; -+ const char *dest_address; -+ int i; -+ -+ stop_killtimer (); -+ -+ /* check privileges for each include */ -+ if (mandatory) { -+ annotation_key = "org.gnome.gconf.defaults.set-mandatory.prefix"; -+ default_action = "org.gnome.gconf.defaults.set-mandatory"; -+ dest_address = "xml:merged:/etc/gconf/gconf.xml.mandatory"; -+ } -+ else { -+ annotation_key = "org.gnome.gconf.defaults.set-system.prefix"; -+ default_action = "org.gnome.gconf.defaults.set-system"; -+ dest_address = "xml:merged:/etc/gconf/gconf.xml.system"; -+ } -+ -+ for (i = 0; includes[i]; i++) { -+ action = polkit_action_for_gconf_path (mechanism, annotation_key, includes[i]); -+ if (action == NULL) -+ action = default_action; -+ -+ if (!check_polkit_for_action (mechanism, context, action)) -+ goto out; -+ } -+ -+ error = NULL; -+ engine = gconf_engine_get_local (dest_address, &error); -+ if (error) -+ goto cleanup; -+ -+ dest = gconf_client_get_for_engine (engine); -+ gconf_engine_unref (engine); -+ -+ /* find the address to from the caller id */ -+ address = gconf_address_for_caller (mechanism, context, &error); -+ if (error) -+ goto cleanup; -+ -+ engine = gconf_engine_get_local (address, &error); -+ if (error) -+ goto cleanup; -+ -+ source = gconf_client_get_for_engine (engine); -+ gconf_engine_unref (engine); -+ -+ changes = gconf_change_set_new (); -+ -+ /* recursively copy each include, leaving out the excludes */ -+ for (i = 0; includes[i]; i++) { -+ if (gconf_client_dir_exists (source, includes[i], NULL)) -+ copy_tree (source, includes[i], changes, excludes); -+ else -+ copy_entry (source, includes[i], changes, excludes); -+ } -+ -+ gconf_client_commit_change_set (dest, changes, TRUE, &error); -+ gconf_client_suggest_sync (dest, NULL); -+ -+cleanup: -+ g_free (address); -+ if (changes) -+ gconf_change_set_unref (changes); -+ if (dest) -+ g_object_unref (dest); -+ if (source) -+ g_object_unref (source); -+ -+ if (error) { -+ g_print ("failed to set GConf values: %s\n", error->message); -+ error2 = g_error_new (GCONF_DEFAULTS_ERROR, -+ GCONF_DEFAULTS_ERROR_GENERAL, -+ error->message); -+ g_error_free (error); -+ -+ dbus_g_method_return_error (context, error2); -+ g_error_free (error2); -+ } -+ else -+ dbus_g_method_return (context); -+ -+out: -+ start_killtimer (); -+} -+ -+void -+gconf_defaults_set_system (GConfDefaults *mechanism, -+ const char **includes, -+ const char **excludes, -+ DBusGMethodInvocation *context) -+{ -+ do_copy (mechanism, FALSE, includes, excludes, context); -+} -+ -+ -+void -+gconf_defaults_set_mandatory (GConfDefaults *mechanism, -+ const char **includes, -+ const char **excludes, -+ DBusGMethodInvocation *context) -+{ -+ do_copy (mechanism, TRUE, includes, excludes, context); -+} -+ -+static void -+unset_tree (GConfClient *dest, -+ const char *path, -+ GConfChangeSet *changes, -+ const char **excludes) -+{ -+ GSList *list, *l; -+ GConfEntry *entry; -+ -+ if (path_is_excluded (path, excludes)) -+ return; -+ -+ list = gconf_client_all_entries (dest, path, NULL); -+ for (l = list; l; l = l->next) { -+ entry = l->data; -+ if (!path_is_excluded (entry->key, excludes)) -+ gconf_change_set_unset (changes, entry->key); -+ } -+ g_slist_foreach (list, (GFunc)gconf_entry_free, NULL); -+ g_slist_free (list); -+ -+ list = gconf_client_all_dirs (dest, path, NULL); -+ for (l = list; l; l = l->next) -+ unset_tree (dest, (const char *)l->data, changes, excludes); -+ g_slist_foreach (list, (GFunc)g_free, NULL); -+ g_slist_free (list); -+} -+ -+static void -+unset_entry (GConfClient *dest, -+ const char *path, -+ GConfChangeSet *changes, -+ const char **excludes) -+{ -+ if (path_is_excluded (path, excludes)) -+ return; -+ -+ gconf_change_set_unset (changes, path); -+} -+ -+static void -+unset_in_db (GConfDefaults *mechanism, -+ const char *address, -+ const char **includes, -+ const char **excludes, -+ GError **error) -+{ -+ GConfEngine *engine; -+ GConfClient *dest = NULL; -+ GConfChangeSet *changes = NULL; -+ int i; -+ -+ engine = gconf_engine_get_local (address, error); -+ if (*error) -+ goto out; -+ -+ dest = gconf_client_get_for_engine (engine); -+ gconf_engine_unref (engine); -+ -+ changes = gconf_change_set_new (); -+ -+ /* recursively copy each include, leaving out the excludes */ -+ for (i = 0; includes[i]; i++) { -+ if (gconf_client_dir_exists (dest, includes[i], NULL)) -+ unset_tree (dest, includes[i], changes, excludes); -+ else -+ unset_entry (dest, includes[i], changes, excludes); -+ } -+ -+ gconf_client_commit_change_set (dest, changes, TRUE, error); -+ gconf_client_suggest_sync (dest, NULL); -+ -+out: -+ if (dest) -+ g_object_unref (dest); -+ if (changes) -+ gconf_change_set_unref (changes); -+} -+ -+void -+gconf_defaults_unset_mandatory (GConfDefaults *mechanism, -+ const char **includes, -+ const char **excludes, -+ DBusGMethodInvocation *context) -+{ -+ const char *annotation_key; -+ const char *default_action; -+ int i; -+ const char *action; -+ GError *error; -+ GError *error2; -+ -+ stop_killtimer (); -+ -+ annotation_key = "org.gnome.gconf.defaults.set-mandatory.prefix"; -+ default_action = "org.gnome.gconf.defaults.set-mandatory"; -+ -+ for (i = 0; includes[i]; i++) { -+ action = polkit_action_for_gconf_path (mechanism, annotation_key, includes[i]); -+ if (action == NULL) -+ action = default_action; -+ -+ if (!check_polkit_for_action (mechanism, context, action)) -+ goto out; -+ } -+ -+ error = NULL; -+ unset_in_db (mechanism,"xml:merged:/etc/gconf/gconf.xml.mandatory", -+ includes, excludes, &error); -+ -+ if (error) { -+ error2 = g_error_new (GCONF_DEFAULTS_ERROR, -+ GCONF_DEFAULTS_ERROR_GENERAL, -+ error->message); -+ g_error_free (error); -+ -+ dbus_g_method_return_error (context, error2); -+ g_error_free (error2); -+ } -+ else -+ dbus_g_method_return (context); -+out: -+ start_killtimer(); -+} -diff -up /dev/null GConf-2.22.0/defaults/gconf-defaults.h ---- /dev/null 2008-05-04 08:09:30.807030239 -0400 -+++ GConf-2.22.0/defaults/gconf-defaults.h 2008-05-04 18:25:49.000000000 -0400 -@@ -0,0 +1,84 @@ -+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- -+ * -+ * Copyright (C) 2008 Matthias Clasen -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ */ -+ -+#ifndef GCONF_DEFAULTS_H -+#define GCONF_DEFAULTS_H -+ -+#include -+#include -+ -+G_BEGIN_DECLS -+ -+#define GCONF_TYPE_DEFAULTS (gconf_defaults_get_type ()) -+#define GCONF_DEFAULTS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GCONF_TYPE_DEFAULTS, GConfDefaults)) -+#define GCONF_DEFAULTS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GCONF_TYPE_DEFAULTS, GConfDefaultsClass)) -+#define GCONF_IS_DEFAULTS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GCONF_TYPE_DEFAULTS)) -+#define GCONF_IS_DEFAULTS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GCONF_TYPE_DEFAULTS)) -+#define GCONF_DEFAULTS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GCONF_TYPE_DEFAULTS, GConfDefaultsClass)) -+ -+typedef struct GConfDefaultsPrivate GConfDefaultsPrivate; -+ -+typedef struct -+{ -+ GObject parent; -+ GConfDefaultsPrivate *priv; -+} GConfDefaults; -+ -+typedef struct -+{ -+ GObjectClass parent_class; -+} GConfDefaultsClass; -+ -+typedef enum -+{ -+ GCONF_DEFAULTS_ERROR_GENERAL, -+ GCONF_DEFAULTS_ERROR_NOT_PRIVILEGED, -+ GCONF_DEFAULTS_NUM_ERRORS -+} GConfDefaultsError; -+ -+#define GCONF_DEFAULTS_ERROR gconf_defaults_error_quark () -+ -+GType gconf_defaults_error_get_type (void); -+#define GCONF_DEFAULTS_TYPE_ERROR (gconf_defaults_error_get_type ()) -+ -+ -+GQuark gconf_defaults_error_quark (void); -+GType gconf_defaults_get_type (void); -+GConfDefaults *gconf_defaults_new (void); -+ -+/* exported methods */ -+void gconf_defaults_set_system (GConfDefaults *mechanism, -+ const char **includes, -+ const char **excludes, -+ DBusGMethodInvocation *context); -+ -+void gconf_defaults_set_mandatory (GConfDefaults *mechanism, -+ const char **includes, -+ const char **excludes, -+ DBusGMethodInvocation *context); -+ -+void gconf_defaults_unset_mandatory (GConfDefaults *mechanism, -+ const char **includes, -+ const char **excludes, -+ DBusGMethodInvocation *context); -+ -+G_END_DECLS -+ -+#endif /* GCONF_DEFAULTS_H */ -diff -up /dev/null GConf-2.22.0/defaults/gconf-defaults-main.c ---- /dev/null 2008-05-04 08:09:30.807030239 -0400 -+++ GConf-2.22.0/defaults/gconf-defaults-main.c 2008-05-04 18:25:49.000000000 -0400 -@@ -0,0 +1,174 @@ -+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- -+ * -+ * Copyright (C) 2008 Matthias Clasen -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ */ -+ -+#include "config.h" -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+#include -+#include -+ -+ -+#include "gconf-defaults.h" -+ -+static DBusGProxy * -+get_bus_proxy (DBusGConnection *connection) -+{ -+ DBusGProxy *bus_proxy; -+ -+ bus_proxy = dbus_g_proxy_new_for_name (connection, -+ DBUS_SERVICE_DBUS, -+ DBUS_PATH_DBUS, -+ DBUS_INTERFACE_DBUS); -+ return bus_proxy; -+} -+ -+#define BUS_NAME "org.gnome.GConf.Defaults" -+ -+static gboolean -+acquire_name_on_proxy (DBusGProxy *bus_proxy) -+{ -+ GError *error; -+ guint result; -+ gboolean res; -+ gboolean ret; -+ -+ ret = FALSE; -+ -+ if (bus_proxy == NULL) { -+ goto out; -+ } -+ -+ error = NULL; -+ res = dbus_g_proxy_call (bus_proxy, -+ "RequestName", -+ &error, -+ G_TYPE_STRING, BUS_NAME, -+ G_TYPE_UINT, 0, -+ G_TYPE_INVALID, -+ G_TYPE_UINT, &result, -+ G_TYPE_INVALID); -+ if (! res) { -+ if (error != NULL) { -+ g_warning ("Failed to acquire %s: %s", BUS_NAME, error->message); -+ g_error_free (error); -+ } else { -+ g_warning ("Failed to acquire %s", BUS_NAME); -+ } -+ goto out; -+ } -+ -+ if (result != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) { -+ if (error != NULL) { -+ g_warning ("Failed to acquire %s: %s", BUS_NAME, error->message); -+ g_error_free (error); -+ } else { -+ g_warning ("Failed to acquire %s", BUS_NAME); -+ } -+ goto out; -+ } -+ -+ ret = TRUE; -+ -+ out: -+ return ret; -+} -+ -+static DBusGConnection * -+get_system_bus (void) -+{ -+ GError *error; -+ DBusGConnection *bus; -+ DBusConnection *connection; -+ -+ error = NULL; -+ bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); -+ if (bus == NULL) { -+ g_warning ("Couldn't connect to system bus: %s", error->message); -+ g_error_free (error); -+ goto out; -+ } -+ -+ connection = dbus_g_connection_get_connection (bus); -+ out: -+ return bus; -+} -+ -+int -+main (int argc, char **argv) -+{ -+ GMainLoop *loop; -+ GConfDefaults *mechanism; -+ DBusGProxy *bus_proxy; -+ DBusGConnection *connection; -+ int ret; -+ -+ ret = 1; -+ -+ if (! g_thread_supported ()) { -+ g_thread_init (NULL); -+ } -+ dbus_g_thread_init (); -+ g_type_init (); -+ -+ connection = get_system_bus (); -+ if (connection == NULL) { -+ goto out; -+ } -+ -+ bus_proxy = get_bus_proxy (connection); -+ if (bus_proxy == NULL) { -+ g_warning ("Could not construct bus_proxy object; bailing out"); -+ goto out; -+ } -+ -+ mechanism = gconf_defaults_new (); -+ -+ if (mechanism == NULL) { -+ goto out; -+ } -+ -+ if (!acquire_name_on_proxy (bus_proxy)) { -+ g_warning ("Could not acquire name; bailing out"); -+ goto out; -+ } -+ -+ loop = g_main_loop_new (NULL, FALSE); -+ -+ g_main_loop_run (loop); -+ -+ g_object_unref (mechanism); -+ g_main_loop_unref (loop); -+ ret = 0; -+ -+out: -+ return ret; -+} -diff -up /dev/null GConf-2.22.0/defaults/gconf-defaults.xml ---- /dev/null 2008-05-04 08:09:30.807030239 -0400 -+++ GConf-2.22.0/defaults/gconf-defaults.xml 2008-05-04 18:25:49.000000000 -0400 -@@ -0,0 +1,61 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -diff -up /dev/null GConf-2.22.0/defaults/Makefile.am ---- /dev/null 2008-05-04 08:09:30.807030239 -0400 -+++ GConf-2.22.0/defaults/Makefile.am 2008-05-04 18:28:36.000000000 -0400 -@@ -0,0 +1,56 @@ -+libexec_PROGRAMS = gconf-defaults-mechanism -+ -+gconf-defaults-glue.h: $(srcdir)/gconf-defaults.xml -+ dbus-binding-tool --prefix=gconf_defaults --mode=glib-server \ -+ --output=gconf-defaults-glue.h \ -+ $(srcdir)/gconf-defaults.xml -+ -+ -+gconf_defaults_mechanism_SOURCES = \ -+ gconf-defaults.h \ -+ gconf-defaults.c \ -+ gconf-defaults-glue.h \ -+ gconf-defaults-main.c -+ -+INCLUDES = \ -+ -I$(top_srcdir) \ -+ -I$(top_builddir) \ -+ $(DEFAULTS_CFLAGS) -+ -+gconf_defaults_mechanism_LDADD = \ -+ $(top_builddir)/gconf/libgconf-2.la \ -+ $(DEFAULTS_LIBS) -+ -+BUILT_SOURCES = gconf-defaults-glue.h -+ -+dbus_servicesdir = $(datadir)/dbus-1/system-services -+dbus_confdir = $(sysconfdir)/dbus-1/system.d -+polkitdir = $(datadir)/PolicyKit/policy -+ -+dbus_services_in_files = org.gnome.GConf.Defaults.service.in -+polkit_in_files = org.gnome.gconf.defaults.policy.in -+ -+dbus_services_DATA = $(dbus_services_in_files:.service.in=.service) -+ -+$(dbus_services_DATA): $(dbus_services_in_files) -+ sed -e "s|\@LIBEXECDIR\@|$(libexecdir)|" $< > $@ -+ -+dbus_conf_DATA = org.gnome.GConf.Defaults.conf -+ -+@INTLTOOL_POLICY_RULE@ -+polkit_DATA = $(polkit_in_files:.policy.in=.policy) -+ -+check: -+ $(POLKIT_POLICY_FILE_VALIDATE) $(polkit_DATA) -+ -+EXTRA_DIST = \ -+ $(dbus_services_in_files) \ -+ org.gnome.GConf.Defaults.conf \ -+ $(polkit_in_files) \ -+ gconf-defaults.xml -+ -+CLEANFILES = \ -+ $(BUILT_SOURCES) \ -+ $(polkit_DATA) \ -+ $(dbus_services_DATA) -+ -diff -up /dev/null GConf-2.22.0/defaults/org.gnome.GConf.Defaults.conf ---- /dev/null 2008-05-04 08:09:30.807030239 -0400 -+++ GConf-2.22.0/defaults/org.gnome.GConf.Defaults.conf 2008-05-04 18:25:49.000000000 -0400 -@@ -0,0 +1,23 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -diff -up /dev/null GConf-2.22.0/defaults/org.gnome.gconf.defaults.policy.in ---- /dev/null 2008-05-04 08:09:30.807030239 -0400 -+++ GConf-2.22.0/defaults/org.gnome.gconf.defaults.policy.in 2008-05-04 18:25:49.000000000 -0400 -@@ -0,0 +1,28 @@ -+ -+ -+ -+ The GNOME Project -+ http://www.gnome.org/projects/gconf/ -+ gconf-editor -+ -+ -+ Change GConf system values -+ Privileges are required to change GConf system values -+ -+ no -+ auth_admin -+ -+ -+ -+ -+ Change GConf mandatory values -+ Privileges are required to change GConf mandatory values -+ -+ no -+ auth_admin -+ -+ -+ -+ -diff -up /dev/null GConf-2.22.0/defaults/org.gnome.GConf.Defaults.service.in ---- /dev/null 2008-05-04 08:09:30.807030239 -0400 -+++ GConf-2.22.0/defaults/org.gnome.GConf.Defaults.service.in 2008-05-04 18:25:49.000000000 -0400 -@@ -0,0 +1,4 @@ -+[D-BUS Service] -+Name=org.gnome.GConf.Defaults -+Exec=@LIBEXECDIR@/gconf-defaults-mechanism -+User=root -diff -up GConf-2.22.0/Makefile.am.defaults GConf-2.22.0/Makefile.am ---- GConf-2.22.0/Makefile.am.defaults 2007-06-25 07:11:31.000000000 -0400 -+++ GConf-2.22.0/Makefile.am 2008-05-04 18:25:49.000000000 -0400 -@@ -1,5 +1,5 @@ - --SUBDIRS = gconf backends po doc examples -+SUBDIRS = gconf backends po doc examples defaults - DIST_SUBDIRS=tests $(SUBDIRS) - - EXTRA_DIST = \ -diff -up GConf-2.22.0/po/POTFILES.in.defaults GConf-2.22.0/po/POTFILES.in ---- GConf-2.22.0/po/POTFILES.in.defaults 2007-06-25 07:11:31.000000000 -0400 -+++ GConf-2.22.0/po/POTFILES.in 2008-05-04 18:25:49.000000000 -0400 -@@ -9,6 +9,7 @@ backends/xml-backend.c - backends/xml-cache.c - backends/xml-dir.c - backends/xml-entry.c -+defaults/org.gnome.gconf.defaults.policy.in - gconf/gconf-backend.c - gconf/gconf-client.c - gconf/gconf-database.c -diff -u -r GConf-2.22.0/defaults/gconf-defaults.c hacked/defaults/gconf-defaults.c ---- GConf-2.22.0/defaults/gconf-defaults.c 2008-05-09 23:04:37.000000000 -0400 -+++ hacked/defaults/gconf-defaults.c 2008-05-09 23:07:18.000000000 -0400 -@@ -142,6 +143,13 @@ - return G_OBJECT (mechanism); - } - -+enum { -+ SYSTEM_SET, -+ LAST_SIGNAL -+}; -+ -+static guint signals[LAST_SIGNAL] = { 0 }; -+ - static void - gconf_defaults_class_init (GConfDefaultsClass *klass) - { -@@ -150,6 +158,14 @@ - object_class->constructor = gconf_defaults_constructor; - object_class->finalize = gconf_defaults_finalize; - -+ signals[SYSTEM_SET] = g_signal_new ("system-set", -+ G_OBJECT_CLASS_TYPE (object_class), -+ G_SIGNAL_RUN_FIRST, -+ G_STRUCT_OFFSET (GConfDefaultsClass, system_set), -+ NULL, NULL, -+ g_cclosure_marshal_VOID__BOXED, -+ G_TYPE_NONE, 1, G_TYPE_STRV); -+ - g_type_class_add_private (klass, sizeof (GConfDefaultsPrivate)); - - dbus_g_object_type_install_info (GCONF_TYPE_DEFAULTS, &dbus_glib_gconf_defaults_object_info); -@@ -565,7 +581,11 @@ - const char **excludes, - DBusGMethodInvocation *context) - { -+ const char *keys[] = { "key1", "key2", NULL}; -+ -+ /* FIXME collect acutal changed keys */ - do_copy (mechanism, FALSE, includes, excludes, context); -+ g_signal_emit (mechanism, signals[SYSTEM_SET], 0, keys); - } - - -diff -u -r GConf-2.22.0/defaults/gconf-defaults.h hacked/defaults/gconf-defaults.h ---- GConf-2.22.0/defaults/gconf-defaults.h 2008-05-09 23:04:37.000000000 -0400 -+++ hacked/defaults/gconf-defaults.h 2008-05-08 22:26:35.000000000 -0400 -@@ -44,6 +44,10 @@ - typedef struct - { - GObjectClass parent_class; -+ -+ void (* system_set) (GConfDefaults *defaults, -+ const char **keys); -+ - } GConfDefaultsClass; - - typedef enum -diff -u -r GConf-2.22.0/defaults/gconf-defaults.xml hacked/defaults/gconf-defaults.xml ---- GConf-2.22.0/defaults/gconf-defaults.xml 2008-05-09 23:04:37.000000000 -0400 -+++ hacked/defaults/gconf-defaults.xml 2008-05-08 23:03:50.000000000 -0400 -@@ -21,6 +21,9 @@ - - - -+ -+ -+ - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -diff -up /dev/null GConf-2.22.0/defaults/Makefile.am ---- /dev/null 2008-05-04 08:09:30.807030239 -0400 -+++ GConf-2.22.0/defaults/Makefile.am 2008-05-04 18:28:36.000000000 -0400 -@@ -0,0 +1,56 @@ -+libexec_PROGRAMS = gconf-defaults-mechanism -+ -+gconf-defaults-glue.h: $(srcdir)/gconf-defaults.xml -+ dbus-binding-tool --prefix=gconf_defaults --mode=glib-server \ -+ --output=gconf-defaults-glue.h \ -+ $(srcdir)/gconf-defaults.xml -+ -+ -+gconf_defaults_mechanism_SOURCES = \ -+ gconf-defaults.h \ -+ gconf-defaults.c \ -+ gconf-defaults-glue.h \ -+ gconf-defaults-main.c -+ -+INCLUDES = \ -+ -I$(top_srcdir) \ -+ -I$(top_builddir) \ -+ $(DEFAULTS_CFLAGS) -+ -+gconf_defaults_mechanism_LDADD = \ -+ $(top_builddir)/gconf/libgconf-2.la \ -+ $(DEFAULTS_LIBS) -+ -+BUILT_SOURCES = gconf-defaults-glue.h -+ -+dbus_servicesdir = $(datadir)/dbus-1/system-services -+dbus_confdir = $(sysconfdir)/dbus-1/system.d -+polkitdir = $(datadir)/PolicyKit/policy -+ -+dbus_services_in_files = org.gnome.GConf.Defaults.service.in -+polkit_in_files = org.gnome.gconf.defaults.policy.in -+ -+dbus_services_DATA = $(dbus_services_in_files:.service.in=.service) -+ -+$(dbus_services_DATA): $(dbus_services_in_files) -+ sed -e "s|\@LIBEXECDIR\@|$(libexecdir)|" $< > $@ -+ -+dbus_conf_DATA = org.gnome.GConf.Defaults.conf -+ -+@INTLTOOL_POLICY_RULE@ -+polkit_DATA = $(polkit_in_files:.policy.in=.policy) -+ -+check: -+ $(POLKIT_POLICY_FILE_VALIDATE) $(polkit_DATA) -+ -+EXTRA_DIST = \ -+ $(dbus_services_in_files) \ -+ org.gnome.GConf.Defaults.conf \ -+ $(polkit_in_files) \ -+ gconf-defaults.xml -+ -+CLEANFILES = \ -+ $(BUILT_SOURCES) \ -+ $(polkit_DATA) \ -+ $(dbus_services_DATA) -+ -diff -up /dev/null GConf-2.22.0/defaults/org.gnome.GConf.Defaults.conf ---- /dev/null 2008-05-04 08:09:30.807030239 -0400 -+++ GConf-2.22.0/defaults/org.gnome.GConf.Defaults.conf 2008-05-04 18:25:49.000000000 -0400 -@@ -0,0 +1,23 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -diff -up /dev/null GConf-2.22.0/defaults/org.gnome.gconf.defaults.policy.in ---- /dev/null 2008-05-04 08:09:30.807030239 -0400 -+++ GConf-2.22.0/defaults/org.gnome.gconf.defaults.policy.in 2008-05-04 18:25:49.000000000 -0400 -@@ -0,0 +1,28 @@ -+ -+ -+ -+ The GNOME Project -+ http://www.gnome.org/projects/gconf/ -+ gconf-editor -+ -+ -+ Change GConf system values -+ Privileges are required to change GConf system values -+ -+ no -+ auth_admin -+ -+ -+ -+ -+ Change GConf mandatory values -+ Privileges are required to change GConf mandatory values -+ -+ no -+ auth_admin -+ -+ -+ -+ -diff -up /dev/null GConf-2.22.0/defaults/org.gnome.GConf.Defaults.service.in ---- /dev/null 2008-05-04 08:09:30.807030239 -0400 -+++ GConf-2.22.0/defaults/org.gnome.GConf.Defaults.service.in 2008-05-04 18:25:49.000000000 -0400 -@@ -0,0 +1,4 @@ -+[D-BUS Service] -+Name=org.gnome.GConf.Defaults -+Exec=@LIBEXECDIR@/gconf-defaults-mechanism -+User=root -diff -up GConf-2.22.0/Makefile.am.defaults GConf-2.22.0/Makefile.am ---- GConf-2.22.0/Makefile.am.defaults 2007-06-25 07:11:31.000000000 -0400 -+++ GConf-2.22.0/Makefile.am 2008-05-04 18:25:49.000000000 -0400 -@@ -1,5 +1,5 @@ - --SUBDIRS = gconf backends po doc examples -+SUBDIRS = gconf backends po doc examples defaults - DIST_SUBDIRS=tests $(SUBDIRS) - - EXTRA_DIST = \ -diff -up GConf-2.22.0/po/POTFILES.in.defaults GConf-2.22.0/po/POTFILES.in ---- GConf-2.22.0/po/POTFILES.in.defaults 2007-06-25 07:11:31.000000000 -0400 -+++ GConf-2.22.0/po/POTFILES.in 2008-05-04 18:25:49.000000000 -0400 -@@ -9,6 +9,7 @@ backends/xml-backend.c - backends/xml-cache.c - backends/xml-dir.c - backends/xml-entry.c -+defaults/org.gnome.gconf.defaults.policy.in - gconf/gconf-backend.c - gconf/gconf-client.c - gconf/gconf-database.c diff --git a/gconf-no-syslog.patch b/gconf-no-syslog.patch deleted file mode 100644 index b869732..0000000 --- a/gconf-no-syslog.patch +++ /dev/null @@ -1,274 +0,0 @@ -diff -Nur -x '*.orig' -x '*~' gconf-2.21.1/gconf/gconfd.c gconf-2.21.1.new/gconf/gconfd.c ---- gconf-2.21.1/gconf/gconfd.c 2008-01-08 15:27:41.000000000 +0100 -+++ gconf-2.21.1.new/gconf/gconfd.c 2008-01-14 12:06:23.000000000 +0100 -@@ -49,9 +49,6 @@ - #include - #include - #include --#ifdef HAVE_SYSLOG_H --#include --#endif - #include - #ifdef HAVE_SYS_WAIT_H - #include -@@ -500,41 +497,6 @@ - return the_poa; - } - --static void --log_handler (const gchar *log_domain, -- GLogLevelFlags log_level, -- const gchar *message, -- gpointer user_data) --{ -- GConfLogPriority pri = GCL_WARNING; -- -- switch (log_level & G_LOG_LEVEL_MASK) -- { -- case G_LOG_LEVEL_ERROR: -- case G_LOG_LEVEL_CRITICAL: -- pri = GCL_ERR; -- break; -- -- case G_LOG_LEVEL_WARNING: -- pri = GCL_WARNING; -- break; -- -- case G_LOG_LEVEL_MESSAGE: -- case G_LOG_LEVEL_INFO: -- pri = GCL_INFO; -- break; -- -- case G_LOG_LEVEL_DEBUG: -- pri = GCL_DEBUG; -- break; -- -- default: -- break; -- } -- -- gconf_log (pri, "%s", message); --} -- - /* From ORBit2 */ - /* There is a DOS attack if another user creates - * the given directory and keeps us from creating -@@ -597,8 +559,6 @@ - #endif - CORBA_Environment ev; - CORBA_ORB orb; -- gchar* logname; -- const gchar* username; - gchar* ior; - int exit_code = 0; - GError *err; -@@ -646,27 +606,7 @@ - - gconf_set_daemon_mode(TRUE); - -- /* Logs */ -- username = g_get_user_name(); -- logname = g_strdup_printf("gconfd (%s-%u)", username, (guint)getpid()); -- --#ifdef HAVE_SYSLOG_H -- openlog (logname, LOG_NDELAY, LOG_USER); --#endif -- -- g_log_set_handler (NULL, G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION, -- log_handler, NULL); -- -- g_log_set_handler ("GLib", G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION, -- log_handler, NULL); -- -- g_log_set_handler ("GLib-GObject", G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION, -- log_handler, NULL); -- -- /* openlog() does not copy logname - what total brokenness. -- So we free it at the end of main() */ -- -- gconf_log (GCL_INFO, _("starting (version %s), pid %u user '%s'"), -+ gconf_log (GCL_DEBUG, _("starting (version %s), pid %u user '%s'"), - VERSION, (guint)getpid(), g_get_user_name()); - - #ifdef GCONF_ENABLE_DEBUG -@@ -831,14 +771,7 @@ - - daemon_lock = NULL; - -- gconf_log (GCL_INFO, _("Exiting")); -- --#ifdef HAVE_SYSLOG_H -- closelog (); --#endif -- -- /* Can't do this due to stupid atexit() handler that calls g_log stuff */ -- /* g_free (logname); */ -+ gconf_log (GCL_DEBUG, _("Exiting")); - - return exit_code; - } -diff -Nur -x '*.orig' -x '*~' gconf-2.21.1/gconf/gconf-internals.c gconf-2.21.1.new/gconf/gconf-internals.c ---- gconf-2.21.1/gconf/gconf-internals.c 2008-01-08 15:28:59.000000000 +0100 -+++ gconf-2.21.1.new/gconf/gconf-internals.c 2008-01-14 12:06:23.000000000 +0100 -@@ -1096,105 +1096,46 @@ - * Log - */ - --#ifdef HAVE_SYSLOG_H --#include --#endif -- - void - gconf_log(GConfLogPriority pri, const gchar* fmt, ...) - { -- gchar* msg; - va_list args; --#ifdef HAVE_SYSLOG_H -- gchar* convmsg; -- int syslog_pri = LOG_DEBUG; --#endif -+ GLogLevelFlags loglevel; - - if (!gconf_log_debug_messages && - pri == GCL_DEBUG) - return; -- -- va_start (args, fmt); -- msg = g_strdup_vprintf(fmt, args); -- va_end (args); - --#ifdef HAVE_SYSLOG_H -- if (gconf_daemon_mode) -+ switch (pri) - { -- switch (pri) -- { -- case GCL_EMERG: -- syslog_pri = LOG_EMERG; -- break; -- -- case GCL_ALERT: -- syslog_pri = LOG_ALERT; -- break; -- -- case GCL_CRIT: -- syslog_pri = LOG_CRIT; -- break; -- -- case GCL_ERR: -- syslog_pri = LOG_ERR; -- break; -- -- case GCL_WARNING: -- syslog_pri = LOG_WARNING; -- break; -- -- case GCL_NOTICE: -- syslog_pri = LOG_NOTICE; -- break; -- -- case GCL_INFO: -- syslog_pri = LOG_INFO; -- break; -- -- case GCL_DEBUG: -- syslog_pri = LOG_DEBUG; -- break; -- -- default: -- g_assert_not_reached(); -- break; -- } -- -- convmsg = g_locale_from_utf8 (msg, -1, NULL, NULL, NULL); -- if (!convmsg) -- syslog (syslog_pri, "%s", msg); -- else -- { -- syslog (syslog_pri, "%s", convmsg); -- g_free (convmsg); -- } -+ case GCL_EMERG: -+ case GCL_ALERT: -+ case GCL_CRIT: -+ loglevel = G_LOG_LEVEL_ERROR; -+ break; -+ case GCL_ERR: -+ loglevel = G_LOG_LEVEL_CRITICAL; -+ break; -+ case GCL_WARNING: -+ loglevel = G_LOG_LEVEL_WARNING; -+ break; -+ case GCL_NOTICE: -+ loglevel = G_LOG_LEVEL_MESSAGE; -+ break; -+ case GCL_INFO: -+ loglevel = G_LOG_LEVEL_INFO; -+ break; -+ case GCL_DEBUG: -+ loglevel = G_LOG_LEVEL_DEBUG; -+ break; -+ default: -+ g_assert_not_reached(); -+ break; - } -- else --#endif -- { -- switch (pri) -- { -- case GCL_EMERG: -- case GCL_ALERT: -- case GCL_CRIT: -- case GCL_ERR: -- case GCL_WARNING: -- g_printerr ("%s\n", msg); -- break; -- -- case GCL_NOTICE: -- case GCL_INFO: -- case GCL_DEBUG: -- g_print ("%s\n", msg); -- break; - -- default: -- g_assert_not_reached(); -- break; -- } -- } -- -- g_free(msg); -+ va_start (args, fmt); -+ g_logv (G_LOG_DOMAIN, loglevel, fmt, args); -+ va_end (args); - } - - /* -diff -Nur -x '*.orig' -x '*~' gconf-2.21.1/gconf/gconf-sources.c gconf-2.21.1.new/gconf/gconf-sources.c ---- gconf-2.21.1/gconf/gconf-sources.c 2008-01-08 15:29:55.000000000 +0100 -+++ gconf-2.21.1.new/gconf/gconf-sources.c 2008-01-14 12:06:52.000000000 +0100 -@@ -407,20 +407,20 @@ - if (source->flags & GCONF_SOURCE_ALL_WRITEABLE) - { - some_writable = TRUE; -- gconf_log (GCL_INFO, -+ gconf_log (GCL_DEBUG, - _("Resolved address \"%s\" to a writable configuration source at position %d"), - source->address, i); - } - else if (source->flags & GCONF_SOURCE_NEVER_WRITEABLE) - { -- gconf_log (GCL_INFO, -+ gconf_log (GCL_DEBUG, - _("Resolved address \"%s\" to a read-only configuration source at position %d"), - source->address, i); - } - else - { - some_writable = TRUE; -- gconf_log (GCL_INFO, -+ gconf_log (GCL_DEBUG, - _("Resolved address \"%s\" to a partially writable configuration source at position %d"), - source->address, i); - } - diff --git a/gconf-timeouts.patch b/gconf-timeouts.patch deleted file mode 100644 index fc87c5d..0000000 --- a/gconf-timeouts.patch +++ /dev/null @@ -1,107 +0,0 @@ -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 2007-06-25 07:11:19.000000000 -0400 -+++ GConf-2.22.0/backends/markup-backend.c 2008-05-14 09:33:04.000000000 -0400 -@@ -59,7 +59,6 @@ typedef struct - { - GConfSource source; /* inherit from GConfSource */ - char *root_dir; -- guint timeout_id; - GConfLock* lock; - MarkupTree *tree; - guint dir_mode; -@@ -875,21 +874,6 @@ gconf_backend_get_vtable (void) - * MarkupSource - */ - --/* This timeout periodically unloads -- * data that hasn't been used in a while. -- */ --static gboolean --cleanup_timeout (gpointer data) --{ --#if 0 -- MarkupSource* ms = (MarkupSource*)data; -- -- cache_clean(ms->cache, 60*5 /* 5 minutes */); --#endif -- -- return TRUE; --} -- - static MarkupSource* - ms_new (const char* root_dir, - guint dir_mode, -@@ -903,10 +887,6 @@ ms_new (const char* root_dir, - - ms = g_new0(MarkupSource, 1); - -- ms->timeout_id = g_timeout_add (1000*60*5, /* 1 sec * 60 s/min * 5 min */ -- cleanup_timeout, -- ms); -- - ms->root_dir = g_strdup (root_dir); - - ms->lock = lock; -@@ -941,11 +921,6 @@ ms_destroy (MarkupSource* ms) - error = NULL; - } - -- if (!g_source_remove (ms->timeout_id)) -- { -- /* should not happen, don't translate */ -- gconf_log (GCL_ERR, "timeout not found to remove?"); -- } - - markup_tree_unref (ms->tree); - -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-01-08 09:28:38.000000000 -0500 -+++ GConf-2.22.0/gconf/gconf-database.c 2008-05-14 09:29:17.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-14 09:29:17.000000000 -0400 -+++ GConf-2.22.0/gconf/gconfd.c 2008-05-14 09:29:17.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); - } - } - diff --git a/gconf-unset-mandatory.patch b/gconf-unset-mandatory.patch deleted file mode 100644 index e6009d7..0000000 --- a/gconf-unset-mandatory.patch +++ /dev/null @@ -1,19 +0,0 @@ -Index: gconf/gconf-database.c -=================================================================== ---- gconf/gconf-database.c (revision 2583) -+++ gconf/gconf-database.c (working copy) -@@ -1261,11 +1261,10 @@ gconf_database_notify_listeners (GConfDa - - g_slist_free (closure.dead); - -- if (notify_others) -+ if (modified_sources) - { -- g_return_if_fail (modified_sources != NULL); -- -- gconfd_notify_other_listeners (db, modified_sources, key); -+ if (notify_others) -+ gconfd_notify_other_listeners (db, modified_sources, key); - - g_list_free (modified_sources->sources); - g_free (modified_sources); diff --git a/sources b/sources index a4e5ac9..f6ecb69 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -f0dc9a77c005c9beedd58d70e08cc194 GConf-2.23.1.tar.bz2 +e43e125e4ee84205d5e9215d91c3229d GConf-2.23.2.tar.bz2