1*4882a593SmuzhiyunFrom e86a1c199d45c9751da67f947af202927dee07f8 Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Yegor Yefremov <yegorslists@googlemail.com> 3*4882a593SmuzhiyunDate: Thu, 10 Dec 2015 08:44:55 +0100 4*4882a593SmuzhiyunSubject: [PATCH] Workaround finding libudev on systems without ldconf 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunThis patch tries to load libudev.so directly without relying on 7*4882a593SmuzhiyunPython's find_library(). find_library() fails on systems 8*4882a593Smuzhiyunwithout library cache mechanism. 9*4882a593Smuzhiyun 10*4882a593SmuzhiyunTaken from pyudev issue 117 discussion: 11*4882a593Smuzhiyunhttps://github.com/pyudev/pyudev/pull/117 12*4882a593Smuzhiyun 13*4882a593SmuzhiyunSigned-off-by: Yegor Yefremov <yegorslists@googlemail.com> 14*4882a593Smuzhiyun[Marcin: adjust to 0.22.0] 15*4882a593SmuzhiyunSigned-off-by: Marcin Niestroj <m.niestroj@grinn-global.com> 16*4882a593Smuzhiyun[Fabrice: Use %-formatting instead of f-string for python 2] 17*4882a593SmuzhiyunSigned-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> 18*4882a593Smuzhiyun--- 19*4882a593Smuzhiyun src/pyudev/_ctypeslib/utils.py | 8 ++++---- 20*4882a593Smuzhiyun 1 file changed, 4 insertions(+), 4 deletions(-) 21*4882a593Smuzhiyun 22*4882a593Smuzhiyundiff --git a/src/pyudev/_ctypeslib/utils.py b/src/pyudev/_ctypeslib/utils.py 23*4882a593Smuzhiyunindex 9dffb3c..aa9942f 100644 24*4882a593Smuzhiyun--- a/src/pyudev/_ctypeslib/utils.py 25*4882a593Smuzhiyun+++ b/src/pyudev/_ctypeslib/utils.py 26*4882a593Smuzhiyun@@ -28,7 +28,7 @@ 27*4882a593Smuzhiyun from __future__ import print_function 28*4882a593Smuzhiyun from __future__ import unicode_literals 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun-from ctypes import CDLL 31*4882a593Smuzhiyun+from ctypes import cdll, CDLL 32*4882a593Smuzhiyun from ctypes.util import find_library 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun@@ -50,10 +50,10 @@ def load_ctypes_library(name, signatures, error_checkers): 36*4882a593Smuzhiyun :rtype: ctypes.CDLL 37*4882a593Smuzhiyun :raises ImportError: if the library is not found 38*4882a593Smuzhiyun """ 39*4882a593Smuzhiyun- library_name = find_library(name) 40*4882a593Smuzhiyun- if not library_name: 41*4882a593Smuzhiyun+ try: 42*4882a593Smuzhiyun+ lib = cdll.LoadLibrary('lib%s.so' % name) 43*4882a593Smuzhiyun+ except OSError: 44*4882a593Smuzhiyun raise ImportError('No library named %s' % name) 45*4882a593Smuzhiyun- lib = CDLL(library_name, use_errno=True) 46*4882a593Smuzhiyun # Add function signatures 47*4882a593Smuzhiyun for funcname, signature in signatures.items(): 48*4882a593Smuzhiyun function = getattr(lib, funcname, None) 49*4882a593Smuzhiyun-- 50*4882a593Smuzhiyun2.29.1 51*4882a593Smuzhiyun 52