public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
From: Henning Schild <henning.schild@siemens.com>
To: <Venkata.Pyla@toshiba-tsip.com>
Cc: <isar-users@googlegroups.com>, <amikan@ilbers.de>,
	<jan.kiszka@siemens.com>, <kazuhiro3.hayashi@toshiba.co.jp>,
	<dinesh.kumar@toshiba-tsip.com>
Subject: Re: [PATCH v2 1/1] image.bbclass: fix non-reproducible file time-stamps inside rootfs
Date: Thu, 5 Jan 2023 17:49:44 +0100	[thread overview]
Message-ID: <20230105174944.51ed66e5@md1za8fc.ad001.siemens.net> (raw)
In-Reply-To: <OSYPR01MB5542F29EB4BF011A5AA35670A4FA9@OSYPR01MB5542.jpnprd01.prod.outlook.com>

Am Thu, 5 Jan 2023 13:52:51 +0000
schrieb <Venkata.Pyla@toshiba-tsip.com>:

> >-----Original Message-----
> >From: isar-users@googlegroups.com <isar-users@googlegroups.com> On
> >Behalf Of Henning Schild
> >Sent: 05 January 2023 13:49
> >To: pyla venkata(TSIP TMIEC ODG Porting) <Venkata.Pyla@toshiba-  
> >tsip.com>  
> >Cc: isar-users@googlegroups.com; amikan@ilbers.de;
> >jan.kiszka@siemens.com; hayashi kazuhiro(林 和宏 □SWC◯ACT)
> ><kazuhiro3.hayashi@toshiba.co.jp>; dinesh kumar(TSIP TMIEC ODG
> >Porting) <dinesh.kumar@toshiba-tsip.com> Subject: Re: [PATCH v2 1/1]
> >image.bbclass: fix non-reproducible file time-stamps inside rootfs
> >
> >Am Thu,  5 Jan 2023 11:48:57 +0530
> >schrieb venkata.pyla@toshiba-tsip.com:
> >  
> >> From: venkata pyla <venkata.pyla@toshiba-tsip.com>
> >>
> >> As part of reproducible-build work, the rootfs images generated on
> >> same source should be identical between two builds.
> >>
> >> In this commit it tries to solve one of the non-reproducible
> >> problem i.e. the rootfs file time-stamps generated during build
> >> time are not reproducible, it uses one of the solution provided in
> >> the debian live-build image project (refer [1]), it fixes by
> >> finding all the files/folders that are gernerated newly and set
> >> the time-stamp provided by `SOURCE_DATE_EPOCH` environment
> >> variable.
> >>
> >> [1]
> >> https://salsa.debian.org/live-team/live-build/-/merge_requests/218
> >>
> >> Signed-off-by: venkata pyla <venkata.pyla@toshiba-tsip.com>
> >> ---
> >>  meta-isar/conf/local.conf.sample | 10 ++++++++++
> >>  meta/classes/image.bbclass       |  9 +++++++++
> >>  2 files changed, 19 insertions(+)
> >>
> >> diff --git a/meta-isar/conf/local.conf.sample
> >> b/meta-isar/conf/local.conf.sample index 57d0620..3c4a473 100644
> >> --- a/meta-isar/conf/local.conf.sample
> >> +++ b/meta-isar/conf/local.conf.sample
> >> @@ -255,3 +255,13 @@ USER_isar[flags] += "clear-text-password"
> >>  #CCACHE_TOP_DIR ?= "${TMPDIR}/ccache"
> >>  # Enable ccache debug mode
> >>  #CCACHE_DEBUG = "1"
> >> +
> >> +# Uncommnet and add value to it to build images reproducibly # #
> >> The +value for `SOURCE_DATE_EPOCH` should be latest source change
> >> time in +# seconds since the Epoch.
> >> +# Git repository users can use value from 'git log -1
> >> --pretty=%ct' +# Non git repository users can use value from 'stat
> >> -c%Y ChangeLog' +# To know more details about this variable and
> >> how to set the value refer below +#
> >> https://reproducible-builds.org/docs/source-date-epoch/
> >> +#SOURCE_DATE_EPOCH =  
> >
> >${@bb.process.run(git log ...)}
> >
> >would be nice here. So once uncommented it will keep moving as people
> >commit.
> >  
> >> diff --git a/meta/classes/image.bbclass
> >> b/meta/classes/image.bbclass index 813e1f3..38a9adf 100644
> >> --- a/meta/classes/image.bbclass
> >> +++ b/meta/classes/image.bbclass
> >> @@ -430,6 +430,15 @@ do_rootfs_finalize() {
> >>              "${ROOTFSDIR}/etc/apt/sources.list.d/bootstrap.list"
> >>
> >>          rm -f "${ROOTFSDIR}/etc/apt/sources-list"
> >> +
> >> +        # Set same time-stamps to the newly generated file/folders
> >> in the
> >> +        # rootfs image for the purpose of reproducible builds.
> >> +        test ! -z "${SOURCE_DATE_EPOCH}" && \
> >> +            find ${ROOTFSDIR} -newermt \
> >> +                "$(date -d@${SOURCE_DATE_EPOCH} '+%Y-%m-%d
> >> %H:%M:%S')" \
> >> +                -printf "%y %p\n" \
> >> +                -exec touch '{}' -h -d@${SOURCE_DATE_EPOCH} ';' >
> >> ${DEPLOY_DIR_IMAGE}/files.modified_timestamps +  EOSUDO  
> >
> >I would suggest to at least display a bbwarn if "wc -l" of that file
> >exceeds some number ... say 50. I guess if SOURCE_DATE_EPOCH was too
> >old, say 01.01.1990 the whole filesystem would be touched which
> >might indicate a problem.  
> 'SOURCE_DATE_EPOCH' is not set by default and regular builds will not
> have any problem for sure, but when someone uses it then I think they
> know what they are doing and can see the results.

We eventually want to enable it by default i guess and so we can
already think about what not so experienced users could stumble over
and how to help them.

> I will also add bbwarn about this files time modification and print
> all files that are modified.

Thanks.

Henning

> >
> >Not sure what a good number would be. We could also check for
> >certain files to _not_ be in there for sure.
> >
> >I might give that patch a try and see for myself what a too old
> >value would do. But right now i will keep going with the expectation
> >that it would "touch all files without big warning" and the thing
> >might still boot but the broken metadata could cause any kind of
> >problems in applications that can get confused by that big change.
> >
> >Henning
> >  
> >>  }
> >>  addtask rootfs_finalize before do_rootfs after
> >> do_rootfs_postprocess  
> >
> >--
> >You received this message because you are subscribed to the Google
> >Groups "isar-users" group.
> >To unsubscribe from this group and stop receiving emails from it,
> >send an email to isar-users+unsubscribe@googlegroups.com.
> >To view this discussion on the web visit
> >https://groups.google.com/d/msgid/isar-
> >users/20230105091904.530199bb%40md1za8fc.ad001.siemens.net.  
> 


  parent reply	other threads:[~2023-01-05 16:49 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-02 14:58 [PATCH] image.bbclass: fix non-reproducible file time-stamps inside rootfs image venkata.pyla
2023-01-02 15:32 ` Jan Kiszka
2023-01-03  5:54   ` Venkata.Pyla
2023-01-02 16:44 ` Henning Schild
2023-01-03  8:05   ` Jan Kiszka
2023-01-03 18:51     ` Henning Schild
2023-01-03 14:10   ` Venkata.Pyla
2023-01-03 19:05     ` Henning Schild
2023-01-04  7:54       ` Venkata.Pyla
2023-01-04  9:29         ` Henning Schild
2023-01-04 13:48           ` Venkata.Pyla
2023-01-04 13:53             ` Henning Schild
2023-01-04 14:35               ` Jan Kiszka
2023-01-04 14:50                 ` Venkata.Pyla
2023-01-04 15:07                   ` Henning Schild
2023-01-04 15:34                     ` Venkata.Pyla
2023-01-05  6:18                       ` [PATCH v2 0/1] Fix for reproducible build issue venkata.pyla
2023-01-05  6:18                       ` [PATCH v2 1/1] image.bbclass: fix non-reproducible file time-stamps inside rootfs venkata.pyla
2023-01-05  8:19                         ` Henning Schild
2023-01-05  9:50                           ` Moessbauer, Felix
2023-01-05 17:05                             ` Henning Schild
2023-01-06  2:08                               ` Moessbauer, Felix
2023-01-05 13:52                           ` Venkata.Pyla
2023-01-05 15:12                             ` [PATCH v3 0/1] Fix for reproducible build issue venkata.pyla
2023-01-05 15:12                             ` [PATCH v3 1/1] image.bbclass: fix non-reproducible file time-stamps inside rootfs venkata.pyla
2023-01-06  9:45                               ` Moessbauer, Felix
2023-01-06 10:17                                 ` Venkata.Pyla
2023-01-05 16:49                             ` Henning Schild [this message]
2023-01-04 15:01                 ` [PATCH] image.bbclass: fix non-reproducible file time-stamps inside rootfs image Henning Schild
2023-01-04 15:27                   ` Jan Kiszka

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230105174944.51ed66e5@md1za8fc.ad001.siemens.net \
    --to=henning.schild@siemens.com \
    --cc=Venkata.Pyla@toshiba-tsip.com \
    --cc=amikan@ilbers.de \
    --cc=dinesh.kumar@toshiba-tsip.com \
    --cc=isar-users@googlegroups.com \
    --cc=jan.kiszka@siemens.com \
    --cc=kazuhiro3.hayashi@toshiba.co.jp \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox