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:48:08 -0800
commitde7a3198bf97b8a9ae2b2559e6efb2294dc60ca1 (patch)
treea4115252527a48495890ed4d766544a6a18e462f
parent98035db52861393db8f3f6e38fb7ecbcd38a80c3 (diff)
downloadportage-de7a3198bf97b8a9ae2b2559e6efb2294dc60ca1.tar.gz
portage-de7a3198bf97b8a9ae2b2559e6efb2294dc60ca1.tar.bz2
portage-de7a3198bf97b8a9ae2b2559e6efb2294dc60ca1.zip
depgraph: fix logic more for bug 345979v2.1.9.25
-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 b3c55bd8a..39522e381 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -2960,29 +2960,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:
@@ -2990,6 +2996,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