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 <[email protected]> --- meta/recipes-devtools/perl-sanity/perl_5.28.2.bb | 10 ++++++++++ 1 file changed, 10 insertions(+) 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..540b9f2df3b 100644 --- a/meta/recipes-devtools/perl-sanity/perl_5.28.2.bb +++ b/meta/recipes-devtools/perl-sanity/perl_5.28.2.bb @@ -90,6 +90,16 @@ do_configure_class-native() { -Ui_xlocale } +do_configure_append() { + if [ -n "$SOURCE_DATE_EPOCH" ]; then + PERL_BUILD_DATE="$(${PYTHON} -c "\ +from datetime import datetime, timezone; \ +print(datetime.fromtimestamp($SOURCE_DATE_EPOCH, timezone.utc).strftime('%a %b %d %H:%M:%S %Y')) \ + ")" + echo "#define PERL_BUILD_DATE \"$PERL_BUILD_DATE\"" >> config.h + fi +} + do_compile() { oe_runmake } -- 2.21.0 -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
