Source: gconf
Version: 3.2.6-4
Severity: wishlist
Tags: patch
User: [email protected]
Usertags: timestamps toolchain
X-Debbugs-Cc: [email protected]
Hi,
Whilst working on the Reproducible Builds effort [0], we noticed
that gconf can generate /var/lib/gconf/defaults/%gconf-tree-*.xml files
with non-reproducible contents:
├── /var/lib/gconf/defaults/%gconf-tree-af.xml
│ │ @@ -1,11 +1,17 @@
│ │ <?xml version="1.0"?>
│ │ <gconf>
│ │ <dir name="schemas">
│ │ <dir name="system">
│ │ + <dir name="smb">
│ │ + <entry name="workgroup">
│ │ + <local_schema
short_desc="SMB-werkgroep">
│ │ + </local_schema>
│ │ + </entry>
│ │ + </dir>
│ │ <dir name="proxy">
│ │ <entry name="autoconfig_url">
│ │ <local_schema short_desc="Outomatiese
instaanopstelling-URL">
│ │ <longdesc>URL wat
instaanopstellingswaardes verskaf.</longdesc>
│ │ </local_schema>
│ │ </entry>
│ │ <entry name="socks_port">
│ │ @@ -76,20 +82,14 @@
│ │ </entry>
│ │ <entry name="use_http_proxy">
│ │ <local_schema short_desc="Gebruik
HTTP-instaanbediener">
│ │ <longdesc>Aktiveer die
instaanopstelling wanneer toegang tot HTTP oor die internet verkry
word.</longdesc>
│ │ </local_schema>
│ │ </entry>
│ │ </dir>
│ │ - <dir name="smb">
│ │ - <entry name="workgroup">
│ │ - <local_schema
short_desc="SMB-werkgroep">
│ │ - </local_schema>
│ │ - </entry>
│ │ - </dir>
│ │ </dir>
│ │ <dir name="desktop">
│ │ <dir name="gnome">
│ │ <dir name="url-handlers">
Patch attached.
[0] https://reproducible-builds.org/
Regards,
--
,''`.
: :' : Chris Lamb, Debian Project Leader
`. `'` [email protected] / chris-lamb.co.uk
`-
diff --git a/backends/markup-tree.c b/backends/markup-tree.c
index 4857cae..fc508dd 100644
--- a/backends/markup-tree.c
+++ b/backends/markup-tree.c
@@ -255,6 +255,13 @@ struct _MarkupDir
guint is_dir_empty : 1;
};
+static gint
+compare_markupdirs (MarkupDir *a,
+ MarkupDir *b)
+{
+ return strcmp(a->name, b->name);
+}
+
static MarkupDir*
markup_dir_new (MarkupTree *tree,
MarkupDir *parent,
@@ -271,7 +278,9 @@ markup_dir_new (MarkupTree *tree,
if (parent)
{
dir->subtree_root = parent->subtree_root;
- parent->subdirs = g_slist_prepend (parent->subdirs, dir);
+ parent->subdirs = g_slist_insert_sorted (parent->subdirs,
+ dir,
+
(GCompareFunc)compare_markupdirs);
}
else
{