diff options
author | Zac Medico <zmedico@gentoo.org> | 2012-06-22 22:10:14 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2012-06-22 22:10:14 -0700 |
commit | 5497c9f1443f1f615f145ee645f17959ed20168c (patch) | |
tree | 34de82d2c1333fb2870542039cf34cc4ad6af4ba | |
parent | fa68712ab045dce1d0e50d9252e02329d2d9f75b (diff) | |
download | portage-5497c9f1443f1f615f145ee645f17959ed20168c.tar.gz portage-5497c9f1443f1f615f145ee645f17959ed20168c.tar.bz2 portage-5497c9f1443f1f615f145ee645f17959ed20168c.zip |
Fix success_without_autounmask logic wrt rebuilds
-rw-r--r-- | pym/_emerge/depgraph.py | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index 039dbdc6b..75e3500de 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -2658,20 +2658,6 @@ class depgraph(object): "slot conflict" in self._dynamic_config._backtrack_infos): return False, myfavorites - digraph_nodes = self._dynamic_config.digraph.nodes - - if any(x in digraph_nodes for x in - self._dynamic_config._needed_unstable_keywords) or \ - any(x in digraph_nodes for x in - self._dynamic_config._needed_p_mask_changes) or \ - any(x in digraph_nodes for x in - self._dynamic_config._needed_use_config_changes) or \ - any(x in digraph_nodes for x in - self._dynamic_config._needed_license_changes) : - #We failed if the user needs to change the configuration - self._dynamic_config._success_without_autounmask = True - return False, myfavorites - if self._rebuild.trigger_rebuilds(): backtrack_infos = self._dynamic_config._backtrack_infos config = backtrack_infos.setdefault("config", {}) @@ -2686,6 +2672,26 @@ class depgraph(object): self.need_restart(): return False, myfavorites + # Any failures except those due to autounmask *alone* should return + # before this point, since the success_without_autounmask flag that's + # set below is reserved for cases where there are *zero* other + # problems. For reference, see backtrack_depgraph, where it skips the + # get_best_run() call when success_without_autounmask is True. + + digraph_nodes = self._dynamic_config.digraph.nodes + + if any(x in digraph_nodes for x in + self._dynamic_config._needed_unstable_keywords) or \ + any(x in digraph_nodes for x in + self._dynamic_config._needed_p_mask_changes) or \ + any(x in digraph_nodes for x in + self._dynamic_config._needed_use_config_changes) or \ + any(x in digraph_nodes for x in + self._dynamic_config._needed_license_changes) : + #We failed if the user needs to change the configuration + self._dynamic_config._success_without_autounmask = True + return False, myfavorites + # We're true here unless we are missing binaries. return (True, myfavorites) |