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

pym/_emerge/__init__.py

index bc8cbd20588ee9cab1af39d30170c00a3aea4ce0..6134093326446a49fb304ca9f213d6fceb457433 100644 (file)
@@ -2511,6 +2511,7 @@ class depgraph(object):
                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.
@@ -2531,7 +2532,7 @@ class depgraph(object):
                                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
@@ -2656,6 +2657,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)