summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2013-06-19 12:10:48 -0700
committerZac Medico <zmedico@gentoo.org>2013-06-19 12:10:48 -0700
commit2a65e8affdb5c8dd3830ce40809729c7a53fc1d1 (patch)
treeab121e8f69ec7919acb561ff39f6232eda527b24
parentRepoConfig: safe config for repoman/egencache (diff)
downloadportage-2a65e8affdb5c8dd3830ce40809729c7a53fc1d1.tar.gz
portage-2a65e8affdb5c8dd3830ce40809729c7a53fc1d1.tar.bz2
portage-2a65e8affdb5c8dd3830ce40809729c7a53fc1d1.zip
RepoConfigLoader: handle equal priorities
Include repo.name in sort key, for predictable sorting even when priorities are equal.
-rw-r--r--pym/portage/repository/config.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/pym/portage/repository/config.py b/pym/portage/repository/config.py
index 7c69fb426..7de695449 100644
--- a/pym/portage/repository/config.py
+++ b/pym/portage/repository/config.py
@@ -616,9 +616,13 @@ class RepoConfigLoader(object):
# This happens if main-repo has been set in repos.conf.
prepos[main_repo].priority = -1000
+ # Include repo.name in sort key, for predictable sorting
+ # even when priorities are equal.
+ prepos_order = sorted(prepos.items(),
+ key=lambda r:(r[1].priority or 0, repo.name))
+
# filter duplicates from aliases, by only including
# items where repo.name == key
- prepos_order = sorted(prepos.items(), key=lambda r:r[1].priority or 0)
prepos_order = [repo.name for (key, repo) in prepos_order
if repo.name == key and key != 'DEFAULT' and
repo.location is not None]