[gnome-continuous-yocto/gnomeostree-3.28-rocko: 7343/8267] python2.7: improve reproducibility



commit 07348bb76f6617477e164db9245a1a98f1a18569
Author: Juro Bystricky <juro bystricky intel com>
Date:   Sat Aug 19 10:21:57 2017 -0700

    python2.7: improve reproducibility
    
    The compiled .pyc files contain time stamp corresponding to the compile time.
    This prevents binary reproducibility. This patch allows to achieve binary
    reproducibility by overriding the build time stamp by the value
    exported via SOURCE_DATE_EPOCH.
    
    Patch by Bernhard M. Wiedemann, backported from https://github.com/python/cpython/pull/296
    
    [YOCTO#11241]
    
    (From OE-Core rev: 2a044f1e4f5c63e11e631b31f741c7aabfa6f601)
    
    Signed-off-by: Juro Bystricky <juro bystricky intel com>
    Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>

 ...pport_SOURCE_DATE_EPOCH_in_py_compile_2.7.patch |   34 ++++++++++++++++++++
 meta/recipes-devtools/python/python_2.7.13.bb      |    1 +
 2 files changed, 35 insertions(+), 0 deletions(-)
---
diff --git a/meta/recipes-devtools/python/python/support_SOURCE_DATE_EPOCH_in_py_compile_2.7.patch 
b/meta/recipes-devtools/python/python/support_SOURCE_DATE_EPOCH_in_py_compile_2.7.patch
new file mode 100644
index 0000000..1265179
--- /dev/null
+++ b/meta/recipes-devtools/python/python/support_SOURCE_DATE_EPOCH_in_py_compile_2.7.patch
@@ -0,0 +1,34 @@
+The compiled .pyc files contain time stamp corresponding to the compile time.
+This prevents binary reproducibility. This patch allows to achieve binary
+reproducibility by overriding the build time stamp by the value 
+exported via SOURCE_DATE_EPOCH. 
+
+Patch by Bernhard M. Wiedemann
+
+Upstream-Status: Backport
+
+Signed-off-by: Juro Bystricky <juro bystricky intel com>
+
+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
+
+
+@@ -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')
diff --git a/meta/recipes-devtools/python/python_2.7.13.bb b/meta/recipes-devtools/python/python_2.7.13.bb
index 98bc8ad..4d73cd2 100644
--- a/meta/recipes-devtools/python/python_2.7.13.bb
+++ b/meta/recipes-devtools/python/python_2.7.13.bb
@@ -28,6 +28,7 @@ SRC_URI += "\
   file://add-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch \
   file://Don-t-use-getentropy-on-Linux.patch \
   file://pass-missing-libraries-to-Extension-for-mul.patch \
+  file://support_SOURCE_DATE_EPOCH_in_py_compile_2.7.patch \
 "
 
 S = "${WORKDIR}/Python-${PV}"


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]