diff options
-rw-r--r-- | Doc/library/ctypes.rst | 11 | ||||
-rw-r--r-- | Lib/ctypes/test/test_find.py | 40 | ||||
-rw-r--r-- | Lib/ctypes/util.py | 2 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
4 files changed, 21 insertions, 35 deletions
diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst index 4a7309e..828d7ca4 100644 --- a/Doc/library/ctypes.rst +++ b/Doc/library/ctypes.rst @@ -1258,15 +1258,15 @@ The exact functionality is system dependent. On Linux, :func:`find_library` tries to run external programs (``/sbin/ldconfig``, ``gcc``, and ``objdump``) to find the library file. It -returns the absolute path of the library file. Here are some examples:: +returns the filename of the library file. Here are some examples:: >>> from ctypes.util import find_library >>> find_library("m") - '/lib/x86_64-linux-gnu/libm.so.6' + 'libm.so.6' >>> find_library("c") - '/lib/x86_64-linux-gnu/libc.so.6' + 'libc.so.6' >>> find_library("bz2") - '/lib/x86_64-linux-gnu/libbz2.so.1.0' + 'libbz2.so.1.0' >>> On OS X, :func:`find_library` tries several predefined naming schemes and paths @@ -1835,9 +1835,6 @@ Utility functions The exact functionality is system dependent. - .. versionchanged:: 3.6 - On Linux it returns an absolute path. - .. function:: find_msvcrt() :module: ctypes.util diff --git a/Lib/ctypes/test/test_find.py b/Lib/ctypes/test/test_find.py index 1845bb0..e6bc19d 100644 --- a/Lib/ctypes/test/test_find.py +++ b/Lib/ctypes/test/test_find.py @@ -9,39 +9,39 @@ from ctypes.util import find_library class Test_OpenGL_libs(unittest.TestCase): @classmethod def setUpClass(cls): - cls.lib_gl = cls.lib_glu = cls.lib_gle = None + lib_gl = lib_glu = lib_gle = None if sys.platform == "win32": - cls.lib_gl = find_library("OpenGL32") - cls.lib_glu = find_library("Glu32") + lib_gl = find_library("OpenGL32") + lib_glu = find_library("Glu32") elif sys.platform == "darwin": - cls.lib_gl = cls.lib_glu = find_library("OpenGL") + lib_gl = lib_glu = find_library("OpenGL") else: - cls.lib_gl = find_library("GL") - cls.lib_glu = find_library("GLU") - cls.lib_gle = find_library("gle") + lib_gl = find_library("GL") + lib_glu = find_library("GLU") + lib_gle = find_library("gle") ## print, for debugging if test.support.verbose: print("OpenGL libraries:") - for item in (("GL", cls.lib_gl), - ("GLU", cls.lib_glu), - ("gle", cls.lib_gle)): + for item in (("GL", lib_gl), + ("GLU", lib_glu), + ("gle", lib_gle)): print("\t", item) cls.gl = cls.glu = cls.gle = None - if cls.lib_gl: + if lib_gl: try: - cls.gl = CDLL(cls.lib_gl, mode=RTLD_GLOBAL) + cls.gl = CDLL(lib_gl, mode=RTLD_GLOBAL) except OSError: pass - if cls.lib_glu: + if lib_glu: try: - cls.glu = CDLL(cls.lib_glu, RTLD_GLOBAL) + cls.glu = CDLL(lib_glu, RTLD_GLOBAL) except OSError: pass - if cls.lib_gle: + if lib_gle: try: - cls.gle = CDLL(cls.lib_gle) + cls.gle = CDLL(lib_gle) except OSError: pass @@ -64,14 +64,6 @@ class Test_OpenGL_libs(unittest.TestCase): self.skipTest('lib_gle not available') self.gle.gleGetJoinStyle - def test_abspath(self): - if self.lib_gl: - self.assertTrue(os.path.isabs(self.lib_gl)) - if self.lib_glu: - self.assertTrue(os.path.isabs(self.lib_glu)) - if self.lib_gle: - self.assertTrue(os.path.isabs(self.lib_gle)) - # On platforms where the default shared library suffix is '.so', # at least some libraries can be loaded as attributes of the cdll # object, since ctypes now tries loading the lib again diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py index d8e3bfa..38bd57f 100644 --- a/Lib/ctypes/util.py +++ b/Lib/ctypes/util.py @@ -221,7 +221,7 @@ elif os.name == "posix": abi_type = mach_map.get(machine, 'libc6') # XXX assuming GLIBC's ldconfig (with option -p) - regex = r'lib%s\.[^\s]+\s\(%s(?:,\s.*)?\)\s=>\s(.*)' + regex = r'\s+(lib%s\.[^\s]+)\s+\(%s' regex = os.fsencode(regex % (re.escape(name), abi_type)) try: with subprocess.Popen(['/sbin/ldconfig', '-p'], @@ -245,9 +245,6 @@ Library - Issue #26177: Fixed the keys() method for Canvas and Scrollbar widgets. -- Issue #21042: Make ctypes.util.find_library() return the full path on - Linux, similar to other platforms. Patch by Tamás Bence Gedai. - - Issue #15068: Got rid of excessive buffering in fileinput. The bufsize parameter is now deprecated and ignored. |