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:43:38 -0800 |
commit | 1a81d7d5ae0f8350348e3f8e43d0251d5e6156df (patch) | |
tree | 0402a5d1f4794a32a270fd45307ffb97e19ae600 | |
parent | 7f1749ce018453561246959edcaa76fb61800352 (diff) | |
download | portage-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.py | 18 |
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 |