From: Loic Dachary Date: Thu, 28 May 2015 23:34:45 +0000 (+0200) Subject: install-deps.sh: robust pip and wheel installation X-Git-Tag: v9.0.2~84^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=cbc96a08d0dae4ad748c222a265a80bccb49ed24;p=ceph.git install-deps.sh: robust pip and wheel installation The wheel and pip module must not only be installed in each wheelhouse directory for tox to find. They must also be installed in the virtual environment that populates the wheelhouse directory. Otherwise older pip modules such as the one found by default on Ubuntu 12.04 will fail. Python 2.7.3 on Ubuntu 12.04 also requires that distribute >= 0.7.3 is installed although it is redundant with setuptools, otherwise it will fail to run the wheel module. Signed-off-by: Loic Dachary --- diff --git a/install-deps.sh b/install-deps.sh index 00de548906bf..e074f6de465d 100755 --- a/install-deps.sh +++ b/install-deps.sh @@ -84,6 +84,16 @@ CentOS|Fedora|RedHatEnterpriseServer) ;; esac +function get_pip_and_wheel() { + local install=$1 + + # Ubuntu-12.04 and Python 2.7.3 require this line + pip --timeout 300 $install 'distribute >= 0.7.3' || return 1 + # although pip comes with virtualenv, having a recent version + # of pip matters when it comes to using wheel packages + pip --timeout 300 $install 'setuptools >= 0.8' 'pip >= 7.0' 'wheel >= 0.24' || return 1 +} + # # preload python modules so that tox can run without network access # @@ -92,7 +102,7 @@ for interpreter in python2.7 python3 ; do if ! test -d install-deps-$interpreter ; then virtualenv --python $interpreter install-deps-$interpreter . install-deps-$interpreter/bin/activate - pip --timeout 300 install wheel || exit 1 + get_pip_and_wheel install || exit 1 fi done @@ -105,9 +115,8 @@ find . -name tox.ini | while read ini ; do for interpreter in python2.7 python3 ; do type $interpreter > /dev/null 2>&1 || continue . $top_srcdir/install-deps-$interpreter/bin/activate - # although pip comes with virtualenv, having a recent version - # of pip matters when it comes to using wheel packages - pip --timeout 300 wheel $require 'setuptools >= 0.7' 'pip >= 6.1' || exit 1 + get_pip_and_wheel wheel || exit 1 + pip --timeout 300 wheel $require || exit 1 done fi )