summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-11-27 07:43:38 -0800
committerZac Medico <zmedico@gentoo.org>2010-11-27 07:43:38 -0800
commit1a81d7d5ae0f8350348e3f8e43d0251d5e6156df (patch)
tree0402a5d1f4794a32a270fd45307ffb97e19ae600
parent7f1749ce018453561246959edcaa76fb61800352 (diff)
downloadportage-1a81d7d5ae0f8350348e3f8e43d0251d5e6156df.tar.gz
portage-1a81d7d5ae0f8350348e3f8e43d0251d5e6156df.tar.bz2
portage-1a81d7d5ae0f8350348e3f8e43d0251d5e6156df.zip
depgraph: fix logic more for bug 345979v2.2.0_alpha6
-rw-r--r--pym/_emerge/depgraph.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index 40cb27b40..b369a3a83 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -2990,29 +2990,35 @@ class depgraph(object):
use_match = True
can_adjust_use = not pkg.built
+ missing_enabled = atom.use.missing_enabled.difference(pkg.iuse.all)
+ missing_disabled = atom.use.missing_disabled.difference(pkg.iuse.all)
if atom.use.enabled:
need_enabled = atom.use.enabled.difference(use)
if need_enabled:
- need_enabled = need_enabled.difference(
- atom.use.missing_enabled.difference(pkg.iuse.all))
+ need_enabled = need_enabled.difference(missing_enabled)
if need_enabled:
use_match = False
if can_adjust_use:
if pkg.use.mask.intersection(need_enabled):
can_adjust_use = False
+ if can_adjust_use:
+ if missing_disabled.intersection(need_enabled):
+ can_adjust_use = False
if atom.use.disabled:
need_disabled = atom.use.disabled.intersection(use)
if need_disabled:
- need_disabled = need_disabled.difference(
- atom.use.missing_disabled.difference(pkg.iuse.all))
+ need_disabled = need_disabled.difference(missing_disabled)
if need_disabled:
use_match = False
if can_adjust_use:
if pkg.use.force.difference(
pkg.use.mask).intersection(need_disabled):
can_adjust_use = False
+ if can_adjust_use:
+ if missing_enabled.intersection(need_disabled):
+ can_adjust_use = False
if not use_match:
if can_adjust_use:
@@ -3020,6 +3026,10 @@ class depgraph(object):
# absolutely no use.force, use.mask, or IUSE
# issues that the user typically can't make
# adjustments to solve (see bug #345979).
+ # FIXME: Conditional USE deps complicate
+ # issues. This code currently excludes cases
+ # in which the user can adjust the parent
+ # package's USE in order to satisfy the dep.
packages_with_invalid_use_config.append(pkg)
continue