File reproducible.patch of Package python-qt4

have constant link order
to make builds reproducible.
See https://reproducible-builds.org/ for why this is good.

Without this patch g++ would order functions in .so files
depending on random order of files in the build system's filesystem.

Note that we also need to sort .h files because those are used
to create .cpp files with moc.

diff -ru PyQt4_gpl_x11-4.12.orig/configure-ng.py PyQt4_gpl_x11-4.12/configure-ng.py
--- PyQt4_gpl_x11-4.12.orig/configure-ng.py	2016-12-26 13:47:10.000000000 +0000
+++ PyQt4_gpl_x11-4.12/configure-ng.py	2017-05-22 17:37:42.867428681 +0000
@@ -1337,11 +1337,11 @@
             sp_qpy_dir = source_path('qpy', mname)
 
             qpy_c_sources = [os.path.relpath(f, mname)
-                    for f in glob.glob(os.path.join(sp_qpy_dir, '*.c'))]
+                    for f in sorted(glob.glob(os.path.join(sp_qpy_dir, '*.c')))]
             qpy_cpp_sources = [os.path.relpath(f, mname)
-                    for f in glob.glob(os.path.join(sp_qpy_dir, '*.cpp'))]
+                    for f in sorted(glob.glob(os.path.join(sp_qpy_dir, '*.cpp')))]
             qpy_headers = [os.path.relpath(f, mname)
-                    for f in glob.glob(os.path.join(sp_qpy_dir, '*.h'))]
+                    for f in sorted(glob.glob(os.path.join(sp_qpy_dir, '*.h')))]
 
             qpy_sources = qpy_c_sources + qpy_cpp_sources
         else:
@@ -1597,7 +1597,7 @@
 
     pro_lines = []
 
-    headers = [os.path.basename(f) for f in glob.glob('%s/*.h' % src_dir)]
+    headers = [os.path.basename(f) for f in sorted(glob.glob('%s/*.h' % src_dir))]
 
     if other_headers is not None:
         headers += other_headers
@@ -1605,9 +1605,9 @@
     if len(headers) != 0:
         pro_lines.append('HEADERS = %s' % ' '.join(headers))
 
-    sources = [os.path.basename(f) for f in glob.glob('%s/*.c' % src_dir)]
+    sources = [os.path.basename(f) for f in sorted(glob.glob('%s/*.c' % src_dir))]
 
-    for f in glob.glob('%s/*.cpp' % src_dir):
+    for f in sorted(glob.glob('%s/*.cpp' % src_dir)):
         f = os.path.basename(f)
 
         # Exclude any moc generated C++ files that might be around from a
@@ -2378,7 +2378,7 @@
 
     if target_config.pyqt_sip_dir:
         sip_files = [os.path.relpath(f, mname)
-                for f in glob.glob(source_path('sip', mname, '*.sip'))]
+                for f in sorted(glob.glob(source_path('sip', mname, '*.sip')))]
         if len(sip_files) != 0:
             pro_lines.append('sip.path = %s/%s' % (target_config.pyqt_sip_dir, mname))
             pro_lines.append('sip.files = %s' % ' '.join(sip_files))
openSUSE Build Service is sponsored by