diff mbox series

[meta-oe] minifi-cpp: fix reproducibility issue

Message ID 20250919033335.2338952-1-yi.zhao@windriver.com
State Under Review
Headers show
Series [meta-oe] minifi-cpp: fix reproducibility issue | expand

Commit Message

Yi Zhao Sept. 19, 2025, 3:33 a.m. UTC
Minifi-cpp will add a build identifier to the binary. If not specified,
a random build identifier will be generated for each build. This breaks
reproducibility. Set BUILD_IDENTIFIER to ${PV} to ensure the identifier
remains constant across builds.

Additionally, set BUILD_DATE to SOURCE_DATE_EPOCH to use reproducible
timestamp.

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
---
 ...sh-set-BUILD_DATE-to-SOURCE_DATE_EPO.patch | 34 +++++++++++++++++++
 .../minifi-cpp/minifi-cpp_0.99.1.bb           |  2 ++
 2 files changed, 36 insertions(+)
 create mode 100644 meta-oe/recipes-extended/minifi-cpp/files/0001-generateVersion.sh-set-BUILD_DATE-to-SOURCE_DATE_EPO.patch
diff mbox series

Patch

diff --git a/meta-oe/recipes-extended/minifi-cpp/files/0001-generateVersion.sh-set-BUILD_DATE-to-SOURCE_DATE_EPO.patch b/meta-oe/recipes-extended/minifi-cpp/files/0001-generateVersion.sh-set-BUILD_DATE-to-SOURCE_DATE_EPO.patch
new file mode 100644
index 0000000000..a61873e21a
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/0001-generateVersion.sh-set-BUILD_DATE-to-SOURCE_DATE_EPO.patch
@@ -0,0 +1,34 @@ 
+From ee9722731b3f9cfc3d8e338ab09bc0ad409a6941 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Thu, 18 Sep 2025 14:43:11 +0000
+Subject: [PATCH] generateVersion.sh: set BUILD_DATE to SOURCE_DATE_EPOCH
+
+Use SOURCE_DATE_EPOCH to set BUILD_DATE to improve reproducibility.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ generateVersion.sh | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/generateVersion.sh b/generateVersion.sh
+index 0b50a16..96cc3ae 100755
+--- a/generateVersion.sh
++++ b/generateVersion.sh
+@@ -25,7 +25,11 @@ flags=$6
+ extensions=$7
+ buildident=$8
+ 
+-date=$(date +%s)
++if [ -n "${SOURCE_DATE_EPOCH}" ]; then
++  date=$(date -u -d "@${SOURCE_DATE_EPOCH}" +%s)
++else
++  date=$(date +%s)
++fi
+ 
+ if [ -d "${src_dir}"/.git ]; then
+   buildrev=$(git -C "${src_dir}" log -1 --pretty=format:"%H")
+-- 
+2.48.1
+
diff --git a/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.99.1.bb b/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.99.1.bb
index 0d9a503793..f4d206c154 100644
--- a/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.99.1.bb
+++ b/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.99.1.bb
@@ -28,6 +28,7 @@  SRC_URI = "git://github.com/apache/nifi-minifi-cpp.git;protocol=https;branch=mai
            file://0007-libsodium-aarch64-set-compiler-attributes-after-including-arm_.patch \
            file://0008-MINIFICPP-2553-CMP0065-OLD-removed-in-cmake-4.0-remo.patch \
            file://0001-Add-missing-include-for-malloc-free.patch;patchdir=thirdparty/fmt-src \
+           file://0001-generateVersion.sh-set-BUILD_DATE-to-SOURCE_DATE_EPO.patch \
            file://systemd-volatile.conf \
            file://sysvinit-volatile.conf \
           "
@@ -114,6 +115,7 @@  EXTRA_OECMAKE = " \
                  -DFETCHCONTENT_SOURCE_DIR_FMT=${S}/thirdparty/fmt-src \
                  -DFETCHCONTENT_SOURCE_DIR_SPDLOG=${S}/thirdparty/spdlog-src \
                  ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-DENABLE_SYSTEMD=ON', '-DENABLE_SYSTEMD=OFF', d)} \
+                 -DBUILD_IDENTIFIER=${PV} \
                 "
 
 PACKAGECONFIG ??= "libarchive expression-language"