From e86a1c199d45c9751da67f947af202927dee07f8 Mon Sep 17 00:00:00 2001 From: Yegor Yefremov 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 --- src/pyudev/_libudev.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pyudev/_libudev.py b/src/pyudev/_libudev.py index a0de8fb..1348d17 100644 --- a/src/pyudev/_libudev.py +++ b/src/pyudev/_libudev.py @@ -30,7 +30,7 @@ from __future__ import (print_function, division, unicode_literals, absolute_import) -from ctypes import (CDLL, Structure, POINTER, +from ctypes import (cdll, CDLL, Structure, POINTER, c_char, c_char_p, c_int, c_uint, c_ulonglong) from ctypes.util import find_library @@ -265,10 +265,10 @@ def load_udev_library(): Raise :exc:`~exceptions.ImportError`, if the udev library was not found. """ - udev_library_name = find_library('udev') - if not udev_library_name: + try: + libudev = cdll.LoadLibrary('libudev.so') + except OSError: raise ImportError('No library named udev') - libudev = CDLL(udev_library_name, use_errno=True) # context function signature for namespace, members in SIGNATURES.items(): for funcname in members: -- 2.1.4