On Wednesday, 2 May 2018 8:33:12 PM NZST Andrea Galbusera wrote: > On Wed, May 2, 2018 at 9:52 AM, Martin Siegumfeldt <m...@gomspace.com> wrote: > > Hacking the recipe according to: > > martin@dell:~/work/z7000-distro-zcu102/meta-openembedded$ git diff > > diff --git a/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb > > b/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb > > index a64745c94..aba1d6edb 100644 > > --- a/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb > > +++ b/meta-oe/recipes-connectivity/zeromq/cppzmq_git.bb > > @@ -13,9 +13,11 @@ S = "${WORKDIR}/git" > > > > do_install () { > > install -d ${D}/usr/include > > + install -d ${D}/etc > > install -m 0755 ${S}/zmq.hpp ${D}/usr/include/ > > + install -m 0755 ${S}/zmq.hpp ${D}/etc > > } > > > > -PACKAGES = "${PN}-dev" > > +PACKAGES = "${PN}-dev ${PN}" > > If you go down the patch-the-recipe way, you can probably leave > PACKAGES at its default: both ${PN} and ${PN}-dev are there by > default. > > > RDEPENDS_${PN}-dev = "zeromq-dev" > > > > triggers both ${PN}-dev and ${PN} variants to be packaged and included by > > the image. Leaving out the installation into /etc causes ${PN} package not > > to be generated and the image generation does not pick up the ${PN}-dev > > variant. > > Better would be adding: > > ALLOW_EMPTY_${PN} = "1" > > This way it's cleaner and should work as well. However, you'll need to > force your image to depend upon an empty package to be added > (meaningless for the target), for the sake of the corresponding -dev > package to be part of the tailored eSDK... Maybe there's a better way > to achieve this, possibly by adding cppzmq-dev to the SDK explicitly > with something like TOOLCHAIN_TARGET_TASK_append (never used it in > practice though). Hopefully someone can further comment on this to add > some wisdom. > > > In essence, it looks like image generation disregards recipes residing > > exclusively in the ${PN}-dev variant - question is whether this is > > intended > > or not? > > Yes it is. -dev packages are not intended to be installed into target > image by design.
Rather than "by design" I would say "by default" - you can certainly install them explicitly (or for the whole image via IMAGE_FEATURES += "dev-pkgs" and that is intended - but out of the box it's not expected that you would be doing compilation on the target and thus the expectation is that the development files aren't needed. A couple of other things worth mentioning from earlier in the discussion: 1) If you want the cppzmq development files to be available *within* the eSDK (so you can write code to use them using the eSDK), even if they are not brought in by way of the image containing a package from the cppzmq recipe, you can install them into the eSDK by running this within the eSDK environment: devtool sdk-install -s cppzmq Alternatively you can add them to the built eSDK by setting this before you build it: SDK_TARGETS += "cppzmq:do_populate_sysroot" FWIW there is a bug open to make this more friendly: https://bugzilla.yoctoproject.org/show_bug.cgi?id=10600 2) To add packages to the image when doing devtool build-image within the eSDK you would use the -p option (rather than trying to set IMAGE_INSTALL on the command line), so you could do the following for this situation: devtool build-image -p cppzmq-dev (This should work regardless of whether or not you do #1 above) Cheers, Paul -- Paul Eggleton Intel Open Source Technology Centre -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto