]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
admin/build-doc: Use installed Sphinx and its dependencies, when possible.
authorSean Channel <pentabular@gmail.com>
Wed, 3 Oct 2012 21:02:55 +0000 (14:02 -0700)
committerTommi Virtanen <tv@inktank.com>
Thu, 4 Oct 2012 21:53:20 +0000 (14:53 -0700)
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>
admin/build-doc

index 81854640edf0a69ab40c322e9827c323f18e8284..0bcc799b0eb1f086b42bc48cd5c9b8007b4e3f18 100755 (executable)
@@ -42,12 +42,22 @@ cd build-doc
 [ -z "$vdir" ] && vdir="./virtualenv"
 
 if [ ! -e $vdir ]; then
-    virtualenv --no-site-packages $vdir
+    virtualenv --system-site-packages $vdir
+fi
+$vdir/bin/pip install -r ../admin/doc-requirements.txt
+
+sphinx_build="$vdir/bin/sphinx-build"
+if [ ! -e $sphinx_build ]; then
+    # If sphinx is not installed inside the virtualenv (that is, we
+    # have a system-wide sphinx installed and it is new enough), use
+    # that. As we need to use the python interpreter from inside the
+    # virtualenv to make the sphinx extensions visible, we need need
+    # to know the full path to the sphinx-build script.
+    sphinx_build="$(command -v -p sphinx-build)"
 fi
-$vdir/bin/pip install --quiet -r ../admin/doc-requirements.txt
 
 install -d -m0755 \
     output/html \
     output/man
-PYTHONPATH=`pwd`/../src/pybind $vdir/bin/sphinx-build -a -b dirhtml -d doctrees ../doc output/html
-$vdir/bin/sphinx-build -a -b man -d doctrees ../doc output/man
+PYTHONPATH="$(pwd)/../src/pybind" "$vdir/bin/python" "$sphinx_build" -a -b dirhtml -d doctrees ../doc output/html
+"$vdir/bin/python" "$sphinx_build" -a -b man -d doctrees ../doc output/man