From c41386b78aa53e0bf081cd973c950b88126670a7 Mon Sep 17 00:00:00 2001 From: Charlie Davies Date: Thu, 18 Feb 2021 20:52:18 +0000 Subject: bitbake: providers: check for REQUIRED_VERSION in _filterProviders Before the REQUIRED_VERSION variable was introduced the PREFERRED_VERSION variable allowed for a fallback to the next most suitable version. Since REQUIRED_VERSION does not allow a fallback to a different version implement a check in the _filterProviders function to make sure that if a requested REQUIRED_VERSION is not found then the function returns no eligible providers have been found. Fixes [YOCTO #10096] Signed-off-by: Charlie Davies Signed-off-by: Richard Purdie --- lib/bb/providers.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/bb/providers.py b/lib/bb/providers.py index 09e5701f2..95152323e 100644 --- a/lib/bb/providers.py +++ b/lib/bb/providers.py @@ -256,10 +256,13 @@ def _filterProviders(providers, item, cfgData, dataCache): logger.debug("providers for %s are: %s", item, list(sorted(pkg_pn.keys()))) - # First add PREFERRED_VERSIONS + # First add REQUIRED_VERSIONS or PREFERRED_VERSIONS for pn in sorted(pkg_pn): sortpkg_pn[pn] = sortPriorities(pn, dataCache, pkg_pn) - preferred_versions[pn] = findPreferredProvider(pn, cfgData, dataCache, sortpkg_pn[pn], item) + preferred_ver, preferred_file, required = findPreferredProvider(pn, cfgData, dataCache, sortpkg_pn[pn], item) + if required and preferred_file is None: + return eligible + preferred_versions[pn] = (preferred_ver, preferred_file) if preferred_versions[pn][1]: eligible.append(preferred_versions[pn][1]) -- cgit 1.2.3-korg