Gentoo Archives: gentoo-commits

From: Brian Dolbec <brian.dolbec@×××××.com>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/gentoolkit:gentoolkit commit in: pym/gentoolkit/revdep_rebuild/
Date: Tue, 11 Feb 2014 18:49:52
Message-Id: 1392143785.fe9ab48e320da2f78325b493bf7b41c8799cb019.dol-sen@gentoo
1 commit: fe9ab48e320da2f78325b493bf7b41c8799cb019
2 Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
3 AuthorDate: Tue Feb 11 18:33:45 2014 +0000
4 Commit: Brian Dolbec <brian.dolbec <AT> gmail <DOT> com>
5 CommitDate: Tue Feb 11 18:36:25 2014 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoolkit.git;a=commit;h=fe9ab48e
7
8 revdep_rebuild: Track and report broken orphaned files.
9
10 ---
11 pym/gentoolkit/revdep_rebuild/assign.py | 11 ++++++++---
12 pym/gentoolkit/revdep_rebuild/rebuild.py | 13 ++++++++++---
13 2 files changed, 18 insertions(+), 6 deletions(-)
14
15 diff --git a/pym/gentoolkit/revdep_rebuild/assign.py b/pym/gentoolkit/revdep_rebuild/assign.py
16 index fc10187..8575532 100644
17 --- a/pym/gentoolkit/revdep_rebuild/assign.py
18 +++ b/pym/gentoolkit/revdep_rebuild/assign.py
19 @@ -23,7 +23,8 @@ def assign_packages(broken, logger, settings):
20 ''' Finds and returns packages that owns files placed in broken.
21 Broken is list of files
22 '''
23 - assigned = set()
24 + assigned_pkgs = set()
25 + assigned_filenames = set()
26 for group in os.listdir(settings['PKG_DIR']):
27 grppath = settings['PKG_DIR'] + group
28 if not os.path.isdir(grppath):
29 @@ -42,13 +43,17 @@ def assign_packages(broken, logger, settings):
30 m = m.group(1)
31 if m in broken:
32 found = group+'/'+pkg
33 - assigned.add(found)
34 + assigned_pkgs.add(found)
35 + assigned_filenames.add(m)
36 logger.info('\t' + m + ' -> ' + bold(found))
37 except Exception as e:
38 logger.warn(red(' !! Failed to read ' + f))
39 logger.warn(red(' !! Error was:' + str(e)))
40
41 - return assigned
42 + broken_filenames = set(broken)
43 + orphaned = broken_filenames.difference(assigned_filenames)
44 +
45 + return (assigned_pkgs, orphaned)
46
47
48 def get_best_match(cpv, cp, logger):
49
50 diff --git a/pym/gentoolkit/revdep_rebuild/rebuild.py b/pym/gentoolkit/revdep_rebuild/rebuild.py
51 index 81e2b34..21ede45 100644
52 --- a/pym/gentoolkit/revdep_rebuild/rebuild.py
53 +++ b/pym/gentoolkit/revdep_rebuild/rebuild.py
54 @@ -221,7 +221,7 @@ def main(settings=None, logger=None):
55 and check_temp_files(settings['DEFAULT_TMP_DIR'], logger=logger):
56 libraries, la_libraries, libraries_links, binaries = read_cache(
57 settings['DEFAULT_TMP_DIR'])
58 - assigned = analyse(
59 + assigned, orphaned = analyse(
60 settings=settings,
61 logger=logger,
62 libraries=libraries,
63 @@ -230,12 +230,19 @@ def main(settings=None, logger=None):
64 binaries=binaries,
65 _libs_to_check=_libs_to_check)
66 else:
67 - assigned = analyse(settings, logger, _libs_to_check=_libs_to_check)
68 + assigned, orphaned = analyse(settings, logger, _libs_to_check=_libs_to_check)
69
70 - if not assigned:
71 + if not assigned and not orphaned:
72 logger.warn('\n' + bold('Your system is consistent'))
73 # return the correct exit code
74 return 0
75 + elif orphaned:
76 + # blank line for beter visibility of the following lines
77 + logger.warn('')
78 + logger.warn(red('!!! Broken orphaned files: ') +
79 + bold('No installed package was found for the following:'))
80 + for filename in orphaned:
81 + logger.warn(red(' * ') + filename)
82
83 has_masked = False
84 tmp = []