]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commitdiff
classes/create-spdx: Add SHA1 to index file
authorJoshua Watt <JPEWhacker@gmail.com>
Wed, 1 Sep 2021 13:44:43 +0000 (08:44 -0500)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 3 Sep 2021 08:03:36 +0000 (09:03 +0100)
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/create-spdx.bbclass
meta/lib/oe/sbom.py

index e49d4d7e3cef4a69fe19afeded9f281dc09915ce..5adad590659eafa7fc219262b4f7cbb8a1c1ec2e 100644 (file)
@@ -627,7 +627,7 @@ python image_combine_spdx() {
                 visited_docs.add(path)
 
                 with path.open("rb") as f:
-                    doc = oe.spdx.SPDXDocument.from_json(f)
+                    doc, sha1 = oe.sbom.read_doc(f)
                     f.seek(0)
 
                     if doc.documentNamespace in visited_docs:
@@ -651,6 +651,7 @@ python image_combine_spdx() {
                     index["documents"].append({
                         "filename": info.name,
                         "documentNamespace": doc.documentNamespace,
+                        "sha1": sha1,
                     })
 
                 for ref in doc.externalDocumentRefs:
index d40e5b792f7c64b6ad2a91c72f1554ed1074fb2a..294feee10bead0ca948e27db931d4ed2c2aa79d9 100644 (file)
@@ -45,11 +45,21 @@ def write_doc(d, spdx_doc, subdir):
     return doc_sha1
 
 
-def read_doc(filename):
+def read_doc(fn):
     import hashlib
     import oe.spdx
-
-    with filename.open("rb") as f:
+    import io
+    import contextlib
+
+    @contextlib.contextmanager
+    def get_file():
+        if isinstance(fn, io.IOBase):
+            yield fn
+        else:
+            with fn.open("rb") as f:
+                yield f
+
+    with get_file() as f:
         sha1 = hashlib.sha1()
         while True:
             chunk = f.read(4096)