summaryrefslogtreecommitdiffstats
path: root/lib/bb/providers.py
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2006-11-13 00:18:18 +0000
committerRichard Purdie <rpurdie@linux.intel.com>2006-11-13 00:18:18 +0000
commit06c2839b59d436cef634fb3043a2d01a71557c94 (patch)
treeb893109ed60263dcafd59eaf1077c7b7ef09d438 /lib/bb/providers.py
parent6370c39e7072d1dbecdc9893a4dbd9e4c8ba8602 (diff)
downloadbitbake-06c2839b59d436cef634fb3043a2d01a71557c94.tar.gz
providers.py: Make PREFERRED_PROVIDER_foobar defaults to foobar if available
Diffstat (limited to 'lib/bb/providers.py')
-rw-r--r--lib/bb/providers.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/bb/providers.py b/lib/bb/providers.py
index 8d5e15be7..3cb7cc1f0 100644
--- a/lib/bb/providers.py
+++ b/lib/bb/providers.py
@@ -146,6 +146,19 @@ def filterProviders(providers, item, cfgData, dataCache, build_cache_fail = {}):
bb.msg.error(bb.msg.domain.Provider, "no eligible providers for %s" % item)
return 0
+
+ # If pn == item, give it a slight default preference
+ # This means PREFERRED_PROVIDER_foobar defaults to foobar if available
+ for p in providers:
+ pn = dataCache.pkg_fn[p]
+ if pn != item:
+ continue
+ (newvers, fn) = preferred_versions[pn]
+ if not fn in eligible:
+ continue
+ eligible.remove(fn)
+ eligible = [fn] + eligible
+
# look to see if one of them is already staged, or marked as preferred.
# if so, bump it to the head of the queue
for p in providers:
@@ -168,7 +181,6 @@ def filterProviders(providers, item, cfgData, dataCache, build_cache_fail = {}):
bb.msg.note(2, bb.msg.domain.Provider, "%s" % extra_chat)
eligible.remove(fn)
eligible = [fn] + eligible
- discriminated = True
break
return eligible