Fix --newuse reinstall logic broken by the previous commit.
authorZac Medico <zmedico@gentoo.org>
Fri, 15 Feb 2008 07:47:28 +0000 (07:47 -0000)
committerZac Medico <zmedico@gentoo.org>
Fri, 15 Feb 2008 07:47:28 +0000 (07:47 -0000)
svn path=/main/trunk/; revision=9337

pym/_emerge/__init__.py

index d16c4fc20ceda16e8ab5402f89d1061e62e426ae..c0058fca2c68525f45237de6c9a6273fcd14a440 100644 (file)
@@ -2496,6 +2496,7 @@ class depgraph(object):
                usepkgonly = "--usepkgonly" in self.myopts
                empty = "empty" in self.myparams
                selective = "selective" in self.myparams
+               reinstall = False
                # Behavior of the "selective" parameter depends on
                # whether or not a package matches an argument atom.
                # If an installed package provides an old-style
@@ -2514,7 +2515,8 @@ class depgraph(object):
                        for db, pkg_type, built, installed, db_keys in dbs:
                                if existing_node:
                                        break
-                               if not selective and installed and not find_existing_node and \
+                               if installed and not find_existing_node and \
+                                       (reinstall or not selective) and \
                                        (matched_packages or empty):
                                        # We only need to select an installed package in the
                                        # following cases:
@@ -2627,6 +2629,8 @@ class depgraph(object):
                                                        self._reinstall_for_flags(
                                                        forced_flags, old_use, old_iuse,
                                                        cur_use, cur_iuse)
+                                               if reinstall_for_flags:
+                                                       reinstall = True
                                        if not installed:
                                                must_reinstall = empty or \
                                                        (myarg and not selective)