For bug #163083, handle an UnsupportedAPIException thrown from the prerm phase. (trunk r5748:5749)

svn path=/main/branches/2.1.2/; revision=5750
diff --git a/pym/portage.py b/pym/portage.py
index 7ead873..050a8fb 100644
--- a/pym/portage.py
+++ b/pym/portage.py
@@ -6819,8 +6819,15 @@
 
 		self.settings.load_infodir(self.dbdir)
 		if myebuildpath:
-			doebuild_environment(myebuildpath, "prerm", self.myroot,
-				self.settings, 0, 0, self.vartree.dbapi)
+			try:
+				doebuild_environment(myebuildpath, "prerm", self.myroot,
+					self.settings, 0, 0, self.vartree.dbapi)
+			except portage_exception.UnsupportedAPIException, e:
+				# Sometimes this happens due to corruption of the EAPI file.
+				writemsg("!!! FAILED prerm: %s\n" % \
+					os.path.join(self.dbdir, "EAPI"), noiselevel=-1)
+				writemsg("%s\n" % str(e), noiselevel=-1)
+				return 1
 			catdir = os.path.dirname(self.settings["PORTAGE_BUILDDIR"])
 			portage_util.ensure_dirs(os.path.dirname(catdir),
 				uid=portage_uid, gid=portage_gid, mode=070, mask=0)
diff --git a/pym/portage_exception.py b/pym/portage_exception.py
index 76f2be2..4be72cf 100644
--- a/pym/portage_exception.py
+++ b/pym/portage_exception.py
@@ -76,8 +76,8 @@
 
 class UnsupportedAPIException(PortagePackageException):
 	"""Unsupported API"""
-	def __init__(self, cpv, api):
-		self.cpv, self.api = cpv, api
+	def __init__(self, cpv, eapi):
+		self.cpv, self.eapi = cpv, eapi
 	def __str__(self):
 		return "Unable to do any operations on '%s', due to the fact it's EAPI is higher then this portage versions.  Please upgrade to a portage version that supports EAPI %s" % (self.cpv, self.eapi)