# Copyright 2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 import textwrap import portage 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 (see bug #402167):") % (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 portage.data.secpass >= 2: # TODO: improve elog permission error handling (bug #416231) for line in msg: eerror(line, phase="other", key=cpv) elog_process(cpv, settings, phasefilter=("other",)) else: out = portage.output.EOutput() for line in msg: out.eerror(line)