[oe-commits] [openembedded-core] 18/43: yocto-compat-layer.py: avoid adding layers more than once
git at git.openembedded.org
git at git.openembedded.org
Thu Jul 27 21:38:13 UTC 2017
This is an automated email from the git hooks/post-receive script.
rpurdie pushed a commit to branch pyro
in repository openembedded-core.
commit 9821cec1ca52deee444ae3ff14dc548c8312ba3c
Author: Patrick Ohly <patrick.ohly at intel.com>
AuthorDate: Tue Jun 27 17:33:38 2017 +0200
yocto-compat-layer.py: avoid adding layers more than once
add_layer_dependencies() might get called more than once, or one of
the layer dependencies might already be present. The function should
not add layers again because doing so can cause warnings like:
WARNING: Duplicate inclusion for .../meta-openembedded/meta-oe/conf/distro/include/meta_oe_security_flags.inc in .../meta-openembedded/meta-oe/conf/layer.conf
Signed-off-by: Patrick Ohly <patrick.ohly at intel.com>
Signed-off-by: Ross Burton <ross.burton at intel.com>
Signed-off-by: Armin Kuster <akuster808 at gmail.com>
---
scripts/lib/compatlayer/__init__.py | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/scripts/lib/compatlayer/__init__.py b/scripts/lib/compatlayer/__init__.py
index e35f8c0..eaae4e5 100644
--- a/scripts/lib/compatlayer/__init__.py
+++ b/scripts/lib/compatlayer/__init__.py
@@ -4,6 +4,7 @@
# Released under the MIT license (see COPYING.MIT)
import os
+import re
import subprocess
from enum import Enum
@@ -189,10 +190,22 @@ def add_layer_dependencies(bblayersconf, layer, layers, logger):
if layer_depends is None:
return False
else:
+ # Don't add a layer that is already present.
+ added = set()
+ output = check_command('Getting existing layers failed.', 'bitbake-layers show-layers').decode('utf-8')
+ for layer, path, pri in re.findall(r'^(\S+) +([^\n]*?) +(\d+)$', output, re.MULTILINE):
+ added.add(path)
+
for layer_depend in layer_depends:
- logger.info('Adding layer dependency %s' % layer_depend['name'])
+ name = layer_depend['name']
+ path = layer_depend['path']
+ if path in added:
+ continue
+ else:
+ added.add(path)
+ logger.info('Adding layer dependency %s' % name)
with open(bblayersconf, 'a+') as f:
- f.write("\nBBLAYERS += \"%s\"\n" % layer_depend['path'])
+ f.write("\nBBLAYERS += \"%s\"\n" % path)
return True
def add_layer(bblayersconf, layer, layers, logger):
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Openembedded-commits
mailing list