[oe] Understanding recipes vs packages

Chris Larson clarson at kergoth.com
Mon Nov 7 22:43:53 UTC 2011


On Mon, Nov 7, 2011 at 3:34 PM, Charles Manning <cdhmanning at gmail.com> wrote:
> On Mon, Nov 7, 2011 at 6:15 PM, Xu, Dongxiao <dongxiao.xu at intel.com> wrote:
>> Hi Charles,
>>
>>> -----Original Message-----
>>> From: openembedded-devel-bounces at lists.openembedded.org
>>> [mailto:openembedded-devel-bounces at lists.openembedded.org] On Behalf Of
>>> Charles Manning
>>> Sent: Monday, November 07, 2011 11:32 AM
>>> To: openembedded-devel at lists.openembedded.org
>>> Subject: [oe] Understanding recipes vs packages
>>>
>>> Hello
>>>
>>> Something very weird is going on with some changes I have made recently to a
>>> custom image I am building.
>>>
>>> For some reason I was getting libpng12 built and now that no longer happens.
>>>
>>> In debugging this I've been doing things that now stump me.
>>>
>>> From my understanding, a recipe can build multiple different packages.
>>> For example libpng.inc has the following in it:
>>
>> Yes, it is correct.
>>
>>>
>>> PACKAGES =+ "${PN}12-dbg ${PN}12 ${PN}12-dev"
>>>
>>> FILES_${PN}12-dbg += "${libdir}/libpng12*.dbg"
>>> FILES_${PN}12 = "${libdir}/libpng12.so.*"
>>> FILES_${PN}12-dev = "${libdir}/libpng12.* ${includedir}/libpng12
>>> ${libdir}/pkgconfig/libpng12.pc"
>>> FILES_${PN} = "${libdir}/lib*.so.*"
>>> FILES_${PN}-dev = "${includedir} ${libdir}/lib*.so ${libdir}/*.la \
>>>               ${libdir}/*.a ${libdir}/pkgconfig \
>>>               ${datadir}/aclocal ${bindir} ${sbindir}"
>>>
>>>
>>> Does that mean I should be able to build  libgpng12 as follows:
>>>
>>> bitbake libpng12
>>
>> No, package name could not be passed to bitbake as a parameter.
>>
>> Bitbake can accept a recipe name as its parameter, and it will process tasks like "do_fetch", "do_unpack", ..., "do_package", etc. for that recipe. In the above case, libpng12 will be generated in do_package task, and then it will be archived into rpm/ipk/deb package formats.
>>
>> Try to run "bitbake libpng" and see if libpng12 is generated.
>
> Yes it is.
>
> OK thanks for the clarification....
>
> So if I want to put the libpng12 in an image then do I need to do
> something like:
>
> # Add libpng to DEPENDS to get the recipe to build
> # Add libpng12 to IMAGE_INSTALL because that's what I want in the package
>
> DEPENDS += " libpng"
> IMAGE_INSTALL += " libpng12"


No. Bitbake knows about both build time and runtime dependencies.
IMAGE_INSTALL's contents are automatically added to the runtime
dependencies of the image recipe, and bitbake will build the recipes
which provide those packages, so all you need is the IMAGE_INSTALL.
-- 
Christopher Larson
clarson at kergoth dot com
Founder - BitBake, OpenEmbedded, OpenZaurus
Maintainer - Tslib
Senior Software Engineer, Mentor Graphics




More information about the Openembedded-devel mailing list