loci/scripts/setup_pip.sh
Andrii Ostapenko 68c3d9177f Pin virtualenv to 20.7.2
Current latest 20.8.0 have updated embedded pip 21.2.4 and setuptools
58.4.8 incompatible with some of constrainted packages.

Change-Id: I81ec48dbd123e6f24ff05d64906d47c31ae693f7
2021-09-20 19:40:29 +00:00

47 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
set -ex
if [[ "${PYTHON3}" == "no" ]]; then
TMP_VIRTUALENV="virtualenv"
else
TMP_VIRTUALENV="python3 -m virtualenv --python=python3"
fi
# This little dance allows us to install the latest pip
# without get_pip.py or the python-pip package (in epel on centos)
if (( $(${TMP_VIRTUALENV} --version | grep -Po '[0-9]+\.[0-9]+\.[0-9]+' | cut -d. -f1) >= 14 )); then
SETUPTOOLS="--no-setuptools"
fi
if (( $(${TMP_VIRTUALENV} --version | grep -Po '[0-9]+\.[0-9]+\.[0-9]+' | cut -d. -f1) >= 20 )); then
SETUPTOOLS="--seed pip --download"
fi
# virtualenv 16.4.0 fixed symlink handling. The interaction of the new
# corrected behavior with legacy bugs in packaged virtualenv releases in
# distributions means we need to hold on to the pip bootstrap installation
# chain to preserve symlinks. As distributions upgrade their default
# installations we may not need this workaround in the future
PIPBOOTSTRAP=/var/lib/pipbootstrap
# Create the boostrap environment so we can get pip from virtualenv
${TMP_VIRTUALENV} ${SETUPTOOLS} ${PIPBOOTSTRAP}
source ${PIPBOOTSTRAP}/bin/activate
# Install setuptools explicitly required for virtualenv > 20 installation
pip install --upgrade setuptools
# Upgrade to the latest version of virtualenv
pip install --upgrade ${PIP_ARGS} virtualenv==20.7.2
# Forget the cached locations of python binaries
hash -r
# Create the virtualenv with the updated toolchain for openstack service
virtualenv --seed pip --download /var/lib/openstack
# Deactivate the old bootstrap virtualenv and switch to the new one
deactivate
source /var/lib/openstack/bin/activate