In slot_conflict_handler(), never pass parent_use to
authorZac Medico <zmedico@gentoo.org>
Thu, 26 Aug 2010 16:00:33 +0000 (09:00 -0700)
committerZac Medico <zmedico@gentoo.org>
Thu, 26 Aug 2010 16:00:33 +0000 (09:00 -0700)
Atom.violated_conditionals since the USE conditionals should have been
evaluated in dep_check() and we don't want to accidentally pass a
DependencyArg instance into _pkg_use_enabled().

pym/_emerge/resolver/slot_collision.py

index 27cad3b992152a11295e5c209f85f2debd18a394..77f527ffdbe0de189ee6985f9f2ee335dc8f96e4 100644 (file)
@@ -257,8 +257,7 @@ class slot_conflict_handler(object):
                                                        conditional_matches = set()
                                                        for ppkg, atom, other_pkg in parents:
                                                                violated_atom = atom.unevaluated_atom.violated_conditionals( \
-                                                                       _pkg_use_enabled(other_pkg), other_pkg.iuse.is_valid_flag, \
-                                                                       _pkg_use_enabled(ppkg))
+                                                                       _pkg_use_enabled(other_pkg), other_pkg.iuse.is_valid_flag)
                                                                if use in violated_atom.use.enabled.union(violated_atom.use.disabled):
                                                                        hard_matches.add((ppkg, atom))
                                                                else:
@@ -465,10 +464,10 @@ class slot_conflict_handler(object):
                                        #We cannot assume that it's possible to reinstall the package. Do not
                                        #check if some of its atom has use.conditional
                                        violated_atom = atom.violated_conditionals(_pkg_use_enabled(pkg), \
-                                               pkg.iuse.is_valid_flag, _pkg_use_enabled(ppkg))
+                                               pkg.iuse.is_valid_flag)
                                else:
                                        violated_atom = atom.unevaluated_atom.violated_conditionals(_pkg_use_enabled(pkg), \
-                                               pkg.iuse.is_valid_flag, _pkg_use_enabled(ppkg))
+                                               pkg.iuse.is_valid_flag)
 
                                if pkg.installed and (violated_atom.use.enabled or violated_atom.use.disabled):
                                        #We can't change USE of an installed package (only of an ebuild, but that is already