From 5958b9d406134a139cd66025eaf7bd650fb32b24 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Wed, 9 May 2012 13:00:32 -0700 Subject: [PATCH] Split out eapi_invalid function. --- pym/_emerge/EbuildMetadataPhase.py | 48 ++++----------------- pym/portage/package/ebuild/_eapi_invalid.py | 46 ++++++++++++++++++++ 2 files changed, 55 insertions(+), 39 deletions(-) create mode 100644 pym/portage/package/ebuild/_eapi_invalid.py diff --git a/pym/_emerge/EbuildMetadataPhase.py b/pym/_emerge/EbuildMetadataPhase.py index f89077ed1..b7af69dc8 100644 --- a/pym/_emerge/EbuildMetadataPhase.py +++ b/pym/_emerge/EbuildMetadataPhase.py @@ -5,17 +5,17 @@ from _emerge.SubProcess import SubProcess import sys from portage.cache.mappings import slot_dict_class import portage +portage.proxy.lazyimport.lazyimport(globals(), + 'portage.package.ebuild._eapi_invalid:eapi_invalid', +) from portage import os from portage import _encodings from portage import _unicode_decode from portage import _unicode_encode -from portage.dep import _repo_separator -from portage.elog import elog_process -from portage.elog.messages import eerror + import errno import fcntl import io -import textwrap class EbuildMetadataPhase(SubProcess): @@ -171,40 +171,10 @@ class EbuildMetadataPhase(SubProcess): self.returncode = 1 def _eapi_invalid(self, metadata): - repo_name = self.portdb.getRepositoryName(self.repo_path) - - msg = [] - msg.extend(textwrap.wrap(("EAPI assignment in ebuild '%s%s%s' does not" - " conform with PMS section 7.3.1:") % - (self.cpv, _repo_separator, repo_name), 70)) - - if not self._eapi: - # None means the assignment was not found, while an - # empty string indicates an (invalid) empty assingment. - msg.append( - "\tvalid EAPI assignment must" - " occur on or before line: %s" % - self._eapi_lineno) - else: - msg.append(("\tbash returned EAPI '%s' which does not match " - "assignment on line: %s") % - (metadata["EAPI"], self._eapi_lineno)) - - if 'parse-eapi-ebuild-head' in self.settings.features: - msg.extend(textwrap.wrap(("NOTE: This error will soon" - " become unconditionally fatal in a future version of Portage," - " but at this time, it can by made non-fatal by setting" - " FEATURES=-parse-eapi-ebuild-head in" - " make.conf."), 70)) + if metadata is not None: + eapi_var = metadata["EAPI"] else: - msg.extend(textwrap.wrap(("NOTE: This error will soon" - " become unconditionally fatal in a future version of Portage." - " At the earliest opportunity, please enable" - " FEATURES=parse-eapi-ebuild-head in make.conf in order to" - " make this error fatal."), 70)) - - for line in msg: - eerror(line, phase="other", key=self.cpv) - elog_process(self.cpv, self.settings, - phasefilter=("other",)) + eapi_var = None + eapi_invalid(self, self.cpv, repo_name, self.settings, + eapi_var, self._eapi, self._eapi_lineno) diff --git a/pym/portage/package/ebuild/_eapi_invalid.py b/pym/portage/package/ebuild/_eapi_invalid.py new file mode 100644 index 000000000..50a6978d8 --- /dev/null +++ b/pym/portage/package/ebuild/_eapi_invalid.py @@ -0,0 +1,46 @@ +# Copyright 2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +import textwrap + +from portage.dep import _repo_separator +from portage.elog import elog_process +from portage.elog.messages import eerror + +def eapi_invalid(self, cpv, repo_name, settings, + eapi_var, eapi_parsed, eapi_lineno): + + msg = [] + msg.extend(textwrap.wrap(("EAPI assignment in ebuild '%s%s%s' does not" + " conform with PMS section 7.3.1:") % + (cpv, _repo_separator, repo_name), 70)) + + if not eapi_parsed: + # None means the assignment was not found, while an + # empty string indicates an (invalid) empty assingment. + msg.append( + "\tvalid EAPI assignment must" + " occur on or before line: %s" % + eapi_lineno) + else: + msg.append(("\tbash returned EAPI '%s' which does not match " + "assignment on line: %s") % + (eapi_var, eapi_lineno)) + + if 'parse-eapi-ebuild-head' in settings.features: + msg.extend(textwrap.wrap(("NOTE: This error will soon" + " become unconditionally fatal in a future version of Portage," + " but at this time, it can by made non-fatal by setting" + " FEATURES=-parse-eapi-ebuild-head in" + " make.conf."), 70)) + else: + msg.extend(textwrap.wrap(("NOTE: This error will soon" + " become unconditionally fatal in a future version of Portage." + " At the earliest opportunity, please enable" + " FEATURES=parse-eapi-ebuild-head in make.conf in order to" + " make this error fatal."), 70)) + + for line in msg: + eerror(line, phase="other", key=cpv) + elog_process(cpv, settings, + phasefilter=("other",)) -- 2.26.2