summaryrefslogtreecommitdiffstats
path: root/pym/portage/package
diff options
context:
space:
mode:
authorArfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>2012-09-21 06:30:12 +0200
committerArfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>2012-09-21 06:30:12 +0200
commit257a7faf60ab5670b4b2cfb3507d1a2835caaff3 (patch)
tree864b1b98a61e32d39c58924412eb791d689b0f77 /pym/portage/package
parenta35385d83801ace458d5896285c9d89bedbbaca8 (diff)
downloadportage-257a7faf60ab5670b4b2cfb3507d1a2835caaff3.tar.gz
portage-257a7faf60ab5670b4b2cfb3507d1a2835caaff3.tar.bz2
portage-257a7faf60ab5670b4b2cfb3507d1a2835caaff3.zip
Read profile EAPI earlier.
Diffstat (limited to 'pym/portage/package')
-rw-r--r--pym/portage/package/ebuild/_config/LocationsManager.py38
1 files changed, 20 insertions, 18 deletions
diff --git a/pym/portage/package/ebuild/_config/LocationsManager.py b/pym/portage/package/ebuild/_config/LocationsManager.py
index 365d507f7..2200be694 100644
--- a/pym/portage/package/ebuild/_config/LocationsManager.py
+++ b/pym/portage/package/ebuild/_config/LocationsManager.py
@@ -130,6 +130,26 @@ class LocationsManager(object):
allow_parent_colon = True
repo_loc = None
compat_mode = False
+
+ eapi_file = os.path.join(currentPath, "eapi")
+ f = None
+ try:
+ f = io.open(_unicode_encode(eapi_file,
+ encoding=_encodings['fs'], errors='strict'),
+ mode='r', encoding=_encodings['content'], errors='replace')
+ eapi = f.readline().strip()
+ except IOError:
+ pass
+ else:
+ if not eapi_is_supported(eapi):
+ raise ParseError(_(
+ "Profile contains unsupported "
+ "EAPI '%s': '%s'") % \
+ (eapi, os.path.realpath(eapi_file),))
+ finally:
+ if f is not None:
+ f.close()
+
intersecting_repos = [x for x in known_repos if current_abs_path.startswith(x[0])]
if intersecting_repos:
# protect against nested repositories. Insane configuration, but the longest
@@ -156,24 +176,6 @@ class LocationsManager(object):
files=', '.join(offenders)))
parentsFile = os.path.join(currentPath, "parent")
- eapi_file = os.path.join(currentPath, "eapi")
- f = None
- try:
- f = io.open(_unicode_encode(eapi_file,
- encoding=_encodings['fs'], errors='strict'),
- mode='r', encoding=_encodings['content'], errors='replace')
- eapi = f.readline().strip()
- except IOError:
- pass
- else:
- if not eapi_is_supported(eapi):
- raise ParseError(_(
- "Profile contains unsupported "
- "EAPI '%s': '%s'") % \
- (eapi, os.path.realpath(eapi_file),))
- finally:
- if f is not None:
- f.close()
if os.path.exists(parentsFile):
parents = grabfile(parentsFile)
if not parents: