forked from mirrors/nixpkgs
acd32a4caf
The Python interpreters are patched so they can build .pyc bytecode free of certain indeterminism. When building Python packages we currently set ``` compiling python files. in nix store. DETERMINISTIC_BUILD=1; PYTHONHASHSEED = 0; ``` Instead if setting these environment variables in the function that builds the package, this commit sets the variables instead in the Python setup hook. That way, whenever Python is included in a derivation, these variables are set. See also the issue https://github.com/NixOS/nixpkgs/issues/25707.
22 lines
603 B
Bash
22 lines
603 B
Bash
addPythonPath() {
|
|
addToSearchPathWithCustomDelimiter : PYTHONPATH $1/@sitePackages@
|
|
}
|
|
|
|
toPythonPath() {
|
|
local paths="$1"
|
|
local result=
|
|
for i in $paths; do
|
|
p="$i/@sitePackages@"
|
|
result="${result}${result:+:}$p"
|
|
done
|
|
echo $result
|
|
}
|
|
|
|
envHooks+=(addPythonPath)
|
|
|
|
# Determinism: The interpreter is patched to write null timestamps when compiling python files.
|
|
# This way python doesn't try to update them when we freeze timestamps in nix store.
|
|
export DETERMINISTIC_BUILD=1;
|
|
# Determinism: We fix the hashes of str, bytes and datetime objects.
|
|
export PYTHONHASHSEED=0;
|