diff --git a/python-base.changes b/python-base.changes index 2198a57..7f7562d 100644 --- a/python-base.changes +++ b/python-base.changes @@ -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 diff --git a/python-base.spec b/python-base.spec index 0d0592f..74c07ff 100644 --- a/python-base.spec +++ b/python-base.spec @@ -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 diff --git a/python-doc.spec b/python-doc.spec index 17cb804..8df7d4d 100644 --- a/python-doc.spec +++ b/python-doc.spec @@ -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 diff --git a/python.spec b/python.spec index 1c590bf..597462b 100644 --- a/python.spec +++ b/python.spec @@ -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 diff --git a/reproducible.patch b/reproducible.patch new file mode 100644 index 0000000..3171bee --- /dev/null +++ b/reproducible.patch @@ -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')