guix/gnu/packages/patches/gdk-pixbuf-list-dir.patch
Danny Milosavljevic 8c6b077bfa
gnu: gdk-pixbuf: Make it reproducible.
Fixes <http://bugs.gnu.org/25414>.

* gnu/packages/gtk.scm (gdk-pixbuf)[source](patches): New field.
2017-01-16 16:27:51 +01:00

36 lines
1.8 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Sort directory entries so that the output of
gdk-pixbuf-query-loaders is deterministic.
See: https://bugzilla.gnome.org/show_bug.cgi?id=777332
--- gdk-pixbuf-2.34.0/gdk-pixbuf/queryloaders.c.orig 2017-01-11 00:17:32.865843062 +0100
+++ gdk-pixbuf-2.34.0/gdk-pixbuf/queryloaders.c 2017-01-16 16:12:03.420667874 +0100
@@ -354,16 +354,27 @@
dir = g_dir_open (path, 0, NULL);
if (dir) {
+ GList *entries = NULL;
const char *dent;
while ((dent = g_dir_read_name (dir))) {
gint len = strlen (dent);
if (len > SOEXT_LEN &&
strcmp (dent + len - SOEXT_LEN, SOEXT) == 0) {
- query_module (contents, path, dent);
+ entries = g_list_append (entries, g_strdup (dent));
}
}
g_dir_close (dir);
+ /* Sort directory entries so that the output of
+ gdk-pixbuf-query-loaders is deterministic. */
+ entries = g_list_sort (entries, (GCompareFunc) strcmp);
+ GList *xentries;
+ for (xentries = entries; xentries; xentries = g_list_next (xentries)) {
+ dent = xentries->data;
+ query_module (contents, path, dent);
+ g_free (xentries->data);
+ }
+ g_list_free (entries);
}
#else
g_string_append_printf (contents, "# dynamic loading of modules not supported\n");