[OE-core] [PATCH] image.bbclass: Don't mark do_rootfs and do_build as nostamp

Richard Purdie richard.purdie at linuxfoundation.org
Sat Apr 27 09:08:54 UTC 2013


On Sat, 2013-04-27 at 09:34 +0100, Paul Eggleton wrote:
> On Friday 26 April 2013 12:30:38 Phil Blundell wrote:
> > There doesn't appear to be any compelling reason for these tasks to be
> > nostamp and having them re-run on every build can be irritating (for
> > example, when the image is an initramfs which your kernel image depends
> > on).
> > 
> > Signed-off-by: Phil Blundell <philb at gnu.org>
> > ---
> >  meta/classes/image.bbclass |    2 --
> >  1 file changed, 2 deletions(-)
> > 
> > diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
> > index ffb372a..667d03d 100644
> > --- a/meta/classes/image.bbclass
> > +++ b/meta/classes/image.bbclass
> > @@ -168,11 +168,9 @@ LINGUAS_INSTALL ?= "${@" ".join(map(lambda s:
> > "locale-base-%s" % s, d.getVar('IM
> > 
> >  PSEUDO_PASSWD = "${IMAGE_ROOTFS}"
> > 
> > -do_rootfs[nostamp] = "1"
> >  do_rootfs[dirs] = "${TOPDIR} ${WORKDIR}/intercept_scripts"
> >  do_rootfs[lockfiles] += "${IMAGE_ROOTFS}.lock"
> >  do_rootfs[cleandirs] += "${S} ${WORKDIR}/intercept_scripts"
> > -do_build[nostamp] = "1"
> > 
> >  # Must call real_do_rootfs() from inside here, rather than as a separate
> >  # task, so that we have a single fakeroot context for the whole process.
> 
> I have to say I'm not in favour of this. AFAIK these tasks have always been 
> nostamp, and I'm not sure making do_build is going to help for the case you 
> cite because the dependency on INITRD_IMAGE is on do_rootfs.
> 
> If you're concerned about your initramfs image rebuilding when building the 
> main image, what happens if you specify do_rootfs[nostamp] = "0" ?

I think this deserves some further thought. It is a pretty major change
however it is something I've wondered about for a while independently of
Phil, I've just never proposed a patch.

It might help to think about this in an alternative way. Before we has
the sstate checksums, it was near impossible to know when the inputs to
an image had changed and when they had not. Now with the sstate
checksums, we can know when any given input has changed and if it has
changed, the sstate checksum changes and the task re-runs.

You can therefore make the case that these "nostamp" tasks are a legacy
of the former world and that now, there is no compelling reason to have
them as nostamp. If you particularly want to force them to run, we do
have the -f option and its tainting works here just as well as it does
anywhere else.

If the rootfs nostamp is removed, there is no reason to have build as a
nostamp either, they were there as a pair.

Further thoughts?

Cheers,

Richard





More information about the Openembedded-core mailing list