mirror of
https://git.yoctoproject.org/poky
synced 2026-04-23 00:32:12 +02:00
classes-global/insane: Look up all runtime providers for file-rdeps
Uses the new foreach_runtime_provider_pkgdata() API to look up all possible runtime providers of a given dependency when resolving file-rdeps. This allows the check to correctly handle RPROVIDES for non-virtual dependencies (From OE-Core rev: 018fa1b7cb5e6a362ebb45b93e52b0909a782ac9) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
dd5475d8e3
commit
cd125f1703
@@ -904,13 +904,7 @@ def package_qa_check_rdepends(pkg, pkgdest, skip, taskdeps, packages, d):
|
||||
if rdep_data and 'PN' in rdep_data and rdep_data['PN'] in taskdeps:
|
||||
continue
|
||||
if not rdep_data or not 'PN' in rdep_data:
|
||||
pkgdata_dir = d.getVar("PKGDATA_DIR")
|
||||
try:
|
||||
possibles = os.listdir("%s/runtime-rprovides/%s/" % (pkgdata_dir, rdepend))
|
||||
except OSError:
|
||||
possibles = []
|
||||
for p in possibles:
|
||||
rdep_data = oe.packagedata.read_subpkgdata(p, d)
|
||||
for _, rdep_data in oe.packagedata.foreach_runtime_provider_pkgdata(d, rdepend):
|
||||
if rdep_data and 'PN' in rdep_data and rdep_data['PN'] in taskdeps:
|
||||
break
|
||||
if rdep_data and 'PN' in rdep_data and rdep_data['PN'] in taskdeps:
|
||||
@@ -958,17 +952,17 @@ def package_qa_check_rdepends(pkg, pkgdest, skip, taskdeps, packages, d):
|
||||
# perl
|
||||
filerdepends.pop(rdep,None)
|
||||
|
||||
# For Saving the FILERPROVIDES, RPROVIDES and FILES_INFO
|
||||
rdep_data = oe.packagedata.read_subpkgdata(rdep, d)
|
||||
for key in rdep_data:
|
||||
if key.startswith("FILERPROVIDES:") or key.startswith("RPROVIDES:"):
|
||||
for subkey in bb.utils.explode_deps(rdep_data[key]):
|
||||
filerdepends.pop(subkey,None)
|
||||
# Add the files list to the rprovides
|
||||
if key.startswith("FILES_INFO:"):
|
||||
# Use eval() to make it as a dict
|
||||
for subkey in eval(rdep_data[key]):
|
||||
filerdepends.pop(subkey,None)
|
||||
for _, rdep_data in oe.packagedata.foreach_runtime_provider_pkgdata(d, rdep, True):
|
||||
for key in rdep_data:
|
||||
if key.startswith("FILERPROVIDES:") or key.startswith("RPROVIDES:"):
|
||||
for subkey in bb.utils.explode_deps(rdep_data[key]):
|
||||
filerdepends.pop(subkey,None)
|
||||
# Add the files list to the rprovides
|
||||
if key.startswith("FILES_INFO:"):
|
||||
# Use eval() to make it as a dict
|
||||
for subkey in eval(rdep_data[key]):
|
||||
filerdepends.pop(subkey,None)
|
||||
|
||||
if not filerdepends:
|
||||
# Break if all the file rdepends are met
|
||||
break
|
||||
|
||||
Reference in New Issue
Block a user