From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 15ED91388BF for ; Sun, 10 Jan 2016 03:26:05 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 9F00121C00E; Sun, 10 Jan 2016 03:26:04 +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 BAB9C21C00D for ; Sun, 10 Jan 2016 03:26:03 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 8F35933E5E4 for ; Sun, 10 Jan 2016 03:26:02 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 09384D22 for ; Sun, 10 Jan 2016 03:26:00 +0000 (UTC) From: "Brian Dolbec" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Brian Dolbec" Message-ID: <1452396229.c935ccc827a5fae5f39ec79488c03a1922c0f95b.dolsen@gentoo> Subject: [gentoo-commits] proj/portage:repoman commit in: pym/repoman/modules/scan/keywords/, pym/repoman/ X-VCS-Repository: proj/portage X-VCS-Files: pym/repoman/modules/scan/keywords/keywords.py pym/repoman/scanner.py X-VCS-Directories: pym/repoman/modules/scan/keywords/ pym/repoman/ X-VCS-Committer: dolsen X-VCS-Committer-Name: Brian Dolbec X-VCS-Revision: c935ccc827a5fae5f39ec79488c03a1922c0f95b X-VCS-Branch: repoman Date: Sun, 10 Jan 2016 03:26:00 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 092c5673-ddf4-46f5-90ab-c5227246013f X-Archives-Hash: 5c3024495a533f81b2f5bc7de5e6bffc commit: c935ccc827a5fae5f39ec79488c03a1922c0f95b Author: Brian Dolbec gentoo org> AuthorDate: Sun Jan 3 18:28:58 2016 +0000 Commit: Brian Dolbec gentoo org> CommitDate: Sun Jan 10 03:23:49 2016 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=c935ccc8 repoman: Complete KeywordChecks migration pym/repoman/modules/scan/keywords/keywords.py | 47 ++++++++++++--------------- pym/repoman/scanner.py | 3 +- 2 files changed, 23 insertions(+), 27 deletions(-) diff --git a/pym/repoman/modules/scan/keywords/keywords.py b/pym/repoman/modules/scan/keywords/keywords.py index 484d7d5..e34c891 100644 --- a/pym/repoman/modules/scan/keywords/keywords.py +++ b/pym/repoman/modules/scan/keywords/keywords.py @@ -19,6 +19,8 @@ class KeywordChecks(ScanBase): super(KeywordChecks, self).__init__(**kwargs) self.qatracker = kwargs.get('qatracker') self.options = kwargs.get('options') + self.repo_metadata = kwargs.get('repo_metadata') + self.profiles = kwargs.get('profiles') self.slot_keywords = {} def prepare(self, **kwargs): @@ -45,21 +47,19 @@ class KeywordChecks(ScanBase): live_ebuild = kwargs.get('live_ebuild') if not self.options.straight_to_stable: self._checkAddedWithStableKeywords( - package, ebuild, y_ebuild, keywords, changed) + xpkg, ebuild, y_ebuild, ebuild.keywords, changed) - self._checkForDroppedKeywords( - pkg, ebuild, ebuild_archs, live_ebuild) + self._checkForDroppedKeywords(pkg, ebuild, ebuild.archs, live_ebuild) - self._checkForInvalidKeywords( - pkg, package, y_ebuild, kwlist, profiles) + self._checkForInvalidKeywords(ebuild, xpkg, y_ebuild) - self._checkForMaskLikeKeywords( - package, y_ebuild, keywords, kwlist) + self._checkForMaskLikeKeywords(xpkg, y_ebuild, ebuild.keywords) - self.slot_keywords[pkg.slot].update(ebuild_archs) + self.slot_keywords[pkg.slot].update(ebuild.archs) return {'continue': False} - def _isKeywordStable(self, keyword): + @staticmethod + def _isKeywordStable(keyword): return not keyword.startswith("~") and not keyword.startswith("-") def _checkAddedWithStableKeywords( @@ -88,9 +88,8 @@ class KeywordChecks(ScanBase): ebuild.relative_path, " ".join(sorted(dropped_keywords)))) - def _checkForInvalidKeywords( - self, pkg, package, y_ebuild, kwlist, profiles): - myuse = pkg._metadata["KEYWORDS"].split() + def _checkForInvalidKeywords(self, ebuild, xpkg, y_ebuild): + myuse = ebuild.keywords for mykey in myuse: if mykey not in ("-*", "*", "~*"): @@ -99,20 +98,16 @@ class KeywordChecks(ScanBase): if not self._isKeywordStable(myskey[:1]): myskey = myskey[1:] - if myskey not in kwlist: + if myskey not in self.repo_metadata['kwlist']: + self.qatracker.add_error("KEYWORDS.invalid", + "%s/%s.ebuild: %s" % (xpkg, y_ebuild, mykey)) + elif myskey not in self.profiles: self.qatracker.add_error( "KEYWORDS.invalid", - "%s/%s.ebuild: %s" % ( - package, y_ebuild, mykey)) - elif myskey not in profiles: - self.qatracker.add_error( - "KEYWORDS.invalid", - "%s/%s.ebuild: %s (profile invalid)" % ( - package, y_ebuild, mykey)) - - def _checkForMaskLikeKeywords( - self, package, y_ebuild, keywords, kwlist): + "%s/%s.ebuild: %s (profile invalid)" + % (xpkg, y_ebuild, mykey)) + def _checkForMaskLikeKeywords(self, xpkg, y_ebuild, keywords): # KEYWORDS="-*" is a stupid replacement for package.mask # and screws general KEYWORDS semantics if "-*" in keywords: @@ -121,12 +116,12 @@ class KeywordChecks(ScanBase): for kw in keywords: if kw[0] == "~": kw = kw[1:] - if kw in kwlist: + if kw in self.repo_metadata['kwlist']: haskeyword = True if not haskeyword: - self.qatracker.add_error( - "KEYWORDS.stupid", package + "/" + y_ebuild + ".ebuild") + self.qatracker.add_error("KEYWORDS.stupid", + "%s/%s.ebuild" % (xpkg, y_ebuild)) @property def runInPkgs(self): diff --git a/pym/repoman/scanner.py b/pym/repoman/scanner.py index bb856b8..83193fd 100644 --- a/pym/repoman/scanner.py +++ b/pym/repoman/scanner.py @@ -203,6 +203,7 @@ class Scanner(object): "uselist": uselist, "checks": self.checks, "repo_metadata": self.repo_metadata, + "profiles": self.profiles, } # initialize the plugin checks here self.modules = {} @@ -299,7 +300,7 @@ class Scanner(object): for mod in [('ebuild', 'Ebuild'), ('live', 'LiveEclassChecks'), ('eapi', 'EAPIChecks'), ('ebuild_metadata', 'EbuildMetadata'), ('thirdpartymirrors', 'ThirdPartyMirrors'), - ('description', 'DescriptionChecks'), + ('description', 'DescriptionChecks'), (None, 'KeywordChecks'), ]: if mod[0]: mod_class = MODULE_CONTROLLER.get_class(mod[0])