Bug#867848: gconf: please make the output of /var/lib/gconf/defaults/%gconf-tree-*.xml files reproducible

Chris Lamb lamby at debian.org
Sun Jul 9 20:59:23 UTC 2017


Source: gconf
Version: 3.2.6-4
Severity: wishlist
Tags: patch
User: reproducible-builds at lists.alioth.debian.org
Usertags: timestamps toolchain
X-Debbugs-Cc: reproducible-bugs at lists.alioth.debian.org

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
     `. `'`      lamby at debian.org / chris-lamb.co.uk
       `-
-------------- next part --------------
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
     {


More information about the pkg-gnome-maintainers mailing list