From 1e69471d3eac6d0e2a01878ed3f0031783f57671 Mon Sep 17 00:00:00 2001 From: Sebastian Luther Date: Sat, 14 Aug 2010 08:43:34 +0200 Subject: Atom.violated_conditionals: Use iuse.is_valid_flag instead of iuse.all --- pym/_emerge/depgraph.py | 5 +++-- pym/_emerge/resolver/slot_collision.py | 9 +++++---- 2 files changed, 8 insertions(+), 6 deletions(-) (limited to 'pym/_emerge') diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index e3a47e8a7..643cc3edf 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -2078,7 +2078,7 @@ class depgraph(object): masked_pkg_instances.add(pkg) if atom.unevaluated_atom.use: if not pkg.iuse.is_valid_flag(atom.unevaluated_atom.use.required) \ - or atom.violated_conditionals(self._pkg_use_enabled(pkg), pkg.iuse.all).use: + or atom.violated_conditionals(self._pkg_use_enabled(pkg), pkg.iuse.is_valid_flag).use: missing_use.append(pkg) if not mreasons: continue @@ -2126,7 +2126,8 @@ class depgraph(object): # Lets see if the violated use deps are conditional. # If so, suggest to change them on the parent. mreasons = [] - violated_atom = atom.unevaluated_atom.violated_conditionals(self._pkg_use_enabled(pkg), pkg.iuse.all, myparent.use.enabled) + violated_atom = atom.unevaluated_atom.violated_conditionals(self._pkg_use_enabled(pkg), \ + pkg.iuse.is_valid_flag, myparent.use.enabled) if not (violated_atom.use.enabled or violated_atom.use.disabled): #all violated use deps are conditional changes = [] diff --git a/pym/_emerge/resolver/slot_collision.py b/pym/_emerge/resolver/slot_collision.py index b11fcb0c7..70f4f7141 100644 --- a/pym/_emerge/resolver/slot_collision.py +++ b/pym/_emerge/resolver/slot_collision.py @@ -212,7 +212,7 @@ class slot_conflict_handler(object): elif not atom_set.findAtomForPackage(other_pkg): #Use conditionals not met. violated_atom = atom.violated_conditionals(other_pkg.use.enabled, \ - other_pkg.iuse.all, ppkg.use.enabled) + other_pkg.iuse.is_valid_flag, 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)) @@ -252,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, other_pkg.iuse.all, ppkg.use.enabled) + other_pkg.use.enabled, other_pkg.iuse.is_valid_flag, ppkg.use.enabled) if use in violated_atom.use.enabled.union(violated_atom.use.disabled): hard_matches.add((ppkg, atom)) else: @@ -457,10 +457,11 @@ 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, pkg.iuse.all, ppkg.use.enabled) + violated_atom = atom.violated_conditionals(pkg.use.enabled, \ + pkg.iuse.is_valid_flag, ppkg.use.enabled) else: violated_atom = atom.unevaluated_atom.violated_conditionals(pkg.use.enabled, \ - pkg.iuse.all, ppkg.use.enabled) + pkg.iuse.is_valid_flag, 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 -- cgit v1.2.3-1-g7c22