The content of this branch was automatically imported from Fedora ELN with the following as its source: https://src.fedoraproject.org/rpms/python3.9#9ceb5be63de8c8e006d41c7460e435bd50a5caaf
		
			
				
	
	
		
			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 a81f493731..bba3642bf2 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 e6791c6916..b2d3dcf7fb 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 support.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 support.EnvironmentVarGuard() as env:
 | |
|              env['SOURCE_DATE_EPOCH'] = '123456789'
 | |
| +            env.unset('RPM_BUILD_ROOT')
 | |
|              return fxn(*args, **kwargs)
 | |
|      return wrapper
 | |
|  
 |