fix missing_enabled/disabled logic for bug 345979
authorZac Medico <zmedico@gentoo.org>
Tue, 30 Nov 2010 04:48:15 +0000 (20:48 -0800)
committerZac Medico <zmedico@gentoo.org>
Tue, 30 Nov 2010 04:48:15 +0000 (20:48 -0800)
pym/_emerge/depgraph.py

index b369a3a833e8c78404c2b9a60b5ba06d52044bd5..4ccbaab18fa5d3aae28cc3687ce62c51694dedfa 100644 (file)
@@ -2994,6 +2994,9 @@ class depgraph(object):
                                                missing_disabled = atom.use.missing_disabled.difference(pkg.iuse.all)
 
                                                if atom.use.enabled:
+                                                       if atom.use.enabled.intersection(missing_disabled):
+                                                               use_match = False
+                                                               can_adjust_use = False
                                                        need_enabled = atom.use.enabled.difference(use)
                                                        if need_enabled:
                                                                need_enabled = need_enabled.difference(missing_enabled)
@@ -3002,11 +3005,11 @@ class depgraph(object):
                                                                        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:
+                                                       if atom.use.disabled.intersection(missing_enabled):
+                                                               use_match = False
+                                                               can_adjust_use = False
                                                        need_disabled = atom.use.disabled.intersection(use)
                                                        if need_disabled:
                                                                need_disabled = need_disabled.difference(missing_disabled)
@@ -3016,9 +3019,6 @@ class depgraph(object):
                                                                                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: