summaryrefslogtreecommitdiffstats
path: root/pym/portage/package/ebuild/doebuild.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-05-08 23:38:47 -0700
committerZac Medico <zmedico@gentoo.org>2012-05-09 00:09:22 -0700
commit20817801dd4ef0117bcc7b33c90650da1e920385 (patch)
treec2e30f858b87e9d1504774a8e84791aff149453c /pym/portage/package/ebuild/doebuild.py
parent476f99337da69662660bfe2a0406b9ac5b4678c4 (diff)
downloadportage-20817801dd4ef0117bcc7b33c90650da1e920385.tar.gz
portage-20817801dd4ef0117bcc7b33c90650da1e920385.tar.bz2
portage-20817801dd4ef0117bcc7b33c90650da1e920385.zip
Parse EAPI with pattern from PMS section 7.3.1.
This implements the specification that was approved in Gentoo's council meeting on May 8, 2012 (see bug #402167). The parse-eapi-ebuild-head FEATURES setting is now enabled by default, and causes non-conformant ebuilds to be treated as invalid. This behavior will soon become enabled unconditionally.
Diffstat (limited to 'pym/portage/package/ebuild/doebuild.py')
-rw-r--r--pym/portage/package/ebuild/doebuild.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/pym/portage/package/ebuild/doebuild.py b/pym/portage/package/ebuild/doebuild.py
index da30bda38..4f7d4a8a1 100644
--- a/pym/portage/package/ebuild/doebuild.py
+++ b/pym/portage/package/ebuild/doebuild.py
@@ -337,12 +337,14 @@ def doebuild_environment(myebuild, mydo, myroot=None, settings=None,
# when uninstalling a package that has corrupt EAPI metadata.
eapi = None
if mydo == 'depend' and 'EAPI' not in mysettings.configdict['pkg']:
- if eapi is None and 'parse-eapi-ebuild-head' in mysettings.features:
+ if eapi is None:
with io.open(_unicode_encode(ebuild_path,
encoding=_encodings['fs'], errors='strict'),
mode='r', encoding=_encodings['content'],
errors='replace') as f:
- eapi = _parse_eapi_ebuild_head(f)
+ eapi, eapi_lineno = _parse_eapi_ebuild_head(f)
+ if eapi is None:
+ eapi = "0"
if eapi is not None:
if not eapi_is_supported(eapi):