qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: John Snow <jsnow@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Cleber Rosa" <crosa@redhat.com>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Thomas Huth" <thuth@redhat.com>,
	"Li-Wen Hsu" <lwhsu@freebsd.org>, "Kevin Wolf" <kwolf@redhat.com>,
	qemu-block@nongnu.org, "Michael Roth" <michael.roth@amd.com>,
	"John Snow" <jsnow@redhat.com>,
	"Markus Armbruster" <armbru@redhat.com>,
	"Hanna Reitz" <hreitz@redhat.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Ed Maste" <emaste@freebsd.org>,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>
Subject: [PATCH v3 09/15] tests/lcitool: add python3 wheel and setuptools deps for qemu
Date: Fri,  5 Dec 2025 01:00:51 -0500	[thread overview]
Message-ID: <20251205060058.1503170-10-jsnow@redhat.com> (raw)
In-Reply-To: <20251205060058.1503170-1-jsnow@redhat.com>

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 <jsnow@redhat.com>
---
 .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



  parent reply	other threads:[~2025-12-05  6:03 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-05  6:00 [PATCH v3 00/15] python: drop qemu.qmp from qemu.git tree John Snow
2025-12-05  6:00 ` [PATCH v3 01/15] python/mkvenv: create timestamp file for each group "ensured" John Snow
2025-12-05  8:32   ` Thomas Huth
2025-12-05  6:00 ` [PATCH v3 02/15] python/mkvenv: bump 'qemu.qmp' dependency for testdeps John Snow
2025-12-05  6:00 ` [PATCH v3 03/15] python/mkvenv: add 'checktests' and 'functests' dependency groups John Snow
2025-12-05  8:47   ` Thomas Huth
2025-12-05  6:00 ` [PATCH v3 04/15] python/mkvenv: add mechanism to install local package(s) John Snow
2025-12-05  6:00 ` [PATCH v3 05/15] meson, mkvenv: add checktests and functests custom targets John Snow
2025-12-05  6:00 ` [PATCH v3 06/15] tests: Use configured python to run GitLab iotests John Snow
2025-12-05  6:00 ` [PATCH v3 07/15] tests: run "make check-venv" before running iotests John Snow
2025-12-05  6:00 ` [PATCH v3 08/15] tests: ensure "make check-venv" is run for crash tests John Snow
2025-12-05  8:53   ` Thomas Huth
2025-12-05  6:00 ` John Snow [this message]
2025-12-05  6:00 ` [PATCH v3 10/15] python: add vendored qemu.qmp package John Snow
2025-12-05  6:00 ` [PATCH v3 11/15] meson, mkvenv: make iotests depend on checktests group John Snow
2025-12-05  6:00 ` [PATCH v3 12/15] meson, mkvenv: make functional tests depend on functests group John Snow
2025-12-05  6:00 ` [PATCH v3 13/15] meson, mkvenv: add qemu.git/python/qemu package to pythondeps.toml John Snow
2025-12-05  6:00 ` [PATCH v3 14/15] tests: replace old "check-venv" target with meson target John Snow
2025-12-05  6:00 ` [PATCH v3 15/15] python: delete qemu.qmp John Snow
2025-12-09 16:35 ` [PATCH v3 00/15] python: drop qemu.qmp from qemu.git tree John Snow
2025-12-09 17:00 ` Daniel P. Berrangé
2025-12-09 17:23   ` John Snow
2025-12-09 19:43     ` John Snow
2025-12-09 19:46     ` Daniel P. Berrangé
2025-12-09 20:05       ` John Snow
2025-12-10 16:25         ` Daniel P. Berrangé

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251205060058.1503170-10-jsnow@redhat.com \
    --to=jsnow@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=crosa@redhat.com \
    --cc=emaste@freebsd.org \
    --cc=hreitz@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=lwhsu@freebsd.org \
    --cc=marcandre.lureau@redhat.com \
    --cc=michael.roth@amd.com \
    --cc=pbonzini@redhat.com \
    --cc=philmd@linaro.org \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).