1 |
commit: 0a60f0a859994ca2ed51aa0b20454743f970b956 |
2 |
Author: Zac Medico <zmedico <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sat Oct 15 22:55:31 2011 +0000 |
4 |
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> |
5 |
CommitDate: Sat Oct 15 22:55:31 2011 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=0a60f0a8 |
7 |
|
8 |
EbuildMetadataPhase: fix parse-eapi-ebuild-head |
9 |
|
10 |
This fixes bugs that can only be triggered by egencache since |
11 |
other callers handle parse-eapi-ebuild-head earlier. |
12 |
|
13 |
--- |
14 |
pym/_emerge/EbuildMetadataPhase.py | 9 +++++++-- |
15 |
1 files changed, 7 insertions(+), 2 deletions(-) |
16 |
|
17 |
diff --git a/pym/_emerge/EbuildMetadataPhase.py b/pym/_emerge/EbuildMetadataPhase.py |
18 |
index a6630ad..6ef7c00 100644 |
19 |
--- a/pym/_emerge/EbuildMetadataPhase.py |
20 |
+++ b/pym/_emerge/EbuildMetadataPhase.py |
21 |
@@ -44,8 +44,9 @@ class EbuildMetadataPhase(SubProcess): |
22 |
|
23 |
if eapi is not None: |
24 |
if not portage.eapi_is_supported(eapi): |
25 |
+ self.metadata = {'EAPI' : eapi} |
26 |
self.metadata_callback(self.cpv, |
27 |
- self.repo_path, {'EAPI' : eapi}, self.ebuild_hash) |
28 |
+ self.repo_path, self.metadata, self.ebuild_hash) |
29 |
self._set_returncode((self.pid, os.EX_OK << 8)) |
30 |
self.wait() |
31 |
return |
32 |
@@ -117,7 +118,11 @@ class EbuildMetadataPhase(SubProcess): |
33 |
|
34 |
def _set_returncode(self, wait_retval): |
35 |
SubProcess._set_returncode(self, wait_retval) |
36 |
- if self.returncode == os.EX_OK: |
37 |
+ # self._raw_metadata is None when _start returns |
38 |
+ # early due to an unsupported EAPI detected with |
39 |
+ # FEATURES=parse-eapi-ebuild-head |
40 |
+ if self.returncode == os.EX_OK and \ |
41 |
+ self._raw_metadata is not None: |
42 |
metadata_lines = _unicode_decode(b''.join(self._raw_metadata), |
43 |
encoding=_encodings['repo.content'], |
44 |
errors='replace').splitlines() |