diff options
Diffstat (limited to 'meta/classes/packagedata.bbclass')
| -rw-r--r-- | meta/classes/packagedata.bbclass | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/meta/classes/packagedata.bbclass b/meta/classes/packagedata.bbclass new file mode 100644 index 0000000000..d1aedf2289 --- /dev/null +++ b/meta/classes/packagedata.bbclass | |||
| @@ -0,0 +1,26 @@ | |||
| 1 | python read_subpackage_metadata () { | ||
| 2 | import oe.packagedata | ||
| 3 | |||
| 4 | vars = { | ||
| 5 | "PN" : d.getVar('PN', True), | ||
| 6 | "PE" : d.getVar('PE', True), | ||
| 7 | "PV" : d.getVar('PV', True), | ||
| 8 | "PR" : d.getVar('PR', True), | ||
| 9 | } | ||
| 10 | |||
| 11 | data = oe.packagedata.read_pkgdata(vars["PN"], d) | ||
| 12 | |||
| 13 | for key in data.keys(): | ||
| 14 | d.setVar(key, data[key]) | ||
| 15 | |||
| 16 | for pkg in d.getVar('PACKAGES', True).split(): | ||
| 17 | sdata = oe.packagedata.read_subpkgdata(pkg, d) | ||
| 18 | for key in sdata.keys(): | ||
| 19 | if key in vars: | ||
| 20 | if sdata[key] != vars[key]: | ||
| 21 | if key == "PN": | ||
| 22 | 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])) | ||
| 23 | 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])) | ||
| 24 | continue | ||
| 25 | d.setVar(key, sdata[key]) | ||
| 26 | } | ||
