Installing local dependencies while offline, without PyPI access,
requires the python3-setuptools and python3-wheel packages. Most
distributions have these available anyway for one reason or another, but
not all of them.

If you are asking yourself "Wait, aren't these packages guaranteed via
installation of pip, via the ensurepip module, which mkvenv takes
immense pains to provide for us?" - Well... since Python 3.13, "pip"
does not actually come with "setuptools" or "wheel" anymore, and so if
we want to build and install a python package, we actually need these
available in the host environment.

(Note that you don't need these packages just to install a pre-built
package, you only need them to *build* a package. With cutting edge
setuptools and pip, all locally installed packages, even in editable
mode, must be "built" first before being installed. Thus, these
dependencies are being added specifically to facilitate installing
qemu.git/python/qemu to the configure-time venv.)

Signed-off-by: John Snow <[email protected]>
---
 .gitlab-ci.d/cirrus/freebsd-14.vars     | 2 +-
 .gitlab-ci.d/cirrus/macos-14.vars       | 2 +-
 tests/docker/dockerfiles/alpine.docker  | 2 ++
 tests/docker/dockerfiles/centos9.docker | 2 ++
 tests/lcitool/projects/qemu.yml         | 2 ++
 tests/vm/generated/freebsd.json         | 2 ++
 6 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.d/cirrus/freebsd-14.vars 
b/.gitlab-ci.d/cirrus/freebsd-14.vars
index 6477440ef30..98fbde6cc64 100644
--- a/.gitlab-ci.d/cirrus/freebsd-14.vars
+++ b/.gitlab-ci.d/cirrus/freebsd-14.vars
@@ -11,6 +11,6 @@ MAKE='/usr/local/bin/gmake'
 NINJA='/usr/local/bin/ninja'
 PACKAGING_COMMAND='pkg'
 PIP3='/usr/local/bin/pip'
-PKGS='alsa-lib bash bison bzip2 ca_root_nss capstone4 ccache4 cmocka coreutils 
ctags curl cyrus-sasl dbus diffutils dtc flex fusefs-libs3 gettext git glib 
gmake gnutls gsed gtk-vnc gtk3 json-c libepoxy libffi libgcrypt libjpeg-turbo 
libnfs libslirp libspice-server libssh libtasn1 llvm lzo2 meson mtools ncurses 
nettle ninja opencv pixman pkgconf png py311-numpy py311-pillow py311-pip 
py311-pyyaml py311-sphinx py311-sphinx_rtd_theme py311-tomli python3 rpm2cpio 
rust rust-bindgen-cli sdl2 sdl2_image snappy sndio socat spice-protocol 
tesseract usbredir virglrenderer vte3 vulkan-tools xorriso zstd'
+PKGS='alsa-lib bash bison bzip2 ca_root_nss capstone4 ccache4 cmocka coreutils 
ctags curl cyrus-sasl dbus diffutils dtc flex fusefs-libs3 gettext git glib 
gmake gnutls gsed gtk-vnc gtk3 json-c libepoxy libffi libgcrypt libjpeg-turbo 
libnfs libslirp libspice-server libssh libtasn1 llvm lzo2 meson mtools ncurses 
nettle ninja opencv pixman pkgconf png py311-numpy py311-pillow py311-pip 
py311-pyyaml py311-setuptools py311-sphinx py311-sphinx_rtd_theme py311-tomli 
py311-wheel python3 rpm2cpio rust rust-bindgen-cli sdl2 sdl2_image snappy sndio 
socat spice-protocol tesseract usbredir virglrenderer vte3 vulkan-tools xorriso 
zstd'
 PYPI_PKGS=''
 PYTHON='/usr/local/bin/python3'
diff --git a/.gitlab-ci.d/cirrus/macos-14.vars 
b/.gitlab-ci.d/cirrus/macos-14.vars
index 4701c388e14..6ad20733cd4 100644
--- a/.gitlab-ci.d/cirrus/macos-14.vars
+++ b/.gitlab-ci.d/cirrus/macos-14.vars
@@ -12,5 +12,5 @@ NINJA='/opt/homebrew/bin/ninja'
 PACKAGING_COMMAND='brew'
 PIP3='/opt/homebrew/bin/pip3'
 PKGS='bash bc bindgen bison bzip2 capstone ccache cmocka coreutils ctags curl 
dbus diffutils dtc flex gcovr gettext git glib gnu-sed gnutls gtk+3 gtk-vnc 
jemalloc jpeg-turbo json-c libcbor libepoxy libffi libgcrypt libiscsi libnfs 
libpng libslirp libssh libtasn1 libusb llvm lzo make meson mtools ncurses 
nettle ninja pixman pkg-config python3 rpm2cpio rust sdl2 sdl2_image snappy 
socat sparse spice-protocol swtpm tesseract usbredir vde vte3 vulkan-tools 
xorriso zlib zstd'
-PYPI_PKGS='PyYAML numpy pillow sphinx sphinx-rtd-theme tomli'
+PYPI_PKGS='PyYAML numpy pillow sphinx sphinx-rtd-theme tomli setuptools wheel'
 PYTHON='/opt/homebrew/bin/python3'
diff --git a/tests/docker/dockerfiles/alpine.docker 
b/tests/docker/dockerfiles/alpine.docker
index 03dd6851f60..75c70068683 100644
--- a/tests/docker/dockerfiles/alpine.docker
+++ b/tests/docker/dockerfiles/alpine.docker
@@ -87,8 +87,10 @@ RUN apk update && \
         py3-numpy \
         py3-pillow \
         py3-pip \
+        py3-setuptools \
         py3-sphinx \
         py3-sphinx_rtd_theme \
+        py3-wheel \
         py3-yaml \
         python3 \
         rpm2cpio \
diff --git a/tests/docker/dockerfiles/centos9.docker 
b/tests/docker/dockerfiles/centos9.docker
index 670e22be5ad..9bdf983fdcb 100644
--- a/tests/docker/dockerfiles/centos9.docker
+++ b/tests/docker/dockerfiles/centos9.docker
@@ -101,9 +101,11 @@ RUN dnf distro-sync -y && \
         python3-numpy \
         python3-pillow \
         python3-pip \
+        python3-setuptools \
         python3-sphinx \
         python3-sphinx_rtd_theme \
         python3-tomli \
+        python3-wheel \
         rdma-core-devel \
         rust \
         rust-std-static \
diff --git a/tests/lcitool/projects/qemu.yml b/tests/lcitool/projects/qemu.yml
index 1ee7dcf3d46..5e34e953514 100644
--- a/tests/lcitool/projects/qemu.yml
+++ b/tests/lcitool/projects/qemu.yml
@@ -98,11 +98,13 @@ packages:
  - python3-pillow
  - python3-pip
  - python3-PyYAML
+ - python3-setuptools
  - python3-sphinx
  - python3-sphinx-rtd-theme
  - python3-sqlite3
  - python3-tomli
  - python3-venv
+ - python3-wheel
  - rpm2cpio
  - rust
  - rust-std
diff --git a/tests/vm/generated/freebsd.json b/tests/vm/generated/freebsd.json
index f586827b136..08b6eb61553 100644
--- a/tests/vm/generated/freebsd.json
+++ b/tests/vm/generated/freebsd.json
@@ -57,9 +57,11 @@
     "py311-pillow",
     "py311-pip",
     "py311-pyyaml",
+    "py311-setuptools",
     "py311-sphinx",
     "py311-sphinx_rtd_theme",
     "py311-tomli",
+    "py311-wheel",
     "python3",
     "rpm2cpio",
     "rust",
-- 
2.51.1


Reply via email to