Re: How to PROVIDE boost-python


Emily
 

Hi Laurent - 

Thanks for the suggestion. It looks like there are a few packages that provide libboost_python3:

find tmp/work/*/*/*/packages-split -name libboost_python\*
tmp/work/aarch64-poky-linux/boost/1.64.0-r0/packages-split/boost-dev/usr/lib/libboost_python3.so
tmp/work/aarch64-poky-linux/boost/1.64.0-r0/packages-split/boost-python/usr/lib/libboost_python3.so.1.64.0
tmp/work/aarch64-poky-linux/boost/1.64.0-r0/packages-split/boost-staticdev/usr/lib/libboost_python3.a
tmp/work/aarch64-poky-linux/boost/1.64.0-r0/packages-split/boost-dbg/usr/lib/.debug/libboost_python3.so.1.64.0

Adding boost-python to RDEPENDS doesn't help, I have tried it before also. This sort of made sense to me as I thought RDEPENDS was for run time dependencies, but perhaps I have misunderstood. 

I am working with the rocko branch and python2, so perhaps that's the problem?

Thanks,
Emily


On Tue, Mar 17, 2020 at 1:02 PM Laurent Gauthier <laurent.gauthier@...> wrote:
Hi Emily,

To find the solution to your issue in a rational and deterministic way
we need to start from the error message.

What I understand is that while build recipe "opc-ua-server-gfex" you
get an error message that says in short "ld: cannot find
-lboost_python-mt".

Therefore you need to determine which recipe (and which package in
that recipe) provides the "boost_python-mt" library.

One way to determine this is to run something like this:

    find /local/d6/easmith5/rocko_bitbake/poky/build/tmp/work/*/*/*/packages-split
-name libboost_python\*

This should show you which recipe, and which package produced by that
recipe has the library you are looking for.

The names of the first-level directories inside "packages-split" are
packages names.

Based on things you have mentioned in your previous e-mail my guess
would be that adding an RDEPENDS = "boost-python" should help, but I
might be wrong.

I hope this will help you move in the right direction.

Kind regards, Laurent.


On Tue, Mar 17, 2020 at 6:07 PM Emily <easmith5555@...> wrote:
>
> Hi Quentin -
>
> That's what I tried originally! DEPENDS on boost and not boost-python gives me the following error when trying to build my original recipe:
>
> /local/d6/easmith5/rocko_bitbake/poky/build/tmp/work/aarch64-poky-linux/opc-ua-server-gfex/1.0+gitAUTOINC+921c563309-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/7.3.0/ld:
> cannot find -lboost_python-mt
>
> So I tried a bunch of other this which also didn't seem to work.
>
> Thanks for the response!
> Emily
>
>
> On Tue, Mar 17, 2020 at 11:04 AM Quentin Schulz <quentin.schulz@...> wrote:
>>
>> Hi Emily,
>>
>> On Tue, Mar 17, 2020 at 10:44:10AM -0500, Emily wrote:
>> > Hi all -
>> >
>> > I'm trying to build an opca recipe (
>> > https://github.com/kratsg/meta-l1calo/blob/add/opcServer/recipes-core/opc-ua/opc-ua-server-gfex_git.bb)
>> > and it's giving me a build error like:
>> >
>> > |
>> > /local/d6/easmith5/rocko_bitbake/poky/build/tmp/work/aarch64-poky-linux/opc-ua-server-gfex/1.0+gitAUTOINC+921c563309-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/../../libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/7.3.0/ld:
>> > cannot find -lboost_python-mt
>> >
>> > Which seems to indicated I need to add boost-python to my list of DEPENDS.
>> > When I do that I get the error:
>> >
>> > ERROR: Nothing PROVIDES 'boost-python' (but
>> > /local/d6/easmith5/rocko_bitbake/meta-l1calo/recipes-core/opc-ua/
>> > opc-ua-server-gfex_git.bb DEPENDS on or otherwise requires it). Close
>> > matches:
>> >   boost RPROVIDES boost-python
>> >
>> > I've tried adding PACKAGECONFIG_pn-boost="python" to both my local.conf and
>> > to the image definition as I saw this online, but neither seems to work. It
>> > seems like boost-python is being built (I can see it in the list when I run
>> > oe-pkgdata-utils list-pkgs -p boost) but it doesn't seem to be available at
>> > build for this recipe.
>> >
>> > If I remove boost from my list of DEPENDS I get an error about that, so
>> > obviously boost itself is available at build for the original recipe. I've
>> > also tried adding boost-native to DEPENDS, also did not work.
>> >
>> > Is there something obvious I'm missing, or some trick to making
>> > boost-python available at build for this other recipe?
>> >
>>
>> Ok so two things.
>>
>> Yes, I'd say you need python in PACKAGECONFIG for boost. However, it
>> seems it's already part of the default value of PACKAGECONFIG, c.f.
>> http://cgit.openembedded.org/openembedded-core/tree/meta/recipes-support/boost/boost.inc?h=master#n45
>> so if no bbappend is overriding it, I'd say you're safe. Better check
>> with the version in your layer that it's there.
>> If you don't want to check manually, try `bitbake -e boost | grep -e
>> "^PACKAGECONFIG="`
>>
>> DEPENDS contains only recipes (well, PROVIDES but PROVIDES has the name
>> of the recipe in it at all times) while RDEPENDS_* (usually ${PN}*) contains
>> only packages.
>>
>> So you need to DEPENDS on boost, not boost-python. That should be enough
>> hopefully!
>>
>> Quentin
>
>



--
Laurent Gauthier
Phone: +33 630 483 429
http://soccasys.com

Join yocto@lists.yoctoproject.org to automatically receive all group messages.