[oe-commits] Richard Purdie : packagedata: Show error when trying to change PE/PV/ PR from runtime/pkgdata

git at git.openembedded.org git at git.openembedded.org
Fri Jun 28 08:53:59 UTC 2013


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

Author: Richard Purdie <richard.purdie at linuxfoundation.org>
Date:   Fri Jun 28 08:30:59 2013 +0000

packagedata: Show error when trying to change PE/PV/PR from runtime/pkgdata

PN/PE/PV/PR should never change between do_package and the following do_package_write_*
tasks. If any do change you would see build failure due to the wrong WORKDIR being
used for example.

This patch ensures that if something is going wrong we see the error earlier and
with some better warning about what the real problem is.

[YOCTO #4102 partial]

This is a rewritten version of a patch from Martin Jansa <martin.jansa at gmail.com>

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

---

 meta/classes/packagedata.bbclass |   18 +++++++++++++-----
 1 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/meta/classes/packagedata.bbclass b/meta/classes/packagedata.bbclass
index 120cd64..d1aedf2 100644
--- a/meta/classes/packagedata.bbclass
+++ b/meta/classes/packagedata.bbclass
@@ -1,8 +1,14 @@
 python read_subpackage_metadata () {
     import oe.packagedata
 
-    pn = d.getVar('PN', True)
-    data = oe.packagedata.read_pkgdata(pn, d)
+    vars = {
+        "PN" : d.getVar('PN', True), 
+        "PE" : d.getVar('PE', True), 
+        "PV" : d.getVar('PV', True),
+        "PR" : d.getVar('PR', True),
+    }
+
+    data = oe.packagedata.read_pkgdata(vars["PN"], d)
 
     for key in data.keys():
         d.setVar(key, data[key])
@@ -10,9 +16,11 @@ 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]))
+            if key in vars:
+                if sdata[key] != vars[key]:
+                    if 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." % (vars[key], pkg, sdata[key]))
+                    bb.fatal("Recipe %s is trying to change %s from '%s' to '%s'. This will cause do_package_write_* failures since the incorrect data will be used and they will be unable to find the right workdir." % (vars["PN"], key, vars[key], sdata[key]))
                 continue
             d.setVar(key, sdata[key])
 }



More information about the Openembedded-commits mailing list