summaryrefslogtreecommitdiffstats
path: root/pym/_emerge
diff options
context:
space:
mode:
authorSebastian Luther <SebastianLuther@gmx.de>2010-04-27 22:33:02 +0200
committerZac Medico <zmedico@gentoo.org>2010-04-27 14:17:59 -0700
commitfa25599654c32a6c72810fda98b9c665a673f12e (patch)
tree063b114c0396970070b1f82ec4148d2db90d707e /pym/_emerge
parentdd512c0e119eb1e07053ec1bb349f044e465d44e (diff)
downloadportage-fa25599654c32a6c72810fda98b9c665a673f12e.tar.gz
portage-fa25599654c32a6c72810fda98b9c665a673f12e.tar.bz2
portage-fa25599654c32a6c72810fda98b9c665a673f12e.zip
--update: don't ignore higher versions because of missing IUSE
Diffstat (limited to 'pym/_emerge')
-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 \