recipe_sanity.bbclass: skip DataSmart in recipe_sanity_eh()

Fixed:
$ bitbake quilt -crecipe_sanity
  File "/path/to/poky/bitbake/lib/bb/siggen.py", line 261, in dump_sigtask
    p = pickle.dump(data, stream, -1)
PicklingError: Can't pickle <COWDict Level: 1 Current Keys: 0>:
attribute lookup bb.COW.C failed

This is because of:
cfgdata[k] = d.getVar(k, 0)

If d.getVar(k, 0) is a DataSmart (for example, BB_ORIGENV), it won't
have the attribute of bb.COW.C, so the error happend.

(From OE-Core rev: 9979f8ad588564cd9d177e24a28ceefefec4df7d)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Robert Yang 2016-02-19 00:48:35 -08:00 committed by Richard Purdie
parent 2d293bd8b3
commit bee556aa0d
1 changed files with 2 additions and 3 deletions

View File

@ -143,9 +143,8 @@ python recipe_sanity_eh () {
cfgdata = {}
for k in d.keys():
#for k in ["S", "PR", "PV", "PN", "DESCRIPTION", "LICENSE", "DEPENDS",
# "SECTION"]:
cfgdata[k] = d.getVar(k, 0)
if not isinstance(d.getVar(k, 0), bb.data_smart.DataSmart):
cfgdata[k] = d.getVar(k, 0)
d.setVar("__recipe_sanity_cfgdata", cfgdata)
#d.setVar("__recipe_sanity_cfgdata", d)