1 |
commit: 8e7971169c23a43696e020433a9f205abf98ee76 |
2 |
Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sat Apr 30 02:21:32 2016 +0000 |
4 |
Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org> |
5 |
CommitDate: Sat Apr 30 02:21:32 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=8e797116 |
7 |
|
8 |
repoman: Fix logic error causing the live eclass checks to run for a non-live ebuild |
9 |
|
10 |
The logic inverting the original live eclass checks was not working. |
11 |
Restore the live_ebuild variable instead of the is_live(). |
12 |
Restore the original if logic and split off the actual code to another function called like the |
13 |
original code did. |
14 |
|
15 |
pym/repoman/modules/scan/ebuild/ebuild.py | 10 ++-------- |
16 |
pym/repoman/modules/scan/eclasses/live.py | 8 +++++--- |
17 |
pym/repoman/modules/scan/keywords/keywords.py | 2 +- |
18 |
pym/repoman/modules/scan/metadata/ebuild_metadata.py | 2 +- |
19 |
4 files changed, 9 insertions(+), 13 deletions(-) |
20 |
|
21 |
diff --git a/pym/repoman/modules/scan/ebuild/ebuild.py b/pym/repoman/modules/scan/ebuild/ebuild.py |
22 |
index 0277aa9..7b31fcd 100644 |
23 |
--- a/pym/repoman/modules/scan/ebuild/ebuild.py |
24 |
+++ b/pym/repoman/modules/scan/ebuild/ebuild.py |
25 |
@@ -45,6 +45,7 @@ class Ebuild(ScanBase): |
26 |
self.metadata = None |
27 |
self.eapi = None |
28 |
self.inherited = None |
29 |
+ self.live_ebuild = None |
30 |
self.keywords = None |
31 |
self.pkgs = {} |
32 |
|
33 |
@@ -109,6 +110,7 @@ class Ebuild(ScanBase): |
34 |
self.metadata = self.pkg._metadata |
35 |
self.eapi = self.metadata["EAPI"] |
36 |
self.inherited = self.pkg.inherited |
37 |
+ self.live_ebuild = LIVE_ECLASSES.intersection(self.inherited) |
38 |
self.keywords = self.metadata["KEYWORDS"].split() |
39 |
self.archs = set(kw.lstrip("~") for kw in self.keywords if not kw.startswith("-")) |
40 |
return False |
41 |
@@ -221,14 +223,6 @@ class Ebuild(ScanBase): |
42 |
return self.continue_ |
43 |
|
44 |
@property |
45 |
- def is_live(self): |
46 |
- '''Test if the ebuild inherits a live eclass |
47 |
- |
48 |
- @returns: boolean |
49 |
- ''' |
50 |
- return set(LIVE_ECLASSES.intersection(self.inherited)) |
51 |
- |
52 |
- @property |
53 |
def runInPkgs(self): |
54 |
'''Package level scans''' |
55 |
return (True, [self.check_isebuild]) |
56 |
|
57 |
diff --git a/pym/repoman/modules/scan/eclasses/live.py b/pym/repoman/modules/scan/eclasses/live.py |
58 |
index 1ce33c0..0036f10 100644 |
59 |
--- a/pym/repoman/modules/scan/eclasses/live.py |
60 |
+++ b/pym/repoman/modules/scan/eclasses/live.py |
61 |
@@ -34,15 +34,17 @@ class LiveEclassChecks(ScanBase): |
62 |
y_ebuild = kwargs.get('y_ebuild') |
63 |
keywords = ebuild.keywords |
64 |
|
65 |
- if not ebuild.is_live and self.repo_settings.repo_config.name == "gentoo": |
66 |
- return False |
67 |
+ if ebuild.live_ebuild and self.repo_settings.repo_config.name == "gentoo": |
68 |
+ return self.check_live(pkg, package, ebuild, y_ebuild) |
69 |
+ return False |
70 |
|
71 |
+ def check_live(pkg, package, ebuild, y_ebuild): |
72 |
is_stable = lambda kw: not kw.startswith("~") and not kw.startswith("-") |
73 |
bad_stable_keywords = list(filter(is_stable, keywords)) |
74 |
|
75 |
if bad_stable_keywords: |
76 |
self.qatracker.add_error( |
77 |
- "LIVEVCS.stable", "%s/%s.ebuild with stable keywords:%s " % ( |
78 |
+ "LIVEVCS.stable", "%s/%s.ebuild with stable keywords :%s" % ( |
79 |
package, y_ebuild, bad_stable_keywords)) |
80 |
|
81 |
good_keywords_exist = len(bad_stable_keywords) < len(keywords) |
82 |
|
83 |
diff --git a/pym/repoman/modules/scan/keywords/keywords.py b/pym/repoman/modules/scan/keywords/keywords.py |
84 |
index c3c8058..7cb2fe9 100644 |
85 |
--- a/pym/repoman/modules/scan/keywords/keywords.py |
86 |
+++ b/pym/repoman/modules/scan/keywords/keywords.py |
87 |
@@ -79,7 +79,7 @@ class KeywordChecks(ScanBase): |
88 |
previous_keywords = self.slot_keywords.get(pkg.slot) |
89 |
if previous_keywords is None: |
90 |
self.slot_keywords[pkg.slot] = set() |
91 |
- elif ebuild_archs and "*" not in ebuild_archs and not ebuild.is_live: |
92 |
+ elif ebuild_archs and "*" not in ebuild_archs and not ebuild.live_ebuild: |
93 |
dropped_keywords = previous_keywords.difference(ebuild_archs) |
94 |
if dropped_keywords: |
95 |
self.qatracker.add_error( |
96 |
|
97 |
diff --git a/pym/repoman/modules/scan/metadata/ebuild_metadata.py b/pym/repoman/modules/scan/metadata/ebuild_metadata.py |
98 |
index bbccedf..e991a30 100644 |
99 |
--- a/pym/repoman/modules/scan/metadata/ebuild_metadata.py |
100 |
+++ b/pym/repoman/modules/scan/metadata/ebuild_metadata.py |
101 |
@@ -40,7 +40,7 @@ class EbuildMetadata(ScanBase): |
102 |
if kwargs.get('catdir') == "virtual" and \ |
103 |
missing_var in ("HOMEPAGE", "LICENSE"): |
104 |
continue |
105 |
- if ebuild.is_live and missing_var == "KEYWORDS": |
106 |
+ if ebuild.live_ebuild and missing_var == "KEYWORDS": |
107 |
continue |
108 |
myqakey = missingvars[pos] + ".missing" |
109 |
self.qatracker.add_error(myqakey, '%s/%s.ebuild' |