52 lines
1.7 KiB
Diff
52 lines
1.7 KiB
Diff
From e86a1c199d45c9751da67f947af202927dee07f8 Mon Sep 17 00:00:00 2001
|
|
From: Yegor Yefremov <yegorslists@googlemail.com>
|
|
Date: Thu, 10 Dec 2015 08:44:55 +0100
|
|
Subject: [PATCH] Workaround finding libudev on systems without ldconf
|
|
|
|
This patch tries to load libudev.so directly without relying on
|
|
Python's find_library(). find_library() fails on systems
|
|
without library cache mechanism.
|
|
|
|
Taken from pyudev issue 117 discussion:
|
|
https://github.com/pyudev/pyudev/pull/117
|
|
|
|
Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
|
|
[Marcin: adjust to 0.22.0]
|
|
Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com>
|
|
[Fabrice: Use %-formatting instead of f-string for python 2]
|
|
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
|
---
|
|
src/pyudev/_ctypeslib/utils.py | 8 ++++----
|
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/src/pyudev/_ctypeslib/utils.py b/src/pyudev/_ctypeslib/utils.py
|
|
index 9dffb3c..aa9942f 100644
|
|
--- a/src/pyudev/_ctypeslib/utils.py
|
|
+++ b/src/pyudev/_ctypeslib/utils.py
|
|
@@ -28,7 +28,7 @@
|
|
"""
|
|
|
|
# isort: STDLIB
|
|
-from ctypes import CDLL
|
|
+from ctypes import cdll, CDLL
|
|
from ctypes.util import find_library
|
|
|
|
|
|
@@ -50,10 +50,10 @@ def load_ctypes_library(name, signatures, error_checkers):
|
|
:rtype: ctypes.CDLL
|
|
:raises ImportError: if the library is not found
|
|
"""
|
|
- library_name = find_library(name)
|
|
- if not library_name:
|
|
+ try:
|
|
+ lib = cdll.LoadLibrary('lib%s.so' % name)
|
|
+ except OSError:
|
|
raise ImportError("No library named %s" % name)
|
|
- lib = CDLL(library_name, use_errno=True)
|
|
# Add function signatures
|
|
for funcname, signature in signatures.items():
|
|
function = getattr(lib, funcname, None)
|
|
--
|
|
2.29.1
|
|
|