From dd5475d8e38fe28314ceccd184fb1d5b31d2107d Mon Sep 17 00:00:00 2001 From: Joshua Watt Date: Wed, 20 Dec 2023 11:02:34 -0700 Subject: 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. (From OE-Core rev: 68bdc219a4a819e83217f5b54c463624af8d3b9e) Signed-off-by: Joshua Watt Signed-off-by: Richard Purdie --- meta/lib/oe/packagedata.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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 -- cgit v1.2.3-54-g00ecf