On Thu, 2023-06-15 at 11:34 +0300, Mikko Rapeli wrote:
> Hi Richard,
> 
> On Thu, Jun 15, 2023 at 08:03:44AM +0100, Richard Purdie wrote:
> > On Sun, 2023-06-11 at 17:16 +0200, Alexander Kanavin wrote:
> > > Doesn't += override the earlier ?=
> > 
> > It depends. If ?= is parsed first, += will append. If the ?= is parsed
> > after +=, the ?= will not happen as the variable has a value.
> > 
> > >  (or ??=), 
> > 
> > += would override ??=
> 
> In which kind of cases would ??= be preferred?
> 
> For basic recipes in oe-core and other layers, setting variables with
> basic assignment and then appending it with += should be enough unless machine
> or other override specific qualifiers are needed :append:machine.
> 
> Using plain :append without any qualifiers is annoying in downstream layers 
> which
> try to fine tune upstream open source meta layers and recipes and still 
> remain compatible
> to apply security and other updates, including full version/branch upgrades. 
> 
> I see some, for me, bad examples of ??= to set initial PACKAGECONFIG, for 
> example.

This is all a big problem area and I've talked about it before. We
can't make one recommendation which will work for every person in every
scenario.

The original intent was that ??= would be widely used and solve some of
the problems. That plan was flawed but we (I?) didn't realise until too
late.

I'd not call ??= with PACKAGECONFIG as bad, it just doesn't do what you
want in some scenarios.

> Downstream layers would need to use PACKAGECONFIG:append to add some feature
> to upstream defaults since += would require to fully control the PACKAGECONFIG
> in a bbappend. I would prefer ?= for that so that a += could be used to add an
> extra non-default feature but keep all the rest in upstream defaults.
> 
> This gets even more tricky with intermediate layers which might want to enable
> features across recipes and layers, e.g. "selinux". Now they'd have to use 
> use :append
> to make sure "selinux" is added to PACKAGECONFIG everywhere and no other 
> upstream defaults
> are changed. And then product layers who 'know better' to for example drop 
> some features
> would need to :remove them explicitly and can't fully overwrite the 
> PACKAGECONFIG with a simple
> assignment in a bbappend. Messy. Staring a lot of "bitbake -e" ouput needed.

I wish I had a magic answer. ?= has it's own set of issues too last
time I sat and thought about all this :( I think the issues come if
someone uses distro overrides from a config file instead of a bbappend.

It needs time spending on it by someone willing to look at all the
different use cases, including the ones they don't use themselves and
come up with some kind of proposal. Personally, I'm willing but I can't
even get through the patch review backlog or autobuilder intermittent
bug queue at the moment :(.

Cheers,

Richard
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#182842): 
https://lists.openembedded.org/g/openembedded-core/message/182842
Mute This Topic: https://lists.openembedded.org/mt/99423382/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to