[OE-core] RDEPENDS of packages created by PACKAGES_DYNAMIC not built before image rootfs

Richard Purdie richard.purdie at linuxfoundation.org
Wed Nov 28 05:26:00 UTC 2012


On Tue, 2012-11-27 at 15:07 -0600, Mark Hatle wrote:
> On 11/27/12 2:23 PM, Martin Jansa wrote:
> >> Bitbake doesn't know which modules this package will produce since its
> >> using PACKAGES_DYNAMIC. It does its best effort to try and find DEPENDS
> >> but it can't take the regexps and come up with
> >> "pulseaudio-module-console-kit", hence it doesn't see the RDEPENDS.
> >> There isn't any generic way we can teach it to do that either. If it
> >> did, it would simply always build consolekit which you say you don't
> >> want so its not relevant anyway.
> >>
> >> So basically, you need to decide whether you want consolekit enabled or
> >> not and build accordingly, there is nothing you can do within bitbake to
> >> "mind read" what the image is going to want...
> 
> For the resolver, it has to use the RPROVIDES, PACKAGES and PACKAGES_DYNAMIC...

and it does to the limits that are reasonable...

> > No, you know that you will need pulseaudio-module-console-kit because
> > pulseaudio-server RDEPENDs on it (not on any pulseaudio-module-* but
> > pulseaudio-module-console-kit exactly). So it's not really mind reading.
> 
> But after the recipe has been built, the required item from PACKAGES_DYNAMIC 
> should now be in PACKAGES... and if it doesn't end up in the PACKAGES list, it 
> would be a good idea to at a minimum trigger a warning...  The catch is, is 
> there any way to tell if something from PACKAGES_DYNAMIC was used..

"After it is built" is no good to bitbake. It has to know what its doing
without building things.

All Bitbake can see is that there is some regexp in PACKAGES_DYNAMIC.

Yes, Bitbake could take all the keys in the datastore, expand each one
(since it could be constructed using another variable name) and find the
ones starting with RDEPENDS, then apply the rexexp to each key and see
if it matches. We one tried something like this and it is extremely
slow, parsing would take a massive speed hit.

The rule is therefore in corner cases like this (which are rather
unusual), you add something to DEPENDS and be done with it.

It is not a reasonable expectation for bitbake to figure this kind of
thing out.

I agree that if it builds things and discovers some kind of missing
dependency, that would be good to tell the user about.

Cheers,

Richard







More information about the Openembedded-core mailing list