summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Harring <ferringb@chromium.org>2012-01-27 10:23:02 -0800
committerZac Medico <zmedico@gentoo.org>2012-01-27 14:01:34 -0800
commit02522e5755ab369c2d9a9f712bb0c1e7b882ad98 (patch)
tree0c45eca4f3726970f2895b572d04fb6a924d2842
parentbe009d82d552740843d703fcde33112dcd698a9e (diff)
downloadportage-02522e5755ab369c2d9a9f712bb0c1e7b882ad98.tar.gz
portage-02522e5755ab369c2d9a9f712bb0c1e7b882ad98.tar.bz2
portage-02522e5755ab369c2d9a9f712bb0c1e7b882ad98.zip
Apply INSTALL_MASK prior to reading the tree
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
-rw-r--r--pym/portage/dbapi/vartree.py18
1 files changed, 9 insertions, 9 deletions
diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py
index 5bb4fa404..c504e5ca4 100644
--- a/pym/portage/dbapi/vartree.py
+++ b/pym/portage/dbapi/vartree.py
@@ -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: