From aed173120942ee652be1844b6a020136de31f4c7 Mon Sep 17 00:00:00 2001 From: Brian Dolbec Date: Mon, 10 Feb 2014 08:29:40 -0800 Subject: revdep_rebuild: Fix tracebacks due to empy results returned from scanelf calls. Add blank line removal to scan(). Add incorrect parts length detection to scan_files() (just in case) --- pym/gentoolkit/revdep_rebuild/analyse.py | 7 ++++++- pym/gentoolkit/revdep_rebuild/stuff.py | 5 ++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/pym/gentoolkit/revdep_rebuild/analyse.py b/pym/gentoolkit/revdep_rebuild/analyse.py index 7b17517..a32ea05 100644 --- a/pym/gentoolkit/revdep_rebuild/analyse.py +++ b/pym/gentoolkit/revdep_rebuild/analyse.py @@ -60,7 +60,12 @@ def scan_files(libs_and_bins, cmd_max_args): scanned_files = {} # {bits: {soname: (filename, needed), ...}, ...} for line in scan(['-nBF', '%F %f %S %n %M'], libs_and_bins, cmd_max_args): - filename, sfilename, soname, needed, bits = line.split(' ') + parts = line.split(' ') + if len(parts) < 5: + print("scan_files(); error processing lib: %s" % line) + print("scan_files(); parts = %s" % str(parts)) + continue + filename, sfilename, soname, needed, bits = parts filename = os.path.realpath(filename) needed = needed.split(',') bits = bits[8:] # 8: -> strlen('ELFCLASS') diff --git a/pym/gentoolkit/revdep_rebuild/stuff.py b/pym/gentoolkit/revdep_rebuild/stuff.py index 0bebce2..aa91be2 100644 --- a/pym/gentoolkit/revdep_rebuild/stuff.py +++ b/pym/gentoolkit/revdep_rebuild/stuff.py @@ -38,8 +38,11 @@ def scan(params, files, max_args): ''' out = [] for i in range(0, len(files), max_args): - out += call_program( + output = call_program( ['scanelf'] + params + files[i:i+max_args]).strip().split('\n') + output = [x for x in output if x != ''] + if output: + out.extend(output) return out -- cgit v1.2.3