summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2017-06-07 10:18:49 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-06-12 15:07:39 +0100
commit7ac2d8dce259cb8bf57eaae7b45cc81535c599a4 (patch)
tree3bda969ba9e94bb1ca24d405d8ef315f3cf37dd1 /bitbake/lib/bb
parentf3e06c474903b3d9d3b868e59f55d1f49ef763cd (diff)
downloadpoky-7ac2d8dce259cb8bf57eaae7b45cc81535c599a4.tar.gz
bitbake: cookerdata: Implement LAYERSERIES_COMPAT and LAYERSERIES_CORENAMES
Currently, someone trying a master branch of any given layer may or may not find it works with the version of OE-Core that they have picked. This patchset introduces LAYERSERIES_CORENAMES and LAYERSERIES_COMPAT_<layername> with the intention of allowing layers to indicate which versions of the core project they're compatible with. In general the master branch will use the next release codename as the value of LAYERSERIES_CORENAMES, meaning that the waterfall model of layer releases is supported with layers updating their LAYERSERIES_COMPAT_ values as they branch for release. Both variables support multiple strings and a given layer is accepted if there is overlap of any one value. This means a layer can be compatible with multiple core versions. Setting LAYERSERIES_COMPAT_ will be required by the Yocto Project Compatible v2 standard but the system will not error if its not set at this point. This should make it clear when a given layer is unmaintained and untested with new releaes of OE-Core, a common user pain point. (Bitbake rev: 92c49b9b1a16dfd35444db8143bd4cae4cda70cc) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb')
-rw-r--r--bitbake/lib/bb/cookerdata.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/bitbake/lib/bb/cookerdata.py b/bitbake/lib/bb/cookerdata.py
index 3d3f133d2e..4d32aa0318 100644
--- a/bitbake/lib/bb/cookerdata.py
+++ b/bitbake/lib/bb/cookerdata.py
@@ -360,6 +360,13 @@ class CookerDataBuilder(object):
360 if invalid: 360 if invalid:
361 bb.fatal("BBFILES_DYNAMIC entries must be of the form <collection name>:<filename pattern>, not:\n %s" % "\n ".join(invalid)) 361 bb.fatal("BBFILES_DYNAMIC entries must be of the form <collection name>:<filename pattern>, not:\n %s" % "\n ".join(invalid))
362 362
363 layerseries = set((data.getVar("LAYERSERIES_CORENAMES") or "").split())
364 for c in collections:
365 compat = set((data.getVar("LAYERSERIES_COMPAT_%s" % c) or "").split())
366 if compat and not (compat & layerseries):
367 bb.fatal("Layer %s is not compatible with the core layer which only supports these series: %s (layer is compatible with %s)"
368 % (c, " ".join(layerseries), " ".join(compat)))
369
363 if not data.getVar("BBPATH"): 370 if not data.getVar("BBPATH"):
364 msg = "The BBPATH variable is not set" 371 msg = "The BBPATH variable is not set"
365 if not layerconf: 372 if not layerconf: