summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/__init__.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-03-23 21:16:27 +0000
committerZac Medico <zmedico@gentoo.org>2009-03-23 21:16:27 +0000
commitff7cdd18aa9fe95be848637366b4b7fcaf440f6f (patch)
treed9fc884e0b1e152cffb4c222ad22fb0025e8c9ce /pym/_emerge/__init__.py
parent1243f8021a2f0b3ed5cdb2060d67f6d3905e3d4e (diff)
downloadportage-ff7cdd18aa9fe95be848637366b4b7fcaf440f6f.tar.gz
portage-ff7cdd18aa9fe95be848637366b4b7fcaf440f6f.tar.bz2
portage-ff7cdd18aa9fe95be848637366b4b7fcaf440f6f.zip
Add support for FEATURES=parse-eapi-ebuild-head, which is similar to GLEP 55
except that the EAPI is parsed from the head of the ebuild (first 30 lines). This feature is only intended for experimental purposes and should not be enabled under normal circumstances. svn path=/main/trunk/; revision=13173
Diffstat (limited to 'pym/_emerge/__init__.py')
-rw-r--r--pym/_emerge/__init__.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index 17fec42d1..76acb8a16 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -4,6 +4,7 @@
# $Id$
import array
+import codecs
from collections import deque
import fcntl
import formatter
@@ -3029,6 +3030,19 @@ class EbuildMetadataPhase(SubProcess):
settings = self.settings
settings.setcpv(self.cpv)
ebuild_path = self.ebuild_path
+
+ if 'parse-eapi-ebuild-head' in settings.features:
+ eapi = portage._parse_eapi_ebuild_head(codecs.open(ebuild_path,
+ mode='r', encoding='utf_8', errors='replace'))
+ if not portage.eapi_is_supported(eapi):
+ self.metadata_callback(self.cpv, self.ebuild_path,
+ self.repo_path, {'EAPI' : eapi}, self.ebuild_mtime)
+ self.returncode = os.EX_OK
+ self.wait()
+ return
+
+ settings.configdict['pkg']['EAPI'] = eapi
+
debug = settings.get("PORTAGE_DEBUG") == "1"
master_fd = None
slave_fd = None