diff options
-rw-r--r-- | meta/classes/buildhistory.bbclass | 49 |
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 | ||