From 2d57f93f68ae14e17313486e0d5ad2513af58fd1 Mon Sep 17 00:00:00 2001 From: Ian Wienand Date: Thu, 3 Aug 2017 14:35:37 +1000 Subject: [PATCH] Don't reinstall python-virtualenv on infra nodes In the original change I said "for infra nodes, it shouldn't do anything anyway ...". Well that was pre-Fedora 26 :) It seems that dnf > 2.0 now intentionally throws an error when trying to explicitly install an ignored package. Thus, as described in the comment, take a simpler approach of skipping this on infra nodes. pip-and-virtualenv in dib should have installed the latest pip, virtualenv and setuptools, so we don't want to fiddle with that anyway. [1] https://review.openstack.org/#/c/338998/ Change-Id: Ib300b58377a0d0fe1bd7444c71acdb9a87dc033b --- tools/fixup_stuff.sh | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) 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