From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <gentoo-portage-dev+bounces-3240-garchives=archives.gentoo.org@lists.gentoo.org> Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id AFE75138247 for <garchives@archives.gentoo.org>; Wed, 15 Jan 2014 21:04:11 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id BB2A2E0BA7; Wed, 15 Jan 2014 21:04:10 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 2E0F8E0BA4 for <gentoo-portage-dev@lists.gentoo.org>; Wed, 15 Jan 2014 21:04:10 +0000 (UTC) Received: from localhost.localdomain (unknown [184.53.0.112]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: creffett) by smtp.gentoo.org (Postfix) with ESMTPSA id 20DAA33F4CD for <gentoo-portage-dev@lists.gentoo.org>; Wed, 15 Jan 2014 21:04:05 +0000 (UTC) From: Chris Reffett <creffett@gentoo.org> To: gentoo-portage-dev@lists.gentoo.org Subject: [gentoo-portage-dev] [PATCH v3] Add repoman check to warn if src_prepare/src_configure are used in EAPI 0/1 and if pkg_pretend is used in EAPI < 4. Fixes bug 379491. Date: Wed, 15 Jan 2014 16:03:11 -0500 Message-Id: <1389819791-17726-1-git-send-email-creffett@gentoo.org> X-Mailer: git-send-email 1.8.5.1 Precedence: bulk List-Post: <mailto:gentoo-portage-dev@lists.gentoo.org> List-Help: <mailto:gentoo-portage-dev+help@lists.gentoo.org> List-Unsubscribe: <mailto:gentoo-portage-dev+unsubscribe@lists.gentoo.org> List-Subscribe: <mailto:gentoo-portage-dev+subscribe@lists.gentoo.org> List-Id: Gentoo Linux mail <gentoo-portage-dev.gentoo.org> X-BeenThere: gentoo-portage-dev@lists.gentoo.org Reply-to: gentoo-portage-dev@lists.gentoo.org X-Archives-Salt: fbe85f31-e394-493f-8fca-36a306d8c4d6 X-Archives-Hash: 203106aa196eb20394da989bad4baee5 --- pym/repoman/checks.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) Ignore v2, I apparently didn't commit all of my changes and so that patch won't work. Undid the compression of the src_prepare/src_configure regex, because the way that the regex is set up means that it would output "prepare phase is not defined in EAPI..." instead of "src_prepare" and I feel that it's more intuitive to match the full name of the function instead of tacking src_ in front of the output. diff --git a/pym/repoman/checks.py b/pym/repoman/checks.py index 85aa065..c6860d8 100644 --- a/pym/repoman/checks.py +++ b/pym/repoman/checks.py @@ -731,6 +731,21 @@ class DeprecatedHasq(LineCheck): re = re.compile(r'(^|.*\b)hasq\b') error = errors.HASQ_ERROR +# EAPI <2 checks +class Eapi01UndefinedPhases(LineCheck): + repoman_check_name = 'EAPI.incompatible' + src_configprepare_re = re.compile(r'\s*(src_configure|src_prepare)\s*\(\)') + + def check_eapi(self, eapi): + return eapi in ('0', '1') + + def check(self, num, line): + m = self.src_configprepare_re.match(line) + if m is not None: + return ("'%s'" % m.group(1)) + \ + " phase is not defined in EAPI < 2 on line: %d" + + # EAPI-3 checks class Eapi3DeprecatedFuncs(LineCheck): repoman_check_name = 'EAPI.deprecated' @@ -745,6 +760,20 @@ class Eapi3DeprecatedFuncs(LineCheck): return ("'%s'" % m.group(1)) + \ " has been deprecated in EAPI=3 on line: %d" +# EAPI <4 checks +class Eapi0123UndefinedPhases(LineCheck): + repoman_check_name = 'EAPI.incompatible' + pkg_pretend_re = re.compile(r'\s*(pkg_pretend)\s*\(\)') + + def check_eapi(self, eapi): + return eapi in ('0', '1', '2', '3') + + def check(self, num, line): + m = self.pkg_pretend_re.match(line) + if m is not None: + return ("'%s'" % m.group(1)) + \ + " phase is not defined in EAPI < 4 on line: %d" + # EAPI-4 checks class Eapi4IncompatibleFuncs(LineCheck): repoman_check_name = 'EAPI.incompatible' -- 1.8.5.1