diff options
author | Richard Purdie <rpurdie@linux.intel.com> | 2010-01-19 15:28:37 +0000 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2010-01-19 15:28:37 +0000 |
commit | 2d1203f446a3527e4d261828b3c10df249119007 (patch) | |
tree | bec4f825f68d180f8fe25b5c4359a1d826c26cd1 /lib | |
parent | 4508c49b463d9feaa15b6579ef495019282050e4 (diff) | |
download | bitbake-2d1203f446a3527e4d261828b3c10df249119007.tar.gz |
providers: Apply modified version of a patch from Martin Jansa <martin.jansa@gmail.com> to allow wildcards at the end of PREFERRED_VERSION strings
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/bb/providers.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/bb/providers.py b/lib/bb/providers.py index 6c1cf78eb..8617251ca 100644 --- a/lib/bb/providers.py +++ b/lib/bb/providers.py @@ -63,6 +63,18 @@ def sortPriorities(pn, dataCache, pkg_pn = None): return tmp_pn +def preferredVersionMatch(pe, pv, pr, preferred_e, preferred_v, preferred_r): + """ + Check if the version pe,pv,pr is the preferred one. + If there is preferred version defined and ends with '%', then pv has to start with that version after removing the '%' + """ + if (pr == preferred_r or preferred_r == None): + if (pe == preferred_e or preferred_e == None): + if preferred_v == pv: + return True + if preferred_v != None and preferred_v.endswith('%') and pv.startswith(preferred_v[:len(preferred_v)-1]): + return True + return False def findPreferredProvider(pn, cfgData, dataCache, pkg_pn = None, item = None): """ @@ -96,7 +108,7 @@ def findPreferredProvider(pn, cfgData, dataCache, pkg_pn = None, item = None): for file_set in pkg_pn: for f in file_set: pe,pv,pr = dataCache.pkg_pepvpr[f] - if preferred_v == pv and (preferred_r == pr or preferred_r == None) and (preferred_e == pe or preferred_e == None): + if preferredVersionMatch(pe, pv, pr, preferred_e, preferred_v, preferred_r): preferred_file = f preferred_ver = (pe, pv, pr) break |