parent
58752f4239
commit
3cd932d08a
@ -1,47 +0,0 @@
|
||||
From 67a2478f610be4beff34258a5a5b36243415b069 Mon Sep 17 00:00:00 2001
|
||||
From: Matthias Clasen <mclasen@redhat.com>
|
||||
Date: Tue, 19 Jan 2010 20:36:03 -0500
|
||||
Subject: [PATCH] Make the defaults mechanism find the right polkit action
|
||||
|
||||
Due to a thinko in the code, the mechanism was always using the
|
||||
default privileges.
|
||||
---
|
||||
defaults/gconf-defaults.c | 7 ++++---
|
||||
1 files changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/defaults/gconf-defaults.c b/defaults/gconf-defaults.c
|
||||
index 11a38ad..b84c632 100644
|
||||
--- a/defaults/gconf-defaults.c
|
||||
+++ b/defaults/gconf-defaults.c
|
||||
@@ -286,8 +286,8 @@ polkit_action_for_gconf_path (GConfDefaults *mechanism,
|
||||
PolkitActionDescription *action_description;
|
||||
const gchar *annotation;
|
||||
|
||||
+ g_debug ("finding action for path '%s'", path);
|
||||
prefix = g_strdup (path);
|
||||
-
|
||||
while (1) {
|
||||
for (l = action_descriptions; l; l = l->next) {
|
||||
action_description = l->data;
|
||||
@@ -295,8 +295,8 @@ polkit_action_for_gconf_path (GConfDefaults *mechanism,
|
||||
annotation = polkit_action_description_get_annotation (action_description, annotation_key);
|
||||
if (g_strcmp0 (prefix, annotation) == 0) {
|
||||
action = polkit_action_description_get_action_id (action_description);
|
||||
- g_debug ("action for path '%s': '%s'\n", action, path);
|
||||
- break;
|
||||
+ g_debug ("action for prefix '%s': '%s'\n", prefix, action);
|
||||
+ goto found;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -310,6 +310,7 @@ polkit_action_for_gconf_path (GConfDefaults *mechanism,
|
||||
*p = 0;
|
||||
}
|
||||
|
||||
+ found:
|
||||
g_free (prefix);
|
||||
|
||||
return action;
|
||||
--
|
||||
1.6.6
|
||||
|
@ -1,97 +0,0 @@
|
||||
From 33c73a785c79ecef125a53af29581d09f9ab3733 Mon Sep 17 00:00:00 2001
|
||||
From: Colin Walters <walters@verbum.org>
|
||||
Date: Mon, 1 Feb 2010 13:02:11 -0500
|
||||
Subject: [PATCH] [gconfd] Remove (worse than) useless signal handlers for SEGV, FPE, etc
|
||||
|
||||
Modern operating systems like Fedora tend to include system-wide crash
|
||||
handlers (like ABRT) which operate by processing unhandled crashes
|
||||
(signals such as SIGSEGV). By catching SIGSEGV but actually doing
|
||||
nothing with it, GConf is breaking these crash handlers.
|
||||
|
||||
Delete all of the handlers for signals like SIGFPE, SIGSEGV which can't
|
||||
be treated as recoverable.
|
||||
|
||||
https://bugzilla.gnome.org/show_bug.cgi?id=608705
|
||||
---
|
||||
gconf/gconfd.c | 37 -------------------------------------
|
||||
1 files changed, 0 insertions(+), 37 deletions(-)
|
||||
|
||||
diff --git a/gconf/gconfd.c b/gconf/gconfd.c
|
||||
index fe5d18a..38a8423 100644
|
||||
--- a/gconf/gconfd.c
|
||||
+++ b/gconf/gconfd.c
|
||||
@@ -119,8 +119,6 @@ static GConfDatabase* obtain_database (GSList *addresses,
|
||||
static void drop_old_databases (void);
|
||||
static gboolean no_databases_in_use (void);
|
||||
|
||||
-static void gconf_handle_segv (int signum);
|
||||
-
|
||||
/*
|
||||
* Flag indicating that we are shutting down, so return errors
|
||||
* on any attempted operation. We do this instead of unregistering with
|
||||
@@ -431,22 +429,6 @@ signal_handler (int signo)
|
||||
++in_fatal;
|
||||
|
||||
switch (signo) {
|
||||
- /* Fast cleanup only */
|
||||
- case SIGSEGV:
|
||||
-#ifdef SIGBUS
|
||||
- case SIGBUS:
|
||||
-#endif
|
||||
- case SIGILL:
|
||||
- enter_shutdown ();
|
||||
-#ifndef G_OS_WIN32
|
||||
- if (g_getenv ("DISPLAY"))
|
||||
- gconf_handle_segv (signo);
|
||||
-#else
|
||||
- gconf_handle_segv (signo);
|
||||
-#endif
|
||||
- abort ();
|
||||
- break;
|
||||
-
|
||||
case SIGFPE:
|
||||
#ifdef SIGPIPE
|
||||
case SIGPIPE:
|
||||
@@ -844,28 +826,16 @@ main(int argc, char** argv)
|
||||
act.sa_mask = empty_mask;
|
||||
act.sa_flags = 0;
|
||||
sigaction (SIGTERM, &act, NULL);
|
||||
- sigaction (SIGILL, &act, NULL);
|
||||
- sigaction (SIGBUS, &act, NULL);
|
||||
- sigaction (SIGFPE, &act, NULL);
|
||||
sigaction (SIGHUP, &act, NULL);
|
||||
- sigaction (SIGSEGV, &act, NULL);
|
||||
- sigaction (SIGABRT, &act, NULL);
|
||||
sigaction (SIGUSR1, &act, NULL);
|
||||
|
||||
act.sa_handler = SIG_IGN;
|
||||
sigaction (SIGINT, &act, NULL);
|
||||
#else
|
||||
signal (SIGTERM, signal_handler);
|
||||
- signal (SIGILL, signal_handler);
|
||||
-#ifdef SIGBUS
|
||||
- signal (SIGBUS, signal_handler);
|
||||
-#endif
|
||||
- signal (SIGFPE, signal_handler);
|
||||
#ifdef SIGHUP
|
||||
signal (SIGHUP, signal_handler);
|
||||
#endif
|
||||
- signal (SIGSEGV, signal_handler);
|
||||
- signal (SIGABRT, signal_handler);
|
||||
#ifdef SIGUSR1
|
||||
signal (SIGUSR1, signal_handler);
|
||||
#endif
|
||||
@@ -2710,10 +2680,3 @@ client_count (void)
|
||||
return g_hash_table_size (client_table);
|
||||
}
|
||||
|
||||
-
|
||||
-static void
|
||||
-gconf_handle_segv (int signum)
|
||||
-{
|
||||
- return;
|
||||
-}
|
||||
-
|
||||
--
|
||||
1.6.6
|
||||
|
@ -1,11 +0,0 @@
|
||||
--- GConf-2.18.0.1/gconf/gconftool.c.reload 2007-03-02 17:10:13.000000000 -0500
|
||||
+++ GConf-2.18.0.1/gconf/gconftool.c 2007-03-13 02:21:29.000000000 -0400
|
||||
@@ -3780,6 +3780,8 @@
|
||||
++args;
|
||||
}
|
||||
|
||||
+ g_spawn_command_line_sync ("/usr/bin/killall -q -TERM " GCONF_SERVERDIR "/" GCONFD, NULL, NULL, NULL, NULL);
|
||||
+
|
||||
retval |= do_sync (conf);
|
||||
return retval;
|
||||
}
|
@ -1,360 +0,0 @@
|
||||
diff -up GConf-2.26.0/backends/markup-tree.c.gettext GConf-2.26.0/backends/markup-tree.c
|
||||
--- GConf-2.26.0/backends/markup-tree.c.gettext 2009-04-26 23:33:05.258484987 -0400
|
||||
+++ GConf-2.26.0/backends/markup-tree.c 2009-04-26 23:34:25.026700526 -0400
|
||||
@@ -52,6 +52,7 @@ struct _MarkupEntry
|
||||
char *schema_name;
|
||||
char *mod_user;
|
||||
GTime mod_time;
|
||||
+ const char *gettext_domain;
|
||||
};
|
||||
|
||||
static LocalSchemaInfo* local_schema_info_new (void);
|
||||
@@ -1593,6 +1594,8 @@ markup_entry_set_value (MarkupEntry
|
||||
gconf_schema_get_type (schema));
|
||||
gconf_schema_set_owner (current_schema,
|
||||
gconf_schema_get_owner (schema));
|
||||
+ gconf_schema_set_gettext_domain (current_schema,
|
||||
+ gconf_schema_get_gettext_domain (schema));
|
||||
}
|
||||
|
||||
/* Update mod time */
|
||||
@@ -1805,6 +1808,8 @@ markup_entry_get_value (MarkupEntry *ent
|
||||
else if (c_local_schema && c_local_schema->long_desc)
|
||||
gconf_schema_set_long_desc (schema, c_local_schema->long_desc);
|
||||
|
||||
+ gconf_schema_set_gettext_domain (schema, entry->gettext_domain);
|
||||
+
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
@@ -2339,8 +2344,9 @@ parse_value_element (GMarkupParseContext
|
||||
const char *ltype;
|
||||
const char *list_type;
|
||||
const char *owner;
|
||||
+
|
||||
GConfValueType vtype;
|
||||
- const char *dummy1, *dummy2, *dummy3, *dummy4;
|
||||
+ const char *dummy1, *dummy2, *dummy3, *dummy4, *dummy5;
|
||||
|
||||
#if 0
|
||||
g_assert (ELEMENT_IS ("entry") ||
|
||||
@@ -2377,6 +2383,7 @@ parse_value_element (GMarkupParseContext
|
||||
"muser", &dummy2,
|
||||
"mtime", &dummy3,
|
||||
"schema", &dummy4,
|
||||
+ "gettext_domain", &dummy5,
|
||||
|
||||
NULL))
|
||||
return;
|
||||
@@ -2683,6 +2690,7 @@ parse_entry_element (GMarkupParseContext
|
||||
const char *mtime;
|
||||
const char *schema;
|
||||
const char *type;
|
||||
+ const char *gettext_domain;
|
||||
const char *dummy1, *dummy2, *dummy3, *dummy4;
|
||||
const char *dummy5, *dummy6, *dummy7;
|
||||
GConfValue *value;
|
||||
@@ -2693,6 +2701,7 @@ parse_entry_element (GMarkupParseContext
|
||||
mtime = NULL;
|
||||
schema = NULL;
|
||||
type = NULL;
|
||||
+ gettext_domain = NULL;
|
||||
|
||||
if (!locate_attributes (context, element_name, attribute_names, attribute_values,
|
||||
error,
|
||||
@@ -2701,6 +2710,7 @@ parse_entry_element (GMarkupParseContext
|
||||
"mtime", &mtime,
|
||||
"schema", &schema,
|
||||
"type", &type,
|
||||
+ "gettext_domain", &gettext_domain,
|
||||
|
||||
/* These are allowed but we don't use them until
|
||||
* parse_value_element
|
||||
@@ -2768,6 +2778,9 @@ parse_entry_element (GMarkupParseContext
|
||||
*/
|
||||
if (schema)
|
||||
entry->schema_name = g_strdup (schema);
|
||||
+
|
||||
+ if (gettext_domain)
|
||||
+ entry->gettext_domain = g_intern_string (gettext_domain);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3716,6 +3729,7 @@ write_value_element (GConfValue *value,
|
||||
GConfSchema *schema;
|
||||
GConfValueType stype;
|
||||
const char *owner;
|
||||
+ const char *gettext_domain;
|
||||
|
||||
schema = gconf_value_get_schema (value);
|
||||
|
||||
@@ -3741,6 +3755,23 @@ write_value_element (GConfValue *value,
|
||||
|
||||
g_free (s);
|
||||
}
|
||||
+
|
||||
+ gettext_domain = gconf_schema_get_gettext_domain (schema);
|
||||
+
|
||||
+ if (gettext_domain)
|
||||
+ {
|
||||
+ char *s;
|
||||
+
|
||||
+ s = g_markup_escape_text (gettext_domain, -1);
|
||||
+
|
||||
+ if (fprintf (f, " gettext_domain=\"%s\"", s) < 0)
|
||||
+ {
|
||||
+ g_free (s);
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ g_free (s);
|
||||
+ }
|
||||
|
||||
if (stype == GCONF_VALUE_LIST)
|
||||
{
|
||||
diff -up GConf-2.26.0/doc/gconf-1.0.dtd.gettext GConf-2.26.0/doc/gconf-1.0.dtd
|
||||
--- GConf-2.26.0/doc/gconf-1.0.dtd.gettext 2009-04-26 23:33:17.240736103 -0400
|
||||
+++ GConf-2.26.0/doc/gconf-1.0.dtd 2009-04-26 23:34:25.027700384 -0400
|
||||
@@ -7,7 +7,7 @@
|
||||
<!-- A single schema. What I am trying to say is "this set of
|
||||
elements, in any order". Duplicate elements (apart from <locale>) are
|
||||
not allowed). -->
|
||||
-<!ELEMENT schema (key|applyto*|owner?|type|(list_type|(car_type,cdr_type))?|default?|locale*)*>
|
||||
+<!ELEMENT schema (key|applyto*|owner?|type|(list_type|(car_type,cdr_type))?|default?|locale*|gettext_domain?)*>
|
||||
|
||||
<!-- The key for this schema (e.g. /schemas/apps/foo/bar) -->
|
||||
<!ELEMENT key (#PCDATA)>
|
||||
diff -up GConf-2.26.0/gconf/gconf-internals.c.gettext GConf-2.26.0/gconf/gconf-internals.c
|
||||
--- GConf-2.26.0/gconf/gconf-internals.c.gettext 2009-04-26 23:34:10.994700035 -0400
|
||||
+++ GConf-2.26.0/gconf/gconf-internals.c 2009-04-26 23:34:53.767450191 -0400
|
||||
@@ -513,6 +513,7 @@ gconf_fill_corba_schema_from_gconf_schem
|
||||
cs->short_desc = CORBA_string_dup (gconf_schema_get_short_desc (sc) ? gconf_schema_get_short_desc (sc) : "");
|
||||
cs->long_desc = CORBA_string_dup (gconf_schema_get_long_desc (sc) ? gconf_schema_get_long_desc (sc) : "");
|
||||
cs->owner = CORBA_string_dup (gconf_schema_get_owner (sc) ? gconf_schema_get_owner (sc) : "");
|
||||
+ cs->gettext_domain = CORBA_string_dup (gconf_schema_get_gettext_domain (sc) ? gconf_schema_get_gettext_domain (sc) : "");
|
||||
|
||||
{
|
||||
gchar* encoded;
|
||||
@@ -600,6 +601,14 @@ gconf_schema_from_corba_schema(const Con
|
||||
gconf_schema_set_owner(sc, cs->owner);
|
||||
}
|
||||
|
||||
+ if (*cs->gettext_domain != '\0')
|
||||
+ {
|
||||
+ if (!g_utf8_validate (cs->gettext_domain, -1, NULL))
|
||||
+ gconf_log (GCL_ERR, _("Invalid UTF-8 in gettext domain for schema"));
|
||||
+ else
|
||||
+ gconf_schema_set_gettext_domain(sc, cs->gettext_domain);
|
||||
+ }
|
||||
+
|
||||
{
|
||||
GConfValue* val;
|
||||
|
||||
diff -up GConf-2.26.0/gconf/gconf-schema.c.gettext GConf-2.26.0/gconf/gconf-schema.c
|
||||
--- GConf-2.26.0/gconf/gconf-schema.c.gettext 2009-04-26 23:33:26.787483545 -0400
|
||||
+++ GConf-2.26.0/gconf/gconf-schema.c 2009-04-26 23:35:54.240450142 -0400
|
||||
@@ -32,9 +32,10 @@ typedef struct {
|
||||
GConfValueType car_type; /* Pair car type of the described entry */
|
||||
GConfValueType cdr_type; /* Pair cdr type of the described entry */
|
||||
gchar* locale; /* Schema locale */
|
||||
- gchar* owner; /* Name of creating application */
|
||||
+ const gchar* owner; /* Name of creating application */
|
||||
gchar* short_desc; /* 40 char or less description, no newlines */
|
||||
gchar* long_desc; /* could be a paragraph or so */
|
||||
+ const gchar* gettext_domain; /* description gettext domain */
|
||||
GConfValue* default_value; /* Default value of the key */
|
||||
} GConfRealSchema;
|
||||
|
||||
@@ -63,7 +64,6 @@ gconf_schema_free (GConfSchema* sc)
|
||||
g_free (real->locale);
|
||||
g_free (real->short_desc);
|
||||
g_free (real->long_desc);
|
||||
- g_free (real->owner);
|
||||
|
||||
if (real->default_value)
|
||||
gconf_value_free (real->default_value);
|
||||
@@ -91,7 +91,9 @@ gconf_schema_copy (const GConfSchema* sc
|
||||
|
||||
dest->long_desc = g_strdup (real->long_desc);
|
||||
|
||||
- dest->owner = g_strdup (real->owner);
|
||||
+ dest->gettext_domain = real->gettext_domain;
|
||||
+
|
||||
+ dest->owner = real->owner;
|
||||
|
||||
dest->default_value = real->default_value ? gconf_value_copy (real->default_value) : NULL;
|
||||
|
||||
@@ -136,6 +138,17 @@ gconf_schema_set_locale (GConfSchema* sc
|
||||
REAL_SCHEMA (sc)->locale = NULL;
|
||||
}
|
||||
|
||||
+void
|
||||
+gconf_schema_set_gettext_domain (GConfSchema* sc, const gchar* domain)
|
||||
+{
|
||||
+ g_return_if_fail (domain == NULL || g_utf8_validate (domain, -1, NULL));
|
||||
+
|
||||
+ if (domain)
|
||||
+ REAL_SCHEMA (sc)->gettext_domain = g_intern_string (domain);
|
||||
+ else
|
||||
+ REAL_SCHEMA (sc)->gettext_domain = NULL;
|
||||
+}
|
||||
+
|
||||
void
|
||||
gconf_schema_set_short_desc (GConfSchema* sc, const gchar* desc)
|
||||
{
|
||||
@@ -169,11 +182,8 @@ gconf_schema_set_owner (GConfSchema* sc,
|
||||
{
|
||||
g_return_if_fail (owner == NULL || g_utf8_validate (owner, -1, NULL));
|
||||
|
||||
- if (REAL_SCHEMA (sc)->owner)
|
||||
- g_free (REAL_SCHEMA (sc)->owner);
|
||||
-
|
||||
if (owner)
|
||||
- REAL_SCHEMA (sc)->owner = g_strdup (owner);
|
||||
+ REAL_SCHEMA (sc)->owner = g_intern_string (owner);
|
||||
else
|
||||
REAL_SCHEMA (sc)->owner = NULL;
|
||||
}
|
||||
@@ -228,6 +238,14 @@ gconf_schema_validate (const GConfSchema
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
+ if (real->gettext_domain && !g_utf8_validate (real->gettext_domain, -1, NULL))
|
||||
+ {
|
||||
+ g_set_error (err, GCONF_ERROR,
|
||||
+ GCONF_ERROR_FAILED,
|
||||
+ _("Schema contains invalid UTF-8"));
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
if (real->owner && !g_utf8_validate (real->owner, -1, NULL))
|
||||
{
|
||||
g_set_error (err, GCONF_ERROR,
|
||||
@@ -299,11 +317,32 @@ gconf_schema_get_locale (const GConfSche
|
||||
}
|
||||
|
||||
const char*
|
||||
+gconf_schema_get_gettext_domain (const GConfSchema *schema)
|
||||
+{
|
||||
+ g_return_val_if_fail (schema != NULL, NULL);
|
||||
+
|
||||
+ return REAL_SCHEMA (schema)->gettext_domain;
|
||||
+}
|
||||
+
|
||||
+static inline const char *
|
||||
+schema_translate (const GConfSchema *schema,
|
||||
+ const char *string)
|
||||
+{
|
||||
+ if (REAL_SCHEMA (schema)->gettext_domain)
|
||||
+ {
|
||||
+ bind_textdomain_codeset (REAL_SCHEMA (schema)->gettext_domain, "UTF-8");
|
||||
+ return g_dgettext(REAL_SCHEMA (schema)->gettext_domain, string);
|
||||
+ }
|
||||
+ else
|
||||
+ return string;
|
||||
+}
|
||||
+
|
||||
+const char*
|
||||
gconf_schema_get_short_desc (const GConfSchema *schema)
|
||||
{
|
||||
g_return_val_if_fail (schema != NULL, NULL);
|
||||
|
||||
- return REAL_SCHEMA (schema)->short_desc;
|
||||
+ return schema_translate (schema, REAL_SCHEMA (schema)->short_desc);
|
||||
}
|
||||
|
||||
const char*
|
||||
@@ -311,7 +350,7 @@ gconf_schema_get_long_desc (const GConfS
|
||||
{
|
||||
g_return_val_if_fail (schema != NULL, NULL);
|
||||
|
||||
- return REAL_SCHEMA (schema)->long_desc;
|
||||
+ return schema_translate (schema, REAL_SCHEMA (schema)->long_desc);
|
||||
}
|
||||
|
||||
const char*
|
||||
diff -up GConf-2.26.0/gconf/gconf-schema.h.gettext GConf-2.26.0/gconf/gconf-schema.h
|
||||
--- GConf-2.26.0/gconf/gconf-schema.h.gettext 2009-04-26 23:33:33.979744088 -0400
|
||||
+++ GConf-2.26.0/gconf/gconf-schema.h 2009-04-26 23:34:25.030737043 -0400
|
||||
@@ -48,6 +48,8 @@ void gconf_schema_set_cdr_type
|
||||
GConfValueType type);
|
||||
void gconf_schema_set_locale (GConfSchema *sc,
|
||||
const gchar *locale);
|
||||
+void gconf_schema_set_gettext_domain (GConfSchema *sc,
|
||||
+ const gchar *domain);
|
||||
void gconf_schema_set_short_desc (GConfSchema *sc,
|
||||
const gchar *desc);
|
||||
void gconf_schema_set_long_desc (GConfSchema *sc,
|
||||
@@ -65,6 +67,7 @@ GConfValueType gconf_schema_get_list_typ
|
||||
GConfValueType gconf_schema_get_car_type (const GConfSchema *schema);
|
||||
GConfValueType gconf_schema_get_cdr_type (const GConfSchema *schema);
|
||||
const char* gconf_schema_get_locale (const GConfSchema *schema);
|
||||
+const char* gconf_schema_get_gettext_domain(const GConfSchema *schema);
|
||||
const char* gconf_schema_get_short_desc (const GConfSchema *schema);
|
||||
const char* gconf_schema_get_long_desc (const GConfSchema *schema);
|
||||
const char* gconf_schema_get_owner (const GConfSchema *schema);
|
||||
diff -up GConf-2.26.0/gconf/gconftool.c.gettext GConf-2.26.0/gconf/gconftool.c
|
||||
--- GConf-2.26.0/gconf/gconftool.c.gettext 2009-04-26 23:33:41.907451190 -0400
|
||||
+++ GConf-2.26.0/gconf/gconftool.c 2009-04-26 23:34:25.034736752 -0400
|
||||
@@ -3295,6 +3295,7 @@ struct _SchemaInfo {
|
||||
GConfValueType cdr_type;
|
||||
GConfValue* global_default;
|
||||
GHashTable* hash;
|
||||
+ gchar* gettext_domain;
|
||||
};
|
||||
|
||||
static int
|
||||
@@ -3547,6 +3548,15 @@ extract_global_info(xmlNodePtr node,
|
||||
else
|
||||
g_printerr (_("WARNING: empty <applyto> node"));
|
||||
}
|
||||
+ else if (strcmp((char *)iter->name, "gettext_domain") == 0)
|
||||
+ {
|
||||
+ tmp = (char *)xmlNodeGetContent(iter);
|
||||
+ if (tmp)
|
||||
+ {
|
||||
+ info->gettext_domain = g_strdup(tmp);
|
||||
+ xmlFree(tmp);
|
||||
+ }
|
||||
+ }
|
||||
else
|
||||
g_printerr (_("WARNING: node <%s> not understood below <schema>\n"),
|
||||
iter->name);
|
||||
@@ -3636,6 +3646,9 @@ process_locale_info(xmlNodePtr node, Sch
|
||||
if (info->owner != NULL)
|
||||
gconf_schema_set_owner(schema, info->owner);
|
||||
|
||||
+ if (info->gettext_domain != NULL)
|
||||
+ gconf_schema_set_gettext_domain(schema, info->gettext_domain);
|
||||
+
|
||||
xmlFree(name);
|
||||
|
||||
/* Locale-specific info */
|
||||
@@ -3765,6 +3778,7 @@ get_schema_from_xml(xmlNodePtr node, gch
|
||||
info.apply_to = NULL;
|
||||
info.owner = NULL;
|
||||
info.global_default = NULL;
|
||||
+ info.gettext_domain = NULL;
|
||||
info.hash = g_hash_table_new(g_str_hash, g_str_equal);
|
||||
|
||||
extract_global_info(node, &info);
|
||||
@@ -3801,6 +3815,8 @@ get_schema_from_xml(xmlNodePtr node, gch
|
||||
; /* nothing */
|
||||
else if (strcmp((char *)iter->name, "applyto") == 0)
|
||||
; /* nothing */
|
||||
+ else if (strcmp((char *)iter->name, "gettext_domain") == 0)
|
||||
+ ; /* nothing */
|
||||
else if (strcmp((char *)iter->name, "locale") == 0)
|
||||
{
|
||||
process_locale_info(iter, &info);
|
||||
diff -up GConf-2.26.0/gconf/GConfX.idl.gettext GConf-2.26.0/gconf/GConfX.idl
|
||||
--- GConf-2.26.0/gconf/GConfX.idl.gettext 2009-04-26 23:33:58.457483190 -0400
|
||||
+++ GConf-2.26.0/gconf/GConfX.idl 2009-04-26 23:34:53.764448732 -0400
|
||||
@@ -16,6 +16,7 @@ struct ConfigSchema {
|
||||
string short_desc;
|
||||
string long_desc;
|
||||
string owner;
|
||||
+ string gettext_domain;
|
||||
// Work around lack of recursive data types
|
||||
string encoded_default_value;
|
||||
};
|
@ -1,35 +0,0 @@
|
||||
diff -up GConf-2.31.2/gsettings/gsettings-data-convert.desktop.settings-migration GConf-2.31.2/gsettings/gsettings-data-convert.desktop
|
||||
--- GConf-2.31.2/gsettings/gsettings-data-convert.desktop.settings-migration 2010-05-21 19:19:16.420451458 -0400
|
||||
+++ GConf-2.31.2/gsettings/gsettings-data-convert.desktop 2010-05-21 19:32:33.095449226 -0400
|
||||
@@ -0,0 +1,9 @@
|
||||
+[Desktop Entry]
|
||||
+Version=1.0
|
||||
+Name=GSettings Data Conversion
|
||||
+Comment=Migrates user settings from GConf to dconf
|
||||
+Exec=gsettings-data-convert
|
||||
+Terminal=false
|
||||
+Type=Application
|
||||
+OnlyShowIn=GNOME;
|
||||
+X-GNOME-Autostart-Phase=Initialization
|
||||
diff -up GConf-2.31.2/gsettings/Makefile.am.settings-migration GConf-2.31.2/gsettings/Makefile.am
|
||||
--- GConf-2.31.2/gsettings/Makefile.am.settings-migration 2010-04-20 19:47:00.000000000 -0400
|
||||
+++ GConf-2.31.2/gsettings/Makefile.am 2010-05-21 19:19:16.422449991 -0400
|
||||
@@ -35,6 +35,9 @@ gsettings_data_convert_LDADD =
|
||||
$(GSETTINGS_LIBS) \
|
||||
$(NULL)
|
||||
|
||||
+autostartdir = $(sysconfdir)/xdg/autostart
|
||||
+autostart_DATA = gsettings-data-convert.desktop
|
||||
+
|
||||
man_MANS = \
|
||||
gsettings-data-convert.1 \
|
||||
$(NULL)
|
||||
@@ -42,7 +45,7 @@ man_MANS = \
|
||||
gsettings-data-convert.1 : gsettings-data-convert.xml
|
||||
xsltproc -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
|
||||
|
||||
-EXTRA_DIST = gsettings-data-convert.xml gsettings-data-convert.1
|
||||
+EXTRA_DIST = gsettings-data-convert.xml gsettings-data-convert.1 gsettings-data-convert.desktop
|
||||
|
||||
dist-hook-local: $(BUILT_EXTRA_DIST)
|
||||
files='$(BUILT_EXTRA_DIST)'; \
|
@ -1,32 +0,0 @@
|
||||
--- GConf-2.14.0/gconf/gconfd.c.timeout 2006-09-18 12:19:24.000000000 -0400
|
||||
+++ GConf-2.14.0/gconf/gconfd.c 2006-09-18 12:21:30.000000000 -0400
|
||||
@@ -1151,18 +1151,20 @@
|
||||
static gboolean
|
||||
no_databases_in_use (void)
|
||||
{
|
||||
- /* Only the default database still open, and
|
||||
- * it has no listeners
|
||||
- */
|
||||
+ GList *l;
|
||||
|
||||
- if (db_list == NULL)
|
||||
- return TRUE;
|
||||
+ for (l = db_list; l; l = l->next)
|
||||
+ {
|
||||
+ GConfDatabase *db = l->data;
|
||||
|
||||
- if (db_list->next == NULL &&
|
||||
- db_list->data == default_db)
|
||||
- return gconf_listeners_count (default_db->listeners) == 0;
|
||||
+ if (gconf_listeners_count (db->listeners) > 0)
|
||||
+ return FALSE;
|
||||
|
||||
- return FALSE;
|
||||
+ if (db->sync_timeout || db->sync_idle)
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ return TRUE;
|
||||
}
|
||||
|
||||
void
|
@ -1,82 +0,0 @@
|
||||
diff -up GConf-2.25.2/backends/markup-tree.c.less-work GConf-2.25.2/backends/markup-tree.c
|
||||
--- GConf-2.25.2/backends/markup-tree.c.less-work 2009-02-16 19:15:19.000000000 -0500
|
||||
+++ GConf-2.25.2/backends/markup-tree.c 2009-03-03 23:14:07.741320798 -0500
|
||||
@@ -2167,51 +2167,40 @@ locate_attributes (GMarkupParseContext *
|
||||
|
||||
retval = TRUE;
|
||||
|
||||
- i = 0;
|
||||
- while (attribute_names[i])
|
||||
+ for (i = 0; attribute_names[i]; i++)
|
||||
{
|
||||
int j;
|
||||
- gboolean found;
|
||||
|
||||
- found = FALSE;
|
||||
- j = 0;
|
||||
- while (j < n_attrs)
|
||||
+ for (j = 0; j < n_attrs; j++)
|
||||
{
|
||||
+ /* already matched */
|
||||
+ if (attrs[j].name == NULL)
|
||||
+ continue;
|
||||
+
|
||||
if (strcmp (attrs[j].name, attribute_names[i]) == 0)
|
||||
{
|
||||
retloc = attrs[j].retloc;
|
||||
+ attrs[j].name = NULL;
|
||||
|
||||
- if (*retloc != NULL)
|
||||
- {
|
||||
- set_error (error, context,
|
||||
- GCONF_ERROR_PARSE_ERROR,
|
||||
- _("Attribute \"%s\" repeated twice on the same <%s> element"),
|
||||
- attrs[j].name, element_name);
|
||||
- retval = FALSE;
|
||||
- goto out;
|
||||
- }
|
||||
+ /* if this fails we passed the same retloc twice */
|
||||
+ g_assert (*retloc == NULL);
|
||||
|
||||
*retloc = attribute_values[i];
|
||||
- found = TRUE;
|
||||
+ break;
|
||||
}
|
||||
-
|
||||
- ++j;
|
||||
}
|
||||
|
||||
- if (!found)
|
||||
+ if (j >= n_attrs)
|
||||
{
|
||||
set_error (error, context,
|
||||
GCONF_ERROR_PARSE_ERROR,
|
||||
- _("Attribute \"%s\" is invalid on <%s> element in this context"),
|
||||
+ _("Attribute \"%s\" is invalid, or duplicated on <%s> element in this context"),
|
||||
attribute_names[i], element_name);
|
||||
retval = FALSE;
|
||||
- goto out;
|
||||
+ break;
|
||||
}
|
||||
-
|
||||
- ++i;
|
||||
}
|
||||
|
||||
- out:
|
||||
return retval;
|
||||
}
|
||||
|
||||
@@ -3494,10 +3483,9 @@ all_whitespace (const char *text,
|
||||
|
||||
while (p != end)
|
||||
{
|
||||
- if (!g_ascii_isspace (*p))
|
||||
- return FALSE;
|
||||
-
|
||||
- p = g_utf8_next_char (p);
|
||||
+ if (G_UNLIKELY (*p != ' ' && *p != '\t' && *p != '\n' && *p != '\r'))
|
||||
+ return FALSE;
|
||||
+ p++;
|
||||
}
|
||||
|
||||
return TRUE;
|
@ -1,22 +0,0 @@
|
||||
commit 60e77f638c6bf3fcc147cfabde0384c31a5c797d
|
||||
Author: Matthew Garrett <mjg@redhat.com>
|
||||
Date: Tue Jun 29 15:29:26 2010 -0400
|
||||
|
||||
Realloc the correct amount of memory
|
||||
|
||||
Pointers are more than a byte long - make sure that we realloc enough space
|
||||
to fit another one.
|
||||
|
||||
diff --git a/gsettings/gsettings-data-convert.c b/gsettings/gsettings-data-convert.c
|
||||
index d61c4be..ea9fe21 100644
|
||||
--- a/gsettings/gsettings-data-convert.c
|
||||
+++ b/gsettings/gsettings-data-convert.c
|
||||
@@ -449,7 +449,7 @@ main (int argc, char *argv[])
|
||||
|
||||
/* Add the the file to the converted list */
|
||||
len = g_strv_length (converted);
|
||||
- converted = g_realloc (converted, len + 1);
|
||||
+ converted = g_realloc (converted, (len + 2) * sizeof(gchar *));
|
||||
converted[len] = g_strdup (name);
|
||||
converted[len + 1] = NULL;
|
||||
}
|
@ -1,49 +0,0 @@
|
||||
diff -up GConf-2.28.0/gconf/gconf.c.no-access GConf-2.28.0/gconf/gconf.c
|
||||
--- GConf-2.28.0/gconf/gconf.c.no-access 2009-12-14 14:05:28.356082892 -0500
|
||||
+++ GConf-2.28.0/gconf/gconf.c 2009-12-14 14:06:57.345056432 -0500
|
||||
@@ -511,6 +511,7 @@ gconf_engine_get_local (const gchar
|
||||
{
|
||||
GConfEngine* conf;
|
||||
GConfSource* source;
|
||||
+ GConfSources* sources;
|
||||
|
||||
g_return_val_if_fail(address != NULL, NULL);
|
||||
g_return_val_if_fail(err == NULL || *err == NULL, NULL);
|
||||
@@ -519,10 +520,14 @@ gconf_engine_get_local (const gchar
|
||||
|
||||
if (source == NULL)
|
||||
return NULL;
|
||||
-
|
||||
+
|
||||
+ sources = gconf_sources_new_from_source(source);
|
||||
+ if (sources == NULL)
|
||||
+ return NULL;
|
||||
+
|
||||
conf = gconf_engine_blank(FALSE);
|
||||
|
||||
- conf->local_sources = gconf_sources_new_from_source(source);
|
||||
+ conf->local_sources = sources;
|
||||
|
||||
g_assert (gconf_engine_is_local (conf));
|
||||
|
||||
@@ -534,13 +539,19 @@ gconf_engine_get_local_for_addresses (GS
|
||||
GError **err)
|
||||
{
|
||||
GConfEngine *conf;
|
||||
+ GConfSources* sources;
|
||||
|
||||
g_return_val_if_fail (addresses != NULL, NULL);
|
||||
g_return_val_if_fail (err == NULL || *err == NULL, NULL);
|
||||
|
||||
+ sources = gconf_sources_new_from_addresses (addresses, err);
|
||||
+
|
||||
+ if (sources == NULL)
|
||||
+ return NULL;
|
||||
+
|
||||
conf = gconf_engine_blank (FALSE);
|
||||
|
||||
- conf->local_sources = gconf_sources_new_from_addresses (addresses, err);
|
||||
+ conf->local_sources = sources;
|
||||
|
||||
g_assert (gconf_engine_is_local (conf));
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue