[yocto] Yocto and Google protobuffer

Herman van Hazendonk me at herrie.org
Thu Sep 1 03:21:54 PDT 2016


Hi Pietro,

You can override the recipe by adding a recipe for version 3.0.0+ in 
your own layer and making sure your layer has a higher priority in 
bblayers.conf. See for example what we do in our project:

https://github.com/webOS-ports/webos-ports-setup/blob/testing/conf/bblayers.conf

openembedded-core provides ofono 1.1.7 for example with 
https://github.com/openembedded/openembedded-core/tree/krogoth/meta/recipes-connectivity/ofono

However we want to use ANOTHER version of ofono (1.1.7 based, but from a 
different repo/project).

So we have our own .bbappend at 
https://github.com/webOS-ports/meta-webos-ports/blob/krogoth/meta-luneos/recipes-connectivity/ofono/ofono_git.bbappend 
where we specify the different repo etc to use.

This doesn't apply 1:1 in your case, but you could simply add a 
protobuf_3.0.0.bb in your own layer and it should build that instead. 
Just make sure you have your layer at a higher position compared to 
meta-openembedded in your bblayers.conf

Herrie


On 2016-09-01 11:34, Pietro wrote:
> Maciej Borzęcki
> <maciej.borzecki at rndity.com> writes:
> 
>> On Thu, Sep 1, 2016 at 10:40 AM, Pietro <pulsarpietro at posteo.net> 
>> wrote:
>>> Maciej Borzęcki
>>> <maciej.borzecki at rndity.com> writes:
>>> 
>>>> On Wed, Aug 31, 2016 at 6:44 PM, Pietro <pulsarpietro at posteo.net> 
>>>> wrote:
>>>>> Hi all,
>>>>> 
>>>>> I am new to the Yocto building system and I could be talking 
>>>>> nonsense. I
>>>>> used to work with buildroot time ago and I remember there is an 
>>>>> area
>>>>> where compiled software/packages/tools previously built are 
>>>>> "staged" and
>>>>> used when building other packages.
>>>>> 
>>>>> Is there something like that available with Yocto ? Specifically I 
>>>>> would
>>>>> like to add a package which uses the Google Protocol Buffer, I do 
>>>>> not have
>>>>> administrator rights on the machine and I can't install the 
>>>>> packages I
>>>>> need system wise.
>>>>> 
>>>>> Is it possible to add recipes and use them at building time without
>>>>> including them in the image being generated ?
>>>>> 
>>>>> A good example for that would be the protoc, the protocol buffer 
>>>>> description
>>>>> file compiler.
>>>>> 
>>>> 
>>>> There is a recipe for protobuf in meta-oe (2.6.1). All you need to 
>>>> do,
>>>> is include meta-oe in your layers (bblayers.conf) and have
>>>> protobuf-native listed in DEPENDS inside your package recipe.
>>>> 
>>>> The protoc compiler will be available in the PATH when package is
>>>> being built, so autotools checks like AC_CHECK_PROG/AC_PATH_PROG
>>>> should be able to find it.
>>>> 
>>>> Cheers,
>>>> --
>>>> Maciej Borzecki
>>>> RnDity
>>> Thanks a lot.
>>> 
>>> I have added the DEPENDS line and it indeed downloads and build the 
>>> some
>>> protobuf related stuff, where did you get the dependency name from ?
>>> I can't see the protobuf-native as a recipe in the meta-oe website :
>>> 
>>> https://layers.openembedded.org/layerindex/branch/master/layer/meta-oe/
>> 
>> It's just a mechanism that allows for building the native (i.e. for
>> the host) packages, and these are autmatically named ${PN}-native.
>> There should a BBCLASSEXTEND = "..native.." stanza inside the protobuf
>> recipe that enables this feature.
>> 
>>> 
>>> I have just realised that GRPC (http://www.grpc.io/) is needed for my
>>> project, it is a library which uses the protobuffers, is there a
>>> recipe/package which provides them around or do I need to create my 
>>> own
>>> recipe ?
>> 
>> You can try searching for a recipe at http://layers.openembedded.org
>> If there's none, try to write your own. This might be a good changes
>> to get yourself acquainted with `devtool` tool that will help you in
>> the process.
>> 
>>> 
>>> I would like to check the root filesystem being generated as part of 
>>> the
>>> build process, where is it ?
>>> 
>> 
>> ${TMPDIR}/<machine>_<distro?>/<imagename>/../rootfs
>> 
>> for instance, for my current build:
>> 
>> tmp/work/vexpress_qemu-poky-linux-gnueabi/core-image-minimal/1.0-r0/rootfs
>> 
>> --
>> Maciej Borzecki
>> RnDity
> 
> Thanks, much appreciated.
> 
> Do you know where the software which is not included in the image - 
> such
> us protoc - is it stored ?
> 
> It turns out the recipe for the protobuffer uses version 2.6 while I
> would need version 3.0.0 to be used, is there a way to partially
> "override" a recipe ?
> 
> http://cgit.openembedded.org/cgit.cgi/meta-openembedded/tree/meta-oe/recipes-devtools/protobuf/protobuf_2.6.1.bb?h=master
> 
> Thanks a lot.
> P.




More information about the yocto mailing list