Skip to contentSkip to conversation

multilib: fix multiple (r)provider issue when parsing

GIT PULL New Dongxiao Xu 2 participants 4 messages Sep 13, 2011

lore
Share & tools
lore
#0 lore raw

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(-)
#1 lore raw

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
index 104bec8..4ca04e2 100644
@@ -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
#2 lore raw

PATCH 2/2 multilib: Remove recipe from multilib.conf that inherits allarch

In reply to Dongxiao Xu

Recipes 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
index 1263e4e..ed14565 100644
@@ -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
index f23fbb7..16db375 100644
@@ -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
#3 lore raw
In reply to Dongxiao Xu
Quoted 8 lines · Dongxiao Xu

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(-)

Merged to master, thanks.

Richard