[OE-core] [PATCH] perl: Set build date to SOURCE_DATE_EPOCH

Joshua Watt jpewhacker at gmail.com
Thu May 30 18:49:54 UTC 2019


Perl uses an internal #define called PERL_BUILD_DATE as the string for
the date when perl was built. If undefined, it defaults to using
__DATE__ and __TIME__, which is not reproducible. If SOURCE_DATE_EPOCH
is set at do_configure time, use it to generate a reproducible string
for PERL_BUILD_DATE.

Signed-off-by: Joshua Watt <JPEWhacker at gmail.com>
---
 meta/recipes-devtools/perl-sanity/perl_5.28.2.bb | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/meta/recipes-devtools/perl-sanity/perl_5.28.2.bb b/meta/recipes-devtools/perl-sanity/perl_5.28.2.bb
index f175e87a12e..b74acfbbc4d 100644
--- a/meta/recipes-devtools/perl-sanity/perl_5.28.2.bb
+++ b/meta/recipes-devtools/perl-sanity/perl_5.28.2.bb
@@ -34,7 +34,7 @@ S = "${WORKDIR}/perl-${PV}"
 
 inherit upstream-version-is-even
 
-DEPENDS += "db gdbm zlib virtual/crypt"
+DEPENDS += "db gdbm zlib virtual/crypt coreutils-native"
 
 PERL_LIB_VER = "${@'.'.join(d.getVar('PV').split('.')[0:2])}.0"
 
@@ -90,6 +90,12 @@ do_configure_class-native() {
     -Ui_xlocale
 }
 
+do_configure_append() {
+    if [ -n "$SOURCE_DATE_EPOCH" ]; then
+        echo "#define PERL_BUILD_DATE \"$(date --utc --date="@$SOURCE_DATE_EPOCH")\"" >> config.h
+    fi
+}
+
 do_compile() {
     oe_runmake
 }
-- 
2.21.0



More information about the Openembedded-core mailing list