Skip to contentSkip to conversation

packagedata: Add warnings if multiple recipes try to write the same package

PATCH In review Richard Purdie 2 participants 2 messages Jan 21, 2013 – Jan 22, 2013

lore
Share & tools
lore
#0 lore raw

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
index 790d874..120cd64 100644
@@ -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])
 }
Acked-by on v1 1/1
#1 lore raw
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]

---

meta/classes/packagedata.bbclass +6 -1
index 790d874..120cd64 100644
@@ -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]