Build failure on docs.dhc because pip apparently was changing directory
before building rbd with cython, causing the relative library path
references to fail. Bite the bullet and make everything absolute (since
we already have TOPDIR to use).
Signed-off-by: Dan Mick <dan.mick@redhat.com>
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>
To prepare for the migration of rbd.py to Cython, add Cython as a package
dependency and have the configure script look for it.
Also adds Cython as a dependency for admin/build-doc, and changes the
virtualenv to allow usage of system packages (to avoid having to compile
Cython inside the virtualenv).
With contributions by Josh Durgin <jdurgin@redhat.com>
Signed-off-by: Hector Martin <marcan@marcan.st>
Some parts of the docs require libxml2 in order to build. We were
already checking for these lxml dependencies on Fedora; check for the
dependencies on Ubuntu as well.
* asphyxiate needs more toolings, see
https://github.com/ceph/asphyxiate/issues/1
* this commit basically reverts c96064
* use `autodoxygen` directive to doxygen referenced source files
* do not call `doxygen` explicitly in `build-doc`, `autodoxygen`
will take care of it.
Fixes: #6115Fixes: #6115
Signed-off-by: Kefu Chai <kchai@redhat.com>
This reverts commit c65ffe9f7f.
oneiric, where the doc gitbuilder runs, doesn't have the
--system-site-packages option; let's get docs back and sort this out
offline. (virtualenv 1.6.4-0ubuntu1 on oneiric, 1.7.1.2-1 on precise)
This avoids the delay of installing Sphinx inside the virtualenv;
especially, compiling lxml is slow.
If Sphinx is not installed system-wide (or it's too old), this will
still install a copy inside the virtualenv, to keep working.
Thanks to Sean for the push to make this happen, and testing the
various scenarios; I (Tv) took the liberty of changing the commit to
use venv-python for the manpage build too, avoid the nonstandard
"which" command, be more careful about quoting, and explain more fully
what's going on in the comment.
Closes: https://github.com/ceph/ceph/pull/24
Signed-off-by: Sean Channel <pentabular@gmail.com>
Signed-off-by: Tommi Virtanen <tv@inktank.com>
TODO: path of librados.h is now just the basename
TODO: no enum support for now
TODO: no @bug support for now
Signed-off-by: Tommi Virtanen <tommi.virtanen@dreamhost.com>
The conditional before running pip install was unnecessary,
"pip install" on already installed packages is fast (as long
as it's not --upgrade), and --quiet makes it not spam the
console.
Signed-off-by: Tommi Virtanen <tommi.virtanen@dreamhost.com>
Now you can create diagrams easily with the ".. ditaa::"
directive in the Sphinx documents.
admin/build-doc now checks for debs required for building
the documentation, or just lists commands missing for hosts
not using dpkg.
For more on Ditaa, see http://ditaa.sourceforge.net/
Signed-off-by: Tommi Virtanen <tommi.virtanen@dreamhost.com>
Most of the doc is user-oriented, let's isolate internals more.
Split into multiple files. Clean up RST.
Use Sphinx's graphviz plugin for graphs.
Signed-off-by: Tommi Virtanen <tommi.virtanen@dreamhost.com>
It requires graphviz / dot to be installed. It generates a nice graph
of the dependencies between classes in the object store.
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
To build the docs, run ./admin/build-doc. To browse them, either get
them on any static website, or just run ./admin/serve-doc to serve
them quickly off of port 8080.
build-doc sets up a virtualenv to avoid needing Sphinx installed
system-wide. serve-doc needs thttpd installed.
Signed-off-by: Tommi Virtanen <tommi.virtanen@dreamhost.com>