summaryrefslogtreecommitdiffstats
path: root/meta/lib/oe/packagedata.py
diff options
context:
space:
mode:
authorJoshua Watt <JPEWhacker@gmail.com>2023-12-20 11:02:34 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-12-24 10:37:33 +0000
commit68bdc219a4a819e83217f5b54c463624af8d3b9e (patch)
tree34a14eec1c753d0ca2af7410a8f49360879b50e9 /meta/lib/oe/packagedata.py
parent0661d29a6482d9534d221b7d3d0e124cad62b13a (diff)
downloadopenembedded-core-68bdc219a4a819e83217f5b54c463624af8d3b9e.tar.gz
lib/packagedata.py: Add API to iterate over rprovides
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> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oe/packagedata.py')
-rw-r--r--meta/lib/oe/packagedata.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/meta/lib/oe/packagedata.py b/meta/lib/oe/packagedata.py
index d59f6f5a56..2d1d6ddeb7 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