From: Sean Channel Date: Wed, 3 Oct 2012 21:02:55 +0000 (-0700) Subject: admin/build-doc: Use installed Sphinx and its dependencies, when possible. X-Git-Tag: v0.54~121 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c65ffe9f7f27bc0fe5afab36e9ef0de42bc3c74c;p=ceph.git admin/build-doc: Use installed Sphinx and its dependencies, when possible. 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 Signed-off-by: Tommi Virtanen --- diff --git a/admin/build-doc b/admin/build-doc index 81854640edf0..0bcc799b0eb1 100755 --- a/admin/build-doc +++ b/admin/build-doc @@ -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