packagedata: Add error message if multiple recipes try to write the same package

If multiple recipes try and write the same package it resulted in a
rather confusing traceback and unintuitive error. This patch
prints a human readable error instead.

[YOCTO #3645]

(From OE-Core rev: 6f817779af77fdb0b861297f0f43c4c6607ce6f0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2013-01-21 22:49:50 +00:00
parent 932a4cdf4b
commit 1f8f6fe4eb
1 changed files with 6 additions and 1 deletions

View File

@ -1,7 +1,8 @@
python read_subpackage_metadata () {
import oe.packagedata
data = oe.packagedata.read_pkgdata(d.getVar('PN', True), d)
pn = d.getVar('PN', True)
data = oe.packagedata.read_pkgdata(pn, d)
for key in data.keys():
d.setVar(key, data[key])
@ -9,5 +10,9 @@ python read_subpackage_metadata () {
for pkg in d.getVar('PACKAGES', True).split():
sdata = oe.packagedata.read_subpkgdata(pkg, d)
for key in sdata.keys():
if key == "PN":
if sdata[key] != pn:
bb.fatal("Recipe %s is trying to create package %s which was already written by recipe %s. This will cause corruption, please resolve this and only provide the package from one recipe or the other or only build one of the recipes." % (pn, pkg, sdata[key]))
continue
d.setVar(key, sdata[key])
}