[OE-core] [PATCH] qemu.inc: Use '=' for IMAGE_FSTYPES

Richard Purdie richard.purdie at linuxfoundation.org
Mon Mar 26 16:56:16 UTC 2012


On Mon, 2012-03-26 at 09:25 -0700, Tom Rini wrote:
> On Mon, Mar 26, 2012 at 10:15:13AM +0100, Richard Purdie wrote:
> > On Fri, 2012-03-23 at 10:35 -0700, Tom Rini wrote:
> > > As per
> > > http://lists.linuxtogo.org/pipermail/openembedded-core/2012-March/019772.html
> > > a machine conf file should use '=' to set IMAGE_FSTYPES.
> > > 
> > > Signed-off-by: Tom Rini <trini at ti.com>
> > > ---
> > >  meta/conf/machine/include/qemu.inc |    2 +-
> > >  1 files changed, 1 insertions(+), 1 deletions(-)
> > 
> > As someone pointed out, what I mentioned in that email sadly doesn't
> > work although it would be nice if they did. I suspect this is why we're
> > using += since:
> 
> We aren't using += today.  We (openembedded-core) use ?=.  meta-intel
> uses += and meta-ti is mixed (and I don't have meta-fsl-* handy).
> 
> > > - The machine needs to say 'I need or support the following formats'
> > 
> > so the machine ensures those formats exist at a minimum:
> > 
> > IMAGE_FSTYPES += "xxxx"
> > 
> > > - The distro needs to say 'I always want format X'
> > 
> > so the distro can do:
> > 
> > IMAGE_FSTYPES += " yyy"
> > 
> > > - The user needs to say 'I know best, give me only format X'
> > 
> > This one is the problem case so the user has to use overrides:
> > 
> > IMAGE_FSTYPES_override = "X"
> > 
> > (where override can be MACHINE or forcevariable)
> > 
> > > - The user needs to say 'I know best, give me what you support + X'
> > 
> > IMAGE_FSTYPES += " X"
> > 
> > 
> > Whilst I think that is less than ideal since it forces use of overrides
> > in local.conf to override, changing the += in machine conf files doesn't
> > gain us much, it just breaks += in local.conf.
> > 
> > I'm open to other feedback though...
> 
> Well, I suggested ??= / ?= and posted some results from bitbake -e...

Ok. += plays out as above. I realise its not what is in qemu.inc, it is
used in meta-intel though which I looked at after qemu.inc and I guess
has confused me.

With ?= in machine.conf:

The user defined IMAGE_FSTYPES would override the machine ones. Distro
can still append to it. The downside is a user append would not work out
as expected.

So the question is which is the more user expected behaviour?

=+ makes overwriting IMAGE_FSTYPES hard

?= makes appending IMAGE_FSTYPES hard

I suspect a user is more likely to want to append than overwrite.
Getting an append to work with ?= is extremely non-obvious, even worse
syntax than the =+ overwriting case with overrides.

So bottom line, I'm tempted to recommend we use =+.

Further thoughts?

Cheers,

Richard









More information about the Openembedded-core mailing list