summaryrefslogtreecommitdiffstats
path: root/meta/lib
diff options
context:
space:
mode:
authorMarta Rybczynska <rybczynska@gmail.com>2022-04-22 16:17:50 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-05-03 17:50:06 +0100
commitdcd40cfa375c272eda1ccc3063a48c5ec0a50ab5 (patch)
tree51411d9ff97fc5923fb1652ac0a41d4ce9906b01 /meta/lib
parent5b0093ecee4b249da588524ec13c5a86029fe1c1 (diff)
downloadpoky-dcd40cfa375c272eda1ccc3063a48c5ec0a50ab5.tar.gz
cve-check: add json format
Backport to dunfell from master df567de36ae5964bee433ebb97e8bf702034994a Add an option to output the CVE check in a JSON-based format. This format is easier to parse in software than the original text-based one and allows post-processing by other tools. Output formats are now handed by CVE_CHECK_FORMAT_TEXT and CVE_CHECK_FORMAT_JSON. The text format is enabled by default to maintain compatibility, while the JSON format is disabled by default. The JSON output format gets generated in a similar way to the text format with the exception of the manifest: appending to JSON arrays requires parsing the file. Because of that we first write JSON fragments and then assemble them in one pass at the end. (From OE-Core rev: 92b6011ab25fd36e2f8900a4db6883cdebc3cd3d) Signed-off-by: Marta Rybczynska <marta.rybczynska@huawei.com> 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/cve_check.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/meta/lib/oe/cve_check.py b/meta/lib/oe/cve_check.py
index a1d7c292af..1d3c775bbe 100644
--- a/meta/lib/oe/cve_check.py
+++ b/meta/lib/oe/cve_check.py
@@ -63,3 +63,19 @@ def _cmpkey(release, patch_l, pre_l, pre_v):
63 else: 63 else:
64 _pre = float(pre_v) if pre_v else float('-inf') 64 _pre = float(pre_v) if pre_v else float('-inf')
65 return _release, _patch, _pre 65 return _release, _patch, _pre
66
67def cve_check_merge_jsons(output, data):
68 """
69 Merge the data in the "package" property to the main data file
70 output
71 """
72 if output["version"] != data["version"]:
73 bb.error("Version mismatch when merging JSON outputs")
74 return
75
76 for product in output["package"]:
77 if product["name"] == data["package"][0]["name"]:
78 bb.error("Error adding the same package twice")
79 return
80
81 output["package"].append(data["package"][0])