diff options
author | Zac Medico <zmedico@gentoo.org> | 2007-11-03 16:34:23 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2007-11-03 16:34:23 +0000 |
commit | bac6bc9e839aabce20d35b49d6710b264c55391c (patch) | |
tree | aaa82a20b77d7b53b1ce06a8adec110565150bac | |
parent | 0fd192fcbb302959fbc065dd7a9e1963dbe6785f (diff) | |
download | portage-bac6bc9e839aabce20d35b49d6710b264c55391c.tar.gz portage-bac6bc9e839aabce20d35b49d6710b264c55391c.tar.bz2 portage-bac6bc9e839aabce20d35b49d6710b264c55391c.zip |
Bug #197932 - Make dbapi._cpv_sort_ascending()
preserve explicit -r0 for consistency in findname
and aux_get calls.
svn path=/main/trunk/; revision=8390
-rw-r--r-- | pym/portage/dbapi/__init__.py | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/pym/portage/dbapi/__init__.py b/pym/portage/dbapi/__init__.py index 0bec4cce5..90e4ca779 100644 --- a/pym/portage/dbapi/__init__.py +++ b/pym/portage/dbapi/__init__.py @@ -30,16 +30,17 @@ class dbapi(object): if len(cpv_list) > 1: first_split = catpkgsplit(cpv_list[0]) cat = first_split[0] - cpv_list[0] = first_split[1:] - for i in xrange(1, len(cpv_list)): - cpv_list[i] = catpkgsplit(cpv_list[i])[1:] + # If the cpv includes explicit -r0, it has to be preserved + # for consistency in findname and aux_get calls, so use a + # dict to map strings back to their original values. + str_map = {} + for i, cpv in enumerate(cpv_list): + mysplit = tuple(catpkgsplit(cpv)[1:]) + str_map[mysplit] = cpv + cpv_list[i] = mysplit cpv_list.sort(pkgcmp) - for i, (pn, ver, rev) in enumerate(cpv_list): - if rev == "r0": - cpv = cat + "/" + pn + "-" + ver - else: - cpv = cat + "/" + pn + "-" + ver + "-" + rev - cpv_list[i] = cpv + for i, mysplit in enumerate(cpv_list): + cpv_list[i] = str_map[mysplit] def cpv_all(self): """Return all CPVs in the db |