mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	Issue #13979: Fix ctypes.util.find_library ldconfig regex
This commit is contained in:
		
							parent
							
								
									a127ecb7a2
								
							
						
					
					
						commit
						ffeee3518a
					
				
					 2 changed files with 4 additions and 18 deletions
				
			
		|  | @ -171,22 +171,6 @@ def find_library(name): | |||
| 
 | ||||
|     else: | ||||
| 
 | ||||
|         def _findLib_ldconfig(name): | ||||
|             # XXX assuming GLIBC's ldconfig (with option -p) | ||||
|             expr = r'/[^\(\)\s]*lib%s\.[^\(\)\s]*' % re.escape(name) | ||||
|             with contextlib.closing(os.popen('/sbin/ldconfig -p 2>/dev/null')) as f: | ||||
|                 data = f.read() | ||||
|             res = re.search(expr, data) | ||||
|             if not res: | ||||
|                 # Hm, this works only for libs needed by the python executable. | ||||
|                 cmd = 'ldd %s 2>/dev/null' % sys.executable | ||||
|                 with contextlib.closing(os.popen(cmd)) as f: | ||||
|                     data = f.read() | ||||
|                 res = re.search(expr, data) | ||||
|                 if not res: | ||||
|                     return None | ||||
|             return res.group(0) | ||||
| 
 | ||||
|         def _findSoname_ldconfig(name): | ||||
|             import struct | ||||
|             if struct.calcsize('l') == 4: | ||||
|  | @ -203,8 +187,7 @@ def _findSoname_ldconfig(name): | |||
|             abi_type = mach_map.get(machine, 'libc6') | ||||
| 
 | ||||
|             # XXX assuming GLIBC's ldconfig (with option -p) | ||||
|             expr = r'(\S+)\s+\((%s(?:, OS ABI:[^\)]*)?)\)[^/]*(/[^\(\)\s]*lib%s\.[^\(\)\s]*)' \ | ||||
|                    % (abi_type, re.escape(name)) | ||||
|             expr = r'\s+(lib%s\.[^\s]+)\s+\(%s' % (re.escape(name), abi_type) | ||||
|             with contextlib.closing(os.popen('LC_ALL=C LANG=C /sbin/ldconfig -p 2>/dev/null')) as f: | ||||
|                 data = f.read() | ||||
|             res = re.search(expr, data) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Meador Inge
						Meador Inge