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/ebuild/, pym/repoman/modules/scan/eclasses/, ...
Date: Tue, 03 May 2016 06:11:36
Message-Id: 1461982892.8e7971169c23a43696e020433a9f205abf98ee76.dolsen@gentoo
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'