[oe] meta-oe and yocto-check-layer

Nicolas Dechesne nicolas.dechesne at linaro.org
Mon Sep 24 10:05:02 UTC 2018


hi Armin, Paul, Richard,

I was looking at getting the compliance report for meta-oe (sumo
branch), and I have found a few issues.

* in meta-openembedded/sumo, grpc is in meta-oe layer, while it
depends on meta-networking (c-ares). It was fixes in master, with
251878e8b6b9 (grpc: move it from oe to networking layer), so I think
this fix needs to be backported to sumo as well if we want the YP 2.0
compliance script to even work. If agreed, once merged, please let me
know so that I can try again to generate a compliance report.

* in order to run the compliance report, i locally added
networking-layer in meta-oe/conf/layer.conf, and it creates a
dependency loop since meta-oe <-> meta-networking. I found out that
yocto-check-layer doesn't like that too much, and brutally fails. The
following patch makes yocto-check-layer work again even with
dependency loop. I am going to do a few more tests and send that over
as a patch.

diff --git a/scripts/lib/checklayer/__init__.py
b/scripts/lib/checklayer/__init__.py
index 2618416fab..0cc9bf3b6d 100644
--- a/scripts/lib/checklayer/__init__.py
+++ b/scripts/lib/checklayer/__init__.py
@@ -151,11 +151,21 @@ def add_layer_dependencies(bblayersconf, layer,
layers, logger):
         logger.debug('Processing dependencies %s for layer %s.' % \
                     (depends, layer['name']))

+        # To avoid never ending recursion, we keep track of layers while
+        # they are being processed in this 'static' attribute.
+        if not hasattr(recurse_dependencies, "layers"):
+            recurse_dependencies.layers = []
+
         for depend in depends.split():
             # core (oe-core) is suppose to be provided
             if depend == 'core':
                 continue

+            if depend in recurse_dependencies.layers:
+                continue
+
+            recurse_dependencies.layers.append(depend)
+
             layer_depend = _find_layer_depends(depend, layers)
             if not layer_depend:
                 logger.error('Layer %s depends on %s and isn\'t found.' % \


cheers
nico



More information about the Openembedded-devel mailing list