diff options
author | Daniel P. Berrangé <berrange@redhat.com> | 2024-01-08 10:59:12 +0000 |
---|---|---|
committer | Daniel P. Berrangé <berrange@redhat.com> | 2024-01-08 17:32:13 +0000 |
commit | 7e25445729b81cd6f4f5e18abd3e62031511ae76 (patch) | |
tree | 8914557916806d957f40d8a6e9d24cfbe44e8848 | |
parent | 9b320d673300f22809838fc81c4531e54a9f4b37 (diff) | |
download | libvirt-ci-7e25445729b81cd6f4f5e18abd3e62031511ae76.zip libvirt-ci-7e25445729b81cd6f4f5e18abd3e62031511ae76.tar.gz libvirt-ci-7e25445729b81cd6f4f5e18abd3e62031511ae76.tar.bz2 |
lcitool: force use of pip without venv
Some distros have started to force use of a virutal env with pip
installed python pieces per PEP 668. The goal is to ensure that
the upgrade path for distro provided packages isn't harmed by
user installed packages. This is not a scenario that matters for
our CI environment though, since the build environments are all
throwaway.
Currently libvirt-python passes --break-system-packages when it
invokes 'pip', however, we also potentially invoke pip from the
dockerfiles. Rather than adding --break-system-packages there
too, we can simply disable the venv requirement globally by
removing the the marker file "EXTERNALLY-MANAGED".
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
4 files changed, 10 insertions, 1 deletions
diff --git a/lcitool/formatters.py b/lcitool/formatters.py index a6a17e7..ec4b580 100644 --- a/lcitool/formatters.py +++ b/lcitool/formatters.py @@ -336,6 +336,12 @@ class BuildEnvFormatter(Formatter): "{nosync}{packaging_command} clean all -y", ]) + # If distro forces "pip" to use a venv by default, + # then undo that, because our CI env is expected to + # have a mix of distro & pip installed pieces + if "python3" in varmap["mappings"]: + commands.extend(["rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED"]) + if not target.cross_arch: commands.extend(self._format_commands_pkglist(target)) commands.extend(self._format_commands_ccache(target, varmap)) diff --git a/tests/data/formatters/out/libvirt-debian-sid-s390x-cross-aarch64-combined.Dockerfile b/tests/data/formatters/out/libvirt-debian-sid-s390x-cross-aarch64-combined.Dockerfile index 7245416..2c45ad8 100644 --- a/tests/data/formatters/out/libvirt-debian-sid-s390x-cross-aarch64-combined.Dockerfile +++ b/tests/data/formatters/out/libvirt-debian-sid-s390x-cross-aarch64-combined.Dockerfile @@ -45,7 +45,8 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ eatmydata apt-get autoremove -y && \ eatmydata apt-get autoclean -y && \ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ - dpkg-reconfigure locales + dpkg-reconfigure locales && \ + rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" ENV LANG "en_US.UTF-8" diff --git a/tests/data/formatters/out/libvirt-debian-sid-s390x.Dockerfile b/tests/data/formatters/out/libvirt-debian-sid-s390x.Dockerfile index c2bc455..950509d 100644 --- a/tests/data/formatters/out/libvirt-debian-sid-s390x.Dockerfile +++ b/tests/data/formatters/out/libvirt-debian-sid-s390x.Dockerfile @@ -81,6 +81,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ eatmydata apt-get autoclean -y && \ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ dpkg-reconfigure locales && \ + rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \ dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ mkdir -p /usr/libexec/ccache-wrappers && \ ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ diff --git a/tests/data/formatters/out/libvirt-debian-sid-s390x.sh b/tests/data/formatters/out/libvirt-debian-sid-s390x.sh index 8eb8b2d..86e44b4 100644 --- a/tests/data/formatters/out/libvirt-debian-sid-s390x.sh +++ b/tests/data/formatters/out/libvirt-debian-sid-s390x.sh @@ -77,6 +77,7 @@ function install_buildenv() { xsltproc sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen dpkg-reconfigure locales + rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt mkdir -p /usr/libexec/ccache-wrappers ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc |