From d851b02513b47ec100778075c3dd3ff68538b293 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sun, 21 Jan 2007 22:16:08 +0000 Subject: For bug #163083, handle an UnsupportedAPIException thrown from the prerm phase. (trunk r5748:5749) svn path=/main/branches/2.1.2/; revision=5750 --- pym/portage.py | 11 +++++++++-- pym/portage_exception.py | 4 ++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/pym/portage.py b/pym/portage.py index 7ead87327..050a8fb64 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -6819,8 +6819,15 @@ class dblink: 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 76f2be20a..4be72cf96 100644 --- a/pym/portage_exception.py +++ b/pym/portage_exception.py @@ -76,8 +76,8 @@ class InvalidAtom(PortagePackageException): 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) -- cgit v1.2.3-1-g7c22