diff mbox series

lib/spdx30_tasks: Report all missing providers

Message ID 20240903154201.1695413-1-JPEWhacker@gmail.com
State Accepted, archived
Commit fc96244f424c8b4fbace39dc4af8a4e97f1a104e
Headers show
Series lib/spdx30_tasks: Report all missing providers | expand

Commit Message

Joshua Watt Sept. 3, 2024, 3:42 p.m. UTC
Instead of failing on the first missing provider, collect all of them
and report them all as it is more convenient for end users trying to fix
problems

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
---
 meta/lib/oe/spdx30_tasks.py | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/meta/lib/oe/spdx30_tasks.py b/meta/lib/oe/spdx30_tasks.py
index 4864d6252a6..4da52da654d 100644
--- a/meta/lib/oe/spdx30_tasks.py
+++ b/meta/lib/oe/spdx30_tasks.py
@@ -953,10 +953,12 @@  def collect_build_package_inputs(d, objset, build, packages):
     providers = oe.spdx_common.collect_package_providers(d)
 
     build_deps = set()
+    missing_providers = set()
 
     for name in sorted(packages.keys()):
         if name not in providers:
-            bb.fatal("Unable to find SPDX provider for '%s'" % name)
+            missing_providers.add(name)
+            continue
 
         pkg_name, pkg_hashfn = providers[name]
 
@@ -970,6 +972,11 @@  def collect_build_package_inputs(d, objset, build, packages):
         )
         build_deps.add(pkg_spdx._id)
 
+    if missing_providers:
+        bb.fatal(
+            f"Unable to find SPDX provider(s) for: {', '.join(sorted(missing_providers))}"
+        )
+
     if build_deps:
         objset.new_scoped_relationship(
             [build],