On 11/27/12 2:23 PM, Martin Jansa wrote:
On Tue, Nov 27, 2012 at 08:11:42PM +0000, Richard Purdie wrote:
On Tue, 2012-11-27 at 16:41 +0100, Martin Jansa wrote:
Hi,

pulseaudio has
RDEPENDS_pulseaudio-module-console-kit =+ "consolekit"

and pulseaudio-module-console-kit is dynamic package
PACKAGES_DYNAMIC += "^pulseaudio-lib.* ^pulseaudio-module.* ^libpulse-lib.* 
^libpulse-module.* "

If you have image where consolekit is pulled to image only by
pulseaudio-module-console-kit (e.g. through pulseaudio-server).
Then consolekit is not built before image do_rootfs is executed and do_rootfs 
fails.

Easy way to reproduce this is to build e.g. core-image-minimal with
pulseaudio-module-console-kit or pulseaudio-server added to IMAGE_INSTALL.
Will fail with:
   * satisfy_dependencies_for: Cannot satisfy the following dependencies for 
pulseaudio-server:
   *    consolekit *
   * opkg_install_cmd: Cannot install package pulseaudio-server.


Not sure what's proper fix, bitbake probably just checks that right provider for
pulseaudio-module-console-kit is pulseaudio because of PACKAGES_DYNAMIC, but 
does not check
RDEPENDS_pulseaudio-module-console-kit after that.

We can add consolekit to build time deps like it was before, but that's just
work around and not correct fix.

Also filled as
https://bugzilla.yoctoproject.org/show_bug.cgi?id=3498

Well, you can't have this both ways :)

IMHO Only one way is correct and that would be enough :).

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...

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..

--Mark

If it's not possible with current code-base then we should document it
and add some work around in pulseaudio (I'm fine with building
consolekit even when it's not used later).

Cheers,



_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core



_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to