[oe-commits] Richard Purdie : packagedata: Add warnings if multiple recipes try to write the same package

git at git.openembedded.org git at git.openembedded.org
Tue Jan 22 15:56:47 UTC 2013


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

Author: Richard Purdie <richard.purdie at linuxfoundation.org>
Date:   Mon Jan 21 22:49:50 2013 +0000

packagedata: Add warnings 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]

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

---

 meta/classes/packagedata.bbclass |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/meta/classes/packagedata.bbclass b/meta/classes/packagedata.bbclass
index 790d874..120cd64 100644
--- a/meta/classes/packagedata.bbclass
+++ b/meta/classes/packagedata.bbclass
@@ -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])
 }





More information about the Openembedded-commits mailing list