uv/crates/uv-python
konsti ae57d85dfb
Detect musl and error for musl pbs builds (#6643)
As described in #4242, we're currently incorrectly downloading glibc
python-build-standalone on musl target, but we also can't fix this by
using musl python-build-standalone on musl targets since the musl builds
are effectively broken.

We reintroduce the libc detection previously removed in #2381, using it
to detect which libc is the current one before we have a python
interpreter. I changed the strategy a big to support an empty `PATH`
which we use in the tests.

For simplicity, i've decided to just filter out the musl
python-build-standalone archives from the list of available archive,
given this is temporary. This means we show the same error message as if
we don't have a build for the platform. We could also add a dedicated
error message for musl.

Fixes #4242

## Test Plan

Tested manually.

On my ubuntu host, python downloads continue to pass:
```
target/x86_64-unknown-linux-musl/debug/uv python install
```

On alpine, we fail:
```
$ docker run -it --rm -v .:/io alpine /io/target/x86_64-unknown-linux-musl/debug/uv python install
  Searching for Python installations
  error: No download found for request: cpython-any-linux-x86_64-musl
```
2024-08-27 00:06:53 +00:00
..
python allow manylinux compatibility override via _manylinux module. (#6039) 2024-08-21 01:57:42 +00:00
src Detect musl and error for musl pbs builds (#6643) 2024-08-27 00:06:53 +00:00
Cargo.toml Detect musl and error for musl pbs builds (#6643) 2024-08-27 00:06:53 +00:00
download-metadata.json Update Pythons to include Python 3.12.5 (#6087) 2024-08-14 15:18:01 +00:00
fetch-download-metadata.py Deprecate the --isolated flag (#5466) 2024-07-30 22:40:38 +00:00
template-download-metadata.py Deprecate the --isolated flag (#5466) 2024-07-30 22:40:38 +00:00