b2d80045f9
Patches 383 and 384 were merged upstream. Patch 385 was partially merged upstream, the PR with test is still open.
55 lines
2.1 KiB
Diff
55 lines
2.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
|
|
Date: Thu, 11 Jul 2019 13:44:13 +0200
|
|
Subject: [PATCH] 00328: Restore pyc to TIMESTAMP invalidation mode as default
|
|
in rpmbuild
|
|
|
|
Since Fedora 31, the $SOURCE_DATE_EPOCH is set in rpmbuild to the latest
|
|
%changelog date. This makes Python default to the CHECKED_HASH pyc
|
|
invalidation mode, bringing more reproducible builds traded for an import
|
|
performance decrease. To avoid that, we don't default to CHECKED_HASH
|
|
when $RPM_BUILD_ROOT is set (i.e. when we are building RPM packages).
|
|
|
|
See https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/57#comment-27426
|
|
Downstream only: only used when building RPM packages
|
|
Ideally, we should talk to upstream and explain why we don't want this
|
|
---
|
|
Lib/py_compile.py | 3 ++-
|
|
Lib/test/test_py_compile.py | 2 ++
|
|
2 files changed, 4 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/Lib/py_compile.py b/Lib/py_compile.py
|
|
index 388614e51b..db52725016 100644
|
|
--- a/Lib/py_compile.py
|
|
+++ b/Lib/py_compile.py
|
|
@@ -70,7 +70,8 @@ class PycInvalidationMode(enum.Enum):
|
|
|
|
|
|
def _get_default_invalidation_mode():
|
|
- if os.environ.get('SOURCE_DATE_EPOCH'):
|
|
+ if (os.environ.get('SOURCE_DATE_EPOCH') and not
|
|
+ os.environ.get('RPM_BUILD_ROOT')):
|
|
return PycInvalidationMode.CHECKED_HASH
|
|
else:
|
|
return PycInvalidationMode.TIMESTAMP
|
|
diff --git a/Lib/test/test_py_compile.py b/Lib/test/test_py_compile.py
|
|
index a4a52b180d..e53f5d92aa 100644
|
|
--- a/Lib/test/test_py_compile.py
|
|
+++ b/Lib/test/test_py_compile.py
|
|
@@ -19,6 +19,7 @@ def without_source_date_epoch(fxn):
|
|
def wrapper(*args, **kwargs):
|
|
with os_helper.EnvironmentVarGuard() as env:
|
|
env.unset('SOURCE_DATE_EPOCH')
|
|
+ env.unset('RPM_BUILD_ROOT')
|
|
return fxn(*args, **kwargs)
|
|
return wrapper
|
|
|
|
@@ -29,6 +30,7 @@ def with_source_date_epoch(fxn):
|
|
def wrapper(*args, **kwargs):
|
|
with os_helper.EnvironmentVarGuard() as env:
|
|
env['SOURCE_DATE_EPOCH'] = '123456789'
|
|
+ env.unset('RPM_BUILD_ROOT')
|
|
return fxn(*args, **kwargs)
|
|
return wrapper
|
|
|