[OE-core] [PATCH] bitbake: cooker: list all nonexistent bblayer directories
Oleksandr Kravchuk
open.source at oleksandr-kravchuk.com
Thu Jun 13 23:43:38 UTC 2019
This is how it'll look like:
ERROR: Unable to start bitbake server (None)
ERROR: Server log for this session
(/home/sashko/projects/yocto/open-embedded/build/bitbake-cookerdaemon.log):
--- Starting bitbake server pid 7414 at 2019-06-14 01:35:10.070371 ---
ERROR: The following layer directories do not exist:
ERROR: - /home/sashko/projects/yocto/open-embedded/sources/poky/meta-abc
ERROR: - /home/sashko/projects/yocto/open-embedded/sources/poky/meta-xyz
ERROR: Please check BBLAYERS in
/home/sashko/projects/yocto/open-embedded/build/conf/bblayers.conf
Feel free to suggest better way to present this information to a user.
On 14/06/2019 01:42, Oleksandr Kravchuk wrote:
> Check existence of all the bblayer direcotories at once and print them
> all, so if there are multiple nonexistent directories, user does not
> have to correct bblayers.conf and restart bitbake multiple times.
>
> [YOCTO #11647]
>
> Signed-off-by: Oleksandr Kravchuk <open.source at oleksandr-kravchuk.com>
> ---
> bitbake/lib/bb/cookerdata.py | 16 +++++++++++++---
> 1 file changed, 13 insertions(+), 3 deletions(-)
>
> diff --git a/bitbake/lib/bb/cookerdata.py b/bitbake/lib/bb/cookerdata.py
> index f8ae41093b..be1c332eb5 100644
> --- a/bitbake/lib/bb/cookerdata.py
> +++ b/bitbake/lib/bb/cookerdata.py
> @@ -342,14 +342,24 @@ class CookerDataBuilder(object):
> data = parse_config_file(layerconf, data)
>
> layers = (data.getVar('BBLAYERS') or "").split()
> + broken_layers = []
>
> data = bb.data.createCopy(data)
> approved = bb.utils.approved_variables()
> +
> + # Check whether present layer directories exist
> for layer in layers:
> if not os.path.isdir(layer):
> - parselog.critical("Layer directory '%s' does not exist! "
> - "Please check BBLAYERS in %s" % (layer, layerconf))
> - sys.exit(1)
> + broken_layers.append(layer)
> +
> + if broken_layers:
> + parselog.critical("The following layer directories do not exist:")
> + for layer in broken_layers:
> + parselog.critical("- %s", layer)
> + parselog.critical("Please check BBLAYERS in %s" % (layerconf))
> + sys.exit(1)
> +
> + for layer in layers:
> parselog.debug(2, "Adding layer %s", layer)
> if 'HOME' in approved and '~' in layer:
> layer = os.path.expanduser(layer)
More information about the Openembedded-core
mailing list