]> code.ossystems Code Review - openembedded-core.git/commitdiff
packagedata: Add error message if multiple recipes try to write the same package
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 21 Jan 2013 22:49:50 +0000 (22:49 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 24 Jan 2013 20:07:59 +0000 (20:07 +0000)
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]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/packagedata.bbclass

index 790d874c1cb105ba8bf46e7e609318c01a879c13..120cd6445fb8ca1f4e91e5f8d7cf067cb2d34f5d 100644 (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])
 }