Bitbake error - Nothing RPROVIDES

ogs picture ogs · Feb 6, 2015 · Viewed 26.3k times · Source

I would to split and application into multiple packages. Basically I just would like to add an other one which could be build by using a specific image.

Inside the .bb file associated to the application I added :

SRC_URI = " \
          ...
          file://api.conf \
          file://script.sh \
          "

PACKAGES =+ "${PN} ${PN}-tools"

FILES_${PN}-tools = "${bindir}/mrvl/tools/script.sh \
                     ${sysconfdir}/mrvl/api.conf \
                    "

Then, I added the following line in my bb image test

IMAGE_INSTALL += " mrvl-tools"

I am using the command bitbake image-test which returns :

ERROR: Nothing RPROVIDES 'mrvl-tools' (but /home/usr/../image-test.bb RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'mrvl-tools' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['mrvl-tools']
ERROR: Required build target 'image-test' has no buildable providers.
Missing or unbuildable dependency chain was: ['image-test', 'mrvl-tools']

I followed the same definition of the bluez5-obex package and IMAGE_ISTALL += " bluez5-obex" works..

What I forget ?

Answer

Ross Burton picture Ross Burton · Feb 6, 2015

Anders is close.

First, your PACKAGES definition is wrong, all you need is PACKAGES += "${PN}-tools".

But the important thing to remember is that FILES is evaluated in the order of PACKAGES, so ${PN} is processed first and the default FILES_${PN} contains ${bindir} ${sysconfdir}, so all of ${bindir} and ${sysconfdir} is in ${PN}. Then it tries to process ${PN}-tools and none of the expressions in its FILES match any files remaining, so the package is empty.

So, either set FILES_${PN} to what you want it to contain, or use PACKAGE_BEFORE_PN=${PN}-tools to inject PN-tools before PN in the default PACKAGES value. Reading bitbake.conf will help make this clearer, I promise.

Note that I'd have expected the error to be a rootfs-time failure not an image construction failure, but hopefully this is the problem.