diff options
author | Ricardo Wurmus <rekado@elephly.net> | 2018-03-07 10:53:11 +0100 |
---|---|---|
committer | Ricardo Wurmus <rekado@elephly.net> | 2018-03-15 09:26:30 +0100 |
commit | d57888a819dae65ef923cb5c92eb15375a2f3f9f (patch) | |
tree | 155c6e1b7b05979e8f1dbbb936cc9753159a0f3c | |
parent | 9b7e389d41b217a12283f5b0a83e8122b088c67a (diff) | |
download | guix-d57888a819dae65ef923cb5c92eb15375a2f3f9f.tar.gz |
guix: python-build-system: Make bytecode compilation deterministic.
* guix/build/python-build-system.scm (enable-bytecode-determinism): New procedure. (%standard-phases): Add "enable-bytecode-determinism" phase.
-rw-r--r-- | guix/build/python-build-system.scm | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/guix/build/python-build-system.scm b/guix/build/python-build-system.scm index 0366571c2f..507cc27e23 100644 --- a/guix/build/python-build-system.scm +++ b/guix/build/python-build-system.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> +;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -243,10 +244,20 @@ installed with setuptools." #t)) #t)) +(define* (enable-bytecode-determinism #:rest _) + "Improve determinism of pyc files." + ;; Set DETERMINISTIC_BUILD to override the embedded mtime in pyc files. + (setenv "DETERMINISTIC_BUILD" "1") + ;; Use deterministic hashes for strings, bytes, and datetime objects. + (setenv "PYTHONHASHSEED" "0") + #t) + (define %standard-phases ;; 'configure' phase is not needed. (modify-phases gnu:%standard-phases (add-after 'unpack 'ensure-no-mtimes-pre-1980 ensure-no-mtimes-pre-1980) + (add-after 'ensure-no-mtimes-pre-1980 'enable-bytecode-determinism + enable-bytecode-determinism) (delete 'bootstrap) (delete 'configure) (replace 'install install) |