aboutsummaryrefslogtreecommitdiffstats
path: root/lib/bb/providers.py
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2007-08-23 22:52:55 +0000
committerRichard Purdie <rpurdie@linux.intel.com>2007-08-23 22:52:55 +0000
commitb050179bb03ee1a540ceb5236bde76d459417fbf (patch)
tree2a6ec088a7938f7bba6012379993b05c3bf5edfb /lib/bb/providers.py
parent72980f55b16ddce236e54bdee41a022da0c57e4d (diff)
downloadbitbake-b050179bb03ee1a540ceb5236bde76d459417fbf.tar.gz
providers.py: Sort providers by default preference as well as priority before processing
Diffstat (limited to 'lib/bb/providers.py')
-rw-r--r--lib/bb/providers.py20
1 files changed, 13 insertions, 7 deletions
diff --git a/lib/bb/providers.py b/lib/bb/providers.py
index 784230794..9e97316e9 100644
--- a/lib/bb/providers.py
+++ b/lib/bb/providers.py
@@ -34,7 +34,7 @@ class NoRProvider(Exception):
def sortPriorities(pn, dataCache, pkg_pn = None):
"""
- Reorder pkg_pn by file priority
+ Reorder pkg_pn by file priority and default preference
"""
if not pkg_pn:
@@ -44,14 +44,20 @@ def sortPriorities(pn, dataCache, pkg_pn = None):
priorities = {}
for f in files:
priority = dataCache.bbfile_priority[f]
+ preference = dataCache.pkg_dp[f]
if priority not in priorities:
- priorities[priority] = []
- priorities[priority].append(f)
- p_list = priorities.keys()
- p_list.sort(lambda a, b: a - b)
+ priorities[priority] = {}
+ if preference not in priorities[priority]:
+ priorities[priority][preference] = []
+ priorities[priority][preference].append(f)
+ pri_list = priorities.keys()
+ pri_list.sort(lambda a, b: a - b)
tmp_pn = []
- for p in p_list:
- tmp_pn = [priorities[p]] + tmp_pn
+ for pri in pri_list:
+ pref_list = priorities[pri].keys()
+ pref_list.sort(lambda a, b: a - b)
+ for pref in priorities[pri]:
+ tmp_pn = [priorities[pri][pref]] + tmp_pn
return tmp_pn