diff options
author | Sebastian Luther <SebastianLuther@gmx.de> | 2010-03-24 08:22:58 +0100 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2010-08-13 20:16:40 -0700 |
commit | 5e39119d80433d9333fac70d12cf7c6b6ca61afe (patch) | |
tree | 7383c8fd7b5d0089a6565b2c6cef0017d512bcc9 /pym/_emerge/resolver/slot_collision.py | |
parent | 12e38fd2fe321c64c90a8f8863f271994d4e235d (diff) | |
download | portage-5e39119d80433d9333fac70d12cf7c6b6ca61afe.tar.gz portage-5e39119d80433d9333fac70d12cf7c6b6ca61afe.tar.bz2 portage-5e39119d80433d9333fac70d12cf7c6b6ca61afe.zip |
Implement use dependency defaults
Diffstat (limited to 'pym/_emerge/resolver/slot_collision.py')
-rw-r--r-- | pym/_emerge/resolver/slot_collision.py | 10 |
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 |