Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r11678 - main/trunk/pym/_emerge
Date: Sat, 11 Oct 2008 20:31:51
Message-Id: E1Kol7t-0005k8-4h@stork.gentoo.org
1 Author: zmedico
2 Date: 2008-10-11 20:31:48 +0000 (Sat, 11 Oct 2008)
3 New Revision: 11678
4
5 Modified:
6 main/trunk/pym/_emerge/__init__.py
7 Log:
8 In EbuildFetcher._start(), in order to ensure that a new log is created when
9 appropriate, clean up PORTAGE_BUILDDIR if appropriate.
10
11
12 Modified: main/trunk/pym/_emerge/__init__.py
13 ===================================================================
14 --- main/trunk/pym/_emerge/__init__.py 2008-10-11 19:34:10 UTC (rev 11677)
15 +++ main/trunk/pym/_emerge/__init__.py 2008-10-11 20:31:48 UTC (rev 11678)
16 @@ -2248,6 +2248,8 @@
17 settings = self.config_pool.allocate()
18 self._build_dir = EbuildBuildDir(pkg=self.pkg, settings=settings)
19 self._build_dir.lock()
20 + self._clean_builddir()
21 + portage.prepare_build_dirs(self.pkg.root, self._build_dir.settings, 0)
22 if self.logfile is None:
23 self.logfile = settings.get("PORTAGE_LOG_FILE")
24
25 @@ -2277,6 +2279,18 @@
26 self.env = fetch_env
27 SpawnProcess._start(self)
28
29 + def _clean_builddir(self):
30 + """Uses shutil.rmtree() rather than spawning a 'clean' phase. Disabled
31 + by keepwork or keeptemp in FEATURES."""
32 + features = self._build_dir.settings.features
33 + if not ("keepwork" in features or "keeptemp" in features):
34 + try:
35 + shutil.rmtree(self._build_dir.settings["PORTAGE_BUILDDIR"])
36 + except EnvironmentError, e:
37 + if e.errno != errno.ENOENT:
38 + raise
39 + del e
40 +
41 def _set_returncode(self, wait_retval):
42 SpawnProcess._set_returncode(self, wait_retval)
43 # Collect elog messages that might have been
44 @@ -2295,14 +2309,8 @@
45 if not self.prefetch:
46 portage.elog.elog_process(self.pkg.cpv, self._build_dir.settings)
47 features = self._build_dir.settings.features
48 - if (self.fetchonly or self.returncode == os.EX_OK) and \
49 - not ("keepwork" in features or "keeptemp" in features):
50 - try:
51 - shutil.rmtree(self._build_dir.settings["PORTAGE_BUILDDIR"])
52 - except EnvironmentError, e:
53 - if e.errno != errno.ENOENT:
54 - raise
55 - del e
56 + if self.fetchonly or self.returncode == os.EX_OK:
57 + self._clean_builddir()
58 self._build_dir.unlock()
59 self.config_pool.deallocate(self._build_dir.settings)
60 self._build_dir = None
61 @@ -2338,7 +2346,6 @@
62 portage.doebuild_environment(ebuild_path, "setup", root_config.root,
63 self.settings, debug, use_cache, portdb)
64 dir_path = self.settings["PORTAGE_BUILDDIR"]
65 - portage.prepare_build_dirs(self.pkg.root, self.settings, 0)
66
67 catdir = os.path.dirname(dir_path)
68 self._catdir = catdir