[Python-checkins] r82930 - in python/branches/release26-maint: setup.py

stefan.krah python-checkins at python.org
Sat Jul 17 14:31:09 CEST 2010


Author: stefan.krah
Date: Sat Jul 17 14:31:09 2010
New Revision: 82930

Log:
Merged revisions 82929 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/branches/release27-maint

........
  r82929 | stefan.krah | 2010-07-17 14:21:08 +0200 (Sat, 17 Jul 2010) | 4 lines
  
  Issue #7384: On Gentoo, libreadline.so is a "fake library", so ldd fails.
  In that case, do not attempt to parse stderr output.
........


Modified:
   python/branches/release26-maint/   (props changed)
   python/branches/release26-maint/setup.py

Modified: python/branches/release26-maint/setup.py
==============================================================================
--- python/branches/release26-maint/setup.py	(original)
+++ python/branches/release26-maint/setup.py	Sat Jul 17 14:31:09 2010
@@ -607,16 +607,18 @@
         # Determine if readline is already linked against curses or tinfo.
         if do_readline and find_executable('ldd'):
             fp = os.popen("ldd %s" % do_readline)
-            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()
+            ldd_output = fp.readlines()
+            ret = fp.close()
+            if ret is None or ret >> 8 == 0:
+                for ln in ldd_output:
+                    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
         # Issue 7384: If readline is already linked against curses,
         # use the same library for the readline and curses modules.
         # Disabled since applications relying on ncursesw might break.


More information about the Python-checkins mailing list