SHA256
1
0
forked from pool/python

Accepting request 478704 from home:bmwiedemann:reproducible:test

- Add reproducible.patch to allow reproducible builds of various
  python packages like python-amqp
  Upstream: https://github.com/python/cpython/pull/296

OBS-URL: https://build.opensuse.org/request/show/478704
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python?expand=0&rev=203
This commit is contained in:
Jan Matejek 2017-03-24 17:13:29 +00:00 committed by Git OBS Bridge
parent e76bc8d64f
commit 536145348f
5 changed files with 31 additions and 0 deletions

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Fri Feb 24 17:08:25 UTC 2017 - bwiedemann@suse.com
- Add reproducible.patch to allow reproducible builds of various
python packages like python-amqp
Upstream: https://github.com/python/cpython/pull/296
-------------------------------------------------------------------
Tue Jan 3 16:59:24 UTC 2017 - jmatejek@suse.com

View File

@ -56,6 +56,8 @@ Patch34: python-2.7.9-sles-disable-verification-by-default.patch
Patch35: python-ncurses-6.0-accessors.patch
Patch36: python-2.7.13-overflow_check.patch
Patch37: python-2.7.12-makeopcode.patch
# PATCH-FIX-UPSTREAM bmwiedemann@suse.de -- allow python packages to build reproducibly
Patch38: reproducible.patch
# COMMON-PATCH-END
%define python_version %(echo %{tarversion} | head -c 3)
BuildRequires: automake
@ -156,6 +158,7 @@ other applications.
%patch35 -p1
%patch36 -p1
%patch37 -p1
%patch38 -p1
# drop Autoconf version requirement
sed -i 's/^version_required/dnl version_required/' configure.ac

View File

@ -57,6 +57,8 @@ Patch34: python-2.7.9-sles-disable-verification-by-default.patch
Patch35: python-ncurses-6.0-accessors.patch
Patch36: python-2.7.13-overflow_check.patch
Patch37: python-2.7.12-makeopcode.patch
# PATCH-FIX-UPSTREAM bmwiedemann@suse.de -- allow python packages to build reproducibly
Patch38: reproducible.patch
# COMMON-PATCH-END
Provides: pyth_doc
Provides: pyth_ps
@ -107,6 +109,7 @@ Python, and Macintosh Module Reference in PDF format.
%patch35 -p1
%patch36 -p1
%patch37 -p1
%patch38 -p1
# drop Autoconf version requirement
sed -i 's/^version_required/dnl version_required/' configure.ac

View File

@ -62,6 +62,8 @@ Patch34: python-2.7.9-sles-disable-verification-by-default.patch
Patch35: python-ncurses-6.0-accessors.patch
Patch36: python-2.7.13-overflow_check.patch
Patch37: python-2.7.12-makeopcode.patch
# PATCH-FIX-UPSTREAM bmwiedemann@suse.de -- allow python packages to build reproducibly
Patch38: reproducible.patch
# COMMON-PATCH-END
BuildRequires: automake
BuildRequires: db-devel
@ -212,6 +214,7 @@ that rely on earlier non-verification behavior.
%patch35 -p1
%patch36 -p1
%patch37 -p1
%patch38 -p1
# drop Autoconf version requirement
sed -i 's/^version_required/dnl version_required/' configure.ac

15
reproducible.patch Normal file
View File

@ -0,0 +1,15 @@
Index: Python-2.7.13/Lib/py_compile.py
===================================================================
--- Python-2.7.13.orig/Lib/py_compile.py
+++ Python-2.7.13/Lib/py_compile.py
@@ -108,6 +108,10 @@ def compile(file, cfile=None, dfile=None
timestamp = long(os.fstat(f.fileno()).st_mtime)
except AttributeError:
timestamp = long(os.stat(file).st_mtime)
+ sde = os.environ.get('SOURCE_DATE_EPOCH')
+ if sde and timestamp > int(sde):
+ timestamp = int(sde)
+ os.utime(file, (timestamp, timestamp))
codestring = f.read()
try:
codeobject = __builtin__.compile(codestring, dfile or file,'exec')