diff options
author | Richard Purdie <rpurdie@linux.intel.com> | 2007-08-23 22:52:55 +0000 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2007-08-23 22:52:55 +0000 |
commit | b050179bb03ee1a540ceb5236bde76d459417fbf (patch) | |
tree | 2a6ec088a7938f7bba6012379993b05c3bf5edfb /lib/bb/providers.py | |
parent | 72980f55b16ddce236e54bdee41a022da0c57e4d (diff) | |
download | bitbake-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.py | 20 |
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 |