From 65677b7aad05edd20a8d2fe1c27b944f1ff9a002 Mon Sep 17 00:00:00 2001 From: Kevin Wolf Date: Mon, 11 Aug 2025 16:29:23 +0200 Subject: [PATCH] configure: Don't disable Rust for too old meson version If the user explicitly specified --enable-rust, don't just fail if meson is too old for Rust support, but do the same thing as if meson was too old for the C code: Just download a newer one. In order to avoid the additional download for people who aren't intentionally opting in to Rust, keep the automatic disabling based on the meson version as the default if neither --enable-rust nor --disable-rust were given. Signed-off-by: Kevin Wolf Message-ID: <20250811142923.89983-1-kwolf@redhat.com> Reviewed-by: Paolo Bonzini Signed-off-by: Kevin Wolf --- configure | 8 +++++--- pythondeps.toml | 4 ++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/configure b/configure index 825057ebf15..274a7787642 100755 --- a/configure +++ b/configure @@ -1186,10 +1186,12 @@ fi meson_version=$($meson --version) if test "$rust" != disabled && ! version_ge "$meson_version" 1.8.1; then if test "$rust" = enabled; then - error_exit "Rust support needs Meson 1.8.1 or newer" + $mkvenv ensuregroup --dir "${source_path}/python/wheels" \ + ${source_path}/pythondeps.toml meson-rust || exit 1 + else + echo "Rust needs Meson 1.8.1, disabling" 2>&1 + rust=disabled fi - echo "Rust needs Meson 1.8.1, disabling" 2>&1 - rust=disabled fi if test "$rust" != disabled && has "$rustc" && $rustc -vV > "${TMPDIR1}/${TMPB}.out"; then rust_host_triple=$(sed -n 's/^host: //p' "${TMPDIR1}/${TMPB}.out") diff --git a/pythondeps.toml b/pythondeps.toml index b2eec940ce5..d0f52b14f79 100644 --- a/pythondeps.toml +++ b/pythondeps.toml @@ -22,6 +22,10 @@ meson = { accepted = ">=1.5.0", installed = "1.8.1", canary = "meson" } pycotap = { accepted = ">=1.1.0", installed = "1.3.1" } +[meson-rust] +# The install key should match the version in python/wheels/ +meson = { accepted = ">=1.8.1", installed = "1.8.1", canary = "meson" } + [docs] # Please keep the installed versions in sync with docs/requirements.txt sphinx = { accepted = ">=3.4.3", installed = "6.2.1", canary = "sphinx-build" } -- 2.47.3