Apply INSTALL_MASK prior to reading the tree
authorBrian Harring <ferringb@chromium.org>
Fri, 27 Jan 2012 18:23:02 +0000 (10:23 -0800)
committerZac Medico <zmedico@gentoo.org>
Fri, 27 Jan 2012 22:01:34 +0000 (14:01 -0800)
If this isn't done, collision-protect uses the old cached filelist,
leading to it complaining about things that INSTALL_MASK sorted already.

BUGS=chromium-os:25060
TEST=emerge sudo && emerge chromeos-base

pym/portage/dbapi/vartree.py

index 5bb4fa4048dd6ab818196d11577ca5bf7ea2654c..c504e5ca402d0685254bb3d709f4c8d7a03dbb54 100644 (file)
@@ -3381,6 +3381,15 @@ class dblink(object):
                                        max_dblnk = dblnk
                        self._installed_instance = max_dblnk
 
+               if self.settings.get("INSTALL_MASK"):
+                       # Apply INSTALL_MASK before collision-protect, since it may
+                       # be useful to avoid collisions in some scenarios.
+                       phase = MiscFunctionsProcess(background=False,
+                               commands=["preinst_mask"], phase="preinst",
+                               scheduler=self._scheduler, settings=self.settings)
+                       phase.start()
+                       phase.wait()
+
                # We check for unicode encoding issues after src_install. However,
                # the check must be repeated here for binary packages (it's
                # inexpensive since we call os.walk() here anyway).
@@ -3517,15 +3526,6 @@ class dblink(object):
                        for other in others_in_slot])
                prepare_build_dirs(settings=self.settings, cleanup=cleanup)
 
-               if self.settings.get("INSTALL_MASK"):
-                       # Apply INSTALL_MASK before collision-protect, since it may
-                       # be useful to avoid collisions in some scenarios.
-                       phase = MiscFunctionsProcess(background=False,
-                               commands=["preinst_mask"], phase="preinst",
-                               scheduler=self._scheduler, settings=self.settings)
-                       phase.start()
-                       phase.wait()
-
                # check for package collisions
                blockers = self._blockers
                if blockers is None: