From f53904ebdac8e94977f89170a3369241c748f30f Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Wed, 7 Mar 2018 20:43:35 +0200 Subject: [PATCH] lang/python/python-package-install.sh: assign SOURCE_DATE_EPOCH to PYTHONHASHSEED Following a discussion on bugs.python.org: * https://bugs.python.org/issue29708 * https://bugs.python.org/msg313384 It seems that setting a fixed value to PYTHONHASHSEED guarantees that the bytecodes are generated consistently/in a reproducible manner. Hopefully, this is the last bit to make Python3 build reproducible. Tested this locally on a few files [that were not reproducible without this change]. The PYTHONHASHSEED is only assigned to the host Python/Python3 during compilation of byte-codes [from python source]. Signed-off-by: Alexandru Ardelean --- lang/python/python-package-install.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lang/python/python-package-install.sh b/lang/python/python-package-install.sh index d5a50322f..e5f6ec893 100644 --- a/lang/python/python-package-install.sh +++ b/lang/python/python-package-install.sh @@ -1,6 +1,11 @@ #!/bin/sh set -e +[ -z "$SOURCE_DATE_EPOCH" ] || { + PYTHONHASHSEED="$SOURCE_DATE_EPOCH" + export PYTHONHASHSEED +} + process_filespec() { local src_dir="$1" local dst_dir="$2"