[OE-core] [OE-Core][PATCH] rootfs: Make BUILDNAME a weak default in reproducible_build_simple

Peter Kjellerstedt peter.kjellerstedt at axis.com
Fri Feb 7 16:27:18 UTC 2020


> -----Original Message-----
> From: openembedded-core-bounces at lists.openembedded.org <openembedded-core-
> bounces at lists.openembedded.org> On Behalf Of Alex Kiernan
> Sent: den 18 januari 2020 06:41
> To: openembedded-core at lists.openembedded.org
> Subject: [OE-core] [OE-Core][PATCH] rootfs: Make BUILDNAME a weak default
> in reproducible_build_simple
> 
> 11e45082ad00 ("rootfs-postcommands.bbclass: improve binary
> reproducibility") fixed binary reproducibility of /etc/version, but with
> the move to reproducibilty in all builds, setting /etc/version to
> anything other than the default fixed timestamp is tricky because
> rootfs_reproducible() runs very late.
> 
> rootfs.py uses BUILDNAME if set for /etc/version, so introduce a weak
> default for BUILDNAME of "REPRODUCIBLE_TIMESTAMP_ROOTFS", when enabling
> reproducible builds hence allowing BUILDNAME to be overridden elsewhere.
> 
> Signed-off-by: Alex Kiernan <alex.kiernan at gmail.com>
> ---
> 
>  meta/classes/reproducible_build_simple.bbclass | 1 +
>  meta/classes/rootfs-postcommands.bbclass       | 5 -----
>  2 files changed, 1 insertion(+), 5 deletions(-)
> 
> diff --git a/meta/classes/reproducible_build_simple.bbclass b/meta/classes/reproducible_build_simple.bbclass
> index d0842f0f902a..153a07607219 100644
> --- a/meta/classes/reproducible_build_simple.bbclass
> +++ b/meta/classes/reproducible_build_simple.bbclass
> @@ -7,5 +7,6 @@ export PERL_HASH_SEED = "0"
>  export SOURCE_DATE_EPOCH ??= "1520598896"
> 
>  REPRODUCIBLE_TIMESTAMP_ROOTFS ??= "1520598896"
> +BUILDNAME ??= "${REPRODUCIBLE_TIMESTAMP_ROOTFS}"

Can we please revert this change?  This breaks (all?) other usages 
of ${BUILDNAME}. E.g., the information in tmp/buildstats is totally 
useless now since all builds end up in the same directory 
"tmp/buildstats/1520598896", overwriting each other...

> 
>  inherit podfix
> diff --git a/meta/classes/rootfs-postcommands.bbclass b/meta/classes/rootfs-postcommands.bbclass
> index fdc63bb64d55..ebf96be7e85f 100644
> --- a/meta/classes/rootfs-postcommands.bbclass
> +++ b/meta/classes/rootfs-postcommands.bbclass
> @@ -356,11 +356,6 @@ python rootfs_log_check_recommends() {
>  # Perform any additional adjustments needed to make rootf binary reproducible
>  rootfs_reproducible () {
>  	if [ "${REPRODUCIBLE_TIMESTAMP_ROOTFS}" != "" ]; then
> -		# Convert UTC into %4Y%2m%2d%2H%2M%2S
> -		sformatted=`date -u -d @${REPRODUCIBLE_TIMESTAMP_ROOTFS} +%4Y%2m%2d%2H%2M%2S`
> -		echo $sformatted > ${IMAGE_ROOTFS}/etc/version
> -		bbnote "rootfs_reproducible: set /etc/version to $sformatted"
> -
>  		if [ -d ${IMAGE_ROOTFS}${sysconfdir}/gconf ]; then
>  			find ${IMAGE_ROOTFS}${sysconfdir}/gconf -name '%gconf.xml' -print0 | xargs -0r \
>  			sed -i -e 's@\bmtime="[0-9][0-9]*"@mtime="'${REPRODUCIBLE_TIMESTAMP_ROOTFS}'"@g'
> --
> 2.17.1

//Peter



More information about the Openembedded-core mailing list