summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/depgraph.py
diff options
context:
space:
mode:
Diffstat (limited to 'pym/_emerge/depgraph.py')
-rw-r--r--pym/_emerge/depgraph.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index 65df15c55..4214abdfc 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -2442,7 +2442,7 @@ class depgraph(object):
if want_reinstall and matched_packages:
continue
- for pkg in self._iter_match_pkgs(root_config, pkg_type, atom,
+ for pkg in self._iter_match_pkgs(root_config, pkg_type, atom.without_use,
onlydeps=onlydeps):
if pkg in self._dynamic_config._runtime_pkg_mask:
# The package has been masked by the backtracking logic
@@ -2459,6 +2459,17 @@ class depgraph(object):
if higher_version_rejected:
continue
+ if atom.use:
+ for x in atom.use.required:
+ if x not in pkg.iuse.all and \
+ pkg.root_config.settings.iuse_implicit_re.match(x) is None:
+ missing_iuse = True
+ break
+ if missing_iuse:
+ if not pkg.installed:
+ packages_with_invalid_use_config.append(pkg)
+ continue
+
cpv = pkg.cpv
# Make --noreplace take precedence over --newuse.
if not pkg.installed and noreplace and \