[meta-virtualization] conf/layer.conf is broken

Mark Hatle mark.hatle at windriver.com
Wed May 15 11:27:37 PDT 2019


A recent commit:

http://git.yoctoproject.org/cgit/cgit.cgi/meta-virtualization/commit/conf/layer.conf?id=032ef5310419563a01baad0b1b94e4587d12f777

refactor for YP Compat for PV changes
Only include our versions of recipes if virtualiztions is in
DISTRO_FEATURE

Signed-off-by: Armin Kuster <akuster808 at gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield at windriver.com>



Is not working the way that it looks like it should, specifically there are two
issues:

require ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization',
'meta-virt-default-versions.inc', '', d)}

First issue is that the 'meta-virt-default-version.inc' file isn't in the same
path as the layer.conf, so it really should be
"conf/distro/include/meta-virt-default-version.inc"...  but you may be wondering
why nobody has complained about this.

The 'DISTRO_FEATURES' will -never- contain 'virtualization' unless the user
calls this from within the toaster or uses bitbake -r <config> to build their
system.  The problem is that 'requires' are evaluated IMMEDIATELY, and
DISTRO_FEATURES is not set in the layer.conf path.  It's set later via
distributions and such by the eventual load of the bitbake.conf file(s).

So there is a trick to be able to do this.  You need to find a way to 'late'
load these files, AFTER bitbake.conf is loaded.  We had to do exactly this from
within the meta-overc/meta-cube layer:

https://github.com/WindRiver-OpenSourceLabs/meta-overc/blob/wr-10.19-20190121/meta-cube/conf/layer.conf

You will see at the end that a variable is set to the config file to load, and
that the USER_CLASSES is appended with something that (CAN) check the
distro_features -- because it's resolved 'later'.  Then the class simply does a
require bringing in the configuration itself:

https://github.com/WindRiver-OpenSourceLabs/meta-overc/blob/wr-10.19-20190121/meta-cube/classes/cube-cfg.bbclass


meta-virtualization SHOULD be able to follow the same approach to be able to
make these adjustments without breaking any of the Yocto Project compatible
guidelines.  (Unfortunately I don't have time to work on that myself right now,
but hopefully someone else can step in and fix this.)

--Mark


More information about the meta-virtualization mailing list