Compare commits
200 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
247904f9a8 | ||
|
|
ca46850e72 | ||
|
|
cb3df8bce7 | ||
|
|
3e1297d847 | ||
|
|
cb8c375907 | ||
|
|
049d34581d | ||
|
|
62bd08e26e | ||
|
|
7f903f9dce | ||
|
|
3cbb6c04d8 | ||
|
|
3683e38d1d | ||
|
|
e0e68f5798 | ||
|
|
4bd686691f | ||
|
|
97c5cc15ee | ||
|
|
958b78c797 | ||
|
|
1e53b4b648 | ||
|
|
6e7b6c01ad | ||
|
|
6110b4aebe | ||
|
|
b1708e040e | ||
|
|
9df354a593 | ||
|
|
f3fac865ad | ||
|
|
d0b910216e | ||
|
|
fca0e798ad | ||
|
|
e0cb68f3e2 | ||
|
|
c05ebc571f | ||
|
|
7e46b8e3f9 | ||
|
|
a0ce58a6c9 | ||
|
|
58eb0c3163 | ||
|
|
24393cd6e2 | ||
|
|
4b67948780 | ||
|
|
d405e63ad8 | ||
|
|
44ed0d1def | ||
|
|
cf8329a48c | ||
|
|
dee525ae66 | ||
|
|
2a55ef3b10 | ||
|
|
b0def776a4 | ||
|
|
4b753d0add | ||
|
|
5e8acb4add | ||
|
|
a3a0dee7aa | ||
|
|
42a538d891 | ||
|
|
ca4d748c96 | ||
|
|
ebdfcdd7a3 | ||
|
|
9fc89f6aed | ||
|
|
abe2796638 | ||
|
|
e062fedb25 | ||
|
|
8f3f2413f8 | ||
|
|
d6defe2f81 | ||
|
|
b70f3fd0f1 | ||
|
|
49ae3ae921 | ||
|
|
8aee0b86ae | ||
|
|
07238fb8d4 | ||
|
|
5c347689ee | ||
|
|
ff58ad585a | ||
|
|
e113162019 | ||
|
|
fb79c2912d | ||
|
|
52bbc80e5c | ||
|
|
07f74430e5 | ||
|
|
a1f57b123b | ||
|
|
24ce0367ed | ||
|
|
5b914dbeb0 | ||
|
|
30d15f1c73 | ||
|
|
d318fa11f8 | ||
|
|
5110a9471e | ||
|
|
b28ba93206 | ||
|
|
acb13ef9a9 | ||
|
|
79c3e0b92a | ||
|
|
df33469348 | ||
|
|
81dfdec1ce | ||
|
|
9db643ba76 | ||
|
|
1049cd8519 | ||
|
|
ac64e54298 | ||
|
|
217a541f18 | ||
|
|
8241487e01 | ||
|
|
42c5ebd2cc | ||
|
|
7f30d0452e | ||
|
|
874714f588 | ||
|
|
16598f02b3 | ||
|
|
ab20f55ab6 | ||
|
|
b47b5b2a5c | ||
|
|
8e73922e61 | ||
|
|
a8974caa95 | ||
|
|
ed61f5ae7d | ||
|
|
1e96093bb0 | ||
|
|
dd309f97cf | ||
|
|
40cf6dab09 | ||
|
|
6f933200e7 | ||
|
|
2681cd039f | ||
|
|
e497296973 | ||
|
|
73bbb8a0ac | ||
|
|
8faca0a935 | ||
|
|
9bb1ed8a63 | ||
|
|
40228d3696 | ||
|
|
a4c81c6290 | ||
|
|
ca6fdd0163 | ||
|
|
6b53aa0eb1 | ||
|
|
ef3deca5b4 | ||
|
|
cf4d9a80d2 | ||
|
|
4539bbb8ef | ||
|
|
68bac6ee4c | ||
|
|
8617373057 | ||
|
|
51113a9b91 | ||
|
|
d782dc2ac3 | ||
|
|
e98e2c1d0e | ||
|
|
6d2c706eb8 | ||
|
|
8464503346 | ||
|
|
387c849a4c | ||
|
|
b94e085e77 | ||
|
|
8b17322558 | ||
|
|
29c6cf3b70 | ||
|
|
6757505d3d | ||
|
|
afc983afed | ||
|
|
fd2b3672bb | ||
|
|
44721b08e3 | ||
|
|
eb5c599a74 | ||
|
|
458712eb73 | ||
|
|
486b45213f | ||
|
|
5464eba5f1 | ||
|
|
fe9d93ebd1 | ||
|
|
fe6e723a8f | ||
|
|
bcb16ef576 | ||
|
|
5b744c08bc | ||
|
|
58c3d36701 | ||
|
|
0b97bf16ab | ||
|
|
ac2069ac14 | ||
|
|
b2b55ff08b | ||
|
|
fedacda911 | ||
|
|
c43078ae42 | ||
|
|
ace7b01217 | ||
|
|
1bc5d552b6 | ||
|
|
fc1f55cf50 | ||
|
|
20d03d8364 | ||
|
|
da9ee20f7e | ||
|
|
30860a84ed | ||
|
|
ea5ea77e33 | ||
|
|
db37816d7c | ||
|
|
60a76559b3 | ||
|
|
4f0f71d298 | ||
|
|
aed7ec7d68 | ||
|
|
f758aba5aa | ||
|
|
46dbed5335 | ||
|
|
d172c9803a | ||
|
|
6df42f7eac | ||
|
|
3d17b4874d | ||
|
|
5493bbebe9 | ||
|
|
b3aec80046 | ||
|
|
3e2f725293 | ||
|
|
edd5d84ce5 | ||
|
|
19a3c6c206 | ||
|
|
628951b10d | ||
|
|
b41e64b4f2 | ||
|
|
78b623f027 | ||
|
|
3fce371641 | ||
|
|
5ba56b9042 | ||
|
|
2525f6b579 | ||
|
|
a74335d7f9 | ||
|
|
4b2d80e4e1 | ||
|
|
a6eb15ef24 | ||
|
|
dbae66837c | ||
|
|
42668c1ebb | ||
|
|
fde735f321 | ||
|
|
6764664e26 | ||
|
|
8f8b60eb15 | ||
|
|
edf20a6728 | ||
|
|
788e6b782a | ||
|
|
3106b13834 | ||
|
|
dc10c1d143 | ||
|
|
1f9c141f1e | ||
|
|
66cdfd1609 | ||
|
|
331f056555 | ||
|
|
482caf848e | ||
|
|
d788a42a20 | ||
|
|
60fbba0947 | ||
|
|
8a7b554c64 | ||
|
|
0cb6d987ac | ||
|
|
a9e8b2c0b2 | ||
|
|
ae35072a41 | ||
|
|
1a25598ed8 | ||
|
|
88e50bbc78 | ||
|
|
95afbd636f | ||
|
|
a79e7796e7 | ||
|
|
fe57fcd71d | ||
|
|
cacdd737f6 | ||
|
|
b5e21fe30e | ||
|
|
b904243dfe | ||
|
|
771ab067c7 | ||
|
|
9556064c25 | ||
|
|
d262321d32 | ||
|
|
362adc2187 | ||
|
|
de03096adb | ||
|
|
ad45d891f4 | ||
|
|
f1cc2538f6 | ||
|
|
3e18a0ecb3 | ||
|
|
f66a781833 | ||
|
|
3fb593f675 | ||
|
|
ce6d976c5d | ||
|
|
4c02668f6b | ||
|
|
14f59adc23 | ||
|
|
e0b8af6d61 | ||
|
|
7357ca12b4 | ||
|
|
6a39cf5444 | ||
|
|
32160dd564 |
11 changed files with 580 additions and 732 deletions
105
.gitignore
vendored
105
.gitignore
vendored
|
|
@ -1,104 +1 @@
|
|||
/pubgrub-3f0ba760951ab0deeac874b98bb18fc90103fcf7.tar.gz
|
||||
/reqwest-middleware-21ceec9a5fd2e8d6f71c3ea2999078fecbd13cbe.tar.gz
|
||||
/rs-async-zip-011b24604fa7bc223daaad7712c0694bac8f0a87.tar.gz
|
||||
/uv-0.2.32.tar.gz
|
||||
/uv-0.2.33.tar.gz
|
||||
/pubgrub-2fac39371a47e7cb821e510aaa4de25405413d29.tar.gz
|
||||
/uv-0.2.34.tar.gz
|
||||
/uv-0.2.35.tar.gz
|
||||
/uv-0.2.37-filtered.tar.zst
|
||||
/uv-0.3.0-filtered.tar.zst
|
||||
/pubgrub-aaef464c1b0d8eea4ff9ffaee4f3458c236d10da.tar.gz
|
||||
/reqwest-middleware-5e3eaf254b5bd481c75d2710eed055f95b756913.tar.gz
|
||||
/uv-0.3.2-filtered.tar.zst
|
||||
/uv-0.3.3-filtered.tar.zst
|
||||
/pubgrub-388685a8711092971930986644cfed152d1a1f6c.tar.gz
|
||||
/uv-0.3.4-filtered.tar.zst
|
||||
/tl-6e25b2ee2513d75385101a8ff9f591ef51f314ec.tar.gz
|
||||
/uv-0.3.5-filtered.tar.zst
|
||||
/uv-0.4.0-filtered.tar.zst
|
||||
/uv-0.4.1-filtered.tar.zst
|
||||
/uv-0.4.2-filtered.tar.zst
|
||||
/uv-0.4.4-filtered.tar.zst
|
||||
/uv-0.4.5-filtered.tar.zst
|
||||
/uv-0.4.6-filtered.tar.zst
|
||||
/uv-0.4.7-filtered.tar.zst
|
||||
/uv-0.4.8-filtered.tar.zst
|
||||
/uv-0.4.9-filtered.tar.zst
|
||||
/uv-0.4.10-filtered.tar.zst
|
||||
/uv-0.4.15.tar.gz
|
||||
/uv-0.4.16.tar.gz
|
||||
/uv-0.4.17.tar.gz
|
||||
/uv-0.4.18.tar.gz
|
||||
/uv-0.4.19.tar.gz
|
||||
/uv-0.4.20.tar.gz
|
||||
/uv-0.4.21.tar.gz
|
||||
/uv-0.4.22.tar.gz
|
||||
/uv-0.4.23.tar.gz
|
||||
/pubgrub-19c77268c0ad5f69d7e12126e0cfacfbba466481.tar.gz
|
||||
/uv-0.4.24.tar.gz
|
||||
/uv-0.4.25.tar.gz
|
||||
/pubgrub-7243f4faf8e54837aa8a401a18406e7173de4ad5.tar.gz
|
||||
/reqwest-middleware-d95ec5a99fcc9a4339e1850d40378bbfe55ab121.tar.gz
|
||||
/uv-0.4.26.tar.gz
|
||||
/uv-0.4.27.tar.gz
|
||||
/uv-0.4.28.tar.gz
|
||||
/uv-0.4.29.tar.gz
|
||||
/pubgrub-95e1390399cdddee986b658be19587eb1fdb2d79.tar.gz
|
||||
/uv-0.4.30.tar.gz
|
||||
/uv-0.5.0.tar.gz
|
||||
/uv-0.5.1.tar.gz
|
||||
/uv-0.5.2.tar.gz
|
||||
/rs-async-zip-c909fda63fcafe4af496a07bfda28a5aae97e58d.tar.gz
|
||||
/uv-0.5.3.tar.gz
|
||||
/pubgrub-57afc831bf2551f164617a10383cf288bf5d190d.tar.gz
|
||||
/uv-0.5.4.tar.gz
|
||||
/uv-0.5.5.tar.gz
|
||||
/pubgrub-9cd9049a64c7352de2ff3b525b9ae36421b0cc18.tar.gz
|
||||
/uv-0.5.6.tar.gz
|
||||
/pubgrub-57832d0588fbb7aab824813481104761dc1c7740.tar.gz
|
||||
/uv-0.5.7.tar.gz
|
||||
/uv-0.5.8.tar.gz
|
||||
/uv-0.5.9.tar.gz
|
||||
/uv-0.5.10.tar.gz
|
||||
/pubgrub-05e8d12cea8d72c6d2d017900e478d0abd28fef4.tar.gz
|
||||
/uv-0.5.11.tar.gz
|
||||
/uv-0.5.12.tar.gz
|
||||
/pubgrub-648aa343486e5529953153781fc86025c73c4a61.tar.gz
|
||||
/uv-0.5.13.tar.gz
|
||||
/uv-0.5.14.tar.gz
|
||||
/uv-0.5.15.tar.gz
|
||||
/uv-0.5.16.tar.gz
|
||||
/uv-0.5.17.tar.gz
|
||||
/uv-0.5.18.tar.gz
|
||||
/uv-0.5.19.tar.gz
|
||||
/uv-0.5.20.tar.gz
|
||||
/uv-0.5.21.tar.gz
|
||||
/uv-0.5.22.tar.gz
|
||||
/uv-0.5.23.tar.gz
|
||||
/uv-0.5.24.tar.gz
|
||||
/uv-0.5.25.tar.gz
|
||||
/uv-0.5.26.tar.gz
|
||||
/uv-0.5.27.tar.gz
|
||||
/pubgrub-b70cf707aa43f21b32f3a61b8a0889b15032d5c4.tar.gz
|
||||
/tokio-tar-ba2b140f27d081c463335f0d68b5f8df8e6c845e.tar.gz
|
||||
/uv-0.5.28.tar.gz
|
||||
/tokio-tar-efeaea927c7a40ee66121de2e1bebfd5d7a4a602.tar.gz
|
||||
/uv-0.5.29.tar.gz
|
||||
/uv-0.5.30.tar.gz
|
||||
/uv-0.5.31.tar.gz
|
||||
/uv-0.6.0.tar.gz
|
||||
/uv-0.6.1.tar.gz
|
||||
/uv-0.6.2.tar.gz
|
||||
/uv-0.6.3.tar.gz
|
||||
/uv-0.6.4.tar.gz
|
||||
/uv-0.6.5.tar.gz
|
||||
/uv-0.6.6.tar.gz
|
||||
/uv-0.6.7.tar.gz
|
||||
/uv-0.6.8.tar.gz
|
||||
/uv-0.6.9.tar.gz
|
||||
/uv-0.6.10.tar.gz
|
||||
/uv-0.6.11.tar.gz
|
||||
/uv-0.6.12.tar.gz
|
||||
/uv-0.6.13.tar.gz
|
||||
/uv-0.6.14.tar.gz
|
||||
/uv-*.tar.gz
|
||||
|
|
|
|||
|
|
@ -1,48 +0,0 @@
|
|||
From 0a45f8027ae10006b2425f9047910dfe93817ca0 Mon Sep 17 00:00:00 2001
|
||||
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
|
||||
Date: Thu, 10 Oct 2024 07:03:45 -0400
|
||||
Subject: [PATCH] Downstream-only: do not override the default allocator
|
||||
|
||||
In https://github.com/astral-sh/uv/pull/399, it was reasonably claimed
|
||||
that using tikv-jemallocator improved benchmarks by 10%, so it may be
|
||||
worth packaging it and dropping this patch.
|
||||
---
|
||||
crates/uv-performance-memory-allocator/Cargo.toml | 3 ---
|
||||
crates/uv-performance-memory-allocator/src/lib.rs | 13 -------------
|
||||
2 files changed, 16 deletions(-)
|
||||
|
||||
diff --git a/crates/uv-performance-memory-allocator/Cargo.toml b/crates/uv-performance-memory-allocator/Cargo.toml
|
||||
index 50d2a149..6db2e207 100644
|
||||
--- a/crates/uv-performance-memory-allocator/Cargo.toml
|
||||
+++ b/crates/uv-performance-memory-allocator/Cargo.toml
|
||||
@@ -7,6 +7,3 @@ publish = false
|
||||
|
||||
[target.'cfg(all(target_os = "windows"))'.dependencies]
|
||||
mimalloc = { version = "0.1.43" }
|
||||
-
|
||||
-[target.'cfg(all(not(target_os = "windows"), not(target_os = "openbsd"), not(target_os = "freebsd"), any(target_arch = "x86_64", target_arch = "aarch64", target_arch = "powerpc64")))'.dependencies]
|
||||
-tikv-jemallocator = { version = "0.6.0" }
|
||||
diff --git a/crates/uv-performance-memory-allocator/src/lib.rs b/crates/uv-performance-memory-allocator/src/lib.rs
|
||||
index 03ec650b..e86a9553 100644
|
||||
--- a/crates/uv-performance-memory-allocator/src/lib.rs
|
||||
+++ b/crates/uv-performance-memory-allocator/src/lib.rs
|
||||
@@ -4,16 +4,3 @@
|
||||
#[cfg(target_os = "windows")]
|
||||
#[global_allocator]
|
||||
static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc;
|
||||
-
|
||||
-#[cfg(all(
|
||||
- not(target_os = "windows"),
|
||||
- not(target_os = "openbsd"),
|
||||
- not(target_os = "freebsd"),
|
||||
- any(
|
||||
- target_arch = "x86_64",
|
||||
- target_arch = "aarch64",
|
||||
- target_arch = "powerpc64"
|
||||
- )
|
||||
-))]
|
||||
-#[global_allocator]
|
||||
-static GLOBAL: tikv_jemallocator::Jemalloc = tikv_jemallocator::Jemalloc;
|
||||
--
|
||||
2.47.0
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
From 2efee35e5ca4248cfd5da36ff459292fc463a7ee Mon Sep 17 00:00:00 2001
|
||||
From 831cf2937a4b8b781d56d5fa18916d2bc42b244d Mon Sep 17 00:00:00 2001
|
||||
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
|
||||
Date: Sun, 23 Jun 2024 16:29:05 -0400
|
||||
Subject: [PATCH] Downstream patch: always find the system-wide uv executable
|
||||
|
|
@ -9,16 +9,16 @@ Content-Transfer-Encoding: 8bit
|
|||
“Should uv.find_uv_bin() be able to find /usr/bin/uv?”
|
||||
https://github.com/astral-sh/uv/issues/4451
|
||||
---
|
||||
python/uv/_find_uv.py | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
python/uv/_find_uv.py | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/python/uv/_find_uv.py b/python/uv/_find_uv.py
|
||||
index 00b7d887..f4ff5b7f 100644
|
||||
index ebe6b8d5a..e25a2e28c 100644
|
||||
--- a/python/uv/_find_uv.py
|
||||
+++ b/python/uv/_find_uv.py
|
||||
@@ -10,6 +10,16 @@ def find_uv_bin() -> str:
|
||||
|
||||
uv_exe = "uv" + sysconfig.get_config_var("EXE")
|
||||
@@ -35,6 +35,14 @@ def find_uv_bin() -> str:
|
||||
sysconfig.get_path("scripts", scheme=_user_scheme()),
|
||||
]
|
||||
|
||||
+ # Downstream patch: always find the system-wide uv executable
|
||||
+ #
|
||||
|
|
@ -26,13 +26,11 @@ index 00b7d887..f4ff5b7f 100644
|
|||
+ # https://github.com/astral-sh/uv/issues/4451
|
||||
+ bindir_path = sysconfig.get_config_var("BINDIR")
|
||||
+ if bindir_path is not None:
|
||||
+ path = os.path.join(bindir_path, uv_exe)
|
||||
+ if os.path.isfile(path):
|
||||
+ return path
|
||||
+ targets.insert(0, os.path.join(bindir_path, uv_exe))
|
||||
+
|
||||
path = os.path.join(sysconfig.get_path("scripts"), uv_exe)
|
||||
if os.path.isfile(path):
|
||||
return path
|
||||
seen = []
|
||||
for target in targets:
|
||||
if not target:
|
||||
--
|
||||
2.46.0
|
||||
2.53.0
|
||||
|
||||
|
|
|
|||
55
11.patch
55
11.patch
|
|
@ -1,55 +0,0 @@
|
|||
From 32769daca67af91c1f8bdb5972e500fa9e66c9ea Mon Sep 17 00:00:00 2001
|
||||
From: konstin <konstin@mailbox.org>
|
||||
Date: Tue, 4 Feb 2025 18:45:16 +0100
|
||||
Subject: [PATCH] Adapt directory permission test
|
||||
|
||||
Adapt the directory permissions test to the changes made in https://github.com/astral-sh/tokio-tar/pull/8.
|
||||
---
|
||||
tests/entry.rs | 20 +++++++++++++++-----
|
||||
1 file changed, 15 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/tests/entry.rs b/tests/entry.rs
|
||||
index 5b45669..4c31956 100644
|
||||
--- a/tests/entry.rs
|
||||
+++ b/tests/entry.rs
|
||||
@@ -2,7 +2,7 @@ extern crate tokio_tar as async_tar;
|
||||
|
||||
extern crate tempfile;
|
||||
|
||||
-use tokio::{fs::File, io::AsyncReadExt};
|
||||
+use tokio::{fs, fs::File, io::AsyncReadExt};
|
||||
use tokio_stream::*;
|
||||
|
||||
use tempfile::Builder;
|
||||
@@ -157,7 +157,7 @@ async fn relative_link_deref_error() {
|
||||
|
||||
#[tokio::test]
|
||||
#[cfg(unix)]
|
||||
-async fn directory_maintains_permissions() {
|
||||
+async fn directory_permissions_are_cleared() {
|
||||
use ::std::os::unix::fs::PermissionsExt;
|
||||
|
||||
let mut ar = async_tar::Builder::new(Vec::new());
|
||||
@@ -176,9 +176,19 @@ async fn directory_maintains_permissions() {
|
||||
let td = t!(Builder::new().prefix("tar").tempdir());
|
||||
t!(ar.unpack(td.path()).await);
|
||||
let f = t!(File::open(td.path().join("foo")).await);
|
||||
- let md = t!(f.metadata().await);
|
||||
- assert!(md.is_dir());
|
||||
- assert_eq!(md.permissions().mode(), 0o40777);
|
||||
+ let from_archive_md = t!(f.metadata().await);
|
||||
+ assert!(from_archive_md.is_dir());
|
||||
+
|
||||
+ // To determine the default umask, create a fresh directory that gets it assigned by the OS.
|
||||
+ let manually_created = td.path().join("bar");
|
||||
+ t!(fs::create_dir(&manually_created).await);
|
||||
+ let f = t!(File::open(&manually_created).await);
|
||||
+ let loca_md = t!(f.metadata().await);
|
||||
+
|
||||
+ assert_eq!(
|
||||
+ from_archive_md.permissions().mode(),
|
||||
+ loca_md.permissions().mode()
|
||||
+ );
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
29
153.patch
29
153.patch
|
|
@ -1,29 +0,0 @@
|
|||
From 5db00c2c55cd048f39313aff9f78ca5ff2af0f28 Mon Sep 17 00:00:00 2001
|
||||
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
|
||||
Date: Fri, 8 Nov 2024 12:00:41 +0000
|
||||
Subject: [PATCH] Update sanitize-filename requirement from 0.5 to 0.6
|
||||
|
||||
---
|
||||
updated-dependencies:
|
||||
- dependency-name: sanitize-filename
|
||||
dependency-type: direct:production
|
||||
...
|
||||
|
||||
Signed-off-by: dependabot[bot] <support@github.com>
|
||||
---
|
||||
Cargo.toml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Cargo.toml b/Cargo.toml
|
||||
index 4740293..8ac4d1b 100644
|
||||
--- a/Cargo.toml
|
||||
+++ b/Cargo.toml
|
||||
@@ -53,7 +53,7 @@ zip = "2.1.5"
|
||||
|
||||
# shared across multiple examples
|
||||
anyhow = "1"
|
||||
-sanitize-filename = "0.5"
|
||||
+sanitize-filename = "0.6"
|
||||
|
||||
# actix_multipart
|
||||
actix-web = "4"
|
||||
170
20174.patch
Normal file
170
20174.patch
Normal file
|
|
@ -0,0 +1,170 @@
|
|||
From c77c2abf16c13b3ef26fae52b6bec97a7abad65b Mon Sep 17 00:00:00 2001
|
||||
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
|
||||
Date: Tue, 7 Jul 2026 06:57:19 +0100
|
||||
Subject: [PATCH 1/4] Add BSD-3-Clause LICENSE file to ecosystem/jupyterlab
|
||||
|
||||
https://github.com/jupyterlab/jupyterlab/raw/refs/tags/v4.6.1/LICENSE
|
||||
---
|
||||
test/ecosystem/jupyterlab/LICENSE | 27 +++++++++++++++++++++++++++
|
||||
1 file changed, 27 insertions(+)
|
||||
create mode 100644 test/ecosystem/jupyterlab/LICENSE
|
||||
|
||||
diff --git a/test/ecosystem/jupyterlab/LICENSE b/test/ecosystem/jupyterlab/LICENSE
|
||||
new file mode 100644
|
||||
index 0000000000000..c73604f78a1f6
|
||||
--- /dev/null
|
||||
+++ b/test/ecosystem/jupyterlab/LICENSE
|
||||
@@ -0,0 +1,27 @@
|
||||
+Copyright (c) 2015-2025 Project Jupyter Contributors
|
||||
+All rights reserved.
|
||||
+
|
||||
+Redistribution and use in source and binary forms, with or without
|
||||
+modification, are permitted provided that the following conditions are met:
|
||||
+
|
||||
+1. Redistributions of source code must retain the above copyright notice, this
|
||||
+ list of conditions and the following disclaimer.
|
||||
+
|
||||
+2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
+ this list of conditions and the following disclaimer in the documentation
|
||||
+ and/or other materials provided with the distribution.
|
||||
+
|
||||
+3. Neither the name of the copyright holder nor the names of its
|
||||
+ contributors may be used to endorse or promote products derived from
|
||||
+ this software without specific prior written permission.
|
||||
+
|
||||
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
From 0561c227905e972b0d415b0170053ce6ec278184 Mon Sep 17 00:00:00 2001
|
||||
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
|
||||
Date: Tue, 7 Jul 2026 06:58:21 +0100
|
||||
Subject: [PATCH 2/4] Add BSD-3-Clause LICENSE file to ecosystem/pandas
|
||||
|
||||
https://github.com/pandas-dev/pandas/raw/refs/tags/v3.0.4/LICENSE
|
||||
---
|
||||
test/ecosystem/pandas/LICENSE | 31 +++++++++++++++++++++++++++++++
|
||||
1 file changed, 31 insertions(+)
|
||||
create mode 100644 test/ecosystem/pandas/LICENSE
|
||||
|
||||
diff --git a/test/ecosystem/pandas/LICENSE b/test/ecosystem/pandas/LICENSE
|
||||
new file mode 100644
|
||||
index 0000000000000..bd1cc2a30c626
|
||||
--- /dev/null
|
||||
+++ b/test/ecosystem/pandas/LICENSE
|
||||
@@ -0,0 +1,31 @@
|
||||
+BSD 3-Clause License
|
||||
+
|
||||
+Copyright (c) 2008-2011, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
|
||||
+All rights reserved.
|
||||
+
|
||||
+Copyright (c) 2011-2026, Open source contributors.
|
||||
+
|
||||
+Redistribution and use in source and binary forms, with or without
|
||||
+modification, are permitted provided that the following conditions are met:
|
||||
+
|
||||
+* Redistributions of source code must retain the above copyright notice, this
|
||||
+ list of conditions and the following disclaimer.
|
||||
+
|
||||
+* Redistributions in binary form must reproduce the above copyright notice,
|
||||
+ this list of conditions and the following disclaimer in the documentation
|
||||
+ and/or other materials provided with the distribution.
|
||||
+
|
||||
+* Neither the name of the copyright holder nor the names of its
|
||||
+ contributors may be used to endorse or promote products derived from
|
||||
+ this software without specific prior written permission.
|
||||
+
|
||||
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
From d21662e1800682b4058dac8bb39079620eb21400 Mon Sep 17 00:00:00 2001
|
||||
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
|
||||
Date: Tue, 7 Jul 2026 06:59:25 +0100
|
||||
Subject: [PATCH 3/4] Add MIT LICENSE file to ecosystem/poetry
|
||||
|
||||
https://github.com/python-poetry/poetry/raw/refs/tags/2.4.1/LICENSE
|
||||
---
|
||||
test/ecosystem/poetry/LICENSE | 20 ++++++++++++++++++++
|
||||
1 file changed, 20 insertions(+)
|
||||
create mode 100644 test/ecosystem/poetry/LICENSE
|
||||
|
||||
diff --git a/test/ecosystem/poetry/LICENSE b/test/ecosystem/poetry/LICENSE
|
||||
new file mode 100644
|
||||
index 0000000000000..81a8e1e473986
|
||||
--- /dev/null
|
||||
+++ b/test/ecosystem/poetry/LICENSE
|
||||
@@ -0,0 +1,20 @@
|
||||
+Copyright (c) 2018-present Sébastien Eustace
|
||||
+
|
||||
+Permission is hereby granted, free of charge, to any person obtaining
|
||||
+a copy of this software and associated documentation files (the
|
||||
+"Software"), to deal in the Software without restriction, including
|
||||
+without limitation the rights to use, copy, modify, merge, publish,
|
||||
+distribute, sublicense, and/or sell copies of the Software, and to
|
||||
+permit persons to whom the Software is furnished to do so, subject to
|
||||
+the following conditions:
|
||||
+
|
||||
+The above copyright notice and this permission notice shall be
|
||||
+included in all copies or substantial portions of the Software.
|
||||
+
|
||||
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
From 708d1e5dfaaaee539308d60dbbfc0faa186885fd Mon Sep 17 00:00:00 2001
|
||||
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
|
||||
Date: Tue, 7 Jul 2026 07:06:54 +0100
|
||||
Subject: [PATCH 4/4] Add MIT LICENSE file to ecosystem/semantic-kernel
|
||||
|
||||
https://github.com/microsoft/semantic-kernel/raw/refs/tags/python-1.43.1/python/LICENSE
|
||||
---
|
||||
test/ecosystem/semantic-kernel/LICENSE | 21 +++++++++++++++++++++
|
||||
1 file changed, 21 insertions(+)
|
||||
create mode 100644 test/ecosystem/semantic-kernel/LICENSE
|
||||
|
||||
diff --git a/test/ecosystem/semantic-kernel/LICENSE b/test/ecosystem/semantic-kernel/LICENSE
|
||||
new file mode 100644
|
||||
index 0000000000000..9e841e7a26e4e
|
||||
--- /dev/null
|
||||
+++ b/test/ecosystem/semantic-kernel/LICENSE
|
||||
@@ -0,0 +1,21 @@
|
||||
+ MIT License
|
||||
+
|
||||
+ Copyright (c) Microsoft Corporation.
|
||||
+
|
||||
+ Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
+ of this software and associated documentation files (the "Software"), to deal
|
||||
+ in the Software without restriction, including without limitation the rights
|
||||
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
+ copies of the Software, and to permit persons to whom the Software is
|
||||
+ furnished to do so, subject to the following conditions:
|
||||
+
|
||||
+ The above copyright notice and this permission notice shall be included in all
|
||||
+ copies or substantial portions of the Software.
|
||||
+
|
||||
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
+ SOFTWARE
|
||||
107
330.patch
107
330.patch
|
|
@ -1,107 +0,0 @@
|
|||
From 583321b938988ae69e6f9ecc5647eba94c4fdcb8 Mon Sep 17 00:00:00 2001
|
||||
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
|
||||
Date: Thu, 3 Apr 2025 15:32:00 +0000
|
||||
Subject: [PATCH 1/3] build(deps): bump ron from 0.9.0-alpha.1 to 0.9.0
|
||||
|
||||
Bumps [ron](https://github.com/ron-rs/ron) from 0.9.0-alpha.1 to 0.9.0.
|
||||
- [Release notes](https://github.com/ron-rs/ron/releases)
|
||||
- [Changelog](https://github.com/ron-rs/ron/blob/master/CHANGELOG.md)
|
||||
- [Commits](https://github.com/ron-rs/ron/commits/v0.9.0)
|
||||
|
||||
---
|
||||
updated-dependencies:
|
||||
- dependency-name: ron
|
||||
dependency-version: 0.9.0
|
||||
dependency-type: direct:production
|
||||
update-type: version-update:semver-patch
|
||||
...
|
||||
|
||||
Signed-off-by: dependabot[bot] <support@github.com>
|
||||
---
|
||||
Cargo.lock | 4 ++--
|
||||
Cargo.toml | 2 +-
|
||||
version-ranges/Cargo.toml | 2 +-
|
||||
3 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/Cargo.lock b/Cargo.lock
|
||||
index bf2d6975..c35dbb2c 100644
|
||||
--- a/Cargo.lock
|
||||
+++ b/Cargo.lock
|
||||
@@ -730,9 +730,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
|
||||
|
||||
[[package]]
|
||||
name = "ron"
|
||||
-version = "0.9.0-alpha.1"
|
||||
+version = "0.9.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "7644a2a539ff7fa991c8f4652373cd722d387e39229415103243914249730836"
|
||||
+checksum = "63f3aa105dea217ef30d89581b65a4d527a19afc95ef5750be3890e8d3c5b837"
|
||||
dependencies = [
|
||||
"base64",
|
||||
"bitflags",
|
||||
diff --git a/Cargo.toml b/Cargo.toml
|
||||
index 338ccb87..76c723b5 100644
|
||||
--- a/Cargo.toml
|
||||
+++ b/Cargo.toml
|
||||
@@ -36,7 +36,7 @@ version-ranges = { version = "0.1.0", path = "version-ranges" }
|
||||
criterion = { version = "2.7.2", package = "codspeed-criterion-compat" }
|
||||
env_logger = "0.11.6"
|
||||
proptest = "1.6.0"
|
||||
-ron = "=0.9.0-alpha.1"
|
||||
+ron = "=0.9.0"
|
||||
varisat = "0.2.2"
|
||||
version-ranges = { version = "0.1.0", path = "version-ranges", features = ["proptest"] }
|
||||
|
||||
diff --git a/version-ranges/Cargo.toml b/version-ranges/Cargo.toml
|
||||
index 4ba888bf..14405b89 100644
|
||||
--- a/version-ranges/Cargo.toml
|
||||
+++ b/version-ranges/Cargo.toml
|
||||
@@ -18,4 +18,4 @@ serde = ["dep:serde", "smallvec/serde"]
|
||||
|
||||
[dev-dependencies]
|
||||
proptest = "1.6.0"
|
||||
-ron = "=0.9.0-alpha.1"
|
||||
+ron = "=0.9.0"
|
||||
|
||||
From 8ef1f0e6cfc8ec847d5cefda7edcfbebd1a3017e Mon Sep 17 00:00:00 2001
|
||||
From: konstin <konstin@mailbox.org>
|
||||
Date: Mon, 7 Apr 2025 19:11:09 +0200
|
||||
Subject: [PATCH 2/3] Use SemVer again
|
||||
|
||||
---
|
||||
Cargo.toml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Cargo.toml b/Cargo.toml
|
||||
index 76c723b5..25125b6b 100644
|
||||
--- a/Cargo.toml
|
||||
+++ b/Cargo.toml
|
||||
@@ -36,7 +36,7 @@ version-ranges = { version = "0.1.0", path = "version-ranges" }
|
||||
criterion = { version = "2.7.2", package = "codspeed-criterion-compat" }
|
||||
env_logger = "0.11.6"
|
||||
proptest = "1.6.0"
|
||||
-ron = "=0.9.0"
|
||||
+ron = "0.9.0"
|
||||
varisat = "0.2.2"
|
||||
version-ranges = { version = "0.1.0", path = "version-ranges", features = ["proptest"] }
|
||||
|
||||
|
||||
From 983d40d061296a22a97810ea6946eb67048f511b Mon Sep 17 00:00:00 2001
|
||||
From: konstin <konstin@mailbox.org>
|
||||
Date: Mon, 7 Apr 2025 19:51:38 +0200
|
||||
Subject: [PATCH 3/3] Use SemVer again
|
||||
|
||||
---
|
||||
version-ranges/Cargo.toml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/version-ranges/Cargo.toml b/version-ranges/Cargo.toml
|
||||
index 14405b89..ce2c69f1 100644
|
||||
--- a/version-ranges/Cargo.toml
|
||||
+++ b/version-ranges/Cargo.toml
|
||||
@@ -18,4 +18,4 @@ serde = ["dep:serde", "smallvec/serde"]
|
||||
|
||||
[dev-dependencies]
|
||||
proptest = "1.6.0"
|
||||
-ron = "=0.9.0"
|
||||
+ron = "0.9.0"
|
||||
5
sources
5
sources
|
|
@ -1,4 +1 @@
|
|||
SHA512 (uv-0.6.14.tar.gz) = fd83f66d7be2c8bb0a30457433db00a7a0aa04d7f546a5a8833299e1e92dcf502c058a5dd8deb6b890aa21c10e3b9695e5444272efed9402e9722b01a71ff1b1
|
||||
SHA512 (rs-async-zip-c909fda63fcafe4af496a07bfda28a5aae97e58d.tar.gz) = 3a309566f4925b02496fcf19bc2865968edf6fb65082ca4079d2cee79e6b0353a1910c079f2afe656da0d0f6ddde5102052a221ea35a7dabc6d690a11218b20a
|
||||
SHA512 (pubgrub-b70cf707aa43f21b32f3a61b8a0889b15032d5c4.tar.gz) = 401ea5ca16e978d5407a1400e4e27cec9fcac11332067ee1ed8a3bc511901e08fc421ce875ebbb0990593ed549a4a5f4620914a71ae3490c7b8ae0f7b26b5937
|
||||
SHA512 (tl-6e25b2ee2513d75385101a8ff9f591ef51f314ec.tar.gz) = 4abbc4240ed129c92da8d616e27a6df0f24cdc85a0803acfdae588ca91f9e5b8d482e3ac88b2e657ff68917b1b43cef1e7ef3c887f624659b231fa5a13fcae68
|
||||
SHA512 (uv-0.12.3.tar.gz) = a4933b9b9b852dee2485800ad82ee3be111a4a5a437ab32d5064cfd4004e124ba733294a546a097379c74cf1fc234d1da0488aec7725037c7b967ec1aa862a71
|
||||
|
|
|
|||
11
uv-0.12.1-revert-blake2-beta.patch
Normal file
11
uv-0.12.1-revert-blake2-beta.patch
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
diff -Naur uv-0.12.1-original/crates/uv-extract/src/hash.rs uv-0.12.1/crates/uv-extract/src/hash.rs
|
||||
--- uv-0.12.1-original/crates/uv-extract/src/hash.rs 2026-07-31 20:05:57.000000000 +0100
|
||||
+++ uv-0.12.1/crates/uv-extract/src/hash.rs 2026-08-02 11:53:13.406289238 +0100
|
||||
@@ -1,4 +1,6 @@
|
||||
-use sha2::{Digest, digest::consts::U32};
|
||||
+// BLAKE2 still uses the `digest` 0.10 trait, while MD5 and SHA-2 use 0.11.
|
||||
+use blake2::digest::{Digest as _, consts::U32};
|
||||
+use sha2::Digest;
|
||||
use std::pin::Pin;
|
||||
use std::task::{Context, Poll};
|
||||
use tokio::io::{AsyncReadExt, ReadBuf};
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
# Not real spelling errors
|
||||
addFilter(r"spelling-error \('([Dd]eduplication|pipx|macOS|virtualenv)',")
|
||||
addFilter(r"spelling-error \('([Ll]ockfile|[Ww]orkspace)s?',")
|
||||
addFilter(r"spelling-error \('([Dd]eduplication|pipx|macOS|(py|virtual)env)',")
|
||||
# TODO: We would like to add man pages.
|
||||
addFilter(r" no-manual-page-for-binary uv$")
|
||||
# Since it is just equivalent to “uv tool run,” uvx is unlikely to get its own
|
||||
|
|
|
|||
745
uv.spec
745
uv.spec
|
|
@ -1,20 +1,18 @@
|
|||
%bcond check 1
|
||||
# Should we run integration tests, many of which require specific Python
|
||||
# interpreter versions (major.minor, not major.minor.patch)? This adds a few
|
||||
# dozen tests, but adds BuildRequires on more Pythons, and could reduce our
|
||||
# confidence that everything works correctly in an environment that only has
|
||||
# the main system Python.
|
||||
#
|
||||
# For the time being, these are still disabled since many of them still want
|
||||
# network access, even when features like pypi and crates-io are removed from
|
||||
# the default features. We should discuss this with upstream and consider
|
||||
# offering a PR to conditionalize the affected tests. See
|
||||
# https://src.fedoraproject.org/rpms/uv/pull-request/18#comment-229365 and
|
||||
# https://github.com/astral-sh/uv/issues/8970#issuecomment-2466794088.
|
||||
%bcond it 0
|
||||
# Should we run tests that require specific Python interpreter versions
|
||||
# (major.minor, not major.minor.patch)? This adds a few dozen tests, but adds
|
||||
# BuildRequires on more Python interpreters (which aren’t available in EPEL).
|
||||
%bcond other_python_versions %{undefined epel}
|
||||
|
||||
Name: uv
|
||||
Version: 0.6.14
|
||||
Version: 0.12.3
|
||||
# The uv package has a permanent exception to the Updates Policy in Fedora, so
|
||||
# it can be updated in stable releases across SemVer boundaries (subject to
|
||||
# good judgement and actual compatibility of any reverse dependencies). See
|
||||
# https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/#_other_packages,
|
||||
# https://pagure.io/fesco/issue/3262. It also has a corresponding exception in
|
||||
# EPEL, but only in leading branches and only until version 1.0; see
|
||||
# https://pagure.io/epel/issue/317.
|
||||
Release: %autorelease
|
||||
Summary: An extremely fast Python package installer and resolver, written in Rust
|
||||
|
||||
|
|
@ -27,6 +25,8 @@ Summary: An extremely fast Python package installer and resolver, written
|
|||
# crate(r-shquote); the original code was (Apache-2.0 OR
|
||||
# LGPL-2.1-or-later), but the vendored copy cites only the Apache-2.0
|
||||
# option.
|
||||
# - crates/uv-build-frontend/src/pipreqs/mappings is a data file taken from
|
||||
# https://pypi.org/project/pipreqs, https://github.com/bndr/pipreqs
|
||||
#
|
||||
# Apache-2.0 OR BSD-2-Clause:
|
||||
# - crates/uv-pep440/ is vendored and forked from crate(pep440_rs)
|
||||
|
|
@ -34,17 +34,18 @@ Summary: An extremely fast Python package installer and resolver, written
|
|||
# - crates/uv-python/packaging/ is vendored and forked from
|
||||
# python3dist(packaging)
|
||||
#
|
||||
# (Apache-2.0 OR MIT) AND BSD-3-CLause:
|
||||
# (Apache-2.0 OR MIT) AND BSD-3-Clause:
|
||||
# - The function wheel_metadata_from_remote_zip in
|
||||
# crates/uv-client/src/remote_metadata.rs is vendored and forked from the
|
||||
# function lazy_read_wheel_metadata in src/index/lazy_metadata.rs in
|
||||
# crate(rattler_installs_packages) and is BSD-3-Clause AND (Apache-2.0 OR
|
||||
# MIT): the original routine is BSD-3-CLause, and subsequent modifications
|
||||
# MIT): the original routine is BSD-3-Clause, and subsequent modifications
|
||||
# are explicitly (Apache-2.0 OR MIT).
|
||||
#
|
||||
# MIT
|
||||
# - crates/uv-virtualenv/src/activator/ is vendored and forked from
|
||||
# python3dist(virtualenv)
|
||||
# - crates/uv-netrc/ is vendored from crate(rust-netrc)
|
||||
#
|
||||
# Additionally, the following are bundled/forked but happen to be under the
|
||||
# same (Apache-2.0 OR MIT) terms as uv itself:
|
||||
|
|
@ -52,35 +53,36 @@ Summary: An extremely fast Python package installer and resolver, written
|
|||
# forked from crate(ripunzip)
|
||||
#
|
||||
# The following are present in the source but believed not to contribute to the
|
||||
# licenses of the binary RPMs. Note that ecosystem/ contains only
|
||||
# licenses of the binary RPMs. Note that test/ecosystem/ contains only
|
||||
# pyproject.toml files used for testing, not complete bundled projects.
|
||||
#
|
||||
# Apache-2.0:
|
||||
# - ecosystem/airflow/
|
||||
# - ecosystem/home-assistant-core/
|
||||
# - ecosystem/transformers/
|
||||
# - ecosystem/warehouse/
|
||||
# - test/ecosystem/airflow/
|
||||
# - test/ecosystem/home-assistant-core/
|
||||
# - test/ecosystem/transformers/
|
||||
# - test/ecosystem/warehouse/
|
||||
# Apache-2.0 OR MIT:
|
||||
# - ecosystem/packse/
|
||||
# - test/ecosystem/packse/
|
||||
# BSD-2-Clause-Patent:
|
||||
# - ecosystem/github-wikidata-bot/
|
||||
# - test/ecosystem/github-wikidata-bot/
|
||||
# BSD-3-Clause:
|
||||
# - ecosystem/saleor/
|
||||
# - test/ecosystem/jupyterlab/
|
||||
# - test/ecosystem/pandas/
|
||||
# - test/ecosystem/saleor/
|
||||
# MIT:
|
||||
# - crates/uv-python/fetch-download-metadata.py is derived from
|
||||
# https://github.com/mitsuhiko/rye/tree/f9822267a7f00332d15be8551f89a212e7bc9017
|
||||
# which was MIT.
|
||||
# - ecosystem/black/
|
||||
# - test/ecosystem/black/
|
||||
# - test/ecosystem/poetry/
|
||||
# - test/ecosystem/semantic-kernel/
|
||||
#
|
||||
# Rust crates compiled into the executable contribute additional license terms.
|
||||
# To obtain the following list of licenses, build the package and note the
|
||||
# output of %%{cargo_license_summary}. This should automatically include the
|
||||
# licenses of the following bundled forks:
|
||||
# - async_zip, Source100, is MIT.
|
||||
# - pubgrub/version-ranges, Source200, is MPL-2.0.
|
||||
# - tl, Source400, is MIT.
|
||||
# output of %%{cargo_license_summary}.
|
||||
#
|
||||
# (Apache-2.0 OR MIT) AND BSD-3-Clause
|
||||
# (MIT OR Apache-2.0) AND Apache-2.0 AND CC0-1.0
|
||||
# (MIT OR Apache-2.0) AND Unicode-3.0
|
||||
# (MIT OR Apache-2.0) AND Unicode-DFS-2016
|
||||
# 0BSD
|
||||
|
|
@ -96,43 +98,47 @@ Summary: An extremely fast Python package installer and resolver, written
|
|||
# Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
|
||||
# BSD-2-Clause OR Apache-2.0 OR MIT
|
||||
# BSD-3-Clause
|
||||
# BSL-1.0
|
||||
# CDLA-Permissive-2.0
|
||||
# ISC
|
||||
# LGPL-3.0-or-later OR MPL-2.0
|
||||
# MIT
|
||||
# MIT AND (MIT OR Apache-2.0)
|
||||
# MIT OR Apache-2.0
|
||||
# MIT OR LGPL-3.0-or-later
|
||||
# MIT OR Zlib OR Apache-2.0
|
||||
# MIT-0
|
||||
# MIT-0 OR Apache-2.0
|
||||
# MPL-2.0
|
||||
# Unicode-3.0
|
||||
# Unlicense OR MIT
|
||||
# Zlib
|
||||
License: %{shrink:
|
||||
0BSD AND
|
||||
(0BSD OR Apache-2.0 OR MIT) AND
|
||||
Apache-2.0 AND
|
||||
(Apache-2.0 OR BSD-2-Clause) AND
|
||||
(Apache-2.0 OR BSD-2-Clause OR MIT) AND
|
||||
(Apache-2.0 OR BSL-1.0) AND
|
||||
(Apache-2.0 OR ISC OR MIT) AND
|
||||
(Apache-2.0 OR MIT) AND
|
||||
(Apache-2.0 OR MIT OR Zlib) AND
|
||||
(Apache-2.0 OR MIT-0) AND
|
||||
(Apache-2.0 WITH LLVM-exception) AND
|
||||
(Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND
|
||||
BSD-3-Clause AND
|
||||
BSL-1.0 AND
|
||||
ISC AND
|
||||
(LGPL-3.0-or-later OR MIT) AND
|
||||
(LGPL-3.0-or-later OR MPL-2.0) AND
|
||||
MIT AND
|
||||
(MIT OR Unlicense) AND
|
||||
MPL-2.0 AND
|
||||
Unicode-3.0 AND
|
||||
Unicode-DFS-2016 AND
|
||||
Zlib
|
||||
}
|
||||
0BSD AND
|
||||
(0BSD OR Apache-2.0 OR MIT) AND
|
||||
Apache-2.0 AND
|
||||
(Apache-2.0 OR BSD-2-Clause) AND
|
||||
(Apache-2.0 OR BSD-2-Clause OR MIT) AND
|
||||
(Apache-2.0 OR BSL-1.0) AND
|
||||
(Apache-2.0 OR ISC OR MIT) AND
|
||||
(Apache-2.0 OR MIT) AND
|
||||
(Apache-2.0 OR MIT OR Zlib) AND
|
||||
(Apache-2.0 OR MIT-0) AND
|
||||
(Apache-2.0 WITH LLVM-exception) AND
|
||||
(Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND
|
||||
BSD-3-Clause AND
|
||||
CC0-1.0 AND
|
||||
CDLA-Permissive-2.0 AND
|
||||
ISC AND
|
||||
(LGPL-3.0-or-later OR MIT) AND
|
||||
(LGPL-3.0-or-later OR MPL-2.0) AND
|
||||
MIT AND
|
||||
MIT-0 AND
|
||||
(MIT OR Unlicense) AND
|
||||
MPL-2.0 AND
|
||||
Unicode-3.0 AND
|
||||
Unicode-DFS-2016 AND
|
||||
Zlib
|
||||
}
|
||||
# LICENSE.dependencies contains a full license breakdown
|
||||
URL: https://github.com/astral-sh/uv
|
||||
Source0: %{url}/archive/%{version}/uv-%{version}.tar.gz
|
||||
|
|
@ -140,72 +146,21 @@ Source0: %{url}/archive/%{version}/uv-%{version}.tar.gz
|
|||
# https://docs.astral.sh/uv/configuration/files
|
||||
Source1: uv.toml
|
||||
|
||||
# Currently, uv must use a fork of async_zip, as explained in:
|
||||
# Restore central directory buffering
|
||||
# https://github.com/charliermarsh/rs-async-zip/pull/2
|
||||
# and further discussed in
|
||||
# Please consider supporting the current release of async_zip
|
||||
# https://github.com/prefix-dev/async_http_range_reader/issues/14
|
||||
# We therefore bundle the fork as prescribed in
|
||||
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Rust/#_replacing_git_dependencies
|
||||
%global async_zip_git https://github.com/charliermarsh/rs-async-zip
|
||||
%global async_zip_rev c909fda63fcafe4af496a07bfda28a5aae97e58d
|
||||
%global async_zip_baseversion 0.0.17
|
||||
%global async_zip_snapdate 20241114
|
||||
Source100: %{async_zip_git}/archive/%{async_zip_rev}/rs-async-zip-%{async_zip_rev}.tar.gz
|
||||
|
||||
# For the foreseeable future, uv must use a fork of pubgrub (and the
|
||||
# version-ranges crate, which belongs to the same project), as explained in:
|
||||
# Plans for eventually using published pubgrub?
|
||||
# https://github.com/astral-sh/uv/issues/3794
|
||||
# We therefore bundle the fork as prescribed in
|
||||
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Rust/#_replacing_git_dependencies
|
||||
%global pubgrub_git https://github.com/astral-sh/pubgrub
|
||||
%global pubgrub_rev b70cf707aa43f21b32f3a61b8a0889b15032d5c4
|
||||
%global pubgrub_baseversion 0.3.0~alpha.1
|
||||
%global pubgrub_snapdate 20250202
|
||||
%global version_ranges_baseversion 0.1.1
|
||||
Source200: %{pubgrub_git}/archive/%{pubgrub_rev}/pubgrub-%{pubgrub_rev}.tar.gz
|
||||
|
||||
# For the time being, uv must use a fork of tl. See:
|
||||
# Path back to using released tl crate dependency?
|
||||
# https://github.com/astral-sh/uv/issues/6687
|
||||
# It should be possible to stop forking and bundling if tl upstream merges and
|
||||
# releases the following fix:
|
||||
# Avoid truncating URLs in unquoted hrefs
|
||||
# https://github.com/y21/tl/pull/69
|
||||
# We therefore bundle the fork as prescribed in
|
||||
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Rust/#_replacing_git_dependencies
|
||||
%global tl_git https://github.com/astral-sh/tl
|
||||
%global tl_rev 6e25b2ee2513d75385101a8ff9f591ef51f314ec
|
||||
%global tl_baseversion 0.7.8
|
||||
%global tl_snapdate 20240825
|
||||
Source400: %{tl_git}/archive/%{tl_rev}/tl-%{tl_rev}.tar.gz
|
||||
|
||||
# Downstream-only: do not override the default allocator
|
||||
#
|
||||
# In https://github.com/astral-sh/uv/pull/399, it was reasonably claimed that
|
||||
# using tikv-jemallocator improved benchmarks by 10%. However, this would
|
||||
# require packaging at least the tikv-jemalloc-sys, tikv-jemalloc-ctl, and
|
||||
# tikv-jemallocator crates, and this is expected to be not quite trivial.
|
||||
# We use the default allocator for now, and reserve tikv-jemallocaator
|
||||
# packaging as optional future work.
|
||||
Patch: 0001-Downstream-only-do-not-override-the-default-allocato.patch
|
||||
|
||||
# Downstream-only: Always find the system-wide uv executable
|
||||
# See discussion in
|
||||
# Should uv.find_uv_bin() be able to find /usr/bin/uv?
|
||||
# https://github.com/astral-sh/uv/issues/4451
|
||||
Patch: 0001-Downstream-patch-always-find-the-system-wide-uv-exec.patch
|
||||
# Downstream-only: revert source-code changes from “Upgrade BLAKE2 to unify
|
||||
# hashing digest versions”, https://github.com/astral-sh/uv/pull/20834. We do
|
||||
# not wish to upgrade rust-blake2 to a pre-release.
|
||||
Patch: uv-0.12.1-revert-blake2-beta.patch
|
||||
# Add license texts for new contents of test/ecosystem/ from PR#20068
|
||||
# https://github.com/astral-sh/uv/pull/20174
|
||||
Patch: %{url}/pull/20174.patch
|
||||
|
||||
# Update sanitize-filename requirement from 0.5 to 0.6
|
||||
Patch100: https://github.com/Majored/rs-async-zip/pull/153.patch
|
||||
|
||||
# This patch is for the forked, bundled pubgrub crate.
|
||||
#
|
||||
# build(deps): bump ron from 0.9.0-alpha.1 to 0.9.0
|
||||
# https://github.com/pubgrub-rs/pubgrub/pull/330
|
||||
Patch200: https://github.com/pubgrub-rs/pubgrub/pull/330.patch
|
||||
BuildSystem: pyproject
|
||||
BuildOption(install): --assert-license uv
|
||||
|
||||
# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
|
||||
ExcludeArch: %{ix86}
|
||||
|
|
@ -214,68 +169,69 @@ ExcludeArch: %{ix86}
|
|||
# of memory in the final linking step. This cannot be fixed by adding
|
||||
# "-C link-args=-Wl,--no-keep-memory" to the RUSTFLAGS (as that seems to have
|
||||
# no significant effect on memory requirements), nor can it be fixed by
|
||||
# reducing parallelism with e.g. the %%constrain_build macro (although we do
|
||||
# need this as well), since nothing else is happening at that point in the
|
||||
# build. See:
|
||||
# reducing parallelism (although we do need this as well), since nothing else
|
||||
# is happening at that point in the build. See:
|
||||
# https://doc.rust-lang.org/rustc/codegen-options/index.html#debuginfo
|
||||
%global rustflags_debuginfo 1
|
||||
|
||||
# As a separate limitation, memory exhaustion can occur on builders with very
|
||||
# many CPUs. Typical workspace crates peak out at 2-4 GB per rustc invocation.
|
||||
# The uv crate needs much more memory to compile (see the RUSTFLAGS adjustment
|
||||
# in %%build), but in practice it is also compiled alone after all the other
|
||||
# crates have finished, so it does not need to influence (and does not benefit
|
||||
# from) this setting. Even though some crates will require more than 3GB, the
|
||||
# average should be below that on many-core systems. Increase as needed.
|
||||
%constrain_build -m 4096
|
||||
# As a separate limitation, memory exhaustion (OOM) can occur during parallel
|
||||
# portions of the build.
|
||||
# - Because very many workspace crates can be built in parallel, builders with
|
||||
# a very large number of CPUs may OOM. Typical workspace crates peak out at
|
||||
# roughly 2–4 GB per rustc process.
|
||||
# - The uv crate needs much more memory to compile and link, at least 8 GB, and
|
||||
# when building the tests we may be building bin and lib versions at the same
|
||||
# time, along with the it (integration test) crate, which is also rather
|
||||
# large. This is a problem for “low memory” builders (<20 GB or so).
|
||||
# Unfortunately, this means that we need to scale the memory per task based on
|
||||
# the memory requirements of the top-level uv crate in order to avoid OOM on
|
||||
# all kinds of builders.
|
||||
%global _smp_tasksize_proc 10240
|
||||
|
||||
BuildRequires: cargo-rpm-macros >= 24
|
||||
# Compilation may fail on builders with very many cores (e.g. 192 cores) due to
|
||||
# “too many open files.” Try to keep the files/core ratio from getting too low.
|
||||
%global _smp_ncpus_max 48
|
||||
|
||||
BuildRequires: cargo-rpm-macros
|
||||
BuildRequires: rust2rpm-helper
|
||||
BuildRequires: tomcli
|
||||
BuildRequires: python3-devel
|
||||
%if %{with check} && %{with it}
|
||||
%if %{with check} && %{with other_python_versions}
|
||||
# See trove classifiers in pyproject.toml for supported Pythons.
|
||||
BuildRequires: /usr/bin/python3.8
|
||||
BuildRequires: /usr/bin/python3.9
|
||||
BuildRequires: /usr/bin/python3.10
|
||||
BuildRequires: /usr/bin/python3.11
|
||||
BuildRequires: /usr/bin/python3.12
|
||||
BuildRequires: /usr/bin/python3.13
|
||||
BuildRequires: /usr/bin/python3.13t
|
||||
BuildRequires: /usr/bin/python3.14
|
||||
BuildRequires: /usr/bin/python3.14t
|
||||
%endif
|
||||
|
||||
# This is a fork of async_zip; see the notes about Source100.
|
||||
%global async_zip_snapinfo %{async_zip_snapdate}git%{sub %{async_zip_rev} 1 7}
|
||||
%global async_zip_version %{async_zip_baseversion}^%{async_zip_snapinfo}
|
||||
Provides: bundled(crate(async_zip)) = %{async_zip_version}
|
||||
# This is a fork of pubgrub/version-ranges; see the notes about Source200.
|
||||
%global pubgrub_snapinfo %{pubgrub_snapdate}git%{sub %{pubgrub_rev} 1 7}
|
||||
%global pubgrub_version %{pubgrub_baseversion}^%{pubgrub_snapinfo}
|
||||
%global version_ranges_version %{version_ranges_baseversion}^%{pubgrub_snapinfo}
|
||||
Provides: bundled(crate(pubgrub)) = %{pubgrub_version}
|
||||
Provides: bundled(crate(version-ranges)) = %{version_ranges_version}
|
||||
# This is a fork of tl; see the notes about Source400.
|
||||
%global tl_snapinfo %{tl_snapdate}git%{sub %{tl_rev} 1 7}
|
||||
%global tl_version %{tl_baseversion}^%{tl_snapinfo}
|
||||
Provides: bundled(crate(tl)) = %{tl_version}
|
||||
|
||||
# In https://github.com/astral-sh/uv/issues/5588#issuecomment-2257823242,
|
||||
# upstream writes “These have diverged significantly and the upstream versions
|
||||
# are only passively maintained, uv requires these custom versions and can't
|
||||
# use a system copy.”
|
||||
#
|
||||
# crates/uv-pep440/
|
||||
# Version number from Cargo.toml:
|
||||
# Version number from crates/uv-pep440/CHANGELOG.md; it was also in
|
||||
# crates/uv-pep440/Cargo.toml until uv 0.9.11, when internal crates started
|
||||
# being versioned and published on crates.io.
|
||||
Provides: bundled(crate(pep440_rs)) = 0.7.0
|
||||
# crates/uv-pep508/
|
||||
# Cargo.toml has 0.6.0, but Changelog.md shows 0.7.0, and the source reflects
|
||||
# the changes for 0.7.0:
|
||||
# Version number from crates/uv-pep508/Changelog.md; it was also in
|
||||
# crates/uv-pep508/Cargo.toml until uv 0.9.11, when internal crates started
|
||||
# being versioned and published on crates.io, but the version in Cargo.toml was
|
||||
# 0.6.0. The source reflects upstream changes in 0.7.0.
|
||||
Provides: bundled(crate(pep508_rs)) = 0.7.0
|
||||
# crates/uv-virtualenv/
|
||||
# As a whole, this crate is derived from https://github.com/konstin/gourgeist
|
||||
# 0.0.4, which was published as https://crates.io/crates/gourgeist. It looks
|
||||
# looks like the project was subsumed into `uv`, and the link to `uv` at
|
||||
# https://konstin.github.io/gourgeist/ seems to support this, so we consider
|
||||
# this not to be a real case of bundling, and we do not add:
|
||||
# like the project was subsumed into `uv`, and the link to `uv` at
|
||||
# https://konstin.github.io/gourgeist/ (“See
|
||||
# https://github.com/astral-sh/uv/tree/main/crates/uv-virtualenv for the up to
|
||||
# date version”) supports this. We therefore consider this not to be a real
|
||||
# case of bundling, since the source in uv is now the canonical one, and we do
|
||||
# not add:
|
||||
# Provides: bundled(crate(gourgeist)) = 0.0.4
|
||||
|
||||
# crates/uv-extract/src/vendor/cloneable_seekable_reader.rs
|
||||
|
|
@ -306,6 +262,32 @@ Provides: bundled(crate(glibc_version)) = 0.1.2^20221117git5e1002d
|
|||
# unmaintained upstream, https://github.com/astral-sh/uv/issues/11780.
|
||||
Provides: bundled(crate(r-shquote)) = 0.1.1
|
||||
|
||||
# crates/uv-keyring
|
||||
# From crates/uv-keyring/README.md, “This is vendored from [keyring-rs
|
||||
# crate](https://github.com/open-source-cooperative/keyring-rs)
|
||||
# commit 9635a2f53a19eb7f188cdc4e38982dcb19caee00.” The commit message of the
|
||||
# referenced upstream commit indicates it corresponds to 4.0.0-rc2.
|
||||
#
|
||||
# The text of https://github.com/astral-sh/uv/pull/14725 explains the differing
|
||||
# design goals and tradeoffs that lead uv to fork keyring-rs rather than using
|
||||
# the upstream https://crates.io/crates/keyring crate or trying to get the
|
||||
# necessary changes merged upstream. Based on this explanation, there does not
|
||||
# appear to be any prospect of unbundling.
|
||||
Provides: bundled(crate(keyring)) = 4.0.0~rc2
|
||||
|
||||
# crates/uv-netrc
|
||||
# From crates/uv-netrc/README.md, “This crate vendors the rust-netrc parser for
|
||||
# use by uv. The source was vendored from gribouille/netrc, as published in
|
||||
# rust-netrc 0.1.2[…]”
|
||||
#
|
||||
# Upstream justifies the bundling in
|
||||
# https://github.com/astral-sh/uv/pull/19409: they want unreleased bug fixes,
|
||||
# including those pertaining to https://github.com/astral-sh/uv/issues/16083,
|
||||
# and to avoid a dependency on thiserror v1. In response to the mandatory
|
||||
# query, they report they are open to de-vendoring if a new rust-netrc release
|
||||
# with the desired changes appears.
|
||||
Provides: bundled(crate(rust-netrc)) = 0.1.2
|
||||
|
||||
# The contents of crates/uv-virtualenv/src/activator/ are a bundled and
|
||||
# slightly forked copy of a subset of https://pypi.org/project/virtualenv; see
|
||||
# https://github.com/pypa/virtualenv/tree/main/src/virtualenv/activation.
|
||||
|
|
@ -316,9 +298,10 @@ Provides: bundled(crate(r-shquote)) = 0.1.1
|
|||
# https://github.com/astral-sh/uv/issues/5588#issuecomment-2257474140
|
||||
#
|
||||
# The scripts were last updated from virtualenv upstream in
|
||||
# https://github.com/astral-sh/uv/pull/3376 on 2024-05-04; the latest
|
||||
# virtualenv release at that time was 20.26.0.
|
||||
Provides: bundled(python3dist(virtualenv)) = 20.26
|
||||
# https://github.com/astral-sh/uv/pull/15272 on 2025-09-05. The PR was opened
|
||||
# on 2025-08-14 and last revised on 2025-08-30; the latest virtualenv release
|
||||
# throughout that time interval was 20.34.0.
|
||||
Provides: bundled(python3dist(virtualenv)) = 20.34
|
||||
|
||||
# The contents of crates/uv-python/python/packaging/ are a bundled copy of a
|
||||
# subset of https://pypi.org/project/packaging.
|
||||
|
|
@ -350,25 +333,30 @@ Provides: bundled(python3dist(virtualenv)) = 20.26
|
|||
# snapshot date.
|
||||
Provides: bundled(python3dist(packaging)) = 24.1~dev0^20240310gitcc938f9
|
||||
|
||||
# The contents of crates/uv-build-frontend/src/pipreqs/mapping are copied from
|
||||
# https://pypi.org/project/pipreqs. Since this is just a data file, since uv
|
||||
# does not take Python dependencies, and since pipreqs is not currently
|
||||
# actively maintained anyway, there is no reasonable prospect of unbundling.
|
||||
# The version number is just that of the latest pipreqs release at the time the
|
||||
# data file was vendored.
|
||||
Provides: bundled(python3dist(pipreqs)) = 0.5.0
|
||||
|
||||
%global common_description %{expand:
|
||||
An extremely fast Python package installer and resolver, written in Rust.
|
||||
Designed as a drop-in replacement for common pip and pip-tools workflows.
|
||||
An extremely fast Python package and project manager, written in Rust.
|
||||
|
||||
Highlights:
|
||||
|
||||
• ⚖️ Drop-in replacement for common pip, pip-tools, and virtualenv commands.
|
||||
• ⚡️ 10-100x faster than pip and pip-tools (pip-compile and pip-sync).
|
||||
• 💾 Disk-space efficient, with a global cache for dependency deduplication.
|
||||
• 🐍 Installable via curl, pip, pipx, etc. uv is a static binary that can be
|
||||
installed without Rust or Python.
|
||||
• 🧪 Tested at-scale against the top 10,000 PyPI packages.
|
||||
• 🖥️ Support for macOS, Linux, and Windows.
|
||||
• 🧰 Advanced features such as dependency version overrides and alternative
|
||||
resolution strategies.
|
||||
• ⁉️ Best-in-class error messages with a conflict-tracking resolver.
|
||||
• 🤝 Support for a wide range of advanced pip features, including editable
|
||||
installs, Git dependencies, direct URL dependencies, local dependencies,
|
||||
constraints, source distributions, HTML and JSON indexes, and more.}
|
||||
• A single tool to replace pip, pip-tools, pipx, poetry, pyenv, twine,
|
||||
virtualenv, and more.
|
||||
• 10-100x faster than pip.
|
||||
• Provides comprehensive project management, with a universal lockfile.
|
||||
• Runs scripts, with support for inline dependency metadata.
|
||||
• Installs and manages Python versions.
|
||||
• Runs and installs tools published as Python packages.
|
||||
• Includes a pip-compatible interface for a performance boost with a familiar
|
||||
CLI.
|
||||
• Supports Cargo-style workspaces for scalable projects.
|
||||
• Disk-space efficient, with a global cache for dependency deduplication.}
|
||||
|
||||
%description %{common_description}
|
||||
|
||||
|
|
@ -385,91 +373,36 @@ Requires: uv = %{version}-%{release}
|
|||
This package provides an importable Python module for uv.
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup -N
|
||||
%autopatch -p1 -M99
|
||||
|
||||
# Usage: git2path SELECTOR PATH
|
||||
# Replace a git dependency with a path dependency in Cargo.toml
|
||||
git2path() {
|
||||
tomcli set Cargo.toml del "${1}.git"
|
||||
tomcli set Cargo.toml del "${1}.rev"
|
||||
tomcli set Cargo.toml str "${1}.path" "${2}"
|
||||
}
|
||||
|
||||
# See comments above Source100:
|
||||
%setup -q -T -D -b 100 -n uv-%{version}
|
||||
# Adding the crate to the workspace (in this case implicitly, by linking it
|
||||
# under crates/) means %%cargo_generate_buildrequires can handle it correctly.
|
||||
ln -s '../../rs-async-zip-%{async_zip_rev}' crates/async_zip
|
||||
git2path workspace.dependencies.async_zip crates/async_zip
|
||||
pushd crates/async_zip
|
||||
%autopatch -p1 -m100 -M199
|
||||
popd
|
||||
install -t LICENSE.bundled/async_zip -D -p -m 0644 crates/async_zip/LICENSE
|
||||
# Drop dev-dependencies that are only required for compiling the
|
||||
# actix-multipart example, and remove it. Note that while “futures” is in this
|
||||
# section of Cargo.toml, it is in fact also used in a test.
|
||||
tomcli set crates/async_zip/Cargo.toml del dev-dependencies.actix-multipart
|
||||
mv crates/async_zip/examples/actix_multipart.rs{,.disabled}
|
||||
tomcli set crates/async_zip/Cargo.toml del dev-dependencies.actix-web
|
||||
tomcli set crates/async_zip/Cargo.toml del dev-dependencies.derive_more
|
||||
tomcli set crates/async_zip/Cargo.toml del dev-dependencies.uuid
|
||||
|
||||
# See comments above Source200:
|
||||
%setup -q -T -D -b 200 -n uv-%{version}
|
||||
ln -s '../../pubgrub-%{pubgrub_rev}' crates/pubgrub
|
||||
git2path workspace.dependencies.pubgrub crates/pubgrub
|
||||
pushd crates/pubgrub
|
||||
%autopatch -p1 -m200 -M299
|
||||
popd
|
||||
install -t LICENSE.bundled/pubgrub -D -p -m 0644 crates/pubgrub/LICENSE
|
||||
# Drop a benchmark-only dev-dependency.
|
||||
tomcli set crates/pubgrub/Cargo.toml del dev-dependencies.criterion
|
||||
# Omit tests requiring varisat; it is not packaged and has significant
|
||||
# dependencies of its own.
|
||||
tomcli set crates/pubgrub/Cargo.toml del dev-dependencies.varisat
|
||||
mv crates/pubgrub/tests/proptest.rs{,.disabled}
|
||||
mv crates/pubgrub/tests/sat_dependency_provider.rs{,.disabled}
|
||||
# We can’t have two workspaces!
|
||||
tomcli set crates/pubgrub/Cargo.toml del workspace
|
||||
# Note that install does always dereference symlinks, which is what we want:
|
||||
install -t LICENSE.bundled/version-ranges -D -p -m 0644 \
|
||||
crates/pubgrub/version-ranges/LICENSE
|
||||
git2path workspace.dependencies.version-ranges crates/pubgrub/version-ranges
|
||||
|
||||
# See comments above Source400:
|
||||
%setup -q -T -D -b 400 -n uv-%{version}
|
||||
ln -s '../../tl-%{tl_rev}' crates/tl
|
||||
git2path workspace.dependencies.tl crates/tl
|
||||
pushd crates/tl
|
||||
%autopatch -p1 -m400 -M499
|
||||
popd
|
||||
install -t LICENSE.bundled/tl -D -p -m 0644 crates/tl/LICENSE
|
||||
# Drop a benchmark-only dev-dependency.
|
||||
tomcli set crates/tl/Cargo.toml del dev-dependencies.criterion
|
||||
|
||||
# Collect license files of vendored dependencies in the main source archive
|
||||
install -t LICENSE.bundled/packaging -D -p -m 0644 \
|
||||
%prep -a
|
||||
# Collect license files of vendored dependencies
|
||||
install -D --preserve-timestamps --mode=0644 \
|
||||
--target=LICENSE.bundled/packaging \
|
||||
crates/uv-python/python/packaging/LICENSE.*
|
||||
install -t LICENSE.bundled/pep440_rs -D -p -m 0644 crates/uv-pep440/License-*
|
||||
install -t LICENSE.bundled/pep508_rs -D -p -m 0644 crates/uv-pep508/License-*
|
||||
install -t LICENSE.bundled/ripunzip -D -p -m 0644 \
|
||||
crates/uv-extract/src/vendor/LICENSE
|
||||
install -D --preserve-timestamps --mode=0644 \
|
||||
--target=LICENSE.bundled/pep440_rs crates/uv-pep440/License-*
|
||||
install -D --preserve-timestamps --mode=0644 \
|
||||
--target=LICENSE.bundled/pep508_rs crates/uv-pep508/License-*
|
||||
install -D --preserve-timestamps --mode=0644 \
|
||||
--target=LICENSE.bundled/pipreqs \
|
||||
crates/uv-build-frontend/src/pipreqs/LICENSE
|
||||
install -D --preserve-timestamps --mode=0644 \
|
||||
--target=LICENSE.bundled/ripunzip crates/uv-extract/src/vendor/LICENSE
|
||||
install -D --preserve-timestamps --mode=0644 \
|
||||
--target=LICENSE.bundled/rust-netrc crates/uv-netrc/LICENSE
|
||||
# The original license text from rattler_installs_packages is present in a
|
||||
# comment, but we want it in a separate file so we can ensure it is present in
|
||||
# the binary RPM.
|
||||
install -d LICENSE.bundled/rattler_installs_packages
|
||||
install --directory LICENSE.bundled/rattler_installs_packages
|
||||
awk '$2 == "BSD" { out=1 }; $2 == "```" { out=0 }; out' \
|
||||
crates/uv-client/src/remote_metadata.rs |
|
||||
sed -r 's@^///( |$)@@' |
|
||||
sed --regexp-extended 's@^///( |$)@@' |
|
||||
tee LICENSE.bundled/rattler_installs_packages/LICENSE
|
||||
# Similarly for virtualenv. All files in
|
||||
# crates/uv-virtualenv/src/activator/activate/ have the same license text.
|
||||
install -d LICENSE.bundled/virtualenv
|
||||
install --directory LICENSE.bundled/virtualenv
|
||||
awk '$1 == "#" { out=1 }; $1 != "#" { out=0; exit }; out' \
|
||||
crates/uv-virtualenv/src/activator/activate |
|
||||
sed -r 's@^#( |$)@@' |
|
||||
sed --regexp-extended 's@^#( |$)@@' |
|
||||
tee LICENSE.bundled/virtualenv/LICENSE
|
||||
|
||||
# Patch out foreign (e.g. Windows-only) dependencies. Follow symbolic links so
|
||||
|
|
@ -478,15 +411,27 @@ find -L . -type f -name Cargo.toml -print \
|
|||
-execdir rust2rpm-helper strip-foreign -o '{}' '{}' ';'
|
||||
|
||||
# The uv-trampoline crate (a fork of posy trampolines, from
|
||||
# https://github.com/njsmith/posy) contains a set of trampoline Windows
|
||||
# executables for launching Python scripts. We must remove these to prove they
|
||||
# are not used in the build (and since they are only used on Windows, nothing
|
||||
# is lost by doing so).
|
||||
rm -v crates/uv-trampoline/trampolines/*.exe
|
||||
# Per Cargo.toml, uv-trampoline is excluded from the workspace and not
|
||||
# compiled because it still requires a nightly compiler. For now, we remove it
|
||||
# entirely to show that we do not need to document bundling from posy.
|
||||
rm -rv crates/uv-trampoline
|
||||
# https://github.com/njsmith/posy) uses a set of trampoline Windows executables
|
||||
# for launching Python scripts. These precompiled executables are funished by
|
||||
# the uv-trampoline-builder crate. We must remove them to prove they are not
|
||||
# used in the build. Since they are used only on Windows, nothing is lost by
|
||||
# doing so.
|
||||
rm --verbose crates/uv-trampoline-builder/trampolines/*.exe
|
||||
# Per Cargo.toml, uv-trampoline is excluded from the workspace and not compiled
|
||||
# because it still requires a nightly compiler. For now, we remove it entirely
|
||||
# to show that we do not need to document bundling from posy. Note that we
|
||||
# *cannot* cleanly remove uv-trampoline-builder, only the precompiled
|
||||
# trampolines themselves.
|
||||
rm --recursive --verbose crates/uv-trampoline
|
||||
|
||||
# Remove the dependency on embed-manifest, which applies only when (cross-?)
|
||||
# compiling for Windows.
|
||||
tomcli set Cargo.toml del workspace.dependencies.embed-manifest
|
||||
# We may have to do something more sophisticated if this build script ever
|
||||
# starts to do anything other than just embedding a manifest on Windows.
|
||||
rm --verbose crates/uv/build.rs
|
||||
tomcli set crates/uv/Cargo.toml del build-dependencies.embed-manifest
|
||||
# The embed-manifest depenency is also used in uv-trampoline, which we removed.
|
||||
|
||||
# Do not strip the compiled executable; we need useful debuginfo. Upstream set
|
||||
# this intentionally, so this change makes sense to keep downstream-only.
|
||||
|
|
@ -497,59 +442,73 @@ tomcli set Cargo.toml false profile.release.strip
|
|||
# benchmarks, and it brings in unwanted additional dev dependencies.
|
||||
tomcli set Cargo.toml append workspace.exclude crates/uv-bench
|
||||
# The uv-dev crate provides “development utilities for uv,” which should not be
|
||||
# needed here, and it also brings in extra dependencies that we would prefer to
|
||||
# do without.
|
||||
# needed here. It also brings extra dependencies that we would prefer to avoid.
|
||||
tomcli set Cargo.toml append workspace.exclude crates/uv-dev
|
||||
|
||||
# Do not request static linking of liblzma – not even when the performance
|
||||
# feature is enabled.
|
||||
tomcli set crates/uv-extract/Cargo.toml lists delitem \
|
||||
features.performance 'xz2/static'
|
||||
|
||||
# Disable several default features that control which tests are compiled and
|
||||
# executed, and which are not usable in offline builds:
|
||||
#
|
||||
# ”Introduces a dependency on managed Python installations.”
|
||||
# (These are pre-compiled Pythons downloaded from the Internet.)
|
||||
tomcli set crates/uv/Cargo.toml lists delitem features.default 'python-managed'
|
||||
# - test-crates-io: Introduces a testing dependency on crates.io.
|
||||
# - test-git: Introduces a testing dependency on Git. This sounds innocuous –
|
||||
# we have git! – but in fact, it controls tests of git dependencies, which
|
||||
# implies accessing remote repositories, e.g. on GitHub.
|
||||
# - test-git-lfs: as for git, but also require Git Large File Storage; again,
|
||||
# this implies accessing remote repositories
|
||||
# - test-pypi: Introduces a testing dependency on PyPI.
|
||||
# - test-python-managed: Introduces a testing dependency on managed Python
|
||||
# installations. (These are pre-compiled Pythons downloaded from the
|
||||
# Internet.)
|
||||
# - test-r2: Introduces a testing dependency on R2.
|
||||
#
|
||||
# ”Introduces a dependency on PyPI.”
|
||||
tomcli set crates/uv/Cargo.toml lists delitem features.default 'pypi'
|
||||
# These are OK:
|
||||
# - test-python: Introduces a testing dependency on a local Python installation.
|
||||
# - test-slow: Include "slow" test cases.
|
||||
# - test-ecosystem: Includes test cases that require ecosystem packages
|
||||
#
|
||||
# ”Introduces a dependency on Git.”
|
||||
# This sounds innocuous – we have git! – but in fact, it controls tests of git
|
||||
# dependencies, which implies accessing remote repositories, e.g. on GitHub.
|
||||
tomcli set crates/uv/Cargo.toml lists delitem features.default 'git'
|
||||
#
|
||||
# ”Introduces a dependency on crates.io.”
|
||||
tomcli set crates/uv/Cargo.toml lists delitem features.default 'crates-io'
|
||||
# Note that the python-patch feature, which ”introduces a dependency on a local
|
||||
# Python installation with specific patch versions,” is already not among the
|
||||
# default features.
|
||||
tomcli set crates/uv/Cargo.toml lists delitem features.test-defaults \
|
||||
'test-(crates-io|git(-lfs)?|pypi|python-managed|r2)'
|
||||
# - -test-osv: Introduces a testing dependency on osv.dev.
|
||||
tomcli set crates/uv-audit/Cargo.toml lists delitem features.default \
|
||||
'test-(osv)'
|
||||
|
||||
# Omit tests requiring wiremock; its dependency tree is too large and complex
|
||||
# to consider packaging it right now. The conditional #[cfg(any())] is always
|
||||
# false.
|
||||
sed -r -i 's/^#\[cfg\(test\)\]/#[cfg(any())]\r&/' \
|
||||
crates/uv-auth/src/middleware.rs
|
||||
tomcli set crates/uv-auth/Cargo.toml del dev-dependencies.wiremock
|
||||
|
||||
%if %{without it}
|
||||
# Integration tests (it crate) nearly all require specific Python interpreter
|
||||
# versions (major.minor, not major.minor.patch, unless the python-patch feature
|
||||
# is enabled). We might choose to disable this in order to double-check that
|
||||
# everything else works well with only the primary system Python in the
|
||||
# environment.
|
||||
%if %{without other_python_versions}
|
||||
# Many of these tests require specific Python versions (major.minor, not
|
||||
# major.minor.patch, unless the python-patch feature is enabled). Manually
|
||||
# selecting the tests in these modules that would succeed with just the system
|
||||
# Python would be far too tedious.
|
||||
omit_modules() {
|
||||
set -o nounset
|
||||
set -o errexit
|
||||
main_module="${1}"
|
||||
commented_modules=''
|
||||
comment='Downstream-only: skip, needs specific Python interpreter versions'
|
||||
shift
|
||||
while [ "${#}" != 0 ]
|
||||
do
|
||||
commented_modules="${commented_modules-}${commented_modules+|}${1}"
|
||||
shift
|
||||
done
|
||||
sed --regexp-extended --in-place \
|
||||
"s@mod (${commented_modules});@// ${comment}\n#[cfg(any())]\n&@" \
|
||||
"${main_module}"
|
||||
}
|
||||
# -p uv --test build
|
||||
omit_modules crates/uv/tests/build/main.rs build_backend
|
||||
# -p uv --test it:
|
||||
mods="${mods-}${mods+|}branching_urls"
|
||||
mods="${mods-}${mods+|}build_backend"
|
||||
mods="${mods-}${mods+|}pip_(check|list|show|tree|uninstall)"
|
||||
mods="${mods-}${mods+|}python_(dir|find|install|list|pin)"
|
||||
mods="${mods-}${mods+|}venv"
|
||||
mods="${mods-}${mods+|}workspace"
|
||||
comment='Downstream-only: skip, needs specific Python interpreter versions'
|
||||
sed -r -i "s@mod (${mods});@// ${comment}\n#[cfg(any())]\n&@" \
|
||||
crates/uv/tests/it/main.rs
|
||||
omit_modules crates/uv/tests/it/main.rs \
|
||||
auth branching_urls network upgrade version
|
||||
# -p uv --test python:
|
||||
omit_modules crates/uv/tests/python/main.rs \
|
||||
'python_(dir|find|install|list|pin)' venv
|
||||
# -p uv --test workspace:
|
||||
omit_modules crates/uv/tests/workspace/main.rs \
|
||||
workspace 'workspace_(dir|list|metadata)'
|
||||
# -p uv --test pip:
|
||||
omit_modules crates/uv/tests/pip/main.rs \
|
||||
'pip_(debug|list|show|tree|uninstall)'
|
||||
%endif
|
||||
|
||||
# For unclear reasons, maturin checks for the presence of optional crate
|
||||
|
|
@ -561,27 +520,38 @@ tomcli set crates/uv/Cargo.toml del features.self-update
|
|||
tomcli set crates/uv/Cargo.toml del features.tracing-durations-export
|
||||
tomcli set crates/uv/Cargo.toml del dependencies.tracing-durations-export
|
||||
|
||||
# Loosen some version bounds that were aggressively updated upstream by the
|
||||
# renovate bot. We retain this comment and the following example even when
|
||||
# there are currently no dependencies that need to be adjusted.
|
||||
# We retain the following example even when there are currently no dependencies
|
||||
# that need to be adjusted.
|
||||
#
|
||||
# # foocrate
|
||||
# # wanted: 0.2.0
|
||||
# # currently packaged: 0.1.2
|
||||
# # https://bugzilla.redhat.com/show_bug.cgi?id=1234567
|
||||
# tomcli set crates/uv/Cargo.toml str dev-dependencies.foocrate.version 0.1.2
|
||||
# tomcli set Cargo.toml str workspace.dependencies.foocrate.version 0.1.2
|
||||
|
||||
# etcetera
|
||||
# wanted: 0.10.0
|
||||
# currently packaged: 0.8.0
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2348721
|
||||
tomcli set Cargo.toml str workspace.dependencies.etcetera.version \
|
||||
'>=0.8.0, <0.11.0'
|
||||
# tikv-jemallocator
|
||||
# wanted: 0.6.0
|
||||
# currently packaged: 0.7.0
|
||||
# https://github.com/astral-sh/uv/pull/19735
|
||||
# We use sed instead of tomcli because the target.cfg(…) expression is a
|
||||
# *mess*, and we don’t want to have to write it out here.
|
||||
sed --regexp-extended --in-place \
|
||||
's/^(tikv-jemallocator\b.*version = ")0\.6\.0"/\1>=0.6.0, <0.8.0"/' \
|
||||
crates/uv-performance-memory-allocator/Cargo.toml
|
||||
|
||||
# blake2
|
||||
# wanted: 0.11.0-rc.6
|
||||
# currently packaged: 0.10.6
|
||||
# https://github.com/astral-sh/uv/pull/19735
|
||||
# Downstream-only: revert “Upgrade BLAKE2 to unify hashing digest versions”,
|
||||
# https://github.com/astral-sh/uv/pull/20834. We do not wish to upgrade
|
||||
# rust-blake2 to a pre-release. There is an anccompanying source-code patch.
|
||||
tomcli set Cargo.toml str workspace.dependencies.blake2.version 0.10.6
|
||||
|
||||
%cargo_prep
|
||||
|
||||
|
||||
%generate_buildrequires
|
||||
%generate_buildrequires -p
|
||||
# For unclear reasons, maturin checks for all crate dependencies when it is
|
||||
# invoked as part of %%pyproject_buildrequires – including those corresponding
|
||||
# to optional features.
|
||||
|
|
@ -593,39 +563,14 @@ tomcli set Cargo.toml str workspace.dependencies.etcetera.version \
|
|||
# Since maturin always checks for dev-dependencies, we need -t so that they are
|
||||
# generated even when the “check” bcond is disabled.
|
||||
%cargo_generate_buildrequires -a -t
|
||||
# These crates are excluded from the workspace – upstream writes:
|
||||
# Only used to pull in features, allocators, etc. — we specifically don't
|
||||
# want them to be part of a workspace-wide cargo check, cargo clippy, etc.
|
||||
# – but they are still needed to support features, and the build will fail if
|
||||
# we do not generate their dependencies, too:
|
||||
for cratedir in \
|
||||
crates/uv-performance-memory-allocator
|
||||
do
|
||||
pushd "${cratedir}" >/dev/null
|
||||
%cargo_generate_buildrequires -a -t
|
||||
popd >/dev/null
|
||||
done
|
||||
%pyproject_buildrequires
|
||||
|
||||
|
||||
%build
|
||||
%pyproject_wheel
|
||||
|
||||
%build -a
|
||||
%{cargo_license_summary}
|
||||
%{cargo_license} > LICENSE.dependencies
|
||||
|
||||
# TODO: Since the --help output interacts well with help2man, use it to
|
||||
# generate man pages: ideally, a man page for each (sub)command
|
||||
# cross-referenced appropriately. (There are many subcommands, and this would
|
||||
# be tedious to do manually.) This should be feasible with the --include option
|
||||
# to help2man and a bit of scripting, but we choose to ship the initial package
|
||||
# without man pages and defer this to a later effort.
|
||||
|
||||
|
||||
%install
|
||||
%pyproject_install
|
||||
%pyproject_save_files uv
|
||||
|
||||
%install -a
|
||||
if [ '%{python3_sitearch}' != '%{python3_sitelib}' ]
|
||||
then
|
||||
# Maturin is really designed to build compiled Python extensions, but (when
|
||||
|
|
@ -633,9 +578,10 @@ then
|
|||
# library is actually pure-Python, and the python3-uv subpackage can be
|
||||
# noarch. We can’t tell maturin to install to the appropriate site-packages
|
||||
# directory, but we can fix the installation path manually.
|
||||
install -d %{buildroot}%{python3_sitelib}
|
||||
install --directory %{buildroot}%{python3_sitelib}
|
||||
mv %{buildroot}%{python3_sitearch}/uv* %{buildroot}%{python3_sitelib}
|
||||
sed -r -i 's@%{python3_sitearch}@%{python3_sitelib}@' %{pyproject_files}
|
||||
sed --regexp-extended --in-place \
|
||||
's@%{python3_sitearch}@%{python3_sitelib}@' %{pyproject_files}
|
||||
fi
|
||||
|
||||
# generate and install shell completions
|
||||
|
|
@ -651,10 +597,11 @@ do
|
|||
done
|
||||
|
||||
# Install a default system-wide configuration file
|
||||
install -t '%{buildroot}%{_sysconfdir}/uv' -p -m 0644 -D '%{SOURCE1}'
|
||||
install -D --preserve-timestamps --mode=0644 \
|
||||
--target='%{buildroot}%{_sysconfdir}/uv' '%{SOURCE1}'
|
||||
|
||||
|
||||
%check
|
||||
%check -a
|
||||
%if %{with check}
|
||||
# These tests rely on debug assertions, and fail when tests are compiled in
|
||||
# release mode:
|
||||
|
|
@ -665,56 +612,122 @@ skip="${skip-} --skip keyring::tests::fetch_url_with_empty_username"
|
|||
skip="${skip-} --skip keyring::tests::fetch_url_with_no_username"
|
||||
skip="${skip-} --skip keyring::tests::fetch_url_with_password"
|
||||
|
||||
# These tests require specific Python interpreter versions (down to patch
|
||||
# release number), which upstream normally downloads, precompiled, into the
|
||||
# build area; they might also require network access.
|
||||
# -p uv-client --test it:
|
||||
%if %{without other_python_versions}
|
||||
# These tests require specific Python interpreter versions, which upstream
|
||||
# normally downloads, precompiled, into the build area.
|
||||
skip="${skip-} --skip version::self_version"
|
||||
skip="${skip-} --skip version::self_version_json"
|
||||
skip="${skip-} --skip version::self_version_short"
|
||||
%endif
|
||||
|
||||
%ifnarch %{x86_64} %{arm64}
|
||||
# On other architectures, the list of available downloads differs, e.g. pypy
|
||||
# and graalpy downloads may be missing.
|
||||
skip="${skip-} --skip python_list::python_list_downloads"
|
||||
# Similarly, version numbers may not match exactly.
|
||||
skip="${skip-} --skip python_list::python_list_with_mirrors"
|
||||
%endif
|
||||
%ifarch %{power64}
|
||||
# The error message lacks the expected hint:
|
||||
# hint: A managed Python download is available for PyPy, but Python downloads
|
||||
# are set to 'never'
|
||||
# This might be worth reporting upstream, but is not a serious issue.
|
||||
skip="${skip-} --skip python_pin::python_pin_resolve"
|
||||
%endif
|
||||
%ifarch riscv64
|
||||
# These expect managed interpreters of the form
|
||||
# cpython-3.##-linux-riscv64gc-any, but crates/uv-python/download-metadata.json
|
||||
# only has them for cpython-3.##-linux-riscv64-gnu. It’s not weird to find
|
||||
# holes in the managed interpreter support matrix for less common
|
||||
# architectures.
|
||||
skip="${skip-} --skip python_find::python_find"
|
||||
skip="${skip-} --skip python_list::python_list"
|
||||
skip="${skip-} --skip python_pin::python_pin_resolve"
|
||||
%endif
|
||||
|
||||
# It’s not clear what causes the trivial discrepancy, but we find that this
|
||||
# fails when building in qemu-user-static emulated chroots.
|
||||
# 4 │- Caused by: Failed to query Python interpreter at `[TEMP_DIR]/bar`
|
||||
# 5 │- Caused by: [PERMISSION DENIED]
|
||||
# 4 │+ Caused by: Querying Python at `[TEMP_DIR]/bar` failed with
|
||||
# exit status exit status: 127
|
||||
skip="${skip-} --skip python_find::python_find_path"
|
||||
|
||||
# Test registry_client::tests::test_redirect_to_server_with_credentials is
|
||||
# flaky
|
||||
# https://github.com/astral-sh/uv/issues/16447
|
||||
skip="${skip-} --skip registry_client::tests::test_redirect_to_server_with_credentials"
|
||||
|
||||
# This requires specific Python interpreter versions (so it would be grouped
|
||||
# with the conditionalized integration tests above), but it also requires
|
||||
# network access to PyPI, so it must be skipped either way until it can be
|
||||
# appropriately conditionalized upstream; see
|
||||
# https://github.com/astral-sh/uv/pull/13699#issuecomment-2916115588.
|
||||
skip="${skip-} --skip remote_metadata::remote_metadata_with_and_without_cache"
|
||||
|
||||
# This snapshot test fails due to a trivial difference in error message text
|
||||
# between url 2.5.2 and 2.5.3. The meaning of the message is the same. See
|
||||
# https://github.com/astral-sh/uv/commit/9368268e494cbf05374165f25cdf1e9f6d2cceb9.
|
||||
# We can stop skipping this test once the rust-url package is updated to 2.5.3,
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2323618.
|
||||
#
|
||||
# ---- metadata::requires_dist::test::invalid_url stdout ----
|
||||
# Upstream is trying to ensure platform-independent byte-for-byte deterministic
|
||||
# wheels. This isn’t quite working out. It would be nice to understand this,
|
||||
# but this kind of reproducibility can be brittle, and there are many possible
|
||||
# innocuous reasons behind it.
|
||||
# ---- tests::built_by_uv_building stdout ----
|
||||
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
# Snapshot: invalid_url
|
||||
# Source: crates/uv-distribution/src/metadata/requires_dist.rs:460
|
||||
# Snapshot: built_by_uv_building-4
|
||||
# Source: crates/uv-build-backend/src/lib.rs:652
|
||||
# ────────────────────────────────────────────────────────────────────────────────
|
||||
# Expression: format_err(input).await
|
||||
# Expression: format!("{:x}", sha2::Sha256::digest(fs_err::read(&wheel_path).unwrap()))
|
||||
# ────────────────────────────────────────────────────────────────────────────────
|
||||
# -old snapshot
|
||||
# +new results
|
||||
# ────────────┬───────────────────────────────────────────────────────────────────
|
||||
# 0 0 │ error: TOML parse error at line 8, column 16
|
||||
# 1 1 │ |
|
||||
# 2 2 │ 8 | tqdm = { url = "§invalid#+#*Ä" }
|
||||
# 3 3 │ | ^^^^^^^^^^^^^^^^^
|
||||
# 4 │-relative URL without a base: "§invalid#+#*Ä"
|
||||
# 4 │+invalid value: string "§invalid#+#*Ä", expected relative URL without a base
|
||||
# 1 │-319afb04e87caf894b1362b508ec745253c6d241423ea59021694d2015e821da
|
||||
# 1 │+007327b23085c5debf31fb44df7a2294b5882aefdba960bdd68fab665db12c5a
|
||||
# ────────────┴───────────────────────────────────────────────────────────────────
|
||||
skip="${skip-} --skip metadata::requires_dist::test::invalid_url"
|
||||
skip="${skip-} --skip tests::built_by_uv_building"
|
||||
|
||||
%if %[ %{defined fc41} || %{defined fc40} || %{defined el10} || %{defined el9} ]
|
||||
# Trivial difference in snapshots: packages appear in a different order.
|
||||
skip="${skip-} --skip lock::tests::missing_dependency_source_unambiguous"
|
||||
skip="${skip-} --skip lock::tests::missing_dependency_version_dynamic"
|
||||
skip="${skip-} --skip lock::tests::missing_dependency_source_version_unambiguous"
|
||||
skip="${skip-} --skip lock::tests::missing_dependency_version_unambiguous"
|
||||
%endif
|
||||
# The list of HTTP status codes contains 103, but the expected list from the
|
||||
# snapshot doesn’t. This seems like a trivial discrepancy, probably due to a
|
||||
# dependency version differing from Cargo.lock.
|
||||
skip="${skip-} --skip base_client::tests::retried_status_codes"
|
||||
|
||||
# Harmless and trivial discrepancies in error messages:
|
||||
# 8 │- Caused by: error decoding response body for url (http://[LOCALHOST]/tqdm/)
|
||||
# 8 │+ Caused by: error decoding response body
|
||||
skip="${skip-} --skip network::retry_read_timeout_index"
|
||||
# 9 │- Caused by: error decoding response body for url (http://[LOCALHOST]/)
|
||||
# 9 │+ Caused by: error decoding response body
|
||||
skip="${skip-} --skip network::retry_read_timeout_python_downloads_json"
|
||||
|
||||
# These fail flakily: most frequently on ppc64le, but this seems to be just a
|
||||
# matter of luck, since we suspect a race condition. We have also seen failures
|
||||
# on aarch64. This is probably a race involving the SSL_CERT_FILE environment
|
||||
# variable, which process-isolated testing in “cargo nextest” (used by
|
||||
# upstream) should avoid. That suggests there is nothing to report upstream.
|
||||
# When this fails, the error looks something like:
|
||||
# Error: failed to build HTTP client
|
||||
# Caused by:
|
||||
# 0: certificate in `/tmp/uv/tests/certs/.tmpFF0lkk/ca.pem` (from
|
||||
# `SSL_CERT_FILE`) could not be used as a trust anchor on certificate
|
||||
# `CN=uv-test-ca, O=Astral Software Inc.`
|
||||
# 1: ExtensionValueInvalid
|
||||
skip="${skip-} --skip user_agent_version::test_user_agent_has_linehaul"
|
||||
skip="${skip-} --skip user_agent_version::test_user_agent_has_subcommand"
|
||||
skip="${skip-} --skip user_agent_version::test_user_agent_has_version"
|
||||
# Similarly, with an error like:
|
||||
# Client::new(): reqwest::Error {
|
||||
# kind: Builder,
|
||||
# source: General("No CA certificates were loaded from the system")
|
||||
# }
|
||||
# There are probably more of these.
|
||||
skip="${skip-} --skip retry::tests::retried_status_codes"
|
||||
|
||||
%cargo_test -- -- --exact ${skip-}
|
||||
%endif
|
||||
|
||||
%pyproject_check_import
|
||||
|
||||
|
||||
%files
|
||||
%license LICENSE-APACHE LICENSE-MIT LICENSE.dependencies LICENSE.bundled/
|
||||
%doc CHANGELOG.md
|
||||
%doc README.md
|
||||
%doc PIP_COMPATIBILITY.md
|
||||
|
||||
%{_bindir}/uv
|
||||
# Equivalent to “uv tool run”:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue