[yocto] RDEPENDS dependency problem

Stefano Pagnottelli stefano.pagnottelli at gmail.com
Thu Aug 24 01:41:45 PDT 2017


First of all, thanks for your reply.

Il giorno mer 23 ago 2017 alle ore 20:56 Khem Raj <raj.khem at gmail.com> ha
scritto:

> On 8/23/17 1:12 AM, Stefano Pagnottelli wrote:
> > Hi to all,
> >
> > I'm trying to build this layer:
> > (https://github.com/bachp/meta-homeassistant) using the yocto pyro on a
> > raspberry pi 3 target and the opkg package system.
> >
> > Inside the recipe
> > (
> https://github.com/bachp/meta-homeassistant/blob/master/recipes-homeassistant/homeassistant/python3-homeassistant_0.51.2.bb
> )
> > there  are some RDEPENDS with strict equal
> > dependencies (ex:python3-aiohttp (= 2.2.5)).
> >
> > We I build the image with the opgk package system the system fail in the
> > do_rootfs task because is not finding the package python3-aiohttp =
> > 2.2.5.. If I understood correctly this happens because the build system
> > si appending the recipe revision (PR variable) at end of package name
> > and the results is  python3-aiohttp_2.2.5-r0 and not
> > python3-aiohttp_2.2.5 as opkg is expecting.
>
> I dont think r0 is in play here. You can test it by changing dependency
> check to look for  (= for 2.2.5-r0), I think it should still fail.
>

I do some tests of on rdendps on the recipe:

With python3-aiohttp (= 2.2.5-r0) the image is built without problems, with
python3-aiohttp (>= 2.2.5) the image is built without problems, with
python3-aiohttp (= 2.2.5) the task fail with the following error:

Problem 1/1:
  - nothing provides python3-aiohttp = 2.2.5 needed by
python3-homeassistant-0.51.2-r0.cortexa7hf-neon-vfpv4

So it seems to me that know the recipe revision is mandatory if you want to
put a strict dependency on a rdpends. But if I understood correctly the
yocto build system it's not possible to predict the recipe revision because
is automatically computed,  And a change in the recipe will break the
dependency also if the source software version is the same because this
will change the recipe version.


>
> >
> > As workaround I changed all strict = with a >= and the build complete
> > without errors.
>
> this is ok as long as the package can work with newer versions of this
> package. I am not sure if thats the case, you might have to check with
> authors intent for using = instead of >=
>

I think that ,in that case the author is using strict = dependencies
because we are trying to compile a python project that strictly depend
python module with a specific version.  Can be useful to have strict =
dependency in a recipe but it is not mandatory, the project compile well
also with >=.

Regards
Stefano


>
> >
> > My question is: It's possible to  instruct the build system to ignore
> > the recipe revision when it match the version of the package? Or in
> > alternative it's possible to automatically detect the recipe revision of
> > the package?
> >
> > Thanks in advance
> > Stefano
> > …
> > --
> >
> > There are 10 types of people in this world, those who understand binary
> > and those who dont
> >
> >
>
> --

There are 10 types of people in this world, those who understand binary and
those who dont
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20170824/904b98cf/attachment.html>


More information about the yocto mailing list