summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/resolver/slot_collision.py
diff options
context:
space:
mode:
Diffstat (limited to 'pym/_emerge/resolver/slot_collision.py')
-rw-r--r--pym/_emerge/resolver/slot_collision.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/pym/_emerge/resolver/slot_collision.py b/pym/_emerge/resolver/slot_collision.py
index 8b499ec00..b11fcb0c7 100644
--- a/pym/_emerge/resolver/slot_collision.py
+++ b/pym/_emerge/resolver/slot_collision.py
@@ -211,7 +211,8 @@ class slot_conflict_handler(object):
collision_reasons[("version", sub_type)] = atoms
elif not atom_set.findAtomForPackage(other_pkg):
#Use conditionals not met.
- violated_atom = atom.violated_conditionals(other_pkg.use.enabled, ppkg.use.enabled)
+ violated_atom = atom.violated_conditionals(other_pkg.use.enabled, \
+ other_pkg.iuse.all, ppkg.use.enabled)
for flag in violated_atom.use.enabled.union(violated_atom.use.disabled):
atoms = collision_reasons.get(("use", flag), set())
atoms.add((ppkg, atom, other_pkg))
@@ -251,7 +252,7 @@ class slot_conflict_handler(object):
conditional_matches = set()
for ppkg, atom, other_pkg in parents:
violated_atom = atom.unevaluated_atom.violated_conditionals( \
- other_pkg.use.enabled, ppkg.use.enabled)
+ other_pkg.use.enabled, other_pkg.iuse.all, ppkg.use.enabled)
if use in violated_atom.use.enabled.union(violated_atom.use.disabled):
hard_matches.add((ppkg, atom))
else:
@@ -456,9 +457,10 @@ class slot_conflict_handler(object):
if ppkg.installed:
#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, ppkg.use.enabled)
+ violated_atom = atom.violated_conditionals(pkg.use.enabled, pkg.iuse.all, ppkg.use.enabled)
else:
- violated_atom = atom.unevaluated_atom.violated_conditionals(pkg.use.enabled, ppkg.use.enabled)
+ violated_atom = atom.unevaluated_atom.violated_conditionals(pkg.use.enabled, \
+ pkg.iuse.all, ppkg.use.enabled)
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