]> code.ossystems Code Review - openembedded-core.git/commitdiff
opkg: Fix build reproducibility issue
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 2 Feb 2021 23:45:18 +0000 (23:45 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 3 Feb 2021 21:42:44 +0000 (21:42 +0000)
A build date was leaking into the generated docs and makefile used for
ptests leading to reproducibility issues each time the month changed.

Add a patch to use SOURCE_DATE_EPOCH to derive it if available.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/opkg/opkg/sourcedateepoch.patch [new file with mode: 0644]
meta/recipes-devtools/opkg/opkg_0.4.4.bb

diff --git a/meta/recipes-devtools/opkg/opkg/sourcedateepoch.patch b/meta/recipes-devtools/opkg/opkg/sourcedateepoch.patch
new file mode 100644 (file)
index 0000000..285d258
--- /dev/null
@@ -0,0 +1,25 @@
+Having CLEAN_DATE come from the current date doesn't allow for build
+reproducibility. Add the option of using SOURCE_DATE_EPOCH if set
+which for OE, it will be.
+
+Upstream-Status: Pending
+RP 2021/2/2
+
+Index: opkg-0.4.4/configure.ac
+===================================================================
+--- opkg-0.4.4.orig/configure.ac
++++ opkg-0.4.4/configure.ac
+@@ -281,7 +281,12 @@ AC_FUNC_UTIME_NULL
+ AC_FUNC_VPRINTF
+ AC_CHECK_FUNCS([memmove memset mkdir regcomp strchr strcspn strdup strerror strndup strrchr strstr strtol strtoul sysinfo utime])
+-CLEAN_DATE=`date +"%B %Y" | tr -d '\n'`
++1607446883
++if [ ! -z "$SOURCE_DATE_EPOCH" ]; then
++    CLEAN_DATE=`LC_ALL=C date -d @$SOURCE_DATE_EPOCH +"%B %Y" | tr -d '\n'`
++else
++    CLEAN_DATE=`date +"%B %Y" | tr -d '\n'`
++fi
+ AC_SUBST([CLEAN_DATE])
index f8034ca5fa591bce73e5bf6b0ce70bb6a681a18b..548e81962d7fa527cff187e305bd4f6372d4c798 100644 (file)
@@ -15,6 +15,7 @@ SRC_URI = "http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz
            file://opkg.conf \
            file://0001-opkg_conf-create-opkg.lock-in-run-instead-of-var-run.patch \
            file://0001-tests-let-the-OS-negotiate-relative-package-dirs.patch \
+           file://sourcedateepoch.patch \
            file://run-ptest \
 "