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

Paul Eggleton paul.eggleton at linux.intel.com
Mon Sep 24 21:03:32 UTC 2018


Hi Nicolas,

On Monday, 24 September 2018 10:05:02 PM NZST Nicolas Dechesne wrote:
> 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.

Is it appropriate to make such moves in a stable branch? I wouldn't have 
thought so.
 
> * 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.' % \

Patch looks reasonable to me FWIW.

Cheers,
Paul


-- 

Paul Eggleton
Intel Open Source Technology Centre





More information about the Openembedded-devel mailing list