No, not on purpose, the word "prepend" should be taken out. Although running "make" the second time does no harm (should do nothing, in fact) it needs to be fixed, I'll send in a fix.
Thanks Juro ________________________________________ From: Andre McCurdy [[email protected]] Sent: Friday, July 20, 2018 2:08 PM To: Bystricky, Juro Cc: OE Core mailing list; Juro Bystricky Subject: Re: [OE-core] [PATCH] openssl_1.0.2n: improve reproducibility On Sat, Mar 10, 2018 at 11:27 AM, Juro Bystricky <[email protected]> wrote: > Improve reproducible build of: > > openssl-staticdev > openssl-dbg > libcrypto > > There are two main causes that prevent reproducible build, both related to > the generated file "buildinf.h": > > 1. "buildinf.h" contains build host CFLAGS, containing various build > host references. We need to pass sanitized CFLAGS to the script > generating this file ("mkbuildinf.pl". ) > > 2. We also need to modify the script "mkbuildinf.pl" itsel in order to > generate a build timestamp based on SOURCE_DATE_EPOCH, if present in > the environment. > > Signed-off-by: Juro Bystricky <[email protected]> > --- > .../openssl-1.0.2n/reproducible-cflags.patch | 20 ++++++++++++++++++++ > .../openssl-1.0.2n/reproducible-mkbuildinf.patch | 21 > +++++++++++++++++++++ > meta/recipes-connectivity/openssl/openssl10.inc | 3 +++ > meta/recipes-connectivity/openssl/openssl_1.0.2n.bb | 5 +++++ > 4 files changed, 49 insertions(+) > create mode 100644 > meta/recipes-connectivity/openssl/openssl-1.0.2n/reproducible-cflags.patch > create mode 100644 > meta/recipes-connectivity/openssl/openssl-1.0.2n/reproducible-mkbuildinf.patch > > diff --git a/meta/recipes-connectivity/openssl/openssl10.inc > b/meta/recipes-connectivity/openssl/openssl10.inc > index 02a0e16..0598195 100644 > --- a/meta/recipes-connectivity/openssl/openssl10.inc > +++ b/meta/recipes-connectivity/openssl/openssl10.inc > @@ -162,6 +162,9 @@ do_configure () { > > do_compile_prepend_class-target () { > sed -i 's/\((OPENSSL=\)".*"/\1"openssl"/' Makefile > + oe_runmake depend > + cc_sanitized=`echo "${CC} ${CFLAG}" | sed -e > 's,--sysroot=${STAGING_DIR_TARGET},,g' -e 's|${DEBUG_PREFIX_MAP}||g'` > + oe_runmake CC_INFO="${cc_sanitized}" Here calls to "oe_runmake depend" and "oe_runmake" are made from the target specific do_compile_prepend(), but the original calls (without sanitised CC_INFO) are then run again from do_compile(), ie: do_compile() { sed -i 's/\((OPENSSL=\)".*"/\1"openssl"/' Makefile oe_runmake depend cc_sanitized=`echo ...` oe_runmake CC_INFO="${cc_sanitized}" oe_runmake depend oe_runmake } Is the intention really to run "oe_runmake depend" and "oe_runmake" twice? > } > > do_compile () { > diff --git a/meta/recipes-connectivity/openssl/openssl_1.0.2n.bb > b/meta/recipes-connectivity/openssl/openssl_1.0.2n.bb > index 32444c6..f07289d 100644 > --- a/meta/recipes-connectivity/openssl/openssl_1.0.2n.bb > +++ b/meta/recipes-connectivity/openssl/openssl_1.0.2n.bb > @@ -43,6 +43,11 @@ SRC_URI += "file://find.pl;subdir=openssl-${PV}/util/ \ > file://0001-Fix-build-with-clang-using-external-assembler.patch \ > file://0001-openssl-force-soft-link-to-avoid-rare-race.patch \ > " > + > +SRC_URI_append_class-target = "\ > + file://reproducible-cflags.patch \ > + file://reproducible-mkbuildinf.patch \ > + " > SRC_URI[md5sum] = "13bdc1b1d1ff39b6fd42a255e74676a4" > SRC_URI[sha256sum] = > "370babb75f278c39e0c50e8c4e7493bc0f18db6867478341a832a982fd15a8fe" > -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
