Sisyphus repositório
Última atualização: 1 outubro 2023 | SRPMs: 18631 | Visitas: 37816713
en ru br
ALT Linux repositórios
S:3.6.3-alt1
5.0: 2.48a-alt2
4.1: 2.45-alt2.2.1.qa1
4.0: 2.45-alt0.M40.2
3.0: 2.36-alt1.1

Outros repositórios
Upstream:2.45

Group :: Gráficos
RPM: blender

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs e FR  Repocop 

Patch: blender-2.93.0-suse-reproducible.patch
Download


commit 2115054bb8a41bb7ddffce32e396d9ffced300b1
Author: Bernhard M. Wiedemann <bwiedemann@suse.de>
Date:   Sat Sep 7 06:19:50 2019 +0200
    Sort list of .dat files
    
    Sort list of .dat files
    in .png generation to make builds reproducible.
    See https://reproducible-builds.org/ for why this matters.
    
    Note: scandir is only available on POSIX-compliant platforms (Linux,
    BSD, MacOSX, cygwin) - so others would need some compat layer.
    
    Reviewers: mont29
    
    Differential Revision: https://developer.blender.org/D5858
Index: blender-2.91.0/source/blender/datatoc/datatoc_icon.c
===================================================================
--- blender-2.91.0.orig/source/blender/datatoc/datatoc_icon.c
+++ blender-2.91.0/source/blender/datatoc/datatoc_icon.c
@@ -308,7 +308,8 @@ static bool icon_merge(const char *file_
 static bool icondir_to_png(const char *path_src, const char *file_dst)
 {
   /* Takes a path full of 'dat' files and writes out */
-  DIR *dir;
+  struct dirent **namelist;
+  int dirn;
   const struct dirent *fname;
   char filepath[1024];
   char *filename;
@@ -319,8 +320,8 @@ static bool icondir_to_png(const char *p
   unsigned int canvas_w = 0, canvas_h = 0;
 
   errno = 0;
-  dir = opendir(path_src);
-  if (dir == NULL) {
+  dirn = scandir(path_src, &namelist, NULL, alphasort);
+  if (dirn == -1) {
     printf(
         "%s: failed to dir '%s', (%s)\n", __func__, path_src, errno ? strerror(errno) : "unknown");
     return false;
@@ -330,7 +331,8 @@ static bool icondir_to_png(const char *p
   path_str_len = path_ensure_slash(filepath);
   filename = &filepath[path_str_len];
 
-  while ((fname = readdir(dir)) != NULL) {
+  while (dirn--) {
+    fname = namelist[dirn];
     if (path_test_extension(fname->d_name, ".dat")) {
 
       strcpy(filename, fname->d_name);
@@ -342,9 +344,10 @@ static bool icondir_to_png(const char *p
         fail++;
       }
     }
+    free(fname);
   }
 
   icon_merge_context_free(&context);
 
-  closedir(dir);
+  free(namelist);
 
   if (found == 0) {
     printf("%s: dir '%s' has no icons\n", __func__, path_src);
Index: blender-2.91.0/source/blender/datatoc/datatoc_icon.py
===================================================================
--- blender-2.91.0.orig/source/blender/datatoc/datatoc_icon.py
+++ blender-2.91.0/source/blender/datatoc/datatoc_icon.py
@@ -113,7 +113,7 @@ def icondir_to_png(path_src, file_dst):
     import os
     import array
 
-    files = [os.path.join(path_src, f) for f in os.listdir(path_src) if f.endswith(".dat")]
+    files = [os.path.join(path_src, f) for f in sorted(os.listdir(path_src)) if f.endswith(".dat")]
 
     # First check if we need to bother.
     if os.path.exists(file_dst):
 
projeto & código: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
mantenedor atual: Michael Shigorin
mantenedor da tradução: Fernando Martini aka fmartini © 2009