| Summary: | Setting PREFERRED_PROVIDER to select between multiple runtime providers does not work | ||
|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] BitBake | Reporter: | Paul Eggleton <bluelightning> |
| Component: | bitbake | Assignee: | Richard Purdie <richard.purdie> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | Low | CC: | bugzilla.yoctoproject.org, jatedev, jessica.zhang, lpapp, poky.bs.watcher, poky.watcher, randy.macleod, romain145 |
| Version: | 1.6 | ||
| Target Milestone: | Future | ||
| Hardware: | All | ||
| OS: | Multiple | ||
| Whiteboard: | |||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | Don't know | |
|
Description
Paul Eggleton
2014-04-10 14:24:11 UTC
For clarification that was just a typo in the comment above, I meant to type PREFERRED_PROVIDER_sshd rather than PREFERRED_PROVIDER_ssd. I did use the former when testing :) This may be the same issue as bug 5044; at the very least it's related. Well, I can see this issue happening in my case, too: NOTE: multiple providers are available for runtime packagegroup-foo-dbg (packagegroup-foo-dbg, packagegroup-foo) NOTE: consider defining a PREFERRED_PROVIDER entry to match packagegroup-foo-dbg I am trying to include the non-dbg image in the -dbg image since the debug image sets up some boilerplate which is not yet separated into a common file that both images could include. If that was done, I could avoid including the non-dbg image into the -dbg, but that is currently not done and so, I am seeing this warning, too. This is frustrating because I am now wiping the build folder away again, but then I have to wait something like 40 minutes to 2 hours. Can someone explain what the real issue and potential workarounds? I think, rebuilding everything without the conflicting image (non-dbg) is too much burden on the users' shoulder. I came across these bugs in poky 1.6.3 (daisy) with multiple package providers. I fixed bug 6149 with just bitbake patch. I came across another bug with this when I tried the bitbake fix on master. With the test case IMAGE_INSTALL_append = " sshd" PREFERRED_PROVIDER_sshd="dropbear" meta/lib/oe/package_manager.py reported a package not found in the base feeds. The file image.bbclass starts copies IMAGE_INSTALL to PACKAGE_INSTALL and performs fix ups for multilib, etc. I added another function (rootfs_process_preferred_providers) to replace sshd in PACKAGE_INSTALL with dropbear. This eliminated the error. The mega-manual is vague when it describes what can be specified in PREFERRED_PROVIDER: an item. And the code partially supports run-time packages as a valid item on the left. My implementation assumes a package name on the right. Yocto bug 5044 suggests traversing from the package name to the virtual/* provider, but I have not thought through how this might work. IMAGE_INSTALL_append = " libasound-module-bluez" PREFERRED_PROVIDER_libasound-module-bluez="bluez4" I got this working on poky 1.6.3, but some changes to the bluez recipes on master seemed to mitigate the original problem. See the bitbake/oe-core mailing list for the patches. Yes, #5004 did fix this too. I tested: IMAGE_INSTALL:append = " sshd" PREFERRED_RPROVIDER_sshd = "dropbear" and IMAGE_INSTALL:append = " sshd" PREFERRED_RPROVIDER_sshd = "openssh" which worked as expected (note the R in RPROVIDER). |