From d2ebc1fdd5d1e8d8b70259cb73a14f803b781a0e Mon Sep 17 00:00:00 2001 From: Sofiane HAMAM Date: Fri, 4 Apr 2025 17:56:32 +0200 Subject: openocd : Fix non reproducible build This package defines PKGBLDDATE as build timestamp which makes it non reproducible. Use SOURCE_DATE_EPOCH if it is found, otherwise use build timestamp. Following best practices, see : https://reproducible-builds.org/docs/source-date-epoch/ Co-developed-by: Yoann Congal Signed-off-by: Yoann Congal Signed-off-by: Sofiane HAMAM Signed-off-by: Khem Raj --- ...-Use-SOURCE_DATE_EPOCH-environment-variab.patch | 38 ++++++++++++++++++++++ meta-oe/recipes-devtools/openocd/openocd_git.bb | 1 + 2 files changed, 39 insertions(+) create mode 100644 meta-oe/recipes-devtools/openocd/openocd/0001-Makefile.am-Use-SOURCE_DATE_EPOCH-environment-variab.patch diff --git a/meta-oe/recipes-devtools/openocd/openocd/0001-Makefile.am-Use-SOURCE_DATE_EPOCH-environment-variab.patch b/meta-oe/recipes-devtools/openocd/openocd/0001-Makefile.am-Use-SOURCE_DATE_EPOCH-environment-variab.patch new file mode 100644 index 0000000000..c0a1803a9a --- /dev/null +++ b/meta-oe/recipes-devtools/openocd/openocd/0001-Makefile.am-Use-SOURCE_DATE_EPOCH-environment-variab.patch @@ -0,0 +1,38 @@ +From 65969a2b73ce93db4c80f1706677351b0e57fa72 Mon Sep 17 00:00:00 2001 +From: Sofiane HAMAM +Date: Fri, 28 Mar 2025 12:31:17 +0100 +Subject: [PATCH] Makefile.am: Use SOURCE_DATE_EPOCH environment variable + +This package defines PKGBLDDATE as build timestamp which makes +it non reproducible. Use SOURCE_DATE_EPOCH if it is found, otherwise +use build timestamp. Following best practices, see : +https://reproducible-builds.org/docs/source-date-epoch/ + +The patch is BSD compatible too. + +Change-Id: I26c1a00f2e8059ae31fe72a794b5962af5a84f44 +Co-developed-by: Yoann Congal +Signed-off-by: Yoann Congal +Signed-off-by: Sofiane HAMAM + +Upstream-Status: Submitted [https://review.openocd.org/c/openocd/+/8619] +--- + src/Makefile.am | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/src/Makefile.am b/src/Makefile.am +index 6d79cd631..9ca697407 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -30,7 +30,10 @@ if RELEASE + else + %C%_libopenocd_la_CPPFLAGS += -DRELSTR=\"`$(top_srcdir)/guess-rev.sh $(top_srcdir)`\" + %C%_libopenocd_la_CPPFLAGS += -DGITVERSION=\"`cd $(top_srcdir) && git describe`\" +-%C%_libopenocd_la_CPPFLAGS += -DPKGBLDDATE=\"`date +%F-%R`\" ++%C%_libopenocd_la_CPPFLAGS += -DPKGBLDDATE=\"`DATE_FMT=+%F-%R; \ ++ SOURCE_DATE_EPOCH="$${SOURCE_DATE_EPOCH:-$$(date +%s)}"; \ ++ 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"`\" + endif + + # add default CPPFLAGS diff --git a/meta-oe/recipes-devtools/openocd/openocd_git.bb b/meta-oe/recipes-devtools/openocd/openocd_git.bb index 559fe29ff8..b1ce2ec168 100644 --- a/meta-oe/recipes-devtools/openocd/openocd_git.bb +++ b/meta-oe/recipes-devtools/openocd/openocd_git.bb @@ -9,6 +9,7 @@ SRC_URI = " \ git://repo.or.cz/r/git2cl.git;protocol=http;destsuffix=tools/git2cl;name=git2cl;branch=master \ git://github.com/msteveb/jimtcl.git;protocol=https;destsuffix=git/jimtcl;name=jimtcl;branch=master \ git://repo.or.cz/r/libjaylink.git;protocol=http;destsuffix=git/src/jtag/drivers/libjaylink;name=libjaylink;branch=master \ + file://0001-Makefile.am-Use-SOURCE_DATE_EPOCH-environment-variab.patch \ " SRCREV_FORMAT = "openocd" -- cgit v1.2.3-54-g00ecf