From 6a28ed33b7baefe0ccf1be3d924188bbb8a5f86f Mon Sep 17 00:00:00 2001 From: Ed Bartosh Date: Fri, 8 Jan 2016 11:17:17 +0000 Subject: bitbake: buildinfohelper: use providermap Used providermap in store_dependency_information function to find virtual dependencies. This should fix annoying warnings "stpd: KeyError saving recipe dependency" [YOCTO #6169] (Bitbake rev: 85c416ca338c886db6e79651e44727482df9fb07) Signed-off-by: Ed Bartosh Signed-off-by: Elliot Smith Signed-off-by: Richard Purdie --- bitbake/lib/bb/ui/buildinfohelper.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'bitbake/lib/bb/ui') diff --git a/bitbake/lib/bb/ui/buildinfohelper.py b/bitbake/lib/bb/ui/buildinfohelper.py index 279c5c7823..cba016528c 100644 --- a/bitbake/lib/bb/ui/buildinfohelper.py +++ b/bitbake/lib/bb/ui/buildinfohelper.py @@ -1186,6 +1186,7 @@ class BuildInfoHelper(object): assert 'layer-priorities' in event._depgraph assert 'pn' in event._depgraph assert 'tdepends' in event._depgraph + assert 'providermap' in event._depgraph errormsg = "" @@ -1263,15 +1264,22 @@ class BuildInfoHelper(object): # buildtime recipedeps_objects = [] for recipe in event._depgraph['depends']: - try: - target = self.internal_state['recipes'][recipe] - for dep in event._depgraph['depends'][recipe]: + target = self.internal_state['recipes'][recipe] + for dep in event._depgraph['depends'][recipe]: + if dep in assume_provided: + continue + if dep in event._depgraph['providermap']: + dep = event._depgraph['providermap'][dep][0] + if dep in self.internal_state['recipes']: dependency = self.internal_state['recipes'][dep] - recipedeps_objects.append(Recipe_Dependency( recipe = target, - depends_on = dependency, dep_type = Recipe_Dependency.TYPE_DEPENDS)) - except KeyError as e: - if e not in assume_provided and not str(e).startswith("virtual/"): - errormsg += " stpd: KeyError saving recipe dependency for %s, %s \n" % (recipe, e) + else: + errormsg += " stpd: KeyError saving recipe dependency for %s, %s \n" % (recipe, dep) + continue + recipe_dep = Recipe_Dependency(recipe=target, + depends_on=dependency, + dep_type=Recipe_Dependency.TYPE_DEPENDS) + recipedeps_objects.append(recipe_dep) + Recipe_Dependency.objects.bulk_create(recipedeps_objects) # save all task information -- cgit v1.2.3-54-g00ecf