multilib: fix multiple (r)provider issue when parsing
Hi Richard,
This pull request fixes the multiple provider issue when bitbake multilib image.
Please help to review and pull.
Thanks,
Dongxiao
The following changes since commit 8fce8180c802ad187c4df44c17207bfb026ce6c7:
shadow: add patch for useradd lossage (2011-09-09 18:42:47 +0100)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib dxu4/ml2
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=dxu4/ml2
Dongxiao Xu (2):
base.bbclass: do not expand PREFERRED_PROVIDER for kernel recipe
multilib: Remove recipe from multilib.conf that inherits allarch
meta/classes/base.bbclass | 4 +++- meta/classes/multilib_global.bbclass | 4 ++++ meta/conf/multilib.conf | 2 -- 3 files changed, 7 insertions(+), 3 deletions(-)
PATCH 1/2 base.bbclass: do not expand PREFERRED_PROVIDER for kernel recipe
With Richard's commit f9c36392, we only build one kernel for a system, thus we shouldn't extend PREFERRED_PROVIDER for virtual/kernel.
[YOCTO #1471]
--- meta/classes/base.bbclass | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)
meta/classes/base.bbclass +3 -1
@@ -181,8 +181,10 @@ def preferred_ml_updates(d): virt = "virtual/" for p in prefixes: newname = "PREFERRED_PROVIDER_" + virt + p + "-" + pkg + if pkg != "kernel": + val = p + "-" + val if not d.getVar(newname, False): - d.setVar(newname, p + "-" + val) + d.setVar(newname, val) mp = (d.getVar("MULTI_PROVIDER_WHITELIST", True) or "").split()
Signature · 1 line
1.7.1
PATCH 2/2 multilib: Remove recipe from multilib.conf that inherits allarch
In reply to Dongxiao XuRecipes like update-rc.d and qemu-config inherit "allarch", thus we shouldn't add multilib BBCLASSEXTEND for them in multilib.conf.
Besides, we need to add multilib packages as the RPROVIDER contents for those recipes, in order to avoid the NoProvider error when parsing.
[YOCTO #1471]
--- meta/classes/multilib_global.bbclass | 4 ++++ meta/conf/multilib.conf | 2 -- 2 files changed, 4 insertions(+), 2 deletions(-)
meta/classes/multilib_global.bbclass +4 -0
@@ -7,11 +7,15 @@ python multilib_virtclass_handler_global () { if isinstance(e, bb.event.RecipeParsed) and not variant: if bb.data.inherits_class('kernel', e.data) or bb.data.inherits_class('module-base', e.data) or bb.data.inherits_class('allarch', e.data): origprovs = provs = e.data.getVar("PROVIDES", True) + rprovs = e.data.getVar("RPROVIDES", True) variants = (e.data.getVar("MULTILIB_VARIANTS", True) or "").split() for variant in variants: provs = provs + " " + multilib_map_variable("PROVIDES", variant, e.data) + for pkg in e.data.getVar("PACKAGES", True).split(): + rprovs = rprovs + " " + variant + "-" + pkg e.data.setVar("PROVIDES", origprovs) e.data.setVar("PROVIDES", provs) + e.data.setVar("RPROVIDES", rprovs) } addhandler multilib_virtclass_handler_global
meta/conf/multilib.conf +0 -2
@@ -324,7 +324,6 @@ BBCLASSEXTEND_append_pn-psplash = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-pth = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-python-dbus = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-python = " ${MULTILIBS}" -BBCLASSEXTEND_append_pn-qemu-config = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-qemugl = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-qt4-x11-free = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-quota = " ${MULTILIBS}"
@@ -394,7 +393,6 @@ BBCLASSEXTEND_append_pn-udev-extraconf = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-udev = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-unzip = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-update-modules = " ${MULTILIBS}" -BBCLASSEXTEND_append_pn-update-rc.d = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-usbutils = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-util-linux = " ${MULTILIBS}" BBCLASSEXTEND_append_pn-util-macros = " ${MULTILIBS}"
Signature · 1 line
1.7.1
Richard Purdie
AppliedQuoted 8 lines · Dongxiao Xu
Dongxiao Xu (2):
base.bbclass: do not expandPREFERRED_PROVIDERfor kernel recipe
multilib: Remove recipe from multilib.conf that inherits allarchmeta/classes/base.bbclass | 4 +++- meta/classes/multilib_global.bbclass | 4 ++++ meta/conf/multilib.conf | 2 -- 3 files changed, 7 insertions(+), 3 deletions(-)
Merged to master, thanks.
Richard