From: Zac Medico Date: Sun, 19 Oct 2008 17:33:14 +0000 (-0000) Subject: Remove the "found_available_arg" variable from depgraph._select_pkg() and use X-Git-Tag: v2.2_rc13~80 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=0ed807e70280efe2e1fe54221acc57fe6ba12ceb;p=portage.git Remove the "found_available_arg" variable from depgraph._select_pkg() and use the "matched_packages" variable instead. This solve a problem where the "found_available_arg" flag is unreliable due to the slot filtering behavior of depgraph._iter_atoms_for_pkg(). For example, a higher version in a different slot than the available ebuild might be masked or unavailable, and depgraph._iter_atoms_for_pkg() will not identify the available ebuild as a match due to this installed package (which is not available for reinstall). svn path=/main/trunk/; revision=11702 --- diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index 03ee50eca..ca4550afb 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -5417,9 +5417,7 @@ class depgraph(object): # Therefore, "selective" logic does not consider # whether or not an installed package matches an # argument atom. It only considers whether or not - # available packages match argument atoms, which is - # represented by the found_available_arg flag. - found_available_arg = False + # available packages match argument atoms. for find_existing_node in True, False: if existing_node: break @@ -5428,7 +5426,7 @@ class depgraph(object): break if installed and not find_existing_node: want_reinstall = reinstall or empty or \ - (found_available_arg and not selective) + (matched_packages and not selective) if want_reinstall and matched_packages: continue if hasattr(db, "xmatch"): @@ -5568,8 +5566,6 @@ class depgraph(object): if not installed: # masked by corruption continue - if not installed and myarg: - found_available_arg = True if atom.use and not pkg.built: use = pkg.use.enabled