[OE-core] [OE-Core][PATCH] image: Use ${COREBASE}/meta for timestamp, fallback to bitbake.conf

Alex Kiernan alex.kiernan at gmail.com
Fri Jul 20 03:40:35 UTC 2018


On Thu, Jul 19, 2018 at 7:20 PM Khem Raj <raj.khem at gmail.com> wrote:
>
>
> On Thu, Jul 19, 2018 at 10:26 AM Alex Kiernan <alex.kiernan at gmail.com> wrote:
> >
> > On Thu, Jul 19, 2018 at 6:21 PM Khem Raj <raj.khem at gmail.com> wrote:
> > >
> > >
> > >
> > > On 7/19/18 10:12 AM, Alex Kiernan wrote:
> > > > To handle the case where ${COREBASE} isn't the git directory, but
> > > > ${COREBASE}/meta might be (since that's the layer that sets up the COREBASE
> > > > variable), use the timestamp from there. If that fails use the timestamp
> > > > from conf/bitbake.conf.
> > >
> > > whats the chance that ${COREBASE}/meta might also not be a directory
> > > under git when compared to ${COREBASE} ?
> > >
> >
> > About the same I expect, but if it's not then git will climb up to
> > ${COREBASE} so I think we're better off.
> >
> > And if it doesn't find one then it falls back to the timestamp on
> > bitbake.conf - I've just been testing a snapshot of the layers as a
> > tarball and building successfully inside that when there's no git
> > directories for it to find at all.
> >
>
> OK lets stay with adding bitbake.conf as fallback.
>

I've just re-read Richard's advice from before:

  I'd suggest the code checks for ${COREBASE}/.git and if that doesn't
  exist, fall back to the timestamp of the
  ${COREBASE}/meta/conf/bitbake.conf file.

Which it'd been my intention to follow; I'll swap it back to
${COREBASE}/.git and post V2.



> > > >
> > > > Signed-off-by: Alex Kiernan <alex.kiernan at gmail.com>
> > > > ---
> > > >
> > > >   meta/classes/image.bbclass | 5 ++++-
> > > >   1 file changed, 4 insertions(+), 1 deletion(-)
> > > >
> > > > diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
> > > > index adc50c9..0afebff 100644
> > > > --- a/meta/classes/image.bbclass
> > > > +++ b/meta/classes/image.bbclass
> > > > @@ -651,7 +651,10 @@ POPULATE_SDK_PRE_TARGET_COMMAND += "${@bb.utils.contains('DISTRO_FEATURES', 'usr
> > > >   reproducible_final_image_task () {
> > > >       if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then
> > > >           if [ "$REPRODUCIBLE_TIMESTAMP_ROOTFS" = "" ]; then
> > > > -            REPRODUCIBLE_TIMESTAMP_ROOTFS=`git -C "${COREBASE}" log -1 --pretty=%ct`
> > > > +            REPRODUCIBLE_TIMESTAMP_ROOTFS=`git -C "${COREBASE}/meta" log -1 --pretty=%ct 2>/dev/null` || true
> > > > +            if [ "${REPRODUCIBLE_TIMESTAMP_ROOTFS}" = "" ]; then
> > > > +                REPRODUCIBLE_TIMESTAMP_ROOTFS=`stat -c%Y ${@bb.utils.which(d.getVar("BBPATH"), "conf/bitbake.conf")}`
> > > > +            fi
> > > >           fi
> > > >           # Set mtime of all files to a reproducible value
> > > >           bbnote "reproducible_final_image_task: mtime set to $REPRODUCIBLE_TIMESTAMP_ROOTFS"
> > > >
> >
> >
> >
> > --
> > Alex Kiernan



--
Alex Kiernan



More information about the Openembedded-core mailing list