Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r11647 - main/trunk/pym/_emerge
Date: Tue, 07 Oct 2008 08:40:37
Message-Id: E1Kn87O-00076C-Rw@stork.gentoo.org
1 Author: zmedico
2 Date: 2008-10-07 08:40:33 +0000 (Tue, 07 Oct 2008)
3 New Revision: 11647
4
5 Modified:
6 main/trunk/pym/_emerge/__init__.py
7 Log:
8 Make EbuildFetcher direct fetch output to the normal build log. By keeping the
9 output in the build log instead of the global emerge-fetch.log file, output
10 from a possible fetch failure can be recovered and displayed later.
11 TODO: Convert failed fetch to elog message as suggested in bug #234301.
12
13
14 Modified: main/trunk/pym/_emerge/__init__.py
15 ===================================================================
16 --- main/trunk/pym/_emerge/__init__.py 2008-10-07 08:04:55 UTC (rev 11646)
17 +++ main/trunk/pym/_emerge/__init__.py 2008-10-07 08:40:33 UTC (rev 11647)
18 @@ -2249,6 +2249,15 @@
19 settings = self.config_pool.allocate()
20 self._build_dir = EbuildBuildDir(pkg=self.pkg, settings=settings)
21 self._build_dir.lock()
22 +
23 + if self.background and self.logfile is None:
24 + fetch_log = None
25 + if not self.fetchonly:
26 + fetch_log = settings.get("PORTAGE_LOG_FILE")
27 + if fetch_log is None:
28 + fetch_log = self.scheduler.fetch.log_file
29 + self.logfile = fetch_log
30 +
31 phase = "fetch"
32 if self.fetchall:
33 phase = "fetchall"
34 @@ -2275,21 +2284,22 @@
35 self.env = fetch_env
36 SpawnProcess._start(self)
37
38 - def _wait_hook(self):
39 + def _set_returncode(self, wait_retval):
40 + SpawnProcess._set_returncode(self, wait_retval)
41 # Collect elog messages that might have been
42 # created by the pkg_nofetch phase.
43 if self._build_dir is not None:
44 portage.elog.elog_process(self.pkg.cpv, self._build_dir.settings)
45 - try:
46 - shutil.rmtree(self._build_dir.settings["PORTAGE_BUILDDIR"])
47 - except EnvironmentError, e:
48 - if e.errno != errno.ENOENT:
49 - raise
50 - del e
51 + if self.returncode == os.EX_OK:
52 + try:
53 + shutil.rmtree(self._build_dir.settings["PORTAGE_BUILDDIR"])
54 + except EnvironmentError, e:
55 + if e.errno != errno.ENOENT:
56 + raise
57 + del e
58 self._build_dir.unlock()
59 self.config_pool.deallocate(self._build_dir.settings)
60 self._build_dir = None
61 - SpawnProcess._wait_hook(self)
62
63 class EbuildBuildDir(SlotObject):
64
65 @@ -2322,6 +2332,7 @@
66 portage.doebuild_environment(ebuild_path, "setup", root_config.root,
67 self.settings, debug, use_cache, portdb)
68 dir_path = self.settings["PORTAGE_BUILDDIR"]
69 + portage.prepare_build_dirs(self.pkg.root, self.settings, 0)
70
71 catdir = os.path.dirname(dir_path)
72 self._catdir = catdir
73 @@ -2432,8 +2443,6 @@
74 return
75
76 fetch_log = None
77 - if self.background:
78 - fetch_log = self.scheduler.fetch.log_file
79
80 fetcher = EbuildFetcher(config_pool=self.config_pool,
81 fetchall=opts.fetch_all_uri,