mirror of
https://git.yoctoproject.org/poky
synced 2026-06-01 00:59:48 +00:00
buildhistory.bbclass: Rework to use read_subpackage_metadata
Using this mechanism ensures that we have a single point to implement the loading of the package and subpackage meta data. This also then allows the buildhistory class to use the regular datastore vs it's own custom arrays for processing history items. (From OE-Core rev: 155ae6a3fe84c25904ffe7058e125bb4a28e2b45) Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
7ac426e9bd
commit
5cde141ef1
@@ -258,20 +258,15 @@ python buildhistory_emit_pkghistory() {
|
||||
rcpinfo.config = sortlist(oe.utils.squashspaces(d.getVar('PACKAGECONFIG') or ""))
|
||||
write_recipehistory(rcpinfo, d)
|
||||
|
||||
pkgdest = d.getVar('PKGDEST')
|
||||
for pkg in packagelist:
|
||||
pkgdata = {}
|
||||
with open(os.path.join(pkgdata_dir, 'runtime', pkg)) as f:
|
||||
for line in f.readlines():
|
||||
item = line.rstrip('\n').split(': ', 1)
|
||||
key = item[0]
|
||||
if key.endswith('_' + pkg):
|
||||
key = key[:-len(pkg)-1]
|
||||
pkgdata[key] = item[1].encode('latin-1').decode('unicode_escape')
|
||||
bb.build.exec_func("read_subpackage_metadata", d)
|
||||
|
||||
pkge = pkgdata.get('PKGE', '0')
|
||||
pkgv = pkgdata['PKGV']
|
||||
pkgr = pkgdata['PKGR']
|
||||
for pkg in packagelist:
|
||||
localdata = d.createCopy()
|
||||
localdata.setVar('OVERRIDES', d.getVar("OVERRIDES", False) + ":" + pkg)
|
||||
|
||||
pkge = localdata.getVar("PKGE") or '0'
|
||||
pkgv = localdata.getVar("PKGV")
|
||||
pkgr = localdata.getVar("PKGR")
|
||||
#
|
||||
# Find out what the last version was
|
||||
# Make sure the version did not decrease
|
||||
@@ -288,31 +283,31 @@ python buildhistory_emit_pkghistory() {
|
||||
|
||||
pkginfo = PackageInfo(pkg)
|
||||
# Apparently the version can be different on a per-package basis (see Python)
|
||||
pkginfo.pe = pkgdata.get('PE', '0')
|
||||
pkginfo.pv = pkgdata['PV']
|
||||
pkginfo.pr = pkgdata['PR']
|
||||
pkginfo.pkg = pkgdata['PKG']
|
||||
pkginfo.pe = localdata.getVar("PE") or '0'
|
||||
pkginfo.pv = localdata.getVar("PV")
|
||||
pkginfo.pr = localdata.getVar("PR")
|
||||
pkginfo.pkg = localdata.getVar("PKG")
|
||||
pkginfo.pkge = pkge
|
||||
pkginfo.pkgv = pkgv
|
||||
pkginfo.pkgr = pkgr
|
||||
pkginfo.rprovides = sortpkglist(oe.utils.squashspaces(pkgdata.get('RPROVIDES', "")))
|
||||
pkginfo.rdepends = sortpkglist(oe.utils.squashspaces(pkgdata.get('RDEPENDS', "")))
|
||||
pkginfo.rrecommends = sortpkglist(oe.utils.squashspaces(pkgdata.get('RRECOMMENDS', "")))
|
||||
pkginfo.rsuggests = sortpkglist(oe.utils.squashspaces(pkgdata.get('RSUGGESTS', "")))
|
||||
pkginfo.rreplaces = sortpkglist(oe.utils.squashspaces(pkgdata.get('RREPLACES', "")))
|
||||
pkginfo.rconflicts = sortpkglist(oe.utils.squashspaces(pkgdata.get('RCONFLICTS', "")))
|
||||
pkginfo.files = oe.utils.squashspaces(pkgdata.get('FILES', ""))
|
||||
pkginfo.rprovides = sortpkglist(oe.utils.squashspaces(localdata.getVar("RPROVIDES") or ""))
|
||||
pkginfo.rdepends = sortpkglist(oe.utils.squashspaces(localdata.getVar("RDEPENDS") or ""))
|
||||
pkginfo.rrecommends = sortpkglist(oe.utils.squashspaces(localdata.getVar("RRECOMMENDS") or ""))
|
||||
pkginfo.rsuggests = sortpkglist(oe.utils.squashspaces(localdata.getVar("RSUGGESTS") or ""))
|
||||
pkginfo.replaces = sortpkglist(oe.utils.squashspaces(localdata.getVar("RREPLACES") or ""))
|
||||
pkginfo.rconflicts = sortpkglist(oe.utils.squashspaces(localdata.getVar("RCONFLICTS") or ""))
|
||||
pkginfo.files = oe.utils.squashspaces(localdata.getVar("FILES") or "")
|
||||
for filevar in pkginfo.filevars:
|
||||
pkginfo.filevars[filevar] = pkgdata.get(filevar, "")
|
||||
pkginfo.filevars[filevar] = localdata.getVar(filevar) or ""
|
||||
|
||||
# Gather information about packaged files
|
||||
val = pkgdata.get('FILES_INFO', '')
|
||||
val = localdata.getVar('FILES_INFO') or ''
|
||||
dictval = json.loads(val)
|
||||
filelist = list(dictval.keys())
|
||||
filelist.sort()
|
||||
pkginfo.filelist = " ".join([shlex.quote(x) for x in filelist])
|
||||
|
||||
pkginfo.size = int(pkgdata['PKGSIZE'])
|
||||
pkginfo.size = int(localdata.getVar('PKGSIZE') or '0')
|
||||
|
||||
write_pkghistory(pkginfo, d)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user