From 6e54445aadafe9125a24fb415da874febeb2fdb8 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Wed, 28 Jan 2009 18:39:48 +0000 Subject: In EbuildFetcher._start(), don't touch the build dir when in prefetch mode. In this case, logging goes to emerge-fetch.log and the builddir should not be touched since otherwise it could interfere with another instance of the same cpv concurrently being built for a different $ROOT (currently, builds only cooperate with prefetchers that are spawned for the same $ROOT). Thanks to Daniel Robbins for reporting this issue. svn path=/main/trunk/; revision=12558 --- pym/_emerge/__init__.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'pym/_emerge') diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index 881ba9cc6..5666acaa3 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -2340,12 +2340,20 @@ class EbuildFetcher(SpawnProcess): portdb = root_config.trees["porttree"].dbapi ebuild_path = portdb.findname(self.pkg.cpv) settings = self.config_pool.allocate() - self._build_dir = EbuildBuildDir(pkg=self.pkg, settings=settings) - self._build_dir.lock() - self._build_dir.clean() - portage.prepare_build_dirs(self.pkg.root, self._build_dir.settings, 0) - if self.logfile is None: - self.logfile = settings.get("PORTAGE_LOG_FILE") + settings.setcpv(self.pkg) + + # In prefetch mode, logging goes to emerge-fetch.log and the builddir + # should not be touched since otherwise it could interfere with + # another instance of the same cpv concurrently being built for a + # different $ROOT (currently, builds only cooperate with prefetchers + # that are spawned for the same $ROOT). + if not self.prefetch: + self._build_dir = EbuildBuildDir(pkg=self.pkg, settings=settings) + self._build_dir.lock() + self._build_dir.clean() + portage.prepare_build_dirs(self.pkg.root, self._build_dir.settings, 0) + if self.logfile is None: + self.logfile = settings.get("PORTAGE_LOG_FILE") phase = "fetch" if self.fetchall: -- cgit v1.2.3-1-g7c22