2 fixes for layerindex
cover 2 fixes for layerindex
The following changes since commit fa0b01082fb0596959841e95af8c516ae3f267a7:
admin: fix dependency display and search (2017-12-21 16:14:17 +1300)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib rbt/layerindex_update
http://git.pokylinux.org/cgit.cgi//log/?h=rbt/layerindex_update
Robert Yang (2):
utils.py: fix remove obsolete dependencies
update.py: make sure oe-core is fetched
layerindex/update.py | 8 +++++++- layerindex/utils.py | 6 ++---- 2 files changed, 9 insertions(+), 5 deletions(-)
Signature · 1 line
2.7.4
PATCH 1/2 utils.py: fix remove obsolete dependencies
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.
--- layerindex/utils.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)
layerindex/utils.py +2 -4
@@ -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.
Signature · 1 line
2.7.4
PATCH 2/2 update.py: make sure oe-core is fetched
In reply to Robert YangFixed:
$ ./update.py -l foo -b new_branch INFO: Fetching remote repository foo DEBUG: run cmd 'git fetch -p' in 'foo' [snip] DEBUG: run cmd 'git checkout origin/new_branch' in oe-core ERROR: error: pathspec 'origin/new_branch' did not match any file(s) known to git.
The "new_branch" is newly created, it doesn't exist in local repo since it isn't fetched, it only fetches the layer specified by -l, so only the foo layer is fetched. This patch fixes problem.
--- layerindex/update.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
layerindex/update.py +7 -1
@@ -257,8 +257,14 @@ def main(): bitbakepath = os.path.join(fetchdir, 'bitbake') if not options.nofetch: + # Make sure oe-core is fetched since recipe parsing requires it + layerquery_core = LayerItem.objects.filter(classic=False).filter(name=settings.CORE_LAYER_NAME) + if layerquery_core in layerquery: + layerquery_fetch = list(layerquery) + else: + layerquery_fetch = list(layerquery) + list(layerquery_core) # Fetch latest metadata from repositories - for layer in layerquery: + for layer in layerquery_fetch: # Handle multiple layers in a single repo urldir = layer.get_fetch_dir() repodir = os.path.join(fetchdir, urldir)
Signature · 1 line
2.7.4