Bug #216328 - Fix broken --newuse reinstallation logic. (trunk r9718)
authorZac Medico <zmedico@gentoo.org>
Sat, 5 Apr 2008 17:48:49 +0000 (17:48 -0000)
committerZac Medico <zmedico@gentoo.org>
Sat, 5 Apr 2008 17:48:49 +0000 (17:48 -0000)
svn path=/main/branches/2.1.2/; revision=9719

bin/emerge

index 8aba419a4bab5ebca7dc6aa21661bd07b9353aa5..1bfe6ec886dda2db6d023037de15f5fdffa1e903 100755 (executable)
@@ -2219,6 +2219,7 @@ class depgraph:
                usepkgonly = "--usepkgonly" in self.myopts
                empty = "empty" in self.myparams
                selective = "selective" in self.myparams
+               reinstall = False
                noreplace = "--noreplace" in self.myopts
                # Behavior of the "selective" parameter depends on
                # whether or not a package matches an argument atom.
@@ -2239,7 +2240,7 @@ class depgraph:
                                if existing_node:
                                        break
                                if installed and not find_existing_node:
-                                       want_reinstall = empty or \
+                                       want_reinstall = reinstall or empty or \
                                                (found_available_arg and not selective)
                                        if want_reinstall and matched_packages:
                                                continue
@@ -2361,6 +2362,8 @@ class depgraph:
                                                        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)