Hello community, here is the log from the commit of package blobwars for openSUSE:Factory checked in at 2017-07-21 22:50:13 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/blobwars (Old) and /work/SRC/openSUSE:Factory/.blobwars.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "blobwars" Fri Jul 21 22:50:13 2017 rev:3 rq:511640 version:2.00 Changes: -------- --- /work/SRC/openSUSE:Factory/blobwars/blobwars.changes 2015-11-28 15:19:23.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.blobwars.new/blobwars.changes 2017-07-21 22:50:15.453463815 +0200 @@ -1,0 +2,5 @@ +Thu Jul 20 09:08:53 UTC 2017 - bwiedem...@suse.com + +- Add reproducible.patch to sort file list to fix build-compare (boo#1041090) + +------------------------------------------------------------------- New: ---- reproducible.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ blobwars.spec ++++++ --- /var/tmp/diff_new_pack.nG6Fuz/_old 2017-07-21 22:50:19.252927853 +0200 +++ /var/tmp/diff_new_pack.nG6Fuz/_new 2017-07-21 22:50:19.252927853 +0200 @@ -27,6 +27,8 @@ Source1: %{name}.appdata.xml # PATCH-FIX-OPENSUSE - blobwars-icons_blobwars.desktop.patch -- Add GenericName and Category Patch0: %{name}-icons_blobwars.desktop.patch +# PATCH-FIX-UPSTREAM https://sourceforge.net/p/blobwars/patches/8/ +Patch1: reproducible.patch %if 0%{?suse_version} BuildRequires: hicolor-icon-theme BuildRequires: update-desktop-files @@ -56,6 +58,7 @@ %prep %setup -q %patch0 +%patch1 -p1 # Correct Permissions chmod 0644 Makefile* ++++++ reproducible.patch ++++++ https://sourceforge.net/p/blobwars/patches/8/ (boo#1041090) When building blobwars packages for openSUSE, we do so in disposable VMs, which means every build has a new filesystem and thus ordering of files differs for the readdir call in src/pak.cpp See https://reproducible-builds.org for why this matters. Index: blobwars-2.00/src/pak.cpp =================================================================== --- blobwars-2.00.orig/src/pak.cpp +++ blobwars-2.00/src/pak.cpp @@ -76,7 +76,9 @@ void countFiles(const char *dirName) void recurseDirectory(const char *dirName) { - DIR *dirp, *dirp2; + DIR *dirp2; + int n; + struct dirent **namelist; dirent *dfile; gzFile fp; FILE *infile; @@ -85,9 +87,9 @@ void recurseDirectory(const char *dirNam uLongf cSize = 0; uLongf fSize = 0; - dirp = opendir(dirName); + n = scandir(dirName, &namelist, NULL, alphasort); - if (dirp == NULL) + if (n == -1) { printf("%s: Directory does not exist or is not accessable\n", dirName); return; @@ -96,10 +98,12 @@ void recurseDirectory(const char *dirNam float percentage; long filesize; - while ((dfile = readdir(dirp))) + while (n--) { + dfile = namelist[n]; if (dfile->d_name[0] == '.') { + free(dfile); continue; } @@ -118,7 +122,6 @@ void recurseDirectory(const char *dirNam if (!infile) { printf("Couldn't open %s for reading!\n", filename); - closedir(dirp); fclose(pak); exit(1); } @@ -140,7 +143,6 @@ void recurseDirectory(const char *dirNam if (!fp) { printf("Couldn't open %s for reading!\n", filename); - closedir(dirp); fclose(pak); exit(1); } @@ -171,9 +173,10 @@ void recurseDirectory(const char *dirNam fflush(stdout); } } + free(dfile); } - closedir(dirp); + free(namelist); dirs++; }