1 |
Author: zmedico |
2 |
Date: 2008-12-31 07:38:56 +0000 (Wed, 31 Dec 2008) |
3 |
New Revision: 12371 |
4 |
|
5 |
Modified: |
6 |
main/trunk/pym/_emerge/__init__.py |
7 |
Log: |
8 |
Bug #253210 - Fix logic inside EbuildBuild._buildpkg_exit() to avoid |
9 |
triggering an AssertionError when the package phase has failed. This |
10 |
bug usually isn't noticeable since the package phase usually succeeds. |
11 |
|
12 |
|
13 |
Modified: main/trunk/pym/_emerge/__init__.py |
14 |
=================================================================== |
15 |
--- main/trunk/pym/_emerge/__init__.py 2008-12-30 20:39:33 UTC (rev 12370) |
16 |
+++ main/trunk/pym/_emerge/__init__.py 2008-12-31 07:38:56 UTC (rev 12371) |
17 |
@@ -2677,8 +2677,12 @@ |
18 |
be released when merge() is called. |
19 |
""" |
20 |
|
21 |
- if self._default_exit(packager) == os.EX_OK and \ |
22 |
- self.opts.buildpkgonly: |
23 |
+ if self._default_exit(packager) != os.EX_OK: |
24 |
+ self._unlock_builddir() |
25 |
+ self.wait() |
26 |
+ return |
27 |
+ |
28 |
+ if self.opts.buildpkgonly: |
29 |
# Need to call "clean" phase for buildpkgonly mode |
30 |
portage.elog.elog_process(self.pkg.cpv, self.settings) |
31 |
phase = "clean" |
32 |
@@ -2689,9 +2693,10 @@ |
33 |
self._start_task(clean_phase, self._clean_exit) |
34 |
return |
35 |
|
36 |
- if self._final_exit(packager) != os.EX_OK or \ |
37 |
- self.opts.buildpkgonly: |
38 |
- self._unlock_builddir() |
39 |
+ # Continue holding the builddir lock until |
40 |
+ # after the package has been installed. |
41 |
+ self._current_task = None |
42 |
+ self.returncode = packager.returncode |
43 |
self.wait() |
44 |
|
45 |
def _clean_exit(self, clean_phase): |