[tor-commits] [tor-browser-build/master] Bug 31538: Make Windows builds reproducible again

boklm at torproject.org boklm at torproject.org
Wed Sep 18 06:05:45 UTC 2019


commit a7a90d35e55bb8f9886fd9d827b01eba2060c74b
Author: Georg Koppen <gk at torproject.org>
Date:   Fri Sep 13 06:51:04 2019 +0000

    Bug 31538: Make Windows builds reproducible again
    
    Updating CMake to the latest stable version as done in the previous
    commit solves the reproducibility issue only partly. We need to patch
    the code that merges libc++abi.a into libc++.a to get the order in the
    merged archive deterministic. The code doing the merging is:
    
    `files = glob.glob(os.path.join(temp_directory_root, '*.o*'))`
    
    Regarding `glob` there is following in the Python docs:
    
    "The glob module finds all the pathnames matching a specified pattern
     according to the rules used by the Unix shell, although results are
     returned in *arbitrary* order." (emphasis mine)
    
    (https://docs.python.org/2/library/glob.html)
---
 projects/mingw-w64-clang/build      |  1 +
 projects/mingw-w64-clang/config     |  1 +
 projects/mingw-w64-clang/sort.patch | 22 ++++++++++++++++++++++
 3 files changed, 24 insertions(+)

diff --git a/projects/mingw-w64-clang/build b/projects/mingw-w64-clang/build
index 86c3c6e..fa059da 100644
--- a/projects/mingw-w64-clang/build
+++ b/projects/mingw-w64-clang/build
@@ -173,6 +173,7 @@ make -j[% c("buildconf/num_procs") %] VERBOSE=1
 
 # libcxx
 cd $builddir/libcxx
+patch -p1 < $rootdir/sort.patch
 mkdir build && cd build
 cmake -DCMAKE_BUILD_TYPE=Release \
       -DCMAKE_INSTALL_PREFIX=$distdir/[% c("arch") %]-w64-mingw32 \
diff --git a/projects/mingw-w64-clang/config b/projects/mingw-w64-clang/config
index 3d209ea..32d18a8 100644
--- a/projects/mingw-w64-clang/config
+++ b/projects/mingw-w64-clang/config
@@ -36,3 +36,4 @@ input_files:
   - project: llvm-mingw
     name: llvm-mingw
   - filename: mingw-winrt.patch
+  - filename: sort.patch
diff --git a/projects/mingw-w64-clang/sort.patch b/projects/mingw-w64-clang/sort.patch
new file mode 100644
index 0000000..e9143b0
--- /dev/null
+++ b/projects/mingw-w64-clang/sort.patch
@@ -0,0 +1,22 @@
+From 9eeb3b9ea13b25591c9081a5f05a1904d367d523 Mon Sep 17 00:00:00 2001
+From: Georg Koppen <gk at torproject.org>
+Date: Wed, 11 Sep 2019 13:25:54 +0000
+Subject: [PATCH] sorted
+
+
+diff --git a/utils/merge_archives.py b/utils/merge_archives.py
+index 58d92f0e2..597ca2471 100755
+--- a/utils/merge_archives.py
++++ b/utils/merge_archives.py
+@@ -124,7 +124,7 @@ def main():
+         execute_command_verbose([ar_exe, 'x', arc], cwd=temp_directory_root,
+                                 verbose=args.verbose)
+ 
+-    files = glob.glob(os.path.join(temp_directory_root, '*.o*'))
++    files = sorted(glob.glob(os.path.join(temp_directory_root, '*.o*')))
+     if not files:
+         print_and_exit('Failed to glob for %s' % temp_directory_root)
+     cmd = [ar_exe, 'qcs', args.output] + files
+-- 
+2.23.0
+



More information about the tor-commits mailing list