aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSlawek <lis.slawek@gmail.com>2011-04-26 09:08:24 +0200
committerSlawek <lis.slawek@gmail.com>2011-04-26 09:08:24 +0200
commit8e0ca4b5aa041e760446d862b28007eff228be4d (patch)
tree4d7d88e55ef0924da4a07dbaebc32a03c2c46954 /pym/gentoolkit/revdep_rebuild/analyse.py
parentpass the nocolor setting on to emerge. (diff)
downloadgentoolkit-8e0ca4b5aa041e760446d862b28007eff228be4d.tar.gz
gentoolkit-8e0ca4b5aa041e760446d862b28007eff228be4d.tar.bz2
gentoolkit-8e0ca4b5aa041e760446d862b28007eff228be4d.zip
Fixed .la files parser. Some minor logging fixes.
Diffstat (limited to 'pym/gentoolkit/revdep_rebuild/analyse.py')
-rw-r--r--pym/gentoolkit/revdep_rebuild/analyse.py23
1 files changed, 18 insertions, 5 deletions
diff --git a/pym/gentoolkit/revdep_rebuild/analyse.py b/pym/gentoolkit/revdep_rebuild/analyse.py
index 521d8b9..be696d1 100644
--- a/pym/gentoolkit/revdep_rebuild/analyse.py
+++ b/pym/gentoolkit/revdep_rebuild/analyse.py
@@ -40,6 +40,15 @@ def prepare_checks(files_to_check, libraries, bits, cmd_max_args):
def extract_dependencies_from_la(la, libraries, to_check, logger):
broken = []
+
+ libnames = []
+ for l in libraries:
+ m = re.match('.+\/(.+)\.(so|la|a)(\..+)?', l)
+ if m is not None:
+ ln = m.group(1)
+ if ln not in libnames:
+ libnames += [ln, ]
+
for f in la:
if not os.path.exists(f):
continue
@@ -51,10 +60,12 @@ def extract_dependencies_from_la(la, libraries, to_check, logger):
if m is not None:
for el in m.group(1).split(' '):
el = el.strip()
- if len(el) < 1 or el.startswith('-'):
+ if len(el) < 1 or el.startswith('-L'):
continue
- if el in la or el in libraries:
+ if el.startswith('-l') and 'lib'+el[2:] in libnames:
+ pass
+ elif el in la or el in libraries:
pass
else:
if to_check:
@@ -66,7 +77,7 @@ def extract_dependencies_from_la(la, libraries, to_check, logger):
if not _break:
continue
- logger.info(yellow(' * ') + f + ' is broken (requires: ' + bold(el))
+ logger.info(yellow(' * ') + f + ' is broken (requires: ' + bold(el)+')')
broken.append(f)
return broken
@@ -178,13 +189,15 @@ def analyse(settings, logger, libraries=None, la_libraries=None,
#call_program(['scanelf', '-M', str(bits), '-BF', '%F',] + libraries+libraries_links).strip().split('\n')
found_libs, dependencies = prepare_checks(libs_and_bins, _libraries, bits, settings['CMD_MAX_ARGS'])
-
+ #print dependencies
broken = find_broken(found_libs, _libraries, _libs_to_check)
- broken_la = extract_dependencies_from_la(la_libraries, _libraries, _libs_to_check, logger)
bits /= 2
bits = int(bits)
+ broken_la = extract_dependencies_from_la(la_libraries, libraries+libraries_links, _libs_to_check, logger)
+
+
broken_pathes = main_checks(found_libs, broken, dependencies, logger)
broken_pathes += broken_la