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 ?
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.