Gentoo Archives: gentoo-commits

From: Brian Dolbec <dolsen@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:repoman commit in: pym/repoman/modules/scan/keywords/, pym/repoman/
Date: Sun, 31 Jan 2016 20:03:36
Message-Id: 1454185507.4a0492f739f88343c5f7f13b5321075852c70dd4.dolsen@gentoo
1 commit: 4a0492f739f88343c5f7f13b5321075852c70dd4
2 Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
3 AuthorDate: Sun Jan 3 18:28:58 2016 +0000
4 Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
5 CommitDate: Sat Jan 30 20:25:07 2016 +0000
6 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=4a0492f7
7
8 repoman: Complete KeywordChecks migration
9
10 pym/repoman/modules/scan/keywords/keywords.py | 47 ++++++++++++---------------
11 pym/repoman/scanner.py | 3 +-
12 2 files changed, 23 insertions(+), 27 deletions(-)
13
14 diff --git a/pym/repoman/modules/scan/keywords/keywords.py b/pym/repoman/modules/scan/keywords/keywords.py
15 index 484d7d5..e34c891 100644
16 --- a/pym/repoman/modules/scan/keywords/keywords.py
17 +++ b/pym/repoman/modules/scan/keywords/keywords.py
18 @@ -19,6 +19,8 @@ class KeywordChecks(ScanBase):
19 super(KeywordChecks, self).__init__(**kwargs)
20 self.qatracker = kwargs.get('qatracker')
21 self.options = kwargs.get('options')
22 + self.repo_metadata = kwargs.get('repo_metadata')
23 + self.profiles = kwargs.get('profiles')
24 self.slot_keywords = {}
25
26 def prepare(self, **kwargs):
27 @@ -45,21 +47,19 @@ class KeywordChecks(ScanBase):
28 live_ebuild = kwargs.get('live_ebuild')
29 if not self.options.straight_to_stable:
30 self._checkAddedWithStableKeywords(
31 - package, ebuild, y_ebuild, keywords, changed)
32 + xpkg, ebuild, y_ebuild, ebuild.keywords, changed)
33
34 - self._checkForDroppedKeywords(
35 - pkg, ebuild, ebuild_archs, live_ebuild)
36 + self._checkForDroppedKeywords(pkg, ebuild, ebuild.archs, live_ebuild)
37
38 - self._checkForInvalidKeywords(
39 - pkg, package, y_ebuild, kwlist, profiles)
40 + self._checkForInvalidKeywords(ebuild, xpkg, y_ebuild)
41
42 - self._checkForMaskLikeKeywords(
43 - package, y_ebuild, keywords, kwlist)
44 + self._checkForMaskLikeKeywords(xpkg, y_ebuild, ebuild.keywords)
45
46 - self.slot_keywords[pkg.slot].update(ebuild_archs)
47 + self.slot_keywords[pkg.slot].update(ebuild.archs)
48 return {'continue': False}
49
50 - def _isKeywordStable(self, keyword):
51 + @staticmethod
52 + def _isKeywordStable(keyword):
53 return not keyword.startswith("~") and not keyword.startswith("-")
54
55 def _checkAddedWithStableKeywords(
56 @@ -88,9 +88,8 @@ class KeywordChecks(ScanBase):
57 ebuild.relative_path,
58 " ".join(sorted(dropped_keywords))))
59
60 - def _checkForInvalidKeywords(
61 - self, pkg, package, y_ebuild, kwlist, profiles):
62 - myuse = pkg._metadata["KEYWORDS"].split()
63 + def _checkForInvalidKeywords(self, ebuild, xpkg, y_ebuild):
64 + myuse = ebuild.keywords
65
66 for mykey in myuse:
67 if mykey not in ("-*", "*", "~*"):
68 @@ -99,20 +98,16 @@ class KeywordChecks(ScanBase):
69 if not self._isKeywordStable(myskey[:1]):
70 myskey = myskey[1:]
71
72 - if myskey not in kwlist:
73 + if myskey not in self.repo_metadata['kwlist']:
74 + self.qatracker.add_error("KEYWORDS.invalid",
75 + "%s/%s.ebuild: %s" % (xpkg, y_ebuild, mykey))
76 + elif myskey not in self.profiles:
77 self.qatracker.add_error(
78 "KEYWORDS.invalid",
79 - "%s/%s.ebuild: %s" % (
80 - package, y_ebuild, mykey))
81 - elif myskey not in profiles:
82 - self.qatracker.add_error(
83 - "KEYWORDS.invalid",
84 - "%s/%s.ebuild: %s (profile invalid)" % (
85 - package, y_ebuild, mykey))
86 -
87 - def _checkForMaskLikeKeywords(
88 - self, package, y_ebuild, keywords, kwlist):
89 + "%s/%s.ebuild: %s (profile invalid)"
90 + % (xpkg, y_ebuild, mykey))
91
92 + def _checkForMaskLikeKeywords(self, xpkg, y_ebuild, keywords):
93 # KEYWORDS="-*" is a stupid replacement for package.mask
94 # and screws general KEYWORDS semantics
95 if "-*" in keywords:
96 @@ -121,12 +116,12 @@ class KeywordChecks(ScanBase):
97 for kw in keywords:
98 if kw[0] == "~":
99 kw = kw[1:]
100 - if kw in kwlist:
101 + if kw in self.repo_metadata['kwlist']:
102 haskeyword = True
103
104 if not haskeyword:
105 - self.qatracker.add_error(
106 - "KEYWORDS.stupid", package + "/" + y_ebuild + ".ebuild")
107 + self.qatracker.add_error("KEYWORDS.stupid",
108 + "%s/%s.ebuild" % (xpkg, y_ebuild))
109
110 @property
111 def runInPkgs(self):
112
113 diff --git a/pym/repoman/scanner.py b/pym/repoman/scanner.py
114 index f4c21d0..2c910a6 100644
115 --- a/pym/repoman/scanner.py
116 +++ b/pym/repoman/scanner.py
117 @@ -206,6 +206,7 @@ class Scanner(object):
118 "uselist": uselist,
119 "checks": self.checks,
120 "repo_metadata": self.repo_metadata,
121 + "profiles": self.profiles,
122 }
123 # initialize the plugin checks here
124 self.modules = {}
125 @@ -302,7 +303,7 @@ class Scanner(object):
126 for mod in [('ebuild', 'Ebuild'), ('live', 'LiveEclassChecks'),
127 ('eapi', 'EAPIChecks'), ('ebuild_metadata', 'EbuildMetadata'),
128 ('thirdpartymirrors', 'ThirdPartyMirrors'),
129 - ('description', 'DescriptionChecks'),
130 + ('description', 'DescriptionChecks'), (None, 'KeywordChecks'),
131 ]:
132 if mod[0]:
133 mod_class = MODULE_CONTROLLER.get_class(mod[0])