summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/buildhistory.bbclass49
1 files changed, 22 insertions, 27 deletions
diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass
index 805e976ac5..fbdb1d3161 100644
--- a/meta/classes/buildhistory.bbclass
+++ b/meta/classes/buildhistory.bbclass
@@ -258,20 +258,15 @@ python buildhistory_emit_pkghistory() {
258 rcpinfo.config = sortlist(oe.utils.squashspaces(d.getVar('PACKAGECONFIG') or "")) 258 rcpinfo.config = sortlist(oe.utils.squashspaces(d.getVar('PACKAGECONFIG') or ""))
259 write_recipehistory(rcpinfo, d) 259 write_recipehistory(rcpinfo, d)
260 260
261 pkgdest = d.getVar('PKGDEST') 261 bb.build.exec_func("read_subpackage_metadata", d)
262
262 for pkg in packagelist: 263 for pkg in packagelist:
263 pkgdata = {} 264 localdata = d.createCopy()
264 with open(os.path.join(pkgdata_dir, 'runtime', pkg)) as f: 265 localdata.setVar('OVERRIDES', d.getVar("OVERRIDES", False) + ":" + pkg)
265 for line in f.readlines(): 266
266 item = line.rstrip('\n').split(': ', 1) 267 pkge = localdata.getVar("PKGE") or '0'
267 key = item[0] 268 pkgv = localdata.getVar("PKGV")
268 if key.endswith('_' + pkg): 269 pkgr = localdata.getVar("PKGR")
269 key = key[:-len(pkg)-1]
270 pkgdata[key] = item[1].encode('latin-1').decode('unicode_escape')
271
272 pkge = pkgdata.get('PKGE', '0')
273 pkgv = pkgdata['PKGV']
274 pkgr = pkgdata['PKGR']
275 # 270 #
276 # Find out what the last version was 271 # Find out what the last version was
277 # Make sure the version did not decrease 272 # Make sure the version did not decrease
@@ -288,31 +283,31 @@ python buildhistory_emit_pkghistory() {
288 283
289 pkginfo = PackageInfo(pkg) 284 pkginfo = PackageInfo(pkg)
290 # Apparently the version can be different on a per-package basis (see Python) 285 # Apparently the version can be different on a per-package basis (see Python)
291 pkginfo.pe = pkgdata.get('PE', '0') 286 pkginfo.pe = localdata.getVar("PE") or '0'
292 pkginfo.pv = pkgdata['PV'] 287 pkginfo.pv = localdata.getVar("PV")
293 pkginfo.pr = pkgdata['PR'] 288 pkginfo.pr = localdata.getVar("PR")
294 pkginfo.pkg = pkgdata['PKG'] 289 pkginfo.pkg = localdata.getVar("PKG")
295 pkginfo.pkge = pkge 290 pkginfo.pkge = pkge
296 pkginfo.pkgv = pkgv 291 pkginfo.pkgv = pkgv
297 pkginfo.pkgr = pkgr 292 pkginfo.pkgr = pkgr
298 pkginfo.rprovides = sortpkglist(oe.utils.squashspaces(pkgdata.get('RPROVIDES', ""))) 293 pkginfo.rprovides = sortpkglist(oe.utils.squashspaces(localdata.getVar("RPROVIDES") or ""))
299 pkginfo.rdepends = sortpkglist(oe.utils.squashspaces(pkgdata.get('RDEPENDS', ""))) 294 pkginfo.rdepends = sortpkglist(oe.utils.squashspaces(localdata.getVar("RDEPENDS") or ""))
300 pkginfo.rrecommends = sortpkglist(oe.utils.squashspaces(pkgdata.get('RRECOMMENDS', ""))) 295 pkginfo.rrecommends = sortpkglist(oe.utils.squashspaces(localdata.getVar("RRECOMMENDS") or ""))
301 pkginfo.rsuggests = sortpkglist(oe.utils.squashspaces(pkgdata.get('RSUGGESTS', ""))) 296 pkginfo.rsuggests = sortpkglist(oe.utils.squashspaces(localdata.getVar("RSUGGESTS") or ""))
302 pkginfo.rreplaces = sortpkglist(oe.utils.squashspaces(pkgdata.get('RREPLACES', ""))) 297 pkginfo.replaces = sortpkglist(oe.utils.squashspaces(localdata.getVar("RREPLACES") or ""))
303 pkginfo.rconflicts = sortpkglist(oe.utils.squashspaces(pkgdata.get('RCONFLICTS', ""))) 298 pkginfo.rconflicts = sortpkglist(oe.utils.squashspaces(localdata.getVar("RCONFLICTS") or ""))
304 pkginfo.files = oe.utils.squashspaces(pkgdata.get('FILES', "")) 299 pkginfo.files = oe.utils.squashspaces(localdata.getVar("FILES") or "")
305 for filevar in pkginfo.filevars: 300 for filevar in pkginfo.filevars:
306 pkginfo.filevars[filevar] = pkgdata.get(filevar, "") 301 pkginfo.filevars[filevar] = localdata.getVar(filevar) or ""
307 302
308 # Gather information about packaged files 303 # Gather information about packaged files
309 val = pkgdata.get('FILES_INFO', '') 304 val = localdata.getVar('FILES_INFO') or ''
310 dictval = json.loads(val) 305 dictval = json.loads(val)
311 filelist = list(dictval.keys()) 306 filelist = list(dictval.keys())
312 filelist.sort() 307 filelist.sort()
313 pkginfo.filelist = " ".join([shlex.quote(x) for x in filelist]) 308 pkginfo.filelist = " ".join([shlex.quote(x) for x in filelist])
314 309
315 pkginfo.size = int(pkgdata['PKGSIZE']) 310 pkginfo.size = int(localdata.getVar('PKGSIZE') or '0')
316 311
317 write_pkghistory(pkginfo, d) 312 write_pkghistory(pkginfo, d)
318 313