Skip to content

Commit f460719

Browse files
authored
Merge pull request #5360 from commodo/python_reproducible
python,python3: honour the SOURCE_DATE_EPOCH for the build-info
2 parents 2cb0930 + c54b312 commit f460719

File tree

4 files changed

+58
-2
lines changed

4 files changed

+58
-2
lines changed

lang/python/python/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ include ../python-version.mk
1212

1313
PKG_NAME:=python
1414
PKG_VERSION:=$(PYTHON_VERSION).$(PYTHON_VERSION_MICRO)
15-
PKG_RELEASE:=8
15+
PKG_RELEASE:=9
1616

1717
PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz
1818
PKG_SOURCE_URL:=https://www.python.org/ftp/python/$(PKG_VERSION)
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
--- a/Makefile.pre.in
2+
+++ b/Makefile.pre.in
3+
@@ -625,6 +625,16 @@ regen-all: regen-opcode-targets regen-gr
4+
############################################################################
5+
# Special rules for object files
6+
7+
+DATE_FMT = %b %d %Y
8+
+TIME_FMT = %H:%M:%S
9+
+ifdef SOURCE_DATE_EPOCH
10+
+ BUILD_DATE ?= $(shell date -u -d "@$(SOURCE_DATE_EPOCH)" "+$(DATE_FMT)" 2>/dev/null || date -u -r "$(SOURCE_DATE_EPOCH)" "+$(DATE_FMT)" 2>/dev/null || date -u "+$(DATE_FMT)")
11+
+ BUILD_TIME ?= $(shell date -u -d "@$(SOURCE_DATE_EPOCH)" "+$(TIME_FMT)" 2>/dev/null || date -u -r "$(SOURCE_DATE_EPOCH)" "+$(TIME_FMT)" 2>/dev/null || date -u "+$(TIME_FMT)")
12+
+else
13+
+ BUILD_DATE ?= $(shell date "+$(DATE_FMT)")
14+
+ BUILD_TIME ?= $(shell date "+$(TIME_FMT)")
15+
+endif
16+
+
17+
Modules/getbuildinfo.o: $(PARSER_OBJS) \
18+
$(OBJECT_OBJS) \
19+
$(PYTHON_OBJS) \
20+
@@ -633,6 +643,8 @@ Modules/getbuildinfo.o: $(PARSER_OBJS) \
21+
$(MODOBJS) \
22+
$(srcdir)/Modules/getbuildinfo.c
23+
$(CC) -c $(PY_CFLAGS) \
24+
+ -DDATE="\"$(BUILD_DATE)\"" \
25+
+ -DTIME="\"$(BUILD_TIME)\"" \
26+
-DGITVERSION="\"`LC_ALL=C $(GITVERSION)`\"" \
27+
-DGITTAG="\"`LC_ALL=C $(GITTAG)`\"" \
28+
-DGITBRANCH="\"`LC_ALL=C $(GITBRANCH)`\"" \

lang/python/python3/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ PYTHON_VERSION:=$(PYTHON3_VERSION)
1414
PYTHON_VERSION_MICRO:=$(PYTHON3_VERSION_MICRO)
1515

1616
PKG_NAME:=python3
17-
PKG_RELEASE:=3
17+
PKG_RELEASE:=4
1818
PKG_VERSION:=$(PYTHON_VERSION).$(PYTHON_VERSION_MICRO)
1919

2020
PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
--- a/Makefile.pre.in
2+
+++ b/Makefile.pre.in
3+
@@ -725,6 +725,16 @@ regen-all: regen-opcode regen-opcode-tar
4+
############################################################################
5+
# Special rules for object files
6+
7+
+DATE_FMT = %b %d %Y
8+
+TIME_FMT = %H:%M:%S
9+
+ifdef SOURCE_DATE_EPOCH
10+
+ BUILD_DATE ?= $(shell date -u -d "@$(SOURCE_DATE_EPOCH)" "+$(DATE_FMT)" 2>/dev/null || date -u -r "$(SOURCE_DATE_EPOCH)" "+$(DATE_FMT)" 2>/dev/null || date -u "+$(DATE_FMT)")
11+
+ BUILD_TIME ?= $(shell date -u -d "@$(SOURCE_DATE_EPOCH)" "+$(TIME_FMT)" 2>/dev/null || date -u -r "$(SOURCE_DATE_EPOCH)" "+$(TIME_FMT)" 2>/dev/null || date -u "+$(TIME_FMT)")
12+
+else
13+
+ BUILD_DATE ?= $(shell date "+$(DATE_FMT)")
14+
+ BUILD_TIME ?= $(shell date "+$(TIME_FMT)")
15+
+endif
16+
+
17+
Modules/getbuildinfo.o: $(PARSER_OBJS) \
18+
$(OBJECT_OBJS) \
19+
$(PYTHON_OBJS) \
20+
@@ -732,6 +742,8 @@ Modules/getbuildinfo.o: $(PARSER_OBJS) \
21+
$(MODOBJS) \
22+
$(srcdir)/Modules/getbuildinfo.c
23+
$(CC) -c $(PY_CORE_CFLAGS) \
24+
+ -DDATE="\"$(BUILD_DATE)\"" \
25+
+ -DTIME="\"$(BUILD_TIME)\"" \
26+
-DGITVERSION="\"`LC_ALL=C $(GITVERSION)`\"" \
27+
-DGITTAG="\"`LC_ALL=C $(GITTAG)`\"" \
28+
-DGITBRANCH="\"`LC_ALL=C $(GITBRANCH)`\"" \

0 commit comments

Comments
 (0)