From ad887a7f02f1673fa7967729a56e31ce9a2abd7b Mon Sep 17 00:00:00 2001
From: Zac Medico <zmedico@gentoo.org>
Date: Mon, 24 Nov 2008 00:50:07 +0000
Subject: [PATCH] Add support for parsing EAPI labels in contained in 'eapi'
 files in the profiles, and bail out if the profile contains an unsupported
 EAPI value in any one of it's directories. We don't necessarily have to use
 this but at least it gives us some way to make emerge bail out early if a
 profile contains unsupported EAPI features.

svn path=/main/trunk/; revision=12068
---
 pym/portage/__init__.py | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py
index c12f58056..471e74365 100644
--- a/pym/portage/__init__.py
+++ b/pym/portage/__init__.py
@@ -1197,6 +1197,17 @@ class config(object):
 				self.profiles = []
 				def addProfile(currentPath):
 					parentsFile = os.path.join(currentPath, "parent")
+					eapi_file = os.path.join(currentPath, "eapi")
+					try:
+						eapi = open(eapi_file).readline().strip()
+					except IOError:
+						pass
+					else:
+						if not eapi_is_supported(eapi):
+							raise portage.exception.ParseError(
+								"Profile contains unsupported " + \
+								"EAPI '%s': '%s'" % \
+								(eapi, os.path.realpath(eapi_file),))
 					if os.path.exists(parentsFile):
 						parents = grabfile(parentsFile)
 						if not parents:
-- 
2.26.2