diff options
Diffstat (limited to 'testsuite/install.sh')
-rwxr-xr-x | testsuite/install.sh | 85 |
1 files changed, 67 insertions, 18 deletions
diff --git a/testsuite/install.sh b/testsuite/install.sh index 42d5bbadb..ce3ed22b1 100755 --- a/testsuite/install.sh +++ b/testsuite/install.sh @@ -1,28 +1,77 @@ #!/bin/bash -ex # install script for Travis-CI +PYVER=$(python -c 'import sys;print(".".join(str(v) for v in sys.version_info[0:2]))') +SITE_PACKAGES=$(python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())') -sudo apt-get update -qq -sudo apt-get install swig libxml2-utils +if [[ ${PYVER:0:1} == "2" && $PYVER != "2.7" && $PYVER != "2.6" ]]; then + pip install --index-url=https://pypi.python.org/simple -r testsuite/requirements-legacy.txt +else + pip install --upgrade pip -pip install -r testsuite/requirements.txt + pip_wheel() { + pip wheel --find-links="$HOME/.cache/wheels/" --wheel-dir="$HOME/.cache/wheels/" "$@" + pip install --no-index --find-links="$HOME/.cache/wheels/" "$@" + } -PYVER=$(python -c 'import sys;print(".".join(str(v) for v in sys.version_info[0:2]))') + if [[ $PYVER == "2.6" ]]; then + pip_wheel -r testsuite/requirements-26.txt + pip_wheel unittest2 + else + pip_wheel -r testsuite/requirements.txt -if [[ ${PYVER:0:1} == "2" && $PYVER != "2.7" ]]; then - pip install --use-mirrors unittest2 -fi + if [[ ${PYVER:0:1} == "3" ]]; then + # TODO: Move to "requirements.txt" if all the new errors are fixed. + pip_wheel 'pylint>1.4' + fi + fi + + if [[ "$WITH_OPTIONAL_DEPS" == "yes" ]]; then + pip_wheel PyYAML pyinotify boto pylibacl Jinja2 \ + cherrypy nose-show-skipped + + if [[ $PYVER == "2.6" ]]; then + pip install \ + --global-option='build_ext' \ + --global-option='--include-dirs=/usr/include/x86_64-linux-gnu' \ + m2crypto + + pip_wheel 'django<1.7' 'South<0.8' 'mercurial<4.3' cheetah guppy 'pycparser<2.19' python-augeas + else + if [[ $PYVER == "2.7" ]]; then + pip_wheel m2crypto guppy + fi -if [[ "$WITH_OPTIONAL_DEPS" == "yes" ]]; then - sudo apt-get install -y yum libaugeas0 augeas-lenses libacl1-dev libssl-dev - - pip install --use-mirrors PyYAML pyinotify boto pylibacl 'django<1.5' \ - Jinja2 mercurial guppy - easy_install https://fedorahosted.org/released/python-augeas/python-augeas-0.4.1.tar.gz - if [[ ${PYVER:0:1} == "2" ]]; then - # django supports py3k, but South doesn't, and the django bits - # in bcfg2 require South - pip install cheetah 'South<0.8' - pip install m2crypto + pip_wheel django mercurial cheetah3 python-augeas + fi fi fi + +# Use system site-packages and pymodules +if [[ "$WITH_SYSTEM_SITE_PACKAGES" == "yes" ]]; then + cat <<EOF > "$SITE_PACKAGES/system-packages.pth" +/usr/lib/python$PYVER/site-packages/ +/usr/lib/python$PYVER/dist-packages/ +/usr/lib/pymodules/python$PYVER/ +EOF +fi + +# Setup the local xml schema cache +download_schema() { + if [[ ! -e "$1" ]]; then + wget -O "$1" "$2" + fi +} + +mkdir -p "$HOME/.cache/xml/" +download_schema "$HOME/.cache/xml/XMLSchema.xsd" "http://www.w3.org/2001/XMLSchema.xsd" +download_schema "$HOME/.cache/xml/xml.xsd" "http://www.w3.org/2001/xml.xsd" + +cat > "$HOME/.cache/xml/catalog.xml" <<EOF +<?xml version="1.0"?> +<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> + <system systemId="http://www.w3.org/2001/XMLSchema.xsd" uri="$HOME/.cache/xml/XMLSchema.xsd" /> + <system systemId="http://www.w3.org/2001/xml.xsd" uri="$HOME/.cache/xml/xml.xsd" /> + <nextCatalog catalog="/etc/xml/catalog.xml" /> +</catalog> +EOF |