Gentoo Archives: gentoo-commits

From: "Sławek Lis" <lis.slawek@×××××.com>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/gentoolkit:revdep-rebuild commit in: pym/gentoolkit/revdep_rebuild/
Date: Tue, 26 Apr 2011 09:08:39
Message-Id: 8e0ca4b5aa041e760446d862b28007eff228be4d.slis@gentoo
1 commit: 8e0ca4b5aa041e760446d862b28007eff228be4d
2 Author: Slawek <lis.slawek <AT> gmail <DOT> com>
3 AuthorDate: Tue Apr 26 07:08:24 2011 +0000
4 Commit: Sławek Lis <lis.slawek <AT> gmail <DOT> com>
5 CommitDate: Tue Apr 26 07:08:24 2011 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gentoolkit.git;a=commit;h=8e0ca4b5
7
8 Fixed .la files parser. Some minor logging fixes.
9
10 ---
11 pym/gentoolkit/revdep_rebuild/analyse.py | 23 ++++++++++++++++++-----
12 pym/gentoolkit/revdep_rebuild/collect.py | 6 +++---
13 pym/gentoolkit/revdep_rebuild/rebuild.py | 4 ++--
14 3 files changed, 23 insertions(+), 10 deletions(-)
15
16 diff --git a/pym/gentoolkit/revdep_rebuild/analyse.py b/pym/gentoolkit/revdep_rebuild/analyse.py
17 index 521d8b9..be696d1 100644
18 --- a/pym/gentoolkit/revdep_rebuild/analyse.py
19 +++ b/pym/gentoolkit/revdep_rebuild/analyse.py
20 @@ -40,6 +40,15 @@ def prepare_checks(files_to_check, libraries, bits, cmd_max_args):
21
22 def extract_dependencies_from_la(la, libraries, to_check, logger):
23 broken = []
24 +
25 + libnames = []
26 + for l in libraries:
27 + m = re.match('.+\/(.+)\.(so|la|a)(\..+)?', l)
28 + if m is not None:
29 + ln = m.group(1)
30 + if ln not in libnames:
31 + libnames += [ln, ]
32 +
33 for f in la:
34 if not os.path.exists(f):
35 continue
36 @@ -51,10 +60,12 @@ def extract_dependencies_from_la(la, libraries, to_check, logger):
37 if m is not None:
38 for el in m.group(1).split(' '):
39 el = el.strip()
40 - if len(el) < 1 or el.startswith('-'):
41 + if len(el) < 1 or el.startswith('-L'):
42 continue
43
44 - if el in la or el in libraries:
45 + if el.startswith('-l') and 'lib'+el[2:] in libnames:
46 + pass
47 + elif el in la or el in libraries:
48 pass
49 else:
50 if to_check:
51 @@ -66,7 +77,7 @@ def extract_dependencies_from_la(la, libraries, to_check, logger):
52 if not _break:
53 continue
54
55 - logger.info(yellow(' * ') + f + ' is broken (requires: ' + bold(el))
56 + logger.info(yellow(' * ') + f + ' is broken (requires: ' + bold(el)+')')
57 broken.append(f)
58 return broken
59
60 @@ -178,13 +189,15 @@ def analyse(settings, logger, libraries=None, la_libraries=None,
61 #call_program(['scanelf', '-M', str(bits), '-BF', '%F',] + libraries+libraries_links).strip().split('\n')
62
63 found_libs, dependencies = prepare_checks(libs_and_bins, _libraries, bits, settings['CMD_MAX_ARGS'])
64 -
65 + #print dependencies
66 broken = find_broken(found_libs, _libraries, _libs_to_check)
67 - broken_la = extract_dependencies_from_la(la_libraries, _libraries, _libs_to_check, logger)
68
69 bits /= 2
70 bits = int(bits)
71
72 + broken_la = extract_dependencies_from_la(la_libraries, libraries+libraries_links, _libs_to_check, logger)
73 +
74 +
75 broken_pathes = main_checks(found_libs, broken, dependencies, logger)
76 broken_pathes += broken_la
77
78
79 diff --git a/pym/gentoolkit/revdep_rebuild/collect.py b/pym/gentoolkit/revdep_rebuild/collect.py
80 index b408edc..b7ed469 100644
81 --- a/pym/gentoolkit/revdep_rebuild/collect.py
82 +++ b/pym/gentoolkit/revdep_rebuild/collect.py
83 @@ -172,7 +172,7 @@ def collect_libraries_from_dir(dirs, mask, logger):
84 prv & stat.S_IXOTH == stat.S_IXOTH:
85 found_files.append(l)
86 except Exception as ex:
87 - logger.debug(yellow('Exception during collecting libraries: %s' %str(ex)))
88 + logger.debug(yellow('Exception during collecting libraries: ' + blue('%s') %str(ex)))
89
90
91 if found_directories:
92 @@ -219,7 +219,7 @@ def collect_binaries_from_dir(dirs, mask, logger):
93 prv & stat.S_IXOTH == stat.S_IXOTH:
94 found_files.append(l)
95 except Exception as e:
96 - logger.debug(yellow('Exception during binaries collecting: %s' %str(e)))
97 + logger.debug(yellow('Exception during binaries collecting: '+blue('%s') %str(e)))
98
99 if found_directories:
100 found_files += collect_binaries_from_dir(found_directories, mask, logger)
101 @@ -240,7 +240,7 @@ if __name__ == '__main__':
102 libraries, la_libraries, libraries_links, symlink_pairs = collect_libraries_from_dir(lib_dirs, masked_dirs, logging)
103 binaries = collect_binaries_from_dir(bin_dirs, masked_dirs, logging)
104
105 - print 'Found: %i binaries and %i libraries.' %(len(binaries), len(libraries))
106 + logging.debug('Found: %i binaries and %i libraries.' %(len(binaries), len(libraries)))
107
108
109
110
111 diff --git a/pym/gentoolkit/revdep_rebuild/rebuild.py b/pym/gentoolkit/revdep_rebuild/rebuild.py
112 index ef3a476..f77d98c 100644
113 --- a/pym/gentoolkit/revdep_rebuild/rebuild.py
114 +++ b/pym/gentoolkit/revdep_rebuild/rebuild.py
115 @@ -32,7 +32,7 @@ from settings import DEFAULTS
116
117
118 APP_NAME = sys.argv[0]
119 -VERSION = '0.1-r6'
120 +VERSION = '0.1-r7'
121
122 __productname__ = "revdep-ng"
123
124 @@ -232,5 +232,5 @@ def main(settings=None, logger=None):
125 'again or manually emerge given packages.')
126
127 success = rebuild(logger, assigned, settings)
128 - logger.debug("rebuild return code =", success)
129 + logger.debug("rebuild return code = %i" %success)
130 return success