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]

(From OE-Core rev: 9e696b9d32e33ba37dc09ff312328e540fc25de2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2014-03-20 11:39:20 +00:00
parent 21169c3042
commit bdbc158b47
1 changed files with 10 additions and 0 deletions

View File

@ -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"