Charlie Marsh
c306e46e1d
Remove trailing commas before brackets ( #10740 )
2025-01-18 19:56:46 +00:00
Charlie Marsh
0bc33e87b8
Patch pkgconfig files after Python install ( #10189 )
...
## Summary
Closes https://github.com/astral-sh/uv/issues/10185 .
## Test Plan
Ran `cargo run python install 3.10.15 --reinstall`; verified that
`python3.pc` contained:
```
# See: man pkg-config
prefix=/Users/crmarsh/.local/share/uv/python/cpython-3.10.15-macos-aarch64-none
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: Python
Description: Build a C extension for Python
Requires:
Version: 3.10
Libs.private: -ldl -framework CoreFoundation
Libs:
Cflags: -I${includedir}/python3.10
```
2024-12-27 00:50:41 +00:00
Charlie Marsh
f3c5b63095
Avoid duplicating backslashes in sysconfig parser ( #10063 )
...
## Summary
We had a bug in our handling of escape sequences that caused us to
duplicate backslashes. If you installed repeatedly, we'd keep doubling
them, leading to an exponential blowup.
Closes #10060 .
2024-12-20 13:52:42 -05:00
samypr100
e730ef19f1
Patch additional sysconfig values such as clang at install time ( #9916 )
...
## Summary
Minor follow up to https://github.com/astral-sh/uv/pull/9905 to patch
`clang` with `cc`.
Implements the replacements used in
[sysconfigpatcher](https://github.com/bluss/sysconfigpatcher/blob/main/src/sysconfigpatcher.py#L54 ),
namely
```python
DEFAULT_VARIABLE_UPDATES = {
"CC": WordReplace("clang", "cc"),
"CXX": WordReplace("clang++", "c++"),
"BLDSHARED": WordReplace("clang", "cc"),
"LDSHARED": WordReplace("clang", "cc"),
"LDCXXSHARED": WordReplace("clang++", "c++"),
"LINKCC": WordReplace("clang", "cc"),
"AR": "ar",
}
```
## Test Plan
Added an additional test. Tested local python installs.
Related traces
```
TRACE Updated `AR` from `/tools/clang-linux64/bin/llvm-ar` to `ar`
TRACE Updated `CC` from `clang -pthread` to `cc -pthread`
TRACE Updated `CXX` from `clang++ -pthread` to `c++ -pthread`
TRACE Updated `BLDSHARED` from `clang -pthread -shared -L/tools/deps/lib` to `cc -pthread -shared -L/tools/deps/lib`
TRACE Updated `LDSHARED` from `clang -pthread -shared -L/tools/deps/lib` to `cc -pthread -shared -L/tools/deps/lib`
TRACE Updated `LDCXXSHARED` from `clang++ -pthread -shared` to `c++ -pthread -shared`
TRACE Updated `LINKCC` from `clang -pthread` to `cc -pthread
```
## Pending Discussion Items
https://github.com/astral-sh/uv/pull/9905#issuecomment-2543879587
2024-12-17 15:09:45 -05:00
samypr100
06015de90e
Patch additional sysconfig values such as AR at install time ( #9905 )
...
## Summary
Minor follow up to https://github.com/astral-sh/uv/pull/9857 to patch
AR.
Implements the AR replacement used in
[sysconfigpatcher](https://github.com/bluss/sysconfigpatcher/blob/main/src/sysconfigpatcher.py#L54 ),
namely
```python
DEFAULT_VARIABLE_UPDATES = {
...
"AR": "ar",
}
```
## Test Plan
Added an additional test. Tested local python installs.
Related traces
```
TRACE Updated `AR` from `/tools/clang-linux64/bin/llvm-ar` to `ar`
```
2024-12-15 10:27:54 -05:00
Charlie Marsh
dc0525ddd0
Remove use of .previous() in sysconfig parser ( #9881 )
...
## Summary
Apparently this is only available in debug.
2024-12-13 20:21:37 +00:00
Charlie Marsh
53dfe0de52
Avoid lookaheads in sysconfig parser ( #9879 )
...
## Summary
Based on some review feedback from
https://github.com/astral-sh/uv/pull/9857 .
2024-12-13 20:02:52 +00:00
Charlie Marsh
08ea79cc33
Remove -isysroot when patching sysconfig ( #9860 )
...
## Summary
This is equivalent to
https://github.com/indygreg/python-build-standalone/pull/414 , but at
install-time, so that it affects older Python builds too.
2024-12-13 19:49:27 +00:00
Charlie Marsh
d2fb4c585d
Patch sysconfig data at install time ( #9857 )
...
## Summary
This PR reimplements
[`sysconfigpatcher`](https://github.com/bluss/sysconfigpatcher ) in Rust
and applies it to our Python installations at install-time, ensuring
that the `sysconfig` data is more likely to be correct.
For now, we only rewrite prefixes (i.e., any path that starts with
`/install` gets rewritten to the correct absolute path for the current
machine).
Unlike `sysconfigpatcher`, this PR does not yet do any of the following:
- Patch `pkginfo` files.
- Change `clang` references to `cc`.
A few things that we should do as follow-ups, in my opinion:
1. Rewrite
[`AR`](c1ebf8ab92/src/sysconfigpatcher.py (L61) ).
2. Remove `-isysroot`, which we already do for newer builds.
2024-12-13 14:36:22 -05:00