Index: providers.py =================================================================== --- providers.py (revision 753) +++ providers.py (working copy) @@ -70,7 +70,7 @@ for file_set in tmp_pn: for f in file_set: - pv,pr = dataCache.pkg_pvpr[f] + pe,pv,pr = dataCache.pkg_pepvpr[f] if preferred_v == pv and (preferred_r == pr or preferred_r == None): preferred_file = f preferred_ver = (pv, pr) @@ -97,16 +97,16 @@ latest_p = 0 latest_f = None for file_name in files: - pv,pr = dataCache.pkg_pvpr[file_name] + pe,pv,pr = dataCache.pkg_pepvpr[file_name] dp = dataCache.pkg_dp[file_name] - if (latest is None) or ((latest_p == dp) and (utils.vercmp(latest, (pv, pr)) < 0)) or (dp > latest_p): - latest = (pv, pr) + if (latest is None) or ((latest_p == dp) and (utils.vercmp(latest, (pe, pv, pr)) < 0)) or (dp > latest_p): + latest = (pe, pv, pr) latest_f = file_name latest_p = dp if preferred_file is None: preferred_file = latest_f - preferred_ver = latest + preferred_ver = latest[1:] return (latest,latest_f,preferred_ver, preferred_file) @@ -162,7 +162,7 @@ # if so, bump it to the head of the queue for p in providers: pn = dataCache.pkg_fn[p] - pv, pr = dataCache.pkg_pvpr[p] + pe, pv, pr = dataCache.pkg_pepvpr[p] stamp = '%s.do_populate_staging' % dataCache.stamp[p] if os.path.exists(stamp): Index: utils.py =================================================================== --- utils.py (revision 753) +++ utils.py (working copy) @@ -62,11 +62,13 @@ return -1 def vercmp(ta, tb): - (va, ra) = ta - (vb, rb) = tb + (ea, va, ra) = ta + (eb, vb, rb) = tb - r = vercmp_part(va, vb) + r = ea-eb if (r == 0): + r = vercmp_part(va, vb) + if (r == 0): r = vercmp_part(ra, rb) return r Index: cache.py =================================================================== --- cache.py (revision 753) +++ cache.py (working copy) @@ -251,6 +251,7 @@ """ pn = self.getVar('PN', file_name, True) + pe = int(self.getVar('PE', file_name, True) or "0") pv = self.getVar('PV', file_name, True) pr = self.getVar('PR', file_name, True) dp = int(self.getVar('DEFAULT_PREFERENCE', file_name, True) or "0") @@ -272,7 +273,7 @@ # build FileName to PackageName lookup table cacheData.pkg_fn[file_name] = pn - cacheData.pkg_pvpr[file_name] = (pv,pr) + cacheData.pkg_pepvpr[file_name] = (pe,pv,pr) cacheData.pkg_dp[file_name] = dp # Build forward and reverse provider hashes @@ -407,7 +408,7 @@ self.possible_world = [] self.pkg_pn = {} self.pkg_fn = {} - self.pkg_pvpr = {} + self.pkg_pepvpr = {} self.pkg_dp = {} self.pn_provides = {} self.all_depends = Set()