summaryrefslogtreecommitdiffstats
path: root/scripts/yocto-check-layer
diff options
context:
space:
mode:
authorRoss Burton <ross@burtonini.com>2022-02-02 13:00:11 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-02-05 17:46:05 +0000
commit8463a37d70e104b7c23328baf0265f57bdcba12d (patch)
tree25ecddae7c91d314216a2e7aa4bf709138d88469 /scripts/yocto-check-layer
parent2b3ae4d1abdd4b800098625e52ac6e501c2063f4 (diff)
downloadpoky-8463a37d70e104b7c23328baf0265f57bdcba12d.tar.gz
yocto-check-layer: check for duplicate layers when finding layers
detect_layers() is very greedy and if it recurses into poky or bitbake it will find the test suite layers, such as bitbake/lib/layerindexlib/tests/testdata/layer4. This is a dummy layer which claims to be openembedded-layer, so if the real openembedded-layer is a dependency then layer4 may be used instead, which will cause errors: initially because it's only compatible with Sumo, but later because it doesn't contain any recipes. Add a check that the set of layers we've found doesn't contain any duplicate collection names with different patterns, and abort if that is the case as the test will be non-deterministic. (From OE-Core rev: 0df4bae4ec67d38442620fa08c839528b425e2a8) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/yocto-check-layer')
-rwxr-xr-xscripts/yocto-check-layer6
1 files changed, 5 insertions, 1 deletions
diff --git a/scripts/yocto-check-layer b/scripts/yocto-check-layer
index f3cf139d8a..0e5b75b1f7 100755
--- a/scripts/yocto-check-layer
+++ b/scripts/yocto-check-layer
@@ -24,7 +24,7 @@ import scriptpath
24scriptpath.add_oe_lib_path() 24scriptpath.add_oe_lib_path()
25scriptpath.add_bitbake_lib_path() 25scriptpath.add_bitbake_lib_path()
26 26
27from checklayer import LayerType, detect_layers, add_layers, add_layer_dependencies, get_layer_dependencies, get_signatures, check_bblayers 27from checklayer import LayerType, detect_layers, add_layers, add_layer_dependencies, get_layer_dependencies, get_signatures, check_bblayers, sanity_check_layers
28from oeqa.utils.commands import get_bb_vars 28from oeqa.utils.commands import get_bb_vars
29 29
30PROGNAME = 'yocto-check-layer' 30PROGNAME = 'yocto-check-layer'
@@ -119,6 +119,10 @@ def main():
119 for l in dep_layers: 119 for l in dep_layers:
120 dump_layer_debug(l) 120 dump_layer_debug(l)
121 121
122 if not sanity_check_layers(additional_layers + dep_layers, logger):
123 logger.error("Failed layer validation")
124 return 1
125
122 logger.info("Detected layers:") 126 logger.info("Detected layers:")
123 for layer in layers: 127 for layer in layers:
124 if layer['type'] == LayerType.ERROR_BSP_DISTRO: 128 if layer['type'] == LayerType.ERROR_BSP_DISTRO: