Re: [PATCH 2/2] base: make feature backfilling happen earlier

Enrico Scholz
2013-01-28T16:39:12Z

Paul Eggleton <paul.eggleton@linux.intel.com> writes:

>> 1. set some defaults on distribution base ...
>> 2. allow to override these defaults on a per-project base
>> ...
>> afaik, DISTRO_FEATURES_BACKFILL + _CONSIDERED exist to allow the first
>> two point without an '-=' operator which lacks in bitbake.
>
> No they don't. They exist to allow adding new features that should be enabled
> for all existing distro configs without each of those having to be changed, and
> provide a means for distros to opt out of that enabling if they wish.

How is this different from my requirements? Ok; atm,
DISTRO_FEATURES_BACKFILL is pretty useless because it contains only
'pulseaudio' which is probably unwanted on >90% of all embedded devices
and it is impossible to extend DISTRO_FEATURES_BACKFILL.

But this variable exists to allow removal of features which are enabled
by default.

>> Of course, I could reinvent the wheel and write my own _CONSIDERED
>> mechanism. But until now (resp. without the '=' => '?=' change), it
>> worked fine with DISTRO_FEATURES_BACKFILL.
> ...
> It's still not clear to me why you could not just set DISTRO_FEATURES
> directly. If you have values you're likely to want to remove, you can
> put them in separate variables that you can clear out later.

It is very difficultly to do within distro.conf. E.g. having

| DISTRO_FEATURES = "${@subtract_set('DISTRO_FEATURES', 'UNWANTED_FEATURES')}'

will probably result into some error regarding recursive expansion.

Using ':=' will not work here because required operations are not
available yet.

At the end it will reinvent the DISTRO_FEATURES_BACKFILL_CONSIDERED
wheel by moving it into my-distro.bbclass.

Enrico