The obsolete dependency is the one which is in database but not in conf/layer.conf anymore. The old code had a problem for newly created layerbranch, the new layerbranch has no dependencies, so no need remove. And it had a side effect was that when need_remove was cleaned up, it would be set again in the next for loop, thus might wrongly remove dependencies. This patch can fix the problem.
Signed-off-by: Robert Yang <liezhi.y...@windriver.com> --- layerindex/utils.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/layerindex/utils.py b/layerindex/utils.py index e58d8f6..08a4001 100644 --- a/layerindex/utils.py +++ b/layerindex/utils.py @@ -122,7 +122,7 @@ def _add_dependency(var, name, layerbranch, config_data, logger=None, required=T logger.debug('Error parsing %s_%s for %s\n%s' % (var, var_name, layer_name, str(vse))) return - need_remove = None + need_remove = LayerDependency.objects.filter(layerbranch=layerbranch).filter(required=required) for dep, ver_list in list(dep_dict.items()): ver_str = None if ver_list: @@ -142,9 +142,7 @@ def _add_dependency(var, name, layerbranch, config_data, logger=None, required=T continue # Preparing to remove obsolete ones - if not need_remove: - need_remove = LayerDependency.objects.filter(layerbranch=layerbranch).filter(required=required).exclude(dependency=dep_layer) - else: + if need_remove: need_remove = need_remove.exclude(dependency=dep_layer) # Skip existing entries. -- 2.7.4 -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto