[oe-commits] Richard Purdie : staging: Save out provider information into the sysroot

git at git.openembedded.org git at git.openembedded.org
Tue Mar 25 09:47:56 UTC 2014


Module: openembedded-core.git
Branch: master
Commit: 9e696b9d32e33ba37dc09ff312328e540fc25de2
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=9e696b9d32e33ba37dc09ff312328e540fc25de2

Author: Richard Purdie <richard.purdie at linuxfoundation.org>
Date:   Thu Mar 20 11:39:20 2014 +0000

staging: Save out provider information into the sysroot

This patch saves out provider information into the sysroot for all providers
except those in MULTI_PROVIDER_WHITELIST. This means that we will start seeing
warnings when two providers for the same thing are installed into the sysroot.

In the future those warnings can be turned into errors.

Partially addresses [YOCTO #4102]

Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

---

 meta/classes/staging.bbclass | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/meta/classes/staging.bbclass b/meta/classes/staging.bbclass
index d17a53e..c74cb99 100644
--- a/meta/classes/staging.bbclass
+++ b/meta/classes/staging.bbclass
@@ -93,6 +93,16 @@ python do_populate_sysroot () {
     bb.build.exec_func("sysroot_stage_all", d)
     for f in (d.getVar('SYSROOT_PREPROCESS_FUNCS', True) or '').split():
         bb.build.exec_func(f, d)
+    pn = d.getVar("PN", True)
+    multiprov = d.getVar("MULTI_PROVIDER_WHITELIST", True).split()
+    provdir = d.expand("${SYSROOT_DESTDIR}${base_prefix}/sysroot-providers/")
+    bb.utils.mkdirhier(provdir)
+    for p in d.getVar("PROVIDES", True).split():
+        if p in multiprov:
+            continue
+        p = p.replace("/", "_")
+        with open(provdir + p, "w") as f:
+            f.write(pn)
 }
 
 SSTATETASKS += "do_populate_sysroot"



More information about the Openembedded-commits mailing list