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