mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00
checklayer: Avoid adding the layer if it is already present
* Rename add_layer() to add_layers() so that add_layer_dependencies() can re-use it. * Avoid adding the layer if it is already present [YOCTO #13148] (From OE-Core rev: b9cc18d83f55ff48c3d6e60c56359f6736d5a06a) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
a6a2c89692
commit
5501f12ef6
|
@ -196,29 +196,27 @@ 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)
|
||||
add_layers(bblayersconf, layer_depends, logger)
|
||||
|
||||
for layer_depend in layer_depends:
|
||||
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" % path)
|
||||
return True
|
||||
|
||||
def add_layer(bblayersconf, layer, layers, logger):
|
||||
logger.info('Adding layer %s' % layer['name'])
|
||||
with open(bblayersconf, 'a+') as f:
|
||||
f.write("\nBBLAYERS += \"%s\"\n" % layer['path'])
|
||||
def add_layers(bblayersconf, layers, logger):
|
||||
# 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)
|
||||
|
||||
with open(bblayersconf, 'a+') as f:
|
||||
for layer in layers:
|
||||
logger.info('Adding layer %s' % layer['name'])
|
||||
name = layer['name']
|
||||
path = layer['path']
|
||||
if path in added:
|
||||
logger.info('%s is already in %s' % (name, bblayersconf))
|
||||
else:
|
||||
added.add(path)
|
||||
f.write("\nBBLAYERS += \"%s\"\n" % path)
|
||||
return True
|
||||
|
||||
def check_command(error_msg, cmd, cwd=None):
|
||||
|
|
|
@ -22,7 +22,7 @@ import scriptpath
|
|||
scriptpath.add_oe_lib_path()
|
||||
scriptpath.add_bitbake_lib_path()
|
||||
|
||||
from checklayer import LayerType, detect_layers, add_layer, add_layer_dependencies, get_signatures
|
||||
from checklayer import LayerType, detect_layers, add_layers, add_layer_dependencies, get_signatures
|
||||
from oeqa.utils.commands import get_bb_vars
|
||||
|
||||
PROGNAME = 'yocto-check-layer'
|
||||
|
@ -157,7 +157,7 @@ def main():
|
|||
layers_tested = layers_tested + 1
|
||||
continue
|
||||
|
||||
if any(map(lambda additional_layer: not add_layer(bblayersconf, additional_layer, dep_layers, logger),
|
||||
if any(map(lambda additional_layer: not add_layers(bblayersconf, [additional_layer], logger),
|
||||
additional_layers)):
|
||||
logger.info('Skipping %s due to missing additional layers.' % layer['name'])
|
||||
results[layer['name']] = None
|
||||
|
@ -179,7 +179,7 @@ def main():
|
|||
continue
|
||||
td['machines'] = args.machines
|
||||
|
||||
if not add_layer(bblayersconf, layer, dep_layers, logger):
|
||||
if not add_layers(bblayersconf, [layer], logger):
|
||||
logger.info('Skipping %s ???.' % layer['name'])
|
||||
results[layer['name']] = None
|
||||
results_status[layer['name']] = 'SKIPPED (Unknown)'
|
||||
|
|
Loading…
Reference in New Issue
Block a user