bitbake: bblayers/layerindex.py: Fix addition of layers

When a layer is added it needs to be in a list, otherwise the system will
error such as:

    Specified layer directory / doesn't contain a conf/layer.conf file

Additionally, instead of calling the add layer function over and over, it
is better to add all of the new content in one command.  Otherwise the
order is important as the system now checks if the layer can be added.  For
instance, trying to add meta-python:

   Layer                Required by          Git repository                                          Subdirectory
   ===================================================================================================================
   meta-python          -                    git://git.openembedded.org/meta-openembedded            meta-python
   meta-oe              meta-python          git://git.openembedded.org/meta-openembedded            meta-oe
   openembedded-core    meta-python          git://git.openembedded.org/openembedded-core            meta
   Adding layer "meta-python" (.../oe-core/meta-openembedded/meta-python) to conf/bblayers.conf
   ERROR: Layer 'meta-python' depends on layer 'openembedded-layer', but this layer is not enabled in your configuration

The system would try to add meta-python before the dependent meta-oe.  Adding
them both at the same time resolves this issue.

(Bitbake rev: 8aeaabf13db645f33495e00b82117327e153d70a)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Mark Hatle
2018-07-23 22:29:10 -04:00
committed by Richard Purdie
parent bb3228cc19
commit 0dea950931

View File

@@ -239,19 +239,22 @@ class LayerIndexPlugin(ActionPlugin):
return 1
addlayers.append((subdir, name, layerdir))
if not args.show_only:
localargs = argparse.Namespace()
localargs.layerdir = []
localargs.force = args.force
for subdir, name, layerdir in set(addlayers):
if os.path.exists(layerdir):
if subdir:
logger.plain("Adding layer \"%s\" to conf/bblayers.conf" % subdir)
logger.plain("Adding layer \"%s\" (%s) to conf/bblayers.conf" % (subdir, layerdir))
else:
logger.plain("Adding layer \"%s\" to conf/bblayers.conf" % name)
localargs = argparse.Namespace()
localargs.layerdir = layerdir
localargs.force = args.force
self.do_add_layer(localargs)
logger.plain("Adding layer \"%s\" (%s) to conf/bblayers.conf" % (name, layerdir))
localargs.layerdir.append(layerdir)
else:
break
if localargs.layerdir:
self.do_add_layer(localargs)
def do_layerindex_show_depends(self, args):
"""Find layer dependencies from layer index.
"""