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/depend/, pym/repoman/
Date: Mon, 07 Mar 2016 21:53:33
Message-Id: 1457385685.66b6e342f08b2e36270ee3c50ae3f94670a429fc.dolsen@gentoo
1 commit: 66b6e342f08b2e36270ee3c50ae3f94670a429fc
2 Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
3 AuthorDate: Mon Jan 4 08:09:33 2016 +0000
4 Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
5 CommitDate: Mon Mar 7 21:21:25 2016 +0000
6 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=66b6e342
7
8 repoman: Create a new DependUnknown plugin class
9
10 pym/repoman/modules/scan/depend/__init__.py | 9 +++++++++
11 pym/repoman/modules/scan/depend/unknown.py | 26 ++++++++++++++++++++++++++
12 pym/repoman/scanner.py | 10 +---------
13 3 files changed, 36 insertions(+), 9 deletions(-)
14
15 diff --git a/pym/repoman/modules/scan/depend/__init__.py b/pym/repoman/modules/scan/depend/__init__.py
16 index cddb7f1..9fd7970 100644
17 --- a/pym/repoman/modules/scan/depend/__init__.py
18 +++ b/pym/repoman/modules/scan/depend/__init__.py
19 @@ -28,6 +28,15 @@ module_spec = {
20 'func_desc': {
21 },
22 },
23 + 'unknown-module': {
24 + 'name': "unknown",
25 + 'sourcefile': "unknown",
26 + 'class': "DependUnknown",
27 + 'description': doc,
28 + 'functions': ['check'],
29 + 'func_desc': {
30 + },
31 + },
32 }
33 }
34
35
36 diff --git a/pym/repoman/modules/scan/depend/unknown.py b/pym/repoman/modules/scan/depend/unknown.py
37 new file mode 100644
38 index 0000000..b61a6e2
39 --- /dev/null
40 +++ b/pym/repoman/modules/scan/depend/unknown.py
41 @@ -0,0 +1,26 @@
42 +# -*- coding:utf-8 -*-
43 +
44 +
45 +class DependUnknown(object):
46 +
47 + def __init__(self, **kwargs):
48 + self.qatracker = kwargs.get('qatracker')
49 +
50 + def check(self, **kwargs):
51 + ebuild = kwargs.get('ebuild')
52 + baddepsyntax = kwargs.get('baddepsyntax')
53 + unknown_pkgs = kwargs.get('unknown_pkgs')
54 +
55 + if not baddepsyntax and unknown_pkgs:
56 + type_map = {}
57 + for mytype, atom in unknown_pkgs:
58 + type_map.setdefault(mytype, set()).add(atom)
59 + for mytype, atoms in type_map.items():
60 + self.qatracker.add_error(
61 + "dependency.unknown", "%s: %s: %s"
62 + % (ebuild.relative_path, mytype, ", ".join(sorted(atoms))))
63 + return {'continue': False}
64 +
65 + @property
66 + def runInEbuilds(self):
67 + return (True, [self.check])
68
69 diff --git a/pym/repoman/scanner.py b/pym/repoman/scanner.py
70 index b82cefb..ca1de5f 100644
71 --- a/pym/repoman/scanner.py
72 +++ b/pym/repoman/scanner.py
73 @@ -290,6 +290,7 @@ class Scanner(object):
74 ('mtime', 'MtimeChecks'), ('multicheck', 'MultiCheck'),
75 # Options.is_forced() is used to bypass further checks
76 ('options', 'Options'), ('profile', 'ProfileDependsChecks'),
77 + ('unknown', 'DependUnknown'),
78 ]:
79 if mod[0]:
80 mod_class = MODULE_CONTROLLER.get_class(mod[0])
81 @@ -317,15 +318,6 @@ class Scanner(object):
82 if y_ebuild_continue:
83 continue
84
85 - if not dynamic_data['baddepsyntax'] and dynamic_data['unknown_pkgs']:
86 - type_map = {}
87 - for mytype, atom in dynamic_data['unknown_pkgs']:
88 - type_map.setdefault(mytype, set()).add(atom)
89 - for mytype, atoms in type_map.items():
90 - self.qatracker.add_error(
91 - "dependency.unknown", "%s: %s: %s"
92 - % (dynamic_data['ebuild'].relative_path, mytype, ", ".join(sorted(atoms))))
93 -
94 # check if there are unused local USE-descriptions in metadata.xml
95 # (unless there are any invalids, to avoid noise)
96 if dynamic_data['allvalid']: