diff options
author | Ross Burton <ross@burtonini.com> | 2022-02-02 13:00:11 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-02-05 17:46:05 +0000 |
commit | 8463a37d70e104b7c23328baf0265f57bdcba12d (patch) | |
tree | 25ecddae7c91d314216a2e7aa4bf709138d88469 /scripts/yocto-check-layer | |
parent | 2b3ae4d1abdd4b800098625e52ac6e501c2063f4 (diff) | |
download | poky-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-x | scripts/yocto-check-layer | 6 |
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 | |||
24 | scriptpath.add_oe_lib_path() | 24 | scriptpath.add_oe_lib_path() |
25 | scriptpath.add_bitbake_lib_path() | 25 | scriptpath.add_bitbake_lib_path() |
26 | 26 | ||
27 | from checklayer import LayerType, detect_layers, add_layers, add_layer_dependencies, get_layer_dependencies, get_signatures, check_bblayers | 27 | from checklayer import LayerType, detect_layers, add_layers, add_layer_dependencies, get_layer_dependencies, get_signatures, check_bblayers, sanity_check_layers |
28 | from oeqa.utils.commands import get_bb_vars | 28 | from oeqa.utils.commands import get_bb_vars |
29 | 29 | ||
30 | PROGNAME = 'yocto-check-layer' | 30 | PROGNAME = '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: |