packagedata: Add warnings if multiple recipes try to write the same package
PATCH 1/1 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]
---
meta/classes/packagedata.bbclass +6 -1
@@ -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]) }
Quoted 3 lines · Richard Purdie
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.
bitbake world found 2 more recipes creating the same package:
vim/gvim in meta-oe gnome-panel3_3.0.2.bb/gnome-panel_2.32.1.b in meta-gnome
But this error is a lot better then that traceback, maybe change commit message to say fatal errors instead of warnings.
Cheers,
Quoted 36 lines
[YOCTO #3645]
Signed-off-by Richard Purdie <[email protected]>---
meta/classes/packagedata.bbclass +6
-1@@ -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]) }_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Signature · 1 line
Martin 'JaMa' Jansa jabber: [email protected]