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/, pym/repoman/modules/scan/depend/
Date: Sun, 31 Jan 2016 20:03:52
Message-Id: 1454185523.5147b295030ec2b30fa18297bb715d20a05ddd0c.dolsen@gentoo
1 commit: 5147b295030ec2b30fa18297bb715d20a05ddd0c
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: Sat Jan 30 20:25:23 2016 +0000
6 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=5147b295
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 | 30 +++++++++++++++++++++++++++++
12 pym/repoman/scanner.py | 10 +---------
13 3 files changed, 40 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..61d51b9
39 --- /dev/null
40 +++ b/pym/repoman/modules/scan/depend/unknown.py
41 @@ -0,0 +1,30 @@
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 runInPkgs(self):
67 + return (False, [])
68 +
69 + @property
70 + def runInEbuilds(self):
71 + return (True, [self.check])
72
73 diff --git a/pym/repoman/scanner.py b/pym/repoman/scanner.py
74 index b82cefb..ca1de5f 100644
75 --- a/pym/repoman/scanner.py
76 +++ b/pym/repoman/scanner.py
77 @@ -290,6 +290,7 @@ class Scanner(object):
78 ('mtime', 'MtimeChecks'), ('multicheck', 'MultiCheck'),
79 # Options.is_forced() is used to bypass further checks
80 ('options', 'Options'), ('profile', 'ProfileDependsChecks'),
81 + ('unknown', 'DependUnknown'),
82 ]:
83 if mod[0]:
84 mod_class = MODULE_CONTROLLER.get_class(mod[0])
85 @@ -317,15 +318,6 @@ class Scanner(object):
86 if y_ebuild_continue:
87 continue
88
89 - if not dynamic_data['baddepsyntax'] and dynamic_data['unknown_pkgs']:
90 - type_map = {}
91 - for mytype, atom in dynamic_data['unknown_pkgs']:
92 - type_map.setdefault(mytype, set()).add(atom)
93 - for mytype, atoms in type_map.items():
94 - self.qatracker.add_error(
95 - "dependency.unknown", "%s: %s: %s"
96 - % (dynamic_data['ebuild'].relative_path, mytype, ", ".join(sorted(atoms))))
97 -
98 # check if there are unused local USE-descriptions in metadata.xml
99 # (unless there are any invalids, to avoid noise)
100 if dynamic_data['allvalid']: