-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Restore pyc to TIMESTAMP invalidation mode as default in rpmbubild
- Loading branch information
Showing
2 changed files
with
62 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
From 746a45acd333174c3174230833b45f537bd92889 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 | ||
--- | ||
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 21736896af..310bed5620 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 d6677ab45f..88059b127e 100644 | ||
--- a/Lib/test/test_py_compile.py | ||
+++ b/Lib/test/test_py_compile.py | ||
@@ -17,6 +17,7 @@ def without_source_date_epoch(fxn): | ||
def wrapper(*args, **kwargs): | ||
with support.EnvironmentVarGuard() as env: | ||
env.unset('SOURCE_DATE_EPOCH') | ||
+ env.unset('RPM_BUILD_ROOT') | ||
return fxn(*args, **kwargs) | ||
return wrapper | ||
|
||
@@ -27,6 +28,7 @@ def with_source_date_epoch(fxn): | ||
def wrapper(*args, **kwargs): | ||
with support.EnvironmentVarGuard() as env: | ||
env['SOURCE_DATE_EPOCH'] = '123456789' | ||
+ env.unset('RPM_BUILD_ROOT') | ||
return fxn(*args, **kwargs) | ||
return wrapper | ||
|
||
-- | ||
2.21.0 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters