| 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> |
| --- |
| 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 |
| |