1 |
Some packages list the same atom multiple times (e.g. behind diff USE |
2 |
flags). If one of them throws an error, we end up listing it more than |
3 |
once, and the output can get verbose/useless. |
4 |
--- |
5 |
pym/repoman/scanner.py | 13 +++++++++++-- |
6 |
1 file changed, 11 insertions(+), 2 deletions(-) |
7 |
|
8 |
diff --git a/pym/repoman/scanner.py b/pym/repoman/scanner.py |
9 |
index d1c10d7..94ada90 100644 |
10 |
--- a/pym/repoman/scanner.py |
11 |
+++ b/pym/repoman/scanner.py |
12 |
@@ -704,13 +704,22 @@ class Scanner(object): |
13 |
|
14 |
# we have some unsolvable deps |
15 |
# remove ! deps, which always show up as unsatisfiable |
16 |
- atoms = [ |
17 |
+ all_atoms = [ |
18 |
str(atom.unevaluated_atom) |
19 |
for atom in atoms if not atom.blocker] |
20 |
|
21 |
# if we emptied out our list, continue: |
22 |
- if not atoms: |
23 |
+ if not all_atoms: |
24 |
continue |
25 |
+ |
26 |
+ # Filter out duplicates. We do this by hand (rather |
27 |
+ # than use a set) so the order is stable and better |
28 |
+ # matches the order that's in the ebuild itself. |
29 |
+ atoms = [] |
30 |
+ for atom in all_atoms: |
31 |
+ if atom not in atoms: |
32 |
+ atoms.append(atom) |
33 |
+ |
34 |
if self.options.output_style in ['column']: |
35 |
self.qatracker.add_error(mykey, |
36 |
"%s: %s: %s(%s) %s" |
37 |
-- |
38 |
2.6.2 |