diff mbox series

[RFC,1/2] lib/packagedata.py: Add API to iterate over rprovides

Message ID 20231220180235.3502418-1-JPEWhacker@gmail.com
State Accepted, archived
Commit 68bdc219a4a819e83217f5b54c463624af8d3b9e
Headers show
Series [RFC,1/2] lib/packagedata.py: Add API to iterate over rprovides | expand

Commit Message

Joshua Watt Dec. 20, 2023, 6:02 p.m. UTC
Adds an API that makes it easier to iterate over the package data for a
all providers of a runtime dependency.

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

Patch

diff --git a/meta/lib/oe/packagedata.py b/meta/lib/oe/packagedata.py
index d59f6f5a569..2d1d6ddeb75 100644
--- a/meta/lib/oe/packagedata.py
+++ b/meta/lib/oe/packagedata.py
@@ -116,6 +116,21 @@  def recipename(pkg, d):
 
     return pkgmap(d).get(pkg)
 
+def foreach_runtime_provider_pkgdata(d, rdep, include_rdep=False):
+    pkgdata_dir = d.getVar("PKGDATA_DIR")
+    possibles = set()
+    try:
+        possibles |= set(os.listdir("%s/runtime-rprovides/%s/" % (pkgdata_dir, rdep)))
+    except OSError:
+        pass
+
+    if include_rdep:
+        possibles.add(rdep)
+
+    for p in sorted(list(possibles)):
+        rdep_data = read_subpkgdata(p, d)
+        yield p, rdep_data
+
 def get_package_mapping(pkg, basepkg, d, depversions=None):
     import oe.packagedata