Re: [PATCH v2 1/2] bitbake.conf: DISTRO_FEATURES as overrides

Patrick Ohly
2017-06-13T08:31:14Z

On Tue, 2017-06-13 at 09:14 +0200, Patrick Ohly wrote:
> Let me also point out that the approach below completely sidesteps
> potential vardeps problems, because the dependency of OVERRIDES on
> DISTRO_FEATURES_OVERRIDES and DISTRO_FEATURES is hidden. My expectation
> is that OVERRIDES are part of the base hash and that thus tracking of
> how it gets computed isn't necessary. It seems to work in practice for
> me:
>
> DISTRO_FEATURES_append = " systemd"
> DISTRO_FEATURES_OVERRIDES += "bar"
> DISTRO_FEATURES_append = " bar"
> PACKAGECONFIG_append_pn-systemd_df-bar = " gcrypt"
>
> Changing either DISTRO_FEATURES_OVERRIDES or the DISTRO_FEATURES_append
> changes the signature of systemd:do_configure as expected.
>
> We are currently having a problem with the yocto-compat-layer.py
> signature check in refkit where it complains about:
> List of dependencies for variable DISTROOVERRIDES changed from
> '{'DISTRO'}' to '{'DISTRO_FEATURES', 'DISTRO',
> 'DISTROFEATURES2OVERRIDES'}'
>
> That's for a slightly older OE-core and the distrooverrides.bbclass
> approach. I don't know yet why that is now failing (it was working for
> OE-core 2.3), but my expectation is that the approach below would avoid
> it.

I've not figured out why it started failing. Because it's using the
custom distrooverrides.bbclass approach I've not investigated further.

What I was able to test now is the
refkit_poky.TestRefkitPoky.test_refkit_conf_signature selftest in
combination with OE-core/bitbake master (it wasn't working until
recently because of the OEQA selftest changes that we hadn't adapted to
yet).

That test checks that activating the refkit distro configuration without
using any of the refkit distro features doesn't change signatures.
That's a slightly stronger guarantee than required by Yocto Compatible
2.0; it's useful because it makes it possible to add the refkit distro
configuration without causing side effects when the developer doesn't
use the features.

When using the current bitbake.conf DISTRO_FEATURES_OVERRIDES support
from OE-core master, that test fails because adding the refkit distro
configuration needs to extend that variable, which shows up as (picking
one example):
zlib:do_package_qa: a124d530af2a0531e4c18780f9c75c15 -> 56da5c6a55996ec5a4817d1d4003e5ed
bitbake-diffsigs --task zlib do_package_qa --signature a124d530af2a0531e4c18780f9c75c15 56da5c6a55996ec5a4817d1d4003e5ed
basehash changed from 870d9161cf8d10dfae610cf55b54612b to 528a46f1120a679282ff8e55bf2791cb
Variable DISTRO_FEATURES_OVERRIDES value changed from '' to ' refkit-config refkit-firewall refkit-computervision refkit-gateway '

This does not occur with the patch below.

On IRC Richard corrected me and explained that it isn't OVERRIDES which
gets tracked. My systemd example was working because variable values get
recorded after applying overrides, so indirectly OVERRIDES and thus
DISTRO_FEATURES_OVERRIDES+DISTRO_FEATURES change signatures.

--
Best Regards, Patrick Ohly

The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.