Allow restricting recipes brought from a layer to a specified list. This is similar in operation to blacklist.bbclass, but instead specifies a per-layer whitelist of recipes (matched by BPN) that are able to be built from the layer - anything else is skipped. This is potentially useful where you want to bring in a select set of recipes from a larger layer e.g. meta-oe.
Implements [YOCTO #8150]. Signed-off-by: Paul Eggleton <paul.eggle...@linux.intel.com> --- meta/classes/whitelist.bbclass | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 meta/classes/whitelist.bbclass diff --git a/meta/classes/whitelist.bbclass b/meta/classes/whitelist.bbclass new file mode 100644 index 0000000..2554185 --- /dev/null +++ b/meta/classes/whitelist.bbclass @@ -0,0 +1,28 @@ +# Class that allows you to restrict the recipes brought from a layer to +# a specified list. This is similar in operation to blacklist.bbclass +# but note the difference in how PNWHITELIST is set - we don't use varflags +# here, we use an override for the layer name. This layer name is actually +# the name that gets added to BBFILE_COLLECTIONS in the layer's layer.conf, +# which may differ from how the layer is otherwise known. +# +# INHERIT += "whitelist" +# PNWHITELIST_layername = "recipe1 recipe2" +# +# If you would prefer to set a reason message other than the default, you +# can do so: +# +# PNWHITELIST_REASON_layername = "not supported by ${DISTRO}" + +python() { + layer = bb.utils.get_file_layer(d.getVar('FILE', True), d) + if layer: + localdata = bb.data.createCopy(d) + localdata.setVar('OVERRIDES', layer) + whitelist = localdata.getVar('PNWHITELIST', True) + if whitelist: + if not d.getVar('BPN', True) in whitelist.split(): + reason = localdata.getVar('PNWHITELIST_REASON', True) + if not reason: + reason = 'not in PNWHITELIST set for layer %s' % layer + raise bb.parse.SkipRecipe(reason) +} -- 2.1.0 -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core