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++;
 }

Reply via email to