]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
pybind: use find_library to look for librados
authorNoah Watkins <noahwatkins@gmail.com>
Sat, 12 Oct 2013 21:53:14 +0000 (14:53 -0700)
committerNoah Watkins <noahwatkins@gmail.com>
Mon, 28 Oct 2013 18:50:03 +0000 (11:50 -0700)
Uses find_library to search for librados, rather than using the soname.
For instance, on OSX librados is named librados.2.dylib.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
src/pybind/rados.py
src/vstart.sh

index fecf4bb16d00fe2399113b259a12347b467e0066..71c4b0cba320227d550a3b9ea06bca59a4cab982 100644 (file)
@@ -6,6 +6,7 @@ Copyright 2011, Hannu Valtonen <hannu.valtonen@ormod.com>
 from ctypes import CDLL, c_char_p, c_size_t, c_void_p, c_char, c_int, c_long, \
     c_ulong, create_string_buffer, byref, Structure, c_uint64, c_ubyte, \
     pointer, CFUNCTYPE
+from ctypes.util import find_library
 import ctypes
 import errno
 import threading
@@ -194,7 +195,10 @@ Rados object in state %s." % (self.state))
 
     def __init__(self, rados_id=None, name=None, clustername=None,
                  conf_defaults=None, conffile=None, conf=None, flags=0):
-        self.librados = CDLL('librados.so.2')
+        librados_path = find_library('rados')
+        if not librados_path:
+            raise EnvironmentError("Unable to find librados")
+        self.librados = CDLL(librados_path)
         self.cluster = c_void_p()
         self.rados_id = rados_id
         if rados_id is not None and not isinstance(rados_id, str):
index 4839cc1156d9f245e9396b19f91cb11c04234079..22a32cbe132b9e803660d19d28ce789b5f6261e8 100755 (executable)
@@ -2,6 +2,7 @@
 
 export PYTHONPATH=./pybind
 export LD_LIBRARY_PATH=.libs
+export DYLD_LIBRARY_PATH=$LD_LIBRARY_PATH
 
 
 # abort on failure