From f4e7a35d640c919923b3c0925a8d548e5391ec61 Mon Sep 17 00:00:00 2001 From: Stefan Krah Date: Sat, 17 Jul 2010 11:46:52 +0000 Subject: Issue #7384: On Gentoo, libreadline.so is a "fake library", so ldd fails. In that case, do not attempt to parse stderr output. --- setup.py | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/setup.py b/setup.py index f97fbea..0d524774 100644 --- a/setup.py +++ b/setup.py @@ -534,18 +534,19 @@ class PyBuildExt(build_ext): tmpfile = os.path.join(self.build_temp, 'readline_termcap_lib') if not os.path.exists(self.build_temp): os.makedirs(self.build_temp) - os.system("ldd %s > %s" % (do_readline, tmpfile)) - fp = open(tmpfile) - for ln in fp: - if 'curses' in ln: - readline_termcap_library = re.sub( - r'.*lib(n?cursesw?)\.so.*', r'\1', ln - ).rstrip() - break - if 'tinfo' in ln: # termcap interface split out from ncurses - readline_termcap_library = 'tinfo' - break - fp.close() + ret = os.system("ldd %s > %s" % (do_readline, tmpfile)) + if ret >> 8 == 0: + fp = open(tmpfile) + for ln in fp: + if 'curses' in ln: + readline_termcap_library = re.sub( + r'.*lib(n?cursesw?)\.so.*', r'\1', ln + ).rstrip() + break + if 'tinfo' in ln: # termcap interface split out from ncurses + readline_termcap_library = 'tinfo' + break + fp.close() os.unlink(tmpfile) # Issue 7384: If readline is already linked against curses, # use the same library for the readline and curses modules. -- cgit v0.12