ERROR: Nothing PROVIDES 'libfoo'
Why bitbake reports that nothing provides a dependency, and how to fix it by adding the right layer or fixing the name.
ERROR: Nothing PROVIDES 'libfoo' (but /path/to/myapp_1.0.bb DEPENDS on or otherwise requires it)
What happens
Before running any task, bitbake builds the task graph. It stops when a recipe lists a dependency (in
DEPENDS, RDEPENDS or an image's IMAGE_INSTALL) that no recipe in your configured layers provides.
Why
- The name is wrong (a recipe name instead of a package name, or a typo).
- The layer that contains the provider is not in
conf/bblayers.conf. - The provider recipe exists but is skipped: incompatible license,
COMPATIBLE_MACHINE, or a missingDISTRO_FEATURESentry. bitbake prints a "was skipped" note just above the error.
How to fix it
- Look for the skip reason:
bitbake -s | grep <name>and read the lines just above the error. - If the provider lives in a layer you do not have, find it in the
OpenEmbedded layer index and add it:
bitbake-layers add-layer ../layers/meta-openembedded/meta-oe. - If the name is wrong, fix it in the recipe or
.bbappendthat requires it.