Compare commits

..

1 commit

Author SHA1 Message Date
Benjamin A. Beasley
062939abf1 Update to 0.6.0 (close RHBZ#2345851) 2025-02-15 12:17:03 -05:00
17 changed files with 888 additions and 645 deletions

View file

@ -1 +0,0 @@
1

91
.gitignore vendored
View file

@ -1 +1,90 @@
/uv-*.tar.gz
/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

View file

@ -0,0 +1,85 @@
From 2dafc904c3578d6f822cf4106b0e09d3086eac27 Mon Sep 17 00:00:00 2001
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
Date: Thu, 23 May 2024 14:45:49 -0400
Subject: [PATCH] Downstream-only: Revert "feat: ensure successful round-trip
of RON (#193)"
This reverts commit 21c6a215432fea9a75b7d15d9a9936af9ccc17cb.
We will not be packaging an alpha version of rust-ron.
---
Cargo.lock | 5 ++---
Cargo.toml | 2 +-
version-ranges/Cargo.toml | 2 +-
version-ranges/src/lib.rs | 10 ----------
4 files changed, 4 insertions(+), 15 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index b3d912a..a6c2eae 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -730,15 +730,14 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
[[package]]
name = "ron"
-version = "0.9.0-alpha.1"
+version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7644a2a539ff7fa991c8f4652373cd722d387e39229415103243914249730836"
+checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94"
dependencies = [
"base64",
"bitflags",
"serde",
"serde_derive",
- "unicode-ident",
]
[[package]]
diff --git a/Cargo.toml b/Cargo.toml
index 2424d96..3705919 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.8.1"
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 ffe68d1..7cf5e26 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.8.1"
diff --git a/version-ranges/src/lib.rs b/version-ranges/src/lib.rs
index aac7c94..d28984a 100644
--- a/version-ranges/src/lib.rs
+++ b/version-ranges/src/lib.rs
@@ -1210,16 +1210,6 @@ pub mod tests {
proptest! {
- // Testing serde ----------------------------------
-
- #[cfg(feature = "serde")]
- #[test]
- fn serde_round_trip(range in proptest_strategy()) {
- let s = ron::ser::to_string(&range).unwrap();
- let r = ron::de::from_str(&s).unwrap();
- assert_eq!(range, r);
- }
-
// Testing negate ----------------------------------
#[test]
--
2.48.1

View file

@ -0,0 +1,48 @@
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

View file

@ -0,0 +1,31 @@
From ae352925d336072ffc54a297249d6fe8f4367c5b Mon Sep 17 00:00:00 2001
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
Date: Wed, 8 Jan 2025 19:44:57 -0500
Subject: [PATCH 1/2] Downstream-only: unpin libz-ng-sys
It was pinned to an old version due to a Windows-specific issue.
An upstreamable version of this would make the version pin
Windows-specific, but there is no reason to do so if
https://github.com/astral-sh/uv/pull/10375 soon removes the version pin
altogether.
---
crates/uv-performance-flate2-backend/Cargo.toml | 2 --
1 file changed, 2 deletions(-)
diff --git a/crates/uv-performance-flate2-backend/Cargo.toml b/crates/uv-performance-flate2-backend/Cargo.toml
index 61249be4e..fb922e7d6 100644
--- a/crates/uv-performance-flate2-backend/Cargo.toml
+++ b/crates/uv-performance-flate2-backend/Cargo.toml
@@ -10,8 +10,6 @@ doctest = false
# Use `zlib-ng` on all supported platforms.
[target.'cfg(not(any(target_arch = "s390x", target_arch = "powerpc64", target_os = "freebsd")))'.dependencies]
flate2 = { version = "1.0.28", default-features = false, features = ["zlib-ng"] }
-# See: https://github.com/rust-lang/libz-sys/issues/225
-libz-ng-sys = { version = "<1.1.20" }
# Use `zlib-rs` everywhere else.
[target.'cfg(any(target_arch = "s390x", target_arch = "powerpc64", target_os = "freebsd"))'.dependencies]
--
2.47.1

View file

@ -1,4 +1,4 @@
From 831cf2937a4b8b781d56d5fa18916d2bc42b244d Mon Sep 17 00:00:00 2001
From 2efee35e5ca4248cfd5da36ff459292fc463a7ee 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 | 8 ++++++++
1 file changed, 8 insertions(+)
python/uv/_find_uv.py | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/python/uv/_find_uv.py b/python/uv/_find_uv.py
index ebe6b8d5a..e25a2e28c 100644
index 00b7d887..f4ff5b7f 100644
--- a/python/uv/_find_uv.py
+++ b/python/uv/_find_uv.py
@@ -35,6 +35,14 @@ def find_uv_bin() -> str:
sysconfig.get_path("scripts", scheme=_user_scheme()),
]
@@ -10,6 +10,16 @@ def find_uv_bin() -> str:
uv_exe = "uv" + sysconfig.get_config_var("EXE")
+ # Downstream patch: always find the system-wide uv executable
+ #
@ -26,11 +26,13 @@ index ebe6b8d5a..e25a2e28c 100644
+ # https://github.com/astral-sh/uv/issues/4451
+ bindir_path = sysconfig.get_config_var("BINDIR")
+ if bindir_path is not None:
+ targets.insert(0, os.path.join(bindir_path, uv_exe))
+ path = os.path.join(bindir_path, uv_exe)
+ if os.path.isfile(path):
+ return path
+
seen = []
for target in targets:
if not target:
path = os.path.join(sysconfig.get_path("scripts"), uv_exe)
if os.path.isfile(path):
return path
--
2.53.0
2.46.0

View file

@ -0,0 +1,31 @@
From fe229490eacaf771f2d1bbe8e67c3bef484d3291 Mon Sep 17 00:00:00 2001
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
Date: Sat, 16 Nov 2024 16:42:49 -0500
Subject: [PATCH 1/2] Revert "Update zip requirement from 0.6.3 to 2.1.5"
This reverts commit ba532d50a943ecf0fadb3c0a20c5e51bcb81441d.
See:
Concerns with zip version 1.x
https://github.com/astral-sh/uv/issues/3642
---
Cargo.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Cargo.toml b/Cargo.toml
index 4740293..3c20438 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -49,7 +49,7 @@ tokio-util = { version = "0.7", features = ["compat"], optional = true }
tokio = { version = "1", features = ["full"] }
tokio-util = { version = "0.7", features = ["compat"] }
env_logger = "0.11.2"
-zip = "2.1.5"
+zip = "0.6.3"
# shared across multiple examples
anyhow = "1"
--
2.47.0

View file

@ -0,0 +1,29 @@
From 8828480277014aa36d6ffd349ce71add3914eed5 Mon Sep 17 00:00:00 2001
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
Date: Thu, 9 Jan 2025 06:16:40 -0500
Subject: [PATCH 2/2] Downstream-only: Use zlib-ng on all architectures
We do not have trouble building it on ppc64le or s390x.
---
crates/uv-performance-flate2-backend/Cargo.toml | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/crates/uv-performance-flate2-backend/Cargo.toml b/crates/uv-performance-flate2-backend/Cargo.toml
index fb922e7d6..fe902f74d 100644
--- a/crates/uv-performance-flate2-backend/Cargo.toml
+++ b/crates/uv-performance-flate2-backend/Cargo.toml
@@ -7,10 +7,5 @@ edition = "2021"
[lib]
doctest = false
-# Use `zlib-ng` on all supported platforms.
-[target.'cfg(not(any(target_arch = "s390x", target_arch = "powerpc64", target_os = "freebsd")))'.dependencies]
+[dependencies]
flate2 = { version = "1.0.28", default-features = false, features = ["zlib-ng"] }
-
-# Use `zlib-rs` everywhere else.
-[target.'cfg(any(target_arch = "s390x", target_arch = "powerpc64", target_os = "freebsd"))'.dependencies]
-flate2 = { version = "1.0.28", default-features = false, features = ["zlib-rs"] }
--
2.47.1

View file

@ -0,0 +1,61 @@
From 79705528bbaa1726ee7c394c28a769a65553847a Mon Sep 17 00:00:00 2001
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
Date: Sun, 17 Nov 2024 23:27:41 -0500
Subject: [PATCH 2/2] Revert "Update mod.rs"
This reverts commit 60b8d12bada8fd1e64abe78ef1c1873ffb475093.
These changes were associated with porting from zip 0.6 to 2.
See:
Concerns with zip version 1.x
https://github.com/astral-sh/uv/issues/3642
---
src/tests/read/zip64/mod.rs | 7 +++----
src/tests/write/zip64/mod.rs | 2 +-
2 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/src/tests/read/zip64/mod.rs b/src/tests/read/zip64/mod.rs
index 7549d63..758d410 100644
--- a/src/tests/read/zip64/mod.rs
+++ b/src/tests/read/zip64/mod.rs
@@ -58,7 +58,7 @@ async fn test_read_zip64_archive_stream() {
#[cfg(feature = "tokio")]
fn generate_zip64many_zip() -> std::path::PathBuf {
use std::io::Write;
- use zip::write::{ExtendedFileOptions, FileOptions};
+ use zip::write::FileOptions;
let mut path = std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR"));
path.push("src/tests/read/zip64/zip64many.zip");
@@ -70,11 +70,10 @@ fn generate_zip64many_zip() -> std::path::PathBuf {
let zip_file = std::fs::File::create(&path).unwrap();
let mut zip = zip::ZipWriter::new(zip_file);
- let options: FileOptions<'_, ExtendedFileOptions> =
- FileOptions::default().compression_method(zip::CompressionMethod::Stored);
+ let options = FileOptions::default().compression_method(zip::CompressionMethod::Stored);
for i in 0..2_u32.pow(16) + 1 {
- zip.start_file(format!("{i}.txt"), options.clone()).unwrap();
+ zip.start_file(format!("{i}.txt"), options).unwrap();
zip.write_all(b"\n").unwrap();
}
diff --git a/src/tests/write/zip64/mod.rs b/src/tests/write/zip64/mod.rs
index 35e26ff..01f3211 100644
--- a/src/tests/write/zip64/mod.rs
+++ b/src/tests/write/zip64/mod.rs
@@ -36,7 +36,7 @@ async fn test_write_zip64_file() {
let cursor = std::io::Cursor::new(buffer);
let mut zip = zip::read::ZipArchive::new(cursor).unwrap();
let mut file1 = zip.by_name("file1").unwrap();
- assert_eq!(file1.extra_data(), Some(&[] as &[u8]));
+ assert_eq!(file1.extra_data(), &[] as &[u8]);
let mut buffer = Vec::new();
file1.read_to_end(&mut buffer).unwrap();
assert_eq!(buffer.as_slice(), &[0, 0, 0, 0]);
--
2.47.0

55
11.patch Normal file
View file

@ -0,0 +1,55 @@
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 Normal file
View file

@ -0,0 +1,29 @@
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"

View file

@ -1,170 +0,0 @@
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

View file

@ -1,51 +0,0 @@
discover:
how: shell
tests:
- name: Basic smoke test
test: uv --help
require:
- uv
- name: Basic venv creation test
test: uv venv venv --python=python3
require:
- uv
- /usr/bin/python3
- name: Auto-install of third-party interpreters is not enabled
test: |
# Choose an interpreter version that uv can download, but which is
# not the default system Python. A relatively safe way to do this is
# to simply find the oldest available version:
oldest_python="$(
uv python list --only-downloads --output-format=json |
jq --raw-output '.[].version' |
sort --version-sort |
head --lines=1
)"
if output="$(uv venv "venv-${oldest_python}" --python="${oldest_python}" 2>&1)"
then
echo "FAILURE: Python ${oldest_python} was automatically installed!"
else
# An old interpreter version may fail to run even after
# auto-installation, e.g. at the time this was written, 3.7.9
# failed with:
# error while loading shared libraries: libnsl.so.1: cannot open
# shared object file: No such file or directory
# We use a heuristic to distinguish between expected and unexpected
# kinds of failures. We want something like:
# No interpreter found for Python 3.7.9 in managed installations
# or search path
if echo "${output}" | grep -Fi 'no interpreter' >/dev/null
then
echo "SUCCESS: Python ${oldest_python} was not automatically installed."
exit 0
fi
echo "FAILURE: Python ${oldest_python} MAY have been automatically installed!"
fi
echo 'Output of uv venv was:'
echo "${output}"
exit 1
require:
- uv
- jq
execute:
how: tmt

View file

@ -1 +1,4 @@
SHA512 (uv-0.12.3.tar.gz) = a4933b9b9b852dee2485800ad82ee3be111a4a5a437ab32d5064cfd4004e124ba733294a546a097379c74cf1fc234d1da0488aec7725037c7b967ec1aa862a71
SHA512 (uv-0.6.0.tar.gz) = cf658f39e4b51d8bc12e59c8f81983fdd50ef226eb9d81403d2ad74bbf1510f6c75fcd88300a30beace26e18fb32d334361a93c3086f0a58391db192ff38608a
SHA512 (rs-async-zip-c909fda63fcafe4af496a07bfda28a5aae97e58d.tar.gz) = 3a309566f4925b02496fcf19bc2865968edf6fb65082ca4079d2cee79e6b0353a1910c079f2afe656da0d0f6ddde5102052a221ea35a7dabc6d690a11218b20a
SHA512 (pubgrub-b70cf707aa43f21b32f3a61b8a0889b15032d5c4.tar.gz) = 401ea5ca16e978d5407a1400e4e27cec9fcac11332067ee1ed8a3bc511901e08fc421ce875ebbb0990593ed549a4a5f4620914a71ae3490c7b8ae0f7b26b5937
SHA512 (tl-6e25b2ee2513d75385101a8ff9f591ef51f314ec.tar.gz) = 4abbc4240ed129c92da8d616e27a6df0f24cdc85a0803acfdae588ca91f9e5b8d482e3ac88b2e657ff68917b1b43cef1e7ef3c887f624659b231fa5a13fcae68

View file

@ -1,11 +0,0 @@
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};

View file

@ -1,6 +1,5 @@
# Not real spelling errors
addFilter(r"spelling-error \('([Ll]ockfile|[Ww]orkspace)s?',")
addFilter(r"spelling-error \('([Dd]eduplication|pipx|macOS|(py|virtual)env)',")
addFilter(r"spelling-error \('([Dd]eduplication|pipx|macOS|virtualenv)',")
# 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

794
uv.spec

File diff suppressed because it is too large Load diff