]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
taskdata.py: add RuntimeProviders to close matches
authorRobert Yang <liezhi.yang@windriver.com>
Fri, 22 Jan 2016 08:53:16 +0000 (00:53 -0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 22 Jan 2016 12:43:45 +0000 (12:43 +0000)
This is useful for newbie, for example:
$ bitbake rpm-build
ERROR: Nothing PROVIDES 'rpm-build'. Close matches:
  pm-utils
  rpm RPROVIDES rpm-build

[YOCTO #8881]

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
lib/bb/taskdata.py

index b08387067e4c4de920a270b5bf9683a5a8f15617..39c899ebb71b43bdb18a6f3b9430da352c834555 100644 (file)
@@ -429,7 +429,14 @@ class TaskData:
             return
 
         if not item in dataCache.providers:
-            bb.event.fire(bb.event.NoProvider(item, dependees=self.get_dependees_str(item), reasons=self.get_reasons(item), close_matches=self.get_close_matches(item, dataCache.providers.keys())), cfgData)
+            close_matches = self.get_close_matches(item, dataCache.providers.keys())
+            # Is it in RuntimeProviders ?
+            all_p = bb.providers.getRuntimeProviders(dataCache, item)
+            for fn in all_p:
+                new = dataCache.pkg_fn[fn] + " RPROVIDES " + item
+                if new not in close_matches:
+                    close_matches.append(new)
+            bb.event.fire(bb.event.NoProvider(item, dependees=self.get_dependees_str(item), reasons=self.get_reasons(item), close_matches=close_matches), cfgData)
             raise bb.providers.NoProvider(item)
 
         if self.have_build_target(item):