summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2014-03-20 11:39:20 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-03-24 10:21:06 +0000
commit9e696b9d32e33ba37dc09ff312328e540fc25de2 (patch)
tree694a40cbb3ff03c711296ff6d319250ee101b62c
parent053631bc3cf7c7c2d090decaa3b5e5690963e64a (diff)
downloadopenembedded-core-9e696b9d32e33ba37dc09ff312328e540fc25de2.tar.gz
openembedded-core-9e696b9d32e33ba37dc09ff312328e540fc25de2.tar.bz2
openembedded-core-9e696b9d32e33ba37dc09ff312328e540fc25de2.zip
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@linuxfoundation.org>
-rw-r--r--meta/classes/staging.bbclass10
1 files changed, 10 insertions, 0 deletions
diff --git a/meta/classes/staging.bbclass b/meta/classes/staging.bbclass
index d17a53ebef..c74cb99dfa 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"