mbakke pushed a commit to branch core-updates
in repository guix.
commit a422e2478e695bd1211fda827c767134de39fb2c
Author: Marius Bakke <[email protected]>
Date: Mon Jul 23 20:53:50 2018 +0200
gnu: python: Build reproducibly.
\o/
* gnu/packages/python.scm (python-3.7)[arguments]: Set PYTHONHASHSEED before
rebuilding all bytecode. Adjust regex so that lib2to3_ex.py gets compiled.
---
gnu/packages/python.scm | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 3d924f7..6cab847 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -361,6 +361,9 @@ data types.")
(add-after 'remove-tests 'rebuild-bytecode
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
+ ;; Disable hash randomization to ensure the generated .pycs
+ ;; are reproducible.
+ (setenv "PYTHONHASHSEED" "0")
(for-each
(lambda (opt)
(format #t "Compiling with optimization level: ~a\n"
@@ -372,7 +375,7 @@ data types.")
"-m" "compileall"
"-f" ; force rebuild
;; Don't build lib2to3, because it's
Python 2 code.
- "-x" "lib2to3.*"
+ "-x" "lib2to3/.*"
,file)))
(find-files out "\\.py$")))
(list '() '("-O") '("-OO")))