diff --git a/tools/fixup_stuff.sh b/tools/fixup_stuff.sh index 55cd7252ea..f1552ab2f7 100755 --- a/tools/fixup_stuff.sh +++ b/tools/fixup_stuff.sh @@ -202,5 +202,22 @@ fi # on python-virtualenv), first install the distro python-virtualenv # to satisfy any dependencies then use pip to overwrite it. -install_package python-virtualenv -pip_install -U --force-reinstall virtualenv +# ... but, for infra builds, the pip-and-virtualenv [1] element has +# already done this to ensure the latest pip, virtualenv and +# setuptools on the base image for all platforms. It has also added +# the packages to the yum/dnf ignore list to prevent them being +# overwritten with old versions. F26 and dnf 2.0 has changed +# behaviour that means re-installing python-virtualenv fails [2]. +# Thus we do a quick check if we're in the infra environment by +# looking for the mirror config script before doing this, and just +# skip it if so. + +# [1] https://git.openstack.org/cgit/openstack/diskimage-builder/tree/ \ +# diskimage_builder/elements/pip-and-virtualenv/ \ +# install.d/pip-and-virtualenv-source-install/04-install-pip +# [2] https://bugzilla.redhat.com/show_bug.cgi?id=1477823 + +if [[ ! -f /etc/ci/mirror_info.sh ]]; then + install_package python-virtualenv + pip_install -U --force-reinstall virtualenv +fi