diff options
author | Zac Medico <zmedico@gentoo.org> | 2010-11-27 07:43:38 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2010-11-27 07:48:08 -0800 |
commit | de7a3198bf97b8a9ae2b2559e6efb2294dc60ca1 (patch) | |
tree | a4115252527a48495890ed4d766544a6a18e462f | |
parent | depgraph: fix logic in code for bug 345979 (diff) | |
download | portage-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.py | 18 |
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 |