summaryrefslogtreecommitdiffstats
path: root/meta/classes
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2013-12-05 11:11:47 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-12-05 14:25:30 +0000
commit5c69ae26cd71fa3fdda31c9e7d112c26c9653fd8 (patch)
tree2a240e287e06a9d4c3486d382fd371834ffb00b9 /meta/classes
parentb2a9b9152bf6d4f48fc4d97e0f1ae18144707486 (diff)
downloadast2050-yocto-poky-5c69ae26cd71fa3fdda31c9e7d112c26c9653fd8.zip
ast2050-yocto-poky-5c69ae26cd71fa3fdda31c9e7d112c26c9653fd8.tar.gz
classes/buildhistory: fix reading of package-specific values from pkgdata
When writing out variable values to pkgdata, if the value has been set in the datastore with an override for the package, we use the package name override in the pkgdata key as well; however the recently added code to read pkgdata in buildhistory.bbclass was just using the override where we normally expect to have it. However, if a recipe overrides one of the values that is normally set for the recipe on a per-package basis (e.g. the external-sourcery-toolchain recipe sets PKGV this way) then this led to KeyErrors. Re-write the pkgdata loading code to always strip off the package name override if it is present. (From OE-Core rev: e40e8e574b3688400a668d3ad76b6cef1920e3e0) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r--meta/classes/buildhistory.bbclass25
1 files changed, 14 insertions, 11 deletions
diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass
index d25496d..1e6d968 100644
--- a/meta/classes/buildhistory.bbclass
+++ b/meta/classes/buildhistory.bbclass
@@ -187,7 +187,10 @@ python buildhistory_emit_pkghistory() {
with open(os.path.join(pkgdata_dir, 'runtime', pkg)) as f:
for line in f.readlines():
item = line.rstrip('\n').split(': ', 1)
- pkgdata[item[0]] = item[1].decode('string_escape')
+ key = item[0]
+ if key.endswith('_' + pkg):
+ key = key[:-len(pkg)-1]
+ pkgdata[key] = item[1].decode('string_escape')
pkge = pkgdata.get('PKGE', '0')
pkgv = pkgdata['PKGV']
@@ -211,19 +214,19 @@ python buildhistory_emit_pkghistory() {
pkginfo.pe = pkgdata.get('PE', '0')
pkginfo.pv = pkgdata['PV']
pkginfo.pr = pkgdata['PR']
- pkginfo.pkg = pkgdata['PKG_%s' % pkg]
+ pkginfo.pkg = pkgdata['PKG']
pkginfo.pkge = pkge
pkginfo.pkgv = pkgv
pkginfo.pkgr = pkgr
- pkginfo.rprovides = sortpkglist(squashspaces(pkgdata.get('RPROVIDES_%s' % pkg, "")))
- pkginfo.rdepends = sortpkglist(squashspaces(pkgdata.get('RDEPENDS_%s' % pkg, "")))
- pkginfo.rrecommends = sortpkglist(squashspaces(pkgdata.get('RRECOMMENDS_%s' % pkg, "")))
- pkginfo.rsuggests = sortpkglist(squashspaces(pkgdata.get('RSUGGESTS_%s' % pkg, "")))
- pkginfo.rreplaces = sortpkglist(squashspaces(pkgdata.get('RREPLACES_%s' % pkg, "")))
- pkginfo.rconflicts = sortpkglist(squashspaces(pkgdata.get('RCONFLICTS_%s' % pkg, "")))
- pkginfo.files = squashspaces(pkgdata.get('FILES_%s' % pkg, ""))
+ pkginfo.rprovides = sortpkglist(squashspaces(pkgdata.get('RPROVIDES', "")))
+ pkginfo.rdepends = sortpkglist(squashspaces(pkgdata.get('RDEPENDS', "")))
+ pkginfo.rrecommends = sortpkglist(squashspaces(pkgdata.get('RRECOMMENDS', "")))
+ pkginfo.rsuggests = sortpkglist(squashspaces(pkgdata.get('RSUGGESTS', "")))
+ pkginfo.rreplaces = sortpkglist(squashspaces(pkgdata.get('RREPLACES', "")))
+ pkginfo.rconflicts = sortpkglist(squashspaces(pkgdata.get('RCONFLICTS', "")))
+ pkginfo.files = squashspaces(pkgdata.get('FILES', ""))
for filevar in pkginfo.filevars:
- pkginfo.filevars[filevar] = pkgdata.get('%s_%s' % (filevar, pkg), "")
+ pkginfo.filevars[filevar] = pkgdata.get(filevar, "")
# Gather information about packaged files
val = pkgdata.get('FILES_INFO', '')
@@ -232,7 +235,7 @@ python buildhistory_emit_pkghistory() {
filelist.sort()
pkginfo.filelist = " ".join(filelist)
- pkginfo.size = int(pkgdata['PKGSIZE_%s' % pkg])
+ pkginfo.size = int(pkgdata['PKGSIZE'])
write_pkghistory(pkginfo, d)
}
OpenPOWER on IntegriCloud