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/metadata/, pym/repoman/
Date: Sun, 31 Jan 2016 20:03:39
Message-Id: 1454185521.07b87ced7b378bace32904c6322cc3d00d610a01.dolsen@gentoo
1 commit: 07b87ced7b378bace32904c6322cc3d00d610a01
2 Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
3 AuthorDate: Sun Jan 3 11:56:25 2016 +0000
4 Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
5 CommitDate: Sat Jan 30 20:25:21 2016 +0000
6 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=07b87ced
7
8 repoman: Migrate more metadata checks to ebuild_metadata.py
9
10 .../modules/scan/metadata/ebuild_metadata.py | 32 ++++++++++++++++++++--
11 pym/repoman/scanner.py | 17 ------------
12 2 files changed, 30 insertions(+), 19 deletions(-)
13
14 diff --git a/pym/repoman/modules/scan/metadata/ebuild_metadata.py b/pym/repoman/modules/scan/metadata/ebuild_metadata.py
15 index 2dc1db2..77c947e 100644
16 --- a/pym/repoman/modules/scan/metadata/ebuild_metadata.py
17 +++ b/pym/repoman/modules/scan/metadata/ebuild_metadata.py
18 @@ -5,6 +5,8 @@
19 import re
20 import sys
21
22 +from repoman.qa_data import missingvars
23 +
24 if sys.hexversion >= 0x3000000:
25 basestring = str
26
27 @@ -16,7 +18,7 @@ class EbuildMetadata(object):
28 def __init__(self, **kwargs):
29 self.qatracker = kwargs.get('qatracker')
30
31 - def check(self, **kwargs):
32 + def invalidchar(self, **kwargs):
33 ebuild = kwargs.get('ebuild')
34 for k, v in ebuild.metadata.items():
35 if not isinstance(v, basestring):
36 @@ -28,9 +30,35 @@ class EbuildMetadata(object):
37 "%s: %s variable contains non-ASCII "
38 "character at position %s" %
39 (ebuild.relative_path, k, m.start() + 1))
40 + return {'continue': False}
41 +
42 + def missing(self, **kwargs):
43 + ebuild = kwargs.get('ebuild')
44 + for pos, missing_var in enumerate(missingvars):
45 + if not ebuild.metadata.get(missing_var):
46 + if kwargs.get('catdir') == "virtual" and \
47 + missing_var in ("HOMEPAGE", "LICENSE"):
48 + continue
49 + if kwargs.get('live_ebuild') and missing_var == "KEYWORDS":
50 + continue
51 + myqakey = missingvars[pos] + ".missing"
52 + self.qatracker.add_error(myqakey, '%s/%s.ebuild'
53 + % (kwargs.get('xpkg'), kwargs.get('y_ebuild')))
54 + return {'continue': False}
55 +
56 + def old_virtual(self, **kwargs):
57 + ebuild = kwargs.get('ebuild')
58 if ebuild.metadata.get("PROVIDE"):
59 self.qatracker.add_error("virtual.oldstyle", ebuild.relative_path)
60 + return {'continue': False}
61
62 + def virtual(self, **kwargs):
63 + ebuild = kwargs.get('ebuild')
64 + if kwargs.get('catdir') == "virtual":
65 + for var in ("HOMEPAGE", "LICENSE"):
66 + if ebuild.metadata.get(var):
67 + myqakey = var + ".virtual"
68 + self.qatracker.add_error(myqakey, ebuild.relative_path)
69 return {'continue': False}
70
71 @property
72 @@ -39,4 +67,4 @@ class EbuildMetadata(object):
73
74 @property
75 def runInEbuilds(self):
76 - return (True, [self.check])
77 + return (True, [self.invalidchar, self.missing, self.old_virtual, self.virtual])
78
79 diff --git a/pym/repoman/scanner.py b/pym/repoman/scanner.py
80 index ec126e6..1a2de05 100644
81 --- a/pym/repoman/scanner.py
82 +++ b/pym/repoman/scanner.py
83 @@ -327,23 +327,6 @@ class Scanner(object):
84 if y_ebuild_continue:
85 continue
86
87 -
88 - for pos, missing_var in enumerate(missingvars):
89 - if not dynamic_data['ebuild'].metadata.get(missing_var):
90 - if dynamic_data['catdir'] == "virtual" and \
91 - missing_var in ("HOMEPAGE", "LICENSE"):
92 - continue
93 - if dynamic_data['live_ebuild'] and missing_var == "KEYWORDS":
94 - continue
95 - myqakey = missingvars[pos] + ".missing"
96 - self.qatracker.add_error(myqakey, xpkg + "/" + y_ebuild + ".ebuild")
97 -
98 - if dynamic_data['catdir'] == "virtual":
99 - for var in ("HOMEPAGE", "LICENSE"):
100 - if dynamic_data['ebuild'].metadata.get(var):
101 - myqakey = var + ".virtual"
102 - self.qatracker.add_error(myqakey, dynamic_data['ebuild'].relative_path)
103 -
104 if dynamic_data['live_ebuild'] and self.repo_settings.repo_config.name == "gentoo":
105 self.liveeclasscheck.check(
106 dynamic_data['pkg'], xpkg, dynamic_data['ebuild'], y_ebuild, dynamic_data['ebuild'].keywords, self.repo_metadata['pmaskdict'])