From ee3bf6f9773c0afbd494c657d253241f79d98044 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Mon, 4 Jun 2012 14:59:12 -0700 Subject: Handle more import exceptions involving xml. See http://bugs.python.org/issue14988 --- pym/_emerge/EbuildPhase.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'pym/_emerge/EbuildPhase.py') diff --git a/pym/_emerge/EbuildPhase.py b/pym/_emerge/EbuildPhase.py index 27944f413..741f6083e 100644 --- a/pym/_emerge/EbuildPhase.py +++ b/pym/_emerge/EbuildPhase.py @@ -12,7 +12,16 @@ from _emerge.MiscFunctionsProcess import MiscFunctionsProcess from _emerge.EbuildProcess import EbuildProcess from _emerge.CompositeTask import CompositeTask from portage.util import writemsg -from portage.xml.metadata import MetaDataXML + +try: + from portage.xml.metadata import MetaDataXML +except (SystemExit, KeyboardInterrupt): + raise +except (ImportError, SystemError, RuntimeError, Exception): + # broken or missing xml support + # http://bugs.python.org/issue14988 + MetaDataXML = None + import portage portage.proxy.lazyimport.lazyimport(globals(), 'portage.elog:messages@elog_messages', @@ -71,7 +80,7 @@ class EbuildPhase(CompositeTask): maint_str = "" upstr_str = "" metadata_xml_path = os.path.join(os.path.dirname(self.settings['EBUILD']), "metadata.xml") - if os.path.isfile(metadata_xml_path): + if MetaDataXML is not None and os.path.isfile(metadata_xml_path): herds_path = os.path.join(self.settings['PORTDIR'], 'metadata/herds.xml') try: -- cgit v1.2.3-1-g7c22