| Summary: | bitbake -g can't detect certain nonexistent package | ||
|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] BitBake | Reporter: | Yi Zhao <yi.zhao> |
| Component: | bitbake | Assignee: | Robert Yang <liezhi.yang> |
| Status: | VERIFIED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | Medium | CC: | bluelightning, ke.zou, ning.zhang, poky.bs.watcher, poky.watcher, razvanx.ionescu, richard.purdie, sgw, wenzong.fan |
| Version: | 1.5 | ||
| Target Milestone: | 1.5 M3 | ||
| Hardware: | x86 | ||
| OS: | Multiple | ||
| Whiteboard: | |||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | No (bug/feature does not impact docs) | |
|
Description
Yi Zhao
2013-07-02 06:51:38 UTC
This is a bit tricky. Sometimes it is useful to be able to analyse the dependency chain to find out where something that is not provided is being pulled in. I'd expect bitbake -g to warn rather than error in this situation and include the nonexistent items in the graphs. bitbake -g can find out the no rprovider packages, this case is because ncurses-lib12344 is in ncurses' PACKAGES_DYNAMIC:
PACKAGES_DYNAMIC = "^${PN}-lib.*"
The "^${PN}-lib.*" matches ncurses-lib12344, so there is no errors when "bitbake -g" or bitbake <image-recipe>".
I think that we'd better not warn such a case since there are many dynamic packages otherwise there would be too many warnings, for example, the perl and kernel modules, maybe we can print a debug info, here is the patch:
diff --git a/bitbake/lib/bb/providers.py b/bitbake/lib/bb/providers.py
index 3d0fb48..c9ca742 100644
--- a/bitbake/lib/bb/providers.py
+++ b/bitbake/lib/bb/providers.py
@@ -376,5 +376,6 @@ def getRuntimeProviders(dataCache, rdepend):
regexp_cache[pattern] = regexp
if regexp.match(rdepend):
rproviders += dataCache.packages_dynamic[pattern]
+ logger.debug(1, "Assuming %s is a dynamic package, but it may not exist" % rdepend)
return rproviders
Merged into master: http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=e605ecfd95d2b1573cb51de01c2e0c72e10b8ae0 Verified with: e605ecfd95d2b1573cb51de01c2e0c72e10b8ae0 Works as Robert Yang described above. |