Merge master into staging-next

This commit is contained in:
Frederik Rietdijk
2019-04-18 08:25:25 +02:00
136 changed files with 5780 additions and 2599 deletions

View File

@@ -0,0 +1,17 @@
--- a/Lib/py_compile.py
+++ b/Lib/py_compile.py
@@ -139,3 +139,4 @@
source_stats = loader.path_stats(file)
+ source_mtime = 1 if 'DETERMINISTIC_BUILD' in os.environ else source_stats['mtime']
bytecode = importlib._bootstrap_external._code_to_bytecode(
- code, source_stats['mtime'], source_stats['size'])
+ code, source_mtime, source_stats['size'])
--- a/Lib/importlib/_bootstrap_external.py
+++ b/Lib/importlib/_bootstrap_external.py
@@ -485,5 +485,5 @@
if source_stats is not None:
try:
- source_mtime = int(source_stats['mtime'])
+ source_mtime = 1
except KeyError:
pass

View File

@@ -87,6 +87,9 @@ in with passthru; stdenv.mkDerivation {
# (since it will do a futile invocation of gcc (!) to find
# libuuid, slowing down program startup a lot).
(./. + "/${sourceVersion.major}.${sourceVersion.minor}/no-ldconfig.patch")
] ++ optionals (isPy35 || isPy36) [
# Determinism: Write null timestamps when compiling python files.
./3.5/force_bytecode_determinism.patch
] ++ optionals isPy35 [
# Backports support for LD_LIBRARY_PATH from 3.6
./3.5/ld_library_path.patch
@@ -168,8 +171,8 @@ in with passthru; stdenv.mkDerivation {
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -msse2"
export MACOSX_DEPLOYMENT_TARGET=10.6
'' + optionalString (isPy3k && pythonOlder "3.7") ''
# Determinism: The interpreter is patched to write null timestamps when compiling python files.
# This way python does not try to update them when we freeze timestamps in nix store.
# Determinism: The interpreter is patched to write null timestamps when compiling Python files
# so Python doesn't try to update the bytecode when seeing frozen timestamps in Nix's store.
export DETERMINISTIC_BUILD=1;
'' + optionalString stdenv.hostPlatform.isMusl ''
export NIX_CFLAGS_COMPILE+=" -DTHREAD_STACK_SIZE=0x100000"