commit:     350b8f486b96871386d721e48e768a77a1c4b1a6
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 11 20:39:37 2020 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Tue Feb 11 20:48:56 2020 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=350b8f48

depgraph: sort nested package set names for consistent results

Traverse the unordered set returned from PackageSet.getNonAtoms()
in sorted order, for more consistent results. Use a reverse sort
since we pop these sets from a stack.

Bug: https://bugs.gentoo.org/649622
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>

 lib/_emerge/depgraph.py | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/lib/_emerge/depgraph.py b/lib/_emerge/depgraph.py
index dd29b607c..8e0d79e29 100644
--- a/lib/_emerge/depgraph.py
+++ b/lib/_emerge/depgraph.py
@@ -2788,8 +2788,10 @@ class depgraph(object):
 
                                # Traverse nested sets and add them to the stack
                                # if they're not already in the graph. Also, 
graph
-                               # edges between parent and nested sets.
-                               for token in arg.pset.getNonAtoms():
+                               # edges between parent and nested sets. 
Traverse in
+                               # sorted order for consistent results, using 
reverse
+                               # sort since we pop these sets from a stack.
+                               for token in sorted(arg.pset.getNonAtoms(), 
reverse=True):
                                        if not token.startswith(SETPREFIX):
                                                continue
                                        s = token[len(SETPREFIX):]

Reply via email to