@@ -226,10 +226,18 @@ PYTHON_PATH = $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/sysconfigdata/
$(eval $(autotools-package))
$(eval $(host-autotools-package))
+ifeq ($(BR2_REPRODUCIBLE),y)
+define PYTHON_FIX_TIME
+find $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR) -name '*.py' -print0 | \
+ xargs -0 --no-run-if-empty touch -d @$(SOURCE_DATE_EPOCH)
+endef
+PYTHON_TARGET_FINALIZE_HOOKS += PYTHON_FIX_TIME
+endif
+
define PYTHON_CREATE_PYC_FILES
PYTHONPATH="$(PYTHON_PATH)" \
$(HOST_DIR)/usr/bin/python$(PYTHON_VERSION_MAJOR) \
- support/scripts/pycompile.py \
+ support/scripts/pycompile.py $(if $(BR2_REPRODUCIBLE),--force) \
$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)
endef
.pyc files contain modification time of .py source. In order to make build reproducible, we fix modification time of all .py before to compile .pyc files. This work was sponsored by `BA Robotic Systems'. Signed-off-by: Jérôme Pouiller <jezz@sysmic.org> --- package/python/python.mk | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)