diff options
Diffstat (limited to 'bitbake-dev/lib/bb/providers.py')
| -rw-r--r-- | bitbake-dev/lib/bb/providers.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/bitbake-dev/lib/bb/providers.py b/bitbake-dev/lib/bb/providers.py index 6c1cf78eb3..8617251ca3 100644 --- a/bitbake-dev/lib/bb/providers.py +++ b/bitbake-dev/lib/bb/providers.py | |||
| @@ -63,6 +63,18 @@ def sortPriorities(pn, dataCache, pkg_pn = None): | |||
| 63 | 63 | ||
| 64 | return tmp_pn | 64 | return tmp_pn |
| 65 | 65 | ||
| 66 | def preferredVersionMatch(pe, pv, pr, preferred_e, preferred_v, preferred_r): | ||
| 67 | """ | ||
| 68 | Check if the version pe,pv,pr is the preferred one. | ||
| 69 | If there is preferred version defined and ends with '%', then pv has to start with that version after removing the '%' | ||
| 70 | """ | ||
| 71 | if (pr == preferred_r or preferred_r == None): | ||
| 72 | if (pe == preferred_e or preferred_e == None): | ||
| 73 | if preferred_v == pv: | ||
| 74 | return True | ||
| 75 | if preferred_v != None and preferred_v.endswith('%') and pv.startswith(preferred_v[:len(preferred_v)-1]): | ||
| 76 | return True | ||
| 77 | return False | ||
| 66 | 78 | ||
| 67 | def findPreferredProvider(pn, cfgData, dataCache, pkg_pn = None, item = None): | 79 | def findPreferredProvider(pn, cfgData, dataCache, pkg_pn = None, item = None): |
| 68 | """ | 80 | """ |
| @@ -96,7 +108,7 @@ def findPreferredProvider(pn, cfgData, dataCache, pkg_pn = None, item = None): | |||
| 96 | for file_set in pkg_pn: | 108 | for file_set in pkg_pn: |
| 97 | for f in file_set: | 109 | for f in file_set: |
| 98 | pe,pv,pr = dataCache.pkg_pepvpr[f] | 110 | pe,pv,pr = dataCache.pkg_pepvpr[f] |
| 99 | if preferred_v == pv and (preferred_r == pr or preferred_r == None) and (preferred_e == pe or preferred_e == None): | 111 | if preferredVersionMatch(pe, pv, pr, preferred_e, preferred_v, preferred_r): |
| 100 | preferred_file = f | 112 | preferred_file = f |
| 101 | preferred_ver = (pe, pv, pr) | 113 | preferred_ver = (pe, pv, pr) |
| 102 | break | 114 | break |
