From 4ee320b0a8c8d1764c32db54a511153092dc13e2 Mon Sep 17 00:00:00 2001 From: Diyor Khayrutdinov <94756367+dijor0310@users.noreply.github.com> Date: Tue, 13 Jan 2026 07:45:04 +0500 Subject: [PATCH] Fix error message when installing musl python on armv7 (#17213) ## Summary Fixes #17210. ## Test Plan Added a test function. Co-authored-by: Zanie Blue --- crates/uv/src/commands/python/install.rs | 8 +++--- crates/uv/tests/it/python_install.rs | 33 ++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/crates/uv/src/commands/python/install.rs b/crates/uv/src/commands/python/install.rs index abb530384..205091936 100644 --- a/crates/uv/src/commands/python/install.rs +++ b/crates/uv/src/commands/python/install.rs @@ -69,12 +69,12 @@ impl<'a> InstallRequest<'a> { Ok(download) => download, Err(downloads::Error::NoDownloadFound(request)) if request.libc().is_some_and(Libc::is_musl) - && request - .arch() - .is_some_and(|arch| Arch::is_arm(&arch.inner())) => + && request.arch().is_some_and(|arch| { + arch.inner() == Arch::from(&uv_platform_tags::Arch::Armv7L) + }) => { return Err(anyhow::anyhow!( - "uv does not yet provide musl Python distributions on aarch64." + "uv does not yet provide musl Python distributions on armv7." )); } Err(err) => return Err(err.into()), diff --git a/crates/uv/tests/it/python_install.rs b/crates/uv/tests/it/python_install.rs index 37248392c..80efaa995 100644 --- a/crates/uv/tests/it/python_install.rs +++ b/crates/uv/tests/it/python_install.rs @@ -3954,6 +3954,39 @@ fn python_install_upgrade_version_file() { "); } +#[test] +fn python_install_armv7() { + let context: TestContext = TestContext::new_with_versions(&[]) + .with_filtered_python_keys() + .with_managed_python_dirs() + .with_python_download_cache() + .with_filtered_python_sources() + .with_filtered_python_install_bin() + .with_filtered_python_names() + .with_filtered_exe_suffix(); + + // Explicitly request a musl build for armv7l + uv_snapshot!(context.filters(), context.python_install().arg("cpython-3.12.12-linux-armv7-musl"), @r###" + success: false + exit_code: 2 + ----- stdout ----- + + ----- stderr ----- + error: uv does not yet provide musl Python distributions on armv7. + "###); + + // Explicitly request a gnuabi build for armv7l + uv_snapshot!(context.filters(), context.python_install().arg("cpython-3.12.12-linux-armv7-gnueabi"), @r###" + success: true + exit_code: 0 + ----- stdout ----- + + ----- stderr ----- + Installed Python 3.12.12 in [TIME] + + cpython-3.12.12-[PLATFORM] (python3.12) + "###); +} + #[test] fn python_install_compile_bytecode() -> anyhow::Result<()> { fn count_files_by_ext(dir: &Path, extension: &str) -> anyhow::Result {