summaryrefslogtreecommitdiffstats
path: root/meta/lib
diff options
context:
space:
mode:
authorJoshua Watt <jpewhacker@gmail.com>2023-03-27 15:05:27 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-04-01 20:23:23 +0100
commit3cf950b245b6407cb9c5077016217975f8cd92ac (patch)
tree1a6b376b850a35e5c331f54b16c94b3faae21373 /meta/lib
parent7e24067f7819e09b3093a2d76a7f3761d3a4b475 (diff)
downloadpoky-3cf950b245b6407cb9c5077016217975f8cd92ac.tar.gz
classes/package: Add extended packaged data
Adds extended package data which is encoded as JSON which allows it to encode more structure than the "flat" package data files. The extended data might be much larger than the standard package data, so it is not read by default and instead requires oe.packagedata.read_subpkgdata_extended() to be called Currently, the file sizes and ELF debug sources are saved off into the extended package data (cherry picked from commit db9cf430e54ae68da80fbc3fba80ce88d8df164d) (From OE-Core rev: 2318cb79ef1652fb19d696a8d43826e39c22834e) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Reviewed-by: Saul Wold <saul.wold@windriver.com> Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib')
-rw-r--r--meta/lib/oe/packagedata.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/meta/lib/oe/packagedata.py b/meta/lib/oe/packagedata.py
index a82085a792..00f7dc1f3d 100644
--- a/meta/lib/oe/packagedata.py
+++ b/meta/lib/oe/packagedata.py
@@ -57,6 +57,18 @@ def read_subpkgdata_dict(pkg, d):
57 ret[newvar] = subd[var] 57 ret[newvar] = subd[var]
58 return ret 58 return ret
59 59
60def read_subpkgdata_extended(pkg, d):
61 import json
62 import bb.compress.zstd
63
64 fn = d.expand("${PKGDATA_DIR}/extended/%s.json.zstd" % pkg)
65 try:
66 num_threads = int(d.getVar("BB_NUMBER_THREADS"))
67 with bb.compress.zstd.open(fn, "rt", encoding="utf-8", num_threads=num_threads) as f:
68 return json.load(f)
69 except FileNotFoundError:
70 return None
71
60def _pkgmap(d): 72def _pkgmap(d):
61 """Return a dictionary mapping package to recipe name.""" 73 """Return a dictionary mapping package to recipe name."""
62 74