diff options
author | 2010-05-25 13:30:15 +0200 | |
---|---|---|
committer | 2010-05-25 04:43:46 -0700 | |
commit | 4669853d73ee647a1e44a96d04f74b92e480a6ef (patch) | |
tree | 5e3e449be289c27f433bfa75c547041f1f10c2b8 | |
parent | _emerge.depgraph._show_unsatisfied_dep(): Do an ealier missing IUSE check and... (diff) | |
download | portage-idfetch-4669853d73ee647a1e44a96d04f74b92e480a6ef.tar.gz portage-idfetch-4669853d73ee647a1e44a96d04f74b92e480a6ef.tar.bz2 portage-idfetch-4669853d73ee647a1e44a96d04f74b92e480a6ef.zip |
Add _emerge.Package.iuse.get_missing_iuse to return missing IUSE flags. Restore original behavior of is_valid_flag.
-rw-r--r-- | pym/_emerge/Package.py | 13 | ||||
-rw-r--r-- | pym/_emerge/depgraph.py | 4 |
2 files changed, 15 insertions, 2 deletions
diff --git a/pym/_emerge/Package.py b/pym/_emerge/Package.py index 0eba4b65..963bfd9f 100644 --- a/pym/_emerge/Package.py +++ b/pym/_emerge/Package.py @@ -218,6 +218,19 @@ class Package(Task): for flag in flags: if not flag in self.all and \ self._iuse_implicit_regex.match(flag) is None: + return False + return True + + def get_missing_iuse(self, flags): + """ + @returns: A list of flags missing from IUSE. + """ + if isinstance(flags, basestring): + flags = [flags] + missing_iuse = [] + for flag in flags: + if not flag in self.all and \ + self._iuse_implicit_regex.match(flag) is None: missing_iuse.append(flag) return missing_iuse diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index ec3da77d..1c690766 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -2245,7 +2245,7 @@ class depgraph(object): missing_iuse_reasons = [] for pkg in missing_use: use = pkg.use.enabled - missing_iuse = pkg.iuse.is_valid_flag(atom.use.required) + missing_iuse = pkg.iuse.get_missing_iuse(atom.use.required) mreasons = [] if missing_iuse: mreasons.append("Missing IUSE: %s" % " ".join(missing_iuse)) @@ -2618,7 +2618,7 @@ class depgraph(object): found_available_arg = True if atom.use: - missing_iuse = pkg.iuse.is_valid_flag(atom.use.required) + missing_iuse = pkg.iuse.get_missing_iuse(atom.use.required) if missing_iuse: # Don't add this to packages_with_invalid_use_config # since IUSE cannot be adjusted by the user. |