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

Paul Eggleton paul.eggleton at linux.intel.com
Mon Apr 29 14:45:01 UTC 2013


On Saturday 27 April 2013 10:08:54 Richard Purdie wrote:
> 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.

So upon further reflection, I'm guessing my objections were only really about 
changing the status quo, as well as a lot of my own testing involving re-
running the image creation step without really changing anything other than 
the code that contributes to do_rootfs; it could be argued that my use case 
would be equally served by me setting nostamp locally or using -f, and 
everyone else having the benefit of not rebuilding the image when not needed.

Given that this is a departure from previously established behaviour, I do 
think we need to give a more of an explanation in the commit message than the 
proposed patch however; something that summarises Richard's explanation above 
would be informative.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre




More information about the Openembedded-core mailing list