]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
pybind: convert librbd bindings to Cython
authorHector Martin <marcan@marcan.st>
Tue, 1 Dec 2015 14:30:01 +0000 (23:30 +0900)
committerHector Martin <marcan@marcan.st>
Tue, 1 Dec 2015 15:41:17 +0000 (00:41 +0900)
commit9cca28a917131ccbfa37258e7768e56a31f313dc
tree2f6ab18d2d5424c37742ac3281761bcb310241c7
parent8655cca10b5651d92d55d40694bb61da3e2ff85c
pybind: convert librbd bindings to Cython

ctypes is fundamentally incapable of providing safe callback support
(exceptions during callbacks are not handled properly). To fix this, and also
gain more flexibility, rewrite/port the librbd bindings to Cython instead.
Other Python bindings are expected to migrate to Cython in the future.

Reference: http://tracker.ceph.com/issues/13115

To support this, this change also:
- Introduces a Makefile for pybind which calls setup.py
- Updates the installation files for packages
- Adds a hack to admin/build-doc to build a dummy librbd, avoiding the need to
  build the entire client library just to generate documentation (Sphinx needs
  to be able to import rbd.so, which depends on librbd.so symbols).

With contributions by Josh Durgin <jdurgin@redhat.com>

Signed-off-by: Hector Martin <marcan@marcan.st>
admin/build-doc
ceph.spec.in
debian/python-rbd.install
src/.gitignore
src/Makefile-client.am
src/Makefile.am
src/pybind/.gitignore [new file with mode: 0644]
src/pybind/Makefile.am [new file with mode: 0644]
src/pybind/rbd.py [deleted file]
src/pybind/rbd.pyx [new file with mode: 0644]
src/pybind/setup.py [new file with mode: 0755]