summaryrefslogtreecommitdiff
path: root/dev-python/uv
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/uv')
-rw-r--r--dev-python/uv/Manifest30
-rw-r--r--dev-python/uv/files/tokio-tar-0.3.1-ppc.patch35
-rw-r--r--dev-python/uv/files/uv-0.1.24-skip-tests.patch192
-rw-r--r--dev-python/uv/files/uv-0.1.43-test.patch13
-rw-r--r--dev-python/uv/uv-0.1.24.ebuild107
-rw-r--r--dev-python/uv/uv-0.1.42.ebuild121
-rw-r--r--dev-python/uv/uv-0.1.43.ebuild123
-rw-r--r--dev-python/uv/uv-0.1.44.ebuild123
-rw-r--r--dev-python/uv/uv-0.4.16.ebuild135
-rw-r--r--dev-python/uv/uv-0.4.17.ebuild144
-rw-r--r--dev-python/uv/uv-0.4.18.ebuild144
11 files changed, 435 insertions, 732 deletions
diff --git a/dev-python/uv/Manifest b/dev-python/uv/Manifest
index b24c8a41db75..38652b1cf242 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -1,19 +1,13 @@
-AUX tokio-tar-0.3.1-ppc.patch 794 BLAKE2B 2c1188d96310710fabe8d248be01ab5e4d30aa02fe2b4f812a79a6c9440052178227534485122643bf4ed7f32ce3bfea289d78398c53229dd825eef44de6e164 SHA512 869d98ddd3eef7f8d9a7643ec5f93c73fed7bd4f1fb73b54a9e640293e831d24ca59bdd63377b07656ae706b5bf9833dd731b0537b43e8476d8cae0f3b8ab439
-AUX uv-0.1.24-skip-tests.patch 6070 BLAKE2B 10c111a2782bc0de45317dc4b6d7f7d66474aec38d61992a63686678a70685aa030acc2b96cb5cced70cf2b290e6f69cdb3e5c42464e04b937a9ef9cb2d7f9f7 SHA512 84fa60b254b3d14fbae337aceba1f34e9f4cd35e0d8da7e90c4ef75c81ccc5268dbfe3e46967ba05899af7862331cade50dcd4a364acd51fcb04a0923cbf7688
-AUX uv-0.1.43-test.patch 582 BLAKE2B 247c4d5e31ac12d5da4063d0b696a993f5bf4175886209930313ff507ba9bfaf638581c2f290dfa5adc85a3bb360705977ebdcb0adb6a6196f4fbda1a0cb630e SHA512 88fddad804d9f4b042c207802ed6d7dbdaa6ee974635219b49e37d0e4a56644ca81d23afad08dde6f7bf90f2d202947d615d53eda6bb499c8b06b4661e858988
-DIST pubgrub-0e684a874c9fb8f74738cd8875524c80e3d4820b.gh.tar.gz 86899 BLAKE2B 51b8753a092deda12a35b501f34c16e800f2ed2c4c47b64622c752bcf8a52dd1fb9dc1ee69cd107b5b6ee48003c8ef804e20f7eed975a6e63615b94648e37890 SHA512 15e404590fb3b21b01fac318df9cbf81f598dc0506d6d5738ff566a5eb1075e6d7a096a8ad1567e27982662aac0ce2a889a0039ce5736ff140fa617ae8b3cb08
-DIST pubgrub-e981e4dfe315582e84e2fd724832fb0e0c50b7aa.gh.tar.gz 76914 BLAKE2B e7039f3b2fdc2a702f4824ff99acba9549e916c211290b79ec710060369b2c76e518c210c109103bf5ba50cbb373d0a4e3185df09935d7e47241ec25da259776 SHA512 94cfc88b6736ffd78bcbcc3f4cd9940d27c902bf2dfca38dddb470b8a6a0bb3a8e4a61dd1b2654e49327c9386c3ac2a7f090f9a6c2426b19ecf00d9f9716d400
-DIST rs-async-zip-1dcb40cfe1bf5325a6fd4bfcf9894db40241f585.gh.tar.gz 96766 BLAKE2B f9efab73c65394e33e090a6292875ebf35e6669b15c356f102eb109784a4503606ae39106cd0ebe3d7d479cb0b30806d7baaaebf22d826836a24f7ed49100934 SHA512 3b845b05d97c5ab5cea286a7c11846838b40bb1fac98a51782600849a53231be8fa205094c6bdd00f6e193c807b10b28f947698696382be99cae0a8d681dabdc
-DIST rs-async-zip-d76801da0943de985254fc6255c0e476b57c5836.gh.tar.gz 95906 BLAKE2B a5a0e4d20926d637cbfa25cb486580de6682365c588a9653c873622424ec28ac8c7380d1c99ec260cd342b214aacd5124b51fc5e5646f15f76db4148aada2f41 SHA512 dd5b61bfc913a94822d74f1dac3b30f7a3979a641c3b08ccb5fa84cfbb2bfd8c0f807a30cc4ae0abfe5df7079011c20e1f8a642fd439ce6ba2c404ddee06baf5
-DIST uv-0.1.24-crates.tar.xz 64420840 BLAKE2B 7324461092a07c86aadaddf051aaa7454ec08085940f34d07d8a8dc7171abcbf94409df5cd8afd71f1022adb2e76c0aeb1eabe9190598cad4d06e390ccd612f4 SHA512 6701a768a8a1d48ac43038e5161b578b684abed1c2055cc4b7fb5656ec40118287893ee2674b7161292ce7c3e4c062c32ff0038f1548c8f79f4df473d8d26f30
-DIST uv-0.1.24.gh.tar.gz 899637 BLAKE2B fab26ba9934fc5f586505b5ac1fa386c11f07e51ca2bb2a79f46d5dec9475ba8d75ad8587223d5149df5f2a225146d020a49b7ff81ed26b949cff55892738c2d SHA512 520b47a096b50fce9e7b7af5bca203df9bf4c2d0aafbe28a3dcfe0592d8ddcaa7b58d52300c67454f6aeecfd196f1592be18e45c95b7c67257361917cdb0154d
-DIST uv-0.1.42-crates.tar.xz 65954692 BLAKE2B ae5b41ebee15530577623f7592ddc1c08c74c47f145ed5521ecea154558d3b5eff4c8f8af1d2d058719c59d87d00ae86d1bda8e3146349bc7a8f5344dfd40a01 SHA512 a5fd91054debc1d08b5270f3a39ae8fe5ca15bcc62e1c3412fb9566c40c3d8387ecbfd24d8b4f3db12199dfec7ddc175a638e7854efbb8c44cb1dbbe97d2b57c
-DIST uv-0.1.42.gh.tar.gz 1077448 BLAKE2B 84c4e5f6e35ac9a50ff3b1ba7b9cdd415a8e4dc2c153aec4a116892b2c567f91ddb67cd32937c2ed867bbfef26c13b3b75c17bc7728334c8db1c58f550d4e735 SHA512 e0451614d8a7f016f382a2c9eaee03cb015fa8c552258bbaa7329e7802b1013878bc16134e0232262fa588bbc724857fb1818e61cb2b948c333aba295ee6c4b8
-DIST uv-0.1.43-crates.tar.xz 58012188 BLAKE2B dd8ebb52d8ec9b21149047e0e4dcbd531b743feeefc8c7e8a9289b52474043e1ece0af1ea3e010d5b0a1cdbf57ac89664bc853ff776e800550175948a26c5e08 SHA512 5d5b8d7665af0a0a1920541c8310c772cdb5657a6ba62b8566ab09f8a38cc8a86a75ce7fddb4ea37be0b2e4511b2aba25e984efe4ce7bb11ff50ca072eb00277
-DIST uv-0.1.43.gh.tar.gz 1093053 BLAKE2B 7988799e9c978bce618ab66fd162a5995663f0da0d4f77fe0d8fb50bb1b535b8696d7fd4eb837e6b03703089aea883d0689d0e28bcda951655ee62bf92cfffd0 SHA512 3fd66d106fc09fdb616944a18dfeec33d0ecca5d985915b4efb09d77ceb0e3bff92577433c67d27ce3fb78cbc24ff8651639b5aceb6d39a72422481150a5adf3
-DIST uv-0.1.44.gh.tar.gz 1093698 BLAKE2B 2b39053518188d95555507751facad1ea0fcd935f6382bf3fea974d4542f6fb0429ca25dd58546e8e1b69fd3bb573657dc62d2438777a7baa0c9317c21fa83cb SHA512 d9f0ecf7a0b30855c69b9a135d76c53e077dd427c39d1dec9fe499cfe9afb1f0c6a528f451d3bc0eab5b29a43df5795f876b1ce61fa28b8913b114834c915b3b
-EBUILD uv-0.1.24.ebuild 2164 BLAKE2B 3caf382115984e87a0f44b5e8f619f38b3a7503ac12738519d0edff253eafbc7474924aa1997e332738ffe316da40dd199b906b1c560f1a00a53c805a39edc75 SHA512 c0c83640c43d073a1447228993e8384eee6a4adf73760d651456899ba285d25cc83f0611f6196123125f94fa9fa5d85710308ccf603e7261a699efc2f927dad7
-EBUILD uv-0.1.42.ebuild 2384 BLAKE2B 9f8cf857b3d6ea9c59ca790315dff70a73284cc0f3f4563f375d92d71909ba0443663082bdf3e7d9eb6360d1d0cba28044c736cef38e0c2e14c2e68103b3eca7 SHA512 c312c2b454b241cfba9fe962b7dfd9dfa058e7489c2165431febc1a5841ca2ff19b17ba571adf3af340a53f6b1e5747818a4d79b6e2de621956a1d428ec82f43
-EBUILD uv-0.1.43.ebuild 2467 BLAKE2B f6f3e55557e8600690d5ae4a2bdceed0a2bc5dcb5575beeaa9274826cba1c07baf01cd2b094bc78878e04fa8c6da871995fdcb5e352bd40fe6bba82471edb02b SHA512 ccbdbc42c166f8972891b77776b4dd21808e94c8b8eba4ddee9450500507192e272e9a99ddfa0bacb5ded6437e0f12dc3e3ed213d7285521dcbc834703d8f7bc
-EBUILD uv-0.1.44.ebuild 2483 BLAKE2B 1a576a65a005adf8a1465d837efcb66265d7db3bcf78dee340b74925c4e526b6d75b6ecc4c2c2b58382d24774f70e99b734ea8f1c82d4ffd906cefee9110d962 SHA512 e1a2f572d0ffda198fb01300cbfc833145b84f21ac8a1a964f844ad892768f82f365e5fc997d7c7161e9622730f954a23a776a1e32ee6255d932d9f7659bdf5c
+DIST pubgrub-388685a8711092971930986644cfed152d1a1f6c.gh.tar.gz 87945 BLAKE2B 7c10db2eff97656a379e8beff9f77bf09b4ab2fdd0d5c171e36babc6f3bff08d05774c55a51a23d79144c4110a942764cefa8a1baf7c36174809d2e648f2d12d SHA512 15539076de8fe9a459f70efcf07ccb7f61ced2be9832c4eb7123e7baa2bb85f3263fd4cb5d8b277c28a70ba316d5128d74d59d6f1de96b6e55ef04321a42c4dc
+DIST reqwest-middleware-5e3eaf254b5bd481c75d2710eed055f95b756913.gh.tar.gz 40049 BLAKE2B d284947a108e2d3233a4fa7c9eb5e1a959bc5b569e754861daef076672672b0500cb737b85871d1fc0587bdbf6d5020e03e7c906cb5de34ff2f81c05b66918d1 SHA512 540a71e59a8b57e5e0bd7fad18fed265552bdae4518690a9823c94dcf23ee1d436f91b9cecf21129917b25e78b91d8d7290760edaea68053666e28af7223476e
+DIST rs-async-zip-011b24604fa7bc223daaad7712c0694bac8f0a87.gh.tar.gz 51706 BLAKE2B 354eb52c95ea355521e1e6a7c841102424c47c156fdb0efb62e3cac666ecf289806aeefab8a0273a7c3283429ac81502283bdb5424d5f925621e5c2b1430fd4d SHA512 6650eef354e84daf41a8572b98b29f2873b7f071dd1d6983292c70b2f580fdc50cd26762d2228a70c2b200eae2f40476e6604702aa62cc97558301195bf19eb8
+DIST tl-6e25b2ee2513d75385101a8ff9f591ef51f314ec.gh.tar.gz 37106 BLAKE2B c30d1c33f6f52e2bc83823eb6319f8a3e462b7c7408fb6a08f995747857ef234f81db4135a04f9d183095fe473a4087f8f0cb89d8f87ef4400285d2ce034ec22 SHA512 4abbc4240ed129c92da8d616e27a6df0f24cdc85a0803acfdae588ca91f9e5b8d482e3ac88b2e657ff68917b1b43cef1e7ef3c887f624659b231fa5a13fcae68
+DIST uv-0.4.16-crates.tar.xz 46123176 BLAKE2B eeaa189f91742296e48f123f7695b5836e538681b99da1c7e9f7acd9b2cf6b29e570b41fc7436a664ae180e0aff51be03300e03a184a72d986b2a7840f99c3ab SHA512 41eaa866818fa3b58a7451f748f60da6f940865c377405fd999db9eab4bea696aab053be99faf8f8bad2d3a15b84d137607f87cd97c5d7a1884dcbee461f562b
+DIST uv-0.4.16.gh.tar.gz 2685666 BLAKE2B 34159ce43382bcd5b10191b6b9ed763ca831c755dbe5312f8c10493a2c224882b5014c583851f6c0a7ebcdb70591cacd755e1a9b3305a1533986b06706cb6d08 SHA512 e0c25a56b67ac73156f97a0e9d1637ad395a05a6d87dffd7f39ee5c78028a555ce6d5cf97c6a0a11a709fd7f25d179e48a57eea4dbcc7f34b307b02f751a62d8
+DIST uv-0.4.17.gh.tar.gz 2698002 BLAKE2B aa208d30d3378e6ea21d1cb9f9c3c7d55169485964a3a7e8b97119e25624cdbb84776e5695ed0d265df3d12254acbe03b68739be1468fb07ac0a94ce9a408105 SHA512 0681f50b8edb52479d1cc08f44a7b37f176cf439bae440259e42339138d9b036ce9b025e9a517e090c7ef5674828275a99b0735ab7174aaf334f0bb95b8ed71c
+DIST uv-0.4.18-crates.tar.xz 45322392 BLAKE2B 3486f46b76a6a9420b52043a227ebb4dbdd185bbc5848a9606c1eb2e6575b12d060f084243fbb55fbfc1bb936f0bb051fae4a9628639778a33b2ff1eac50c58e SHA512 121c6241422668662233de6a2f084a323be4df4dfcfa9ae168f5f6aa41fc77cfc09b56dfa95eaf7ca95769a9d4ed334bed439d3bbd18c682e377c610162821e4
+DIST uv-0.4.18.gh.tar.gz 2692682 BLAKE2B 8239bcd761ee771c0bfeba3d3d6dd1438e8f86ffe2f211893a8457160440d0ba8a8ca11b6e4c7a9a93d3f3749ceae3ac2ea1c7ed1397a5ae41e130f6eb17025d SHA512 694793867a016f7c5fd6520b0d91f1ee1e0bff25efe86628c365837849b74b5a6c8527d977ddf4eed52619291b7ae6df751c77f368e184882938711be5ac9ed7
+EBUILD uv-0.4.16.ebuild 3419 BLAKE2B 310fa7d3e925a4088c23b380a15fc4982379597452eb1dd6df55a38a57a3f27a41ce9a51512c40b9571acb277833ac7b5ea458fdeb0e6183f32eb9a9fc05dffc SHA512 80d271d7488b5d5e2840cbbf81eb4982e505d55c9f3cac75363559ab09c4fc40a3afc9dda2ead07b39be74af59122bc8746fadf6cddfa338b695e09073598508
+EBUILD uv-0.4.17.ebuild 3467 BLAKE2B 56e86493e5e429157f348d3f00118567e9f34ef866db8659ce1e883abdf9b883baaa46c674060926eca5bfa875a360d15418b97e07c282cb638277ea40b0f6ce SHA512 b70241d8e92ccd76503388eceb6d22dbcb8e505d4691beda9db5819abff16a75253bae31676385d84cd59df1a5d033297f677c0e2bde3ef3ce7de62b4d96ad3e
+EBUILD uv-0.4.18.ebuild 3467 BLAKE2B 23f90936f36d3d5e72a14e3c0c5840f96d931a5b53bcef9c56bfc552c1660b34a87396d87402152986071439584dd2383e2bb72f1ab008150bfcee0835c7335c SHA512 4ef8feef24060df07d5638b1b94f20909a847df77a2a622cbaa9ab275483ba7454aee6d35c420ad472103e4290cfa5d5e348a0f30d2e0fba8b2c9490837084b8
MISC metadata.xml 336 BLAKE2B 4b5933e24e3e9450dde5da099185dcdf3afb5916b55cffa7c2f3f6fac77e439197cbe4ba529a87f83442d8f87d238e8abef06dc052ce9a62659060ffea9fdb47 SHA512 9910fd10ebbc395b9c330774b74798c9ffdba3bb368347658380a22e01d6dc9d1961ea50fbfb4a904c9db84b94c713c054e418a7294425b86ff41a607fd3e310
diff --git a/dev-python/uv/files/tokio-tar-0.3.1-ppc.patch b/dev-python/uv/files/tokio-tar-0.3.1-ppc.patch
deleted file mode 100644
index cb3c2f93cf57..000000000000
--- a/dev-python/uv/files/tokio-tar-0.3.1-ppc.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-diff --git a/src/archive.rs b/src/archive.rs
-index 63f4293..986a146 100644
---- a/src/archive.rs
-+++ b/src/archive.rs
-@@ -3,12 +3,13 @@ use std::{
- collections::VecDeque,
- path::Path,
- pin::Pin,
-- sync::{
-- atomic::{AtomicU64, Ordering},
-- Arc,
-- },
-+ sync::Arc,
- task::{Context, Poll},
- };
-+use portable_atomic::{
-+ AtomicU64,
-+ Ordering,
-+};
- use tokio::{
- io::{self, AsyncRead as Read, AsyncReadExt},
- sync::Mutex,
-diff -dup a/Cargo.toml b/Cargo.toml
---- a/Cargo.toml 2024-04-27 10:39:21.186708179 +0200
-+++ b/Cargo.toml 2024-04-27 10:39:37.940402613 +0200
-@@ -43,6 +43,9 @@ version = "0.2"
- [dependencies.futures-core]
- version = "0.3"
-
-+[dependencies.portable-atomic]
-+version = "1"
-+
- [dependencies.tokio]
- version = "1"
- features = [
diff --git a/dev-python/uv/files/uv-0.1.24-skip-tests.patch b/dev-python/uv/files/uv-0.1.24-skip-tests.patch
deleted file mode 100644
index e9efee5e8d89..000000000000
--- a/dev-python/uv/files/uv-0.1.24-skip-tests.patch
+++ /dev/null
@@ -1,192 +0,0 @@
-diff --git a/crates/uv/tests/pip_compile.rs b/crates/uv/tests/pip_compile.rs
-index 1fc08d1b..60675de4 100644
---- a/crates/uv/tests/pip_compile.rs
-+++ b/crates/uv/tests/pip_compile.rs
-@@ -5140,7 +5140,6 @@ fn expand_env_var_requirements_txt() -> Result<()> {
- }
-
- /// Raise an error when an editable's `Requires-Python` constraint is not met.
--#[test]
- fn requires_python_editable() -> Result<()> {
- let context = TestContext::new("3.12");
-
-@@ -5392,7 +5391,6 @@ fn no_stream() -> Result<()> {
- }
-
- /// Raise an error when a direct URL dependency's `Requires-Python` constraint is not met.
--#[test]
- fn requires_python_direct_url() -> Result<()> {
- let context = TestContext::new("3.12");
-
-diff --git a/crates/uv/tests/pip_install.rs b/crates/uv/tests/pip_install.rs
-index 6dfbd764..ddc5f37b 100644
---- a/crates/uv/tests/pip_install.rs
-+++ b/crates/uv/tests/pip_install.rs
-@@ -912,7 +912,6 @@ fn install_no_index_version() {
- /// package in.)
- ///
- /// Ref: <https://github.com/astral-sh/uv/issues/1600>
--#[test]
- fn install_extra_index_url_has_priority() {
- let context = TestContext::new("3.12");
-
-@@ -2344,7 +2343,6 @@ requires-python = ">=3.11,<3.13"
- }
-
- /// Raise an error when an editable's `Requires-Python` constraint is not met.
--#[test]
- fn requires_python_editable() -> Result<()> {
- let context = TestContext::new("3.12");
-
-@@ -2792,7 +2790,6 @@ fn dry_run_install_then_upgrade() -> std::result::Result<(), Box<dyn std::error:
- }
-
- /// Raise an error when a direct URL's `Requires-Python` constraint is not met.
--#[test]
- fn requires_python_direct_url() -> Result<()> {
- let context = TestContext::new("3.12");
-
-diff --git a/crates/uv/tests/pip_install_scenarios.rs b/crates/uv/tests/pip_install_scenarios.rs
-index 29ec3483..a538291d 100644
---- a/crates/uv/tests/pip_install_scenarios.rs
-+++ b/crates/uv/tests/pip_install_scenarios.rs
-@@ -2244,7 +2244,6 @@ fn post_greater_than_or_equal_post() {
- /// └── a
- /// └── a-1.2.3.post1
- /// ```
--#[test]
- fn post_less_than_or_equal() {
- let context = TestContext::new("3.8");
-
-@@ -2283,7 +2282,6 @@ fn post_less_than_or_equal() {
- /// └── a
- /// └── a-1.2.3.post1
- /// ```
--#[test]
- fn post_less_than() {
- let context = TestContext::new("3.8");
-
-@@ -2320,7 +2318,6 @@ fn post_less_than() {
- /// ├── a-1.2.3.post1
- /// └── a-1.2.3.post1+local
- /// ```
--#[test]
- fn post_local_greater_than() {
- let context = TestContext::new("3.8");
-
-@@ -2361,7 +2358,6 @@ fn post_local_greater_than() {
- /// ├── a-1.2.3.post1
- /// └── a-1.2.3.post1+local
- /// ```
--#[test]
- fn post_local_greater_than_post() {
- let context = TestContext::new("3.8");
-
-@@ -2529,7 +2525,6 @@ fn post_greater_than_post_not_available() {
- /// └── a
- /// └── a-1.0.0a1
- /// ```
--#[test]
- fn package_only_prereleases() {
- let context = TestContext::new("3.8");
-
-@@ -3652,7 +3647,6 @@ fn package_prereleases_specifier_boundary() {
- /// └── a-1.0.0
- /// └── requires python>=3.30 (incompatible with environment)
- /// ```
--#[test]
- fn python_version_does_not_exist() {
- let context = TestContext::new("3.8");
-
-@@ -3694,7 +3688,6 @@ fn python_version_does_not_exist() {
- /// └── a-1.0.0
- /// └── requires python<=3.8 (incompatible with environment)
- /// ```
--#[test]
- fn python_less_than_current() {
- let context = TestContext::new("3.9");
-
-@@ -3736,7 +3729,6 @@ fn python_less_than_current() {
- /// └── a-1.0.0
- /// └── requires python>=3.10 (incompatible with environment)
- /// ```
--#[test]
- fn python_greater_than_current() {
- let context = TestContext::new("3.9");
-
-@@ -3778,7 +3770,6 @@ fn python_greater_than_current() {
- /// └── a-1.0.0
- /// └── requires python>=3.8.14 (incompatible with environment)
- /// ```
--#[test]
- fn python_greater_than_current_patch() {
- let context = TestContext::new("3.8.12");
-
-@@ -3942,7 +3933,6 @@ fn python_greater_than_current_backtrack() {
- /// └── a-4.0.0
- /// └── requires python>=3.12 (incompatible with environment)
- /// ```
--#[test]
- fn python_greater_than_current_excluded() {
- let context = TestContext::new("3.9");
-
-diff --git a/crates/uv/tests/pip_list.rs b/crates/uv/tests/pip_list.rs
-index 15d784c1..f15f14b1 100644
---- a/crates/uv/tests/pip_list.rs
-+++ b/crates/uv/tests/pip_list.rs
-@@ -100,7 +100,6 @@ fn list_single_no_editable() -> Result<()> {
- Ok(())
- }
-
--#[test]
- fn list_editable() -> Result<()> {
- let context = TestContext::new("3.12");
-
-@@ -197,7 +196,6 @@ fn list_editable() -> Result<()> {
- Ok(())
- }
-
--#[test]
- fn list_editable_only() -> Result<()> {
- let context = TestContext::new("3.12");
-
-@@ -323,7 +321,6 @@ fn list_editable_only() -> Result<()> {
- Ok(())
- }
-
--#[test]
- fn list_exclude() -> Result<()> {
- let context = TestContext::new("3.12");
-
-diff --git a/crates/uv/tests/pip_sync.rs b/crates/uv/tests/pip_sync.rs
-index af3f4946..0df9ed80 100644
---- a/crates/uv/tests/pip_sync.rs
-+++ b/crates/uv/tests/pip_sync.rs
-@@ -1447,7 +1447,6 @@ fn install_git_source_dist_cached() -> Result<()> {
- }
-
- /// Check that we show the right messages on cached, registry source distribution installs.
--#[test]
- fn install_registry_source_dist_cached() -> Result<()> {
- let context = TestContext::new("3.12");
-
-@@ -2955,7 +2954,6 @@ fn compile_invalid_pyc_invalidation_mode() -> Result<()> {
- }
-
- /// Raise an error when an editable's `Requires-Python` constraint is not met.
--#[test]
- fn requires_python_editable() -> Result<()> {
- let context = TestContext::new("3.12");
-
-diff --git a/crates/uv/tests/venv.rs b/crates/uv/tests/venv.rs
-index 067c1414..1462f6a0 100644
---- a/crates/uv/tests/venv.rs
-+++ b/crates/uv/tests/venv.rs
-@@ -327,7 +327,6 @@ fn create_venv_unknown_python_patch() -> Result<()> {
- Ok(())
- }
-
--#[test]
- fn create_venv_python_patch() -> Result<()> {
- let temp_dir = assert_fs::TempDir::new()?;
- let cache_dir = assert_fs::TempDir::new()?;
diff --git a/dev-python/uv/files/uv-0.1.43-test.patch b/dev-python/uv/files/uv-0.1.43-test.patch
deleted file mode 100644
index 868f2d33dc0f..000000000000
--- a/dev-python/uv/files/uv-0.1.43-test.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/crates/uv/tests/pip_sync.rs b/crates/uv/tests/pip_sync.rs
-index 86193b40..4069fd8e 100644
---- a/crates/uv/tests/pip_sync.rs
-+++ b/crates/uv/tests/pip_sync.rs
-@@ -1455,7 +1455,7 @@ fn install_registry_source_dist_cached() -> Result<()> {
- .collect()
- } else {
- // For some Linux distributions, like Gentoo, the number of files removed is different.
-- [("Removed 614 files", "Removed 616 files")]
-+ [("Removed 615 files", "Removed 617 files")]
- .into_iter()
- .chain(context.filters())
- .collect()
diff --git a/dev-python/uv/uv-0.1.24.ebuild b/dev-python/uv/uv-0.1.24.ebuild
deleted file mode 100644
index 831f3149f08d..000000000000
--- a/dev-python/uv/uv-0.1.24.ebuild
+++ /dev/null
@@ -1,107 +0,0 @@
-# Copyright 2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
-"
-
-declare -A GIT_CRATES=(
- [async_zip]='https://github.com/charliermarsh/rs-async-zip;d76801da0943de985254fc6255c0e476b57c5836;rs-async-zip-%commit%'
- [pubgrub]='https://github.com/astral-sh/pubgrub;e981e4dfe315582e84e2fd724832fb0e0c50b7aa;pubgrub-%commit%'
-)
-
-inherit cargo check-reqs
-
-DESCRIPTION="A Python package installer and resolver, written in Rust"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv/
-"
-# pypi sdist misses scripts/, needed for tests
-SRC_URI="
- https://github.com/astral-sh/uv/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
- ${CARGO_CRATE_URIS}
-"
-if [[ ${PKGBUMPING} != ${PVR} ]]; then
- SRC_URI+="
- https://dev.gentoo.org/~mgorny/dist/${P}-crates.tar.xz
- "
-fi
-
-# most of the code
-LICENSE="|| ( Apache-2.0 MIT )"
-# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
-# Dependent crate licenses
-LICENSE+="
- 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD ISC MIT
- MPL-2.0 Unicode-DFS-2016
-"
-# ring crate
-LICENSE+=" openssl"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
-IUSE="test"
-RESTRICT="test"
-PROPERTIES="test_network"
-
-DEPEND="
- dev-libs/libgit2:=
-"
-RDEPEND="
- ${DEPEND}
-"
-BDEPEND="
- test? (
- dev-lang/python:3.8
- dev-lang/python:3.9
- dev-lang/python:3.10
- dev-lang/python:3.11
- dev-lang/python:3.12
- )
-"
-
-QA_FLAGS_IGNORED="usr/bin/.*"
-
-check_space() {
- local CHECKREQS_DISK_BUILD=3G
- use debug && CHECKREQS_DISK_BUILD=9G
- check-reqs_pkg_setup
-}
-
-pkg_pretend() {
- check_space
-}
-
-pkg_setup() {
- check_space
-}
-
-src_prepare() {
- local PATCHES=(
- # skip broken tests:
- # - requiring pinned CPython versions (3.8.12, 3.11.7, 3.12.1)
- # - requiring specific terminal width (COLUMNS don't seem to work)
- # - other (perhaps failing because of other skipped tests?)
- "${FILESDIR}/uv-0.1.24-skip-tests.patch"
- )
-
- rm crates/uv/tests/pip_compile_scenarios.rs || die
- default
-}
-
-src_compile() {
- cd crates/uv || die
- cargo_src_compile
-}
-
-src_test() {
- cd crates/uv || die
- cargo_src_test --no-fail-fast
-}
-
-src_install() {
- cd crates/uv || die
- cargo_src_install
-}
diff --git a/dev-python/uv/uv-0.1.42.ebuild b/dev-python/uv/uv-0.1.42.ebuild
deleted file mode 100644
index 9f1c8df44f4a..000000000000
--- a/dev-python/uv/uv-0.1.42.ebuild
+++ /dev/null
@@ -1,121 +0,0 @@
-# Copyright 2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
-"
-
-declare -A GIT_CRATES=(
- [async_zip]='https://github.com/charliermarsh/rs-async-zip;1dcb40cfe1bf5325a6fd4bfcf9894db40241f585;rs-async-zip-%commit%'
- [pubgrub]='https://github.com/astral-sh/pubgrub;0e684a874c9fb8f74738cd8875524c80e3d4820b;pubgrub-%commit%'
-)
-
-inherit cargo check-reqs
-
-CRATE_P=${P}
-DESCRIPTION="A Python package installer and resolver, written in Rust"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv/
-"
-# pypi sdist misses scripts/, needed for tests
-SRC_URI="
- https://github.com/astral-sh/uv/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
- ${CARGO_CRATE_URIS}
-"
-if [[ ${PKGBUMPING} != ${PVR} ]]; then
- SRC_URI+="
- https://dev.gentoo.org/~mgorny/dist/${CRATE_P}-crates.tar.xz
- "
-fi
-
-# most of the code
-LICENSE="|| ( Apache-2.0 MIT )"
-# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
-# Dependent crate licenses
-LICENSE+="
- 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD ISC MIT
- MPL-2.0 Unicode-DFS-2016
-"
-# ring crate
-LICENSE+=" openssl"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
-IUSE="test"
-RESTRICT="test"
-PROPERTIES="test_network"
-
-DEPEND="
- dev-libs/libgit2:=
-"
-RDEPEND="
- ${DEPEND}
-"
-BDEPEND="
- >=virtual/rust-1.77
- test? (
- dev-lang/python:3.8
- dev-lang/python:3.9
- dev-lang/python:3.10
- dev-lang/python:3.11
- dev-lang/python:3.12
- )
-"
-
-QA_FLAGS_IGNORED="usr/bin/.*"
-
-check_space() {
- local CHECKREQS_DISK_BUILD=3G
- use debug && CHECKREQS_DISK_BUILD=9G
- check-reqs_pkg_setup
-}
-
-pkg_pretend() {
- check_space
-}
-
-pkg_setup() {
- check_space
-}
-
-src_prepare() {
- default
-
- # https://github.com/vorot93/tokio-tar/pull/23
- # (fortunately uv already depends on portable-atomic, so we don't
- # have to fight Cargo.lock)
- cd "${WORKDIR}/cargo_home/gentoo/tokio-tar-0.3.1" || die
- eapply "${FILESDIR}/tokio-tar-0.3.1-ppc.patch"
-}
-
-src_configure() {
- local myfeatures=(
- # from upstream defaults
- flate2/zlib-ng
- python
- pypi
- git
- maturin
- # skip tests that require specific patch version of the interpreter:
- # python-patch
- )
-
- cargo_src_configure --no-default-features
-}
-
-src_compile() {
- cd crates/uv || die
- cargo_src_compile
-}
-
-src_test() {
- cd crates/uv || die
- cargo_src_test --no-fail-fast
-}
-
-src_install() {
- cd crates/uv || die
- cargo_src_install
-}
diff --git a/dev-python/uv/uv-0.1.43.ebuild b/dev-python/uv/uv-0.1.43.ebuild
deleted file mode 100644
index fee93206742c..000000000000
--- a/dev-python/uv/uv-0.1.43.ebuild
+++ /dev/null
@@ -1,123 +0,0 @@
-# Copyright 2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
-"
-
-declare -A GIT_CRATES=(
- [async_zip]='https://github.com/charliermarsh/rs-async-zip;1dcb40cfe1bf5325a6fd4bfcf9894db40241f585;rs-async-zip-%commit%'
- [pubgrub]='https://github.com/astral-sh/pubgrub;0e684a874c9fb8f74738cd8875524c80e3d4820b;pubgrub-%commit%'
-)
-
-inherit cargo check-reqs
-
-CRATE_P=${P}
-DESCRIPTION="A Python package installer and resolver, written in Rust"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv/
-"
-# pypi sdist misses scripts/, needed for tests
-SRC_URI="
- https://github.com/astral-sh/uv/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
- ${CARGO_CRATE_URIS}
-"
-if [[ ${PKGBUMPING} != ${PVR} ]]; then
- SRC_URI+="
- https://dev.gentoo.org/~mgorny/dist/${CRATE_P}-crates.tar.xz
- "
-fi
-
-# most of the code
-LICENSE="|| ( Apache-2.0 MIT )"
-# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
-# Dependent crate licenses
-LICENSE+="
- 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD ISC MIT
- MPL-2.0 Unicode-DFS-2016
-"
-# ring crate
-LICENSE+=" openssl"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
-IUSE="test"
-RESTRICT="test"
-PROPERTIES="test_network"
-
-DEPEND="
- dev-libs/libgit2:=
-"
-RDEPEND="
- ${DEPEND}
-"
-BDEPEND="
- >=virtual/rust-1.77
- test? (
- dev-lang/python:3.8
- dev-lang/python:3.9
- dev-lang/python:3.10
- dev-lang/python:3.11
- dev-lang/python:3.12
- )
-"
-
-QA_FLAGS_IGNORED="usr/bin/.*"
-
-check_space() {
- local CHECKREQS_DISK_BUILD=3G
- use debug && CHECKREQS_DISK_BUILD=9G
- check-reqs_pkg_setup
-}
-
-pkg_pretend() {
- check_space
-}
-
-pkg_setup() {
- check_space
-}
-
-src_prepare() {
- # https://github.com/astral-sh/uv/pull/3569
- eapply "${FILESDIR}/${P}-test.patch"
- default
-
- # https://github.com/vorot93/tokio-tar/pull/23
- # (fortunately uv already depends on portable-atomic, so we don't
- # have to fight Cargo.lock)
- cd "${WORKDIR}/cargo_home/gentoo/tokio-tar-0.3.1" || die
- eapply "${FILESDIR}/tokio-tar-0.3.1-ppc.patch"
-}
-
-src_configure() {
- local myfeatures=(
- # from upstream defaults
- flate2/zlib-ng
- python
- pypi
- git
- maturin
- # skip tests that require specific patch version of the interpreter:
- # python-patch
- )
-
- cargo_src_configure --no-default-features
-}
-
-src_compile() {
- cd crates/uv || die
- cargo_src_compile
-}
-
-src_test() {
- cd crates/uv || die
- cargo_src_test --no-fail-fast
-}
-
-src_install() {
- cd crates/uv || die
- cargo_src_install
-}
diff --git a/dev-python/uv/uv-0.1.44.ebuild b/dev-python/uv/uv-0.1.44.ebuild
deleted file mode 100644
index 0bc3cbb02e02..000000000000
--- a/dev-python/uv/uv-0.1.44.ebuild
+++ /dev/null
@@ -1,123 +0,0 @@
-# Copyright 2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
-"
-
-declare -A GIT_CRATES=(
- [async_zip]='https://github.com/charliermarsh/rs-async-zip;1dcb40cfe1bf5325a6fd4bfcf9894db40241f585;rs-async-zip-%commit%'
- [pubgrub]='https://github.com/astral-sh/pubgrub;0e684a874c9fb8f74738cd8875524c80e3d4820b;pubgrub-%commit%'
-)
-
-inherit cargo check-reqs
-
-CRATE_P=${PN}-0.1.43
-DESCRIPTION="A Python package installer and resolver, written in Rust"
-HOMEPAGE="
- https://github.com/astral-sh/uv/
- https://pypi.org/project/uv/
-"
-# pypi sdist misses scripts/, needed for tests
-SRC_URI="
- https://github.com/astral-sh/uv/archive/${PV}.tar.gz
- -> ${P}.gh.tar.gz
- ${CARGO_CRATE_URIS}
-"
-if [[ ${PKGBUMPING} != ${PVR} ]]; then
- SRC_URI+="
- https://dev.gentoo.org/~mgorny/dist/${CRATE_P}-crates.tar.xz
- "
-fi
-
-# most of the code
-LICENSE="|| ( Apache-2.0 MIT )"
-# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
-# Dependent crate licenses
-LICENSE+="
- 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD ISC MIT
- MPL-2.0 Unicode-DFS-2016
-"
-# ring crate
-LICENSE+=" openssl"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
-IUSE="test"
-RESTRICT="test"
-PROPERTIES="test_network"
-
-DEPEND="
- dev-libs/libgit2:=
-"
-RDEPEND="
- ${DEPEND}
-"
-BDEPEND="
- >=virtual/rust-1.77
- test? (
- dev-lang/python:3.8
- dev-lang/python:3.9
- dev-lang/python:3.10
- dev-lang/python:3.11
- dev-lang/python:3.12
- )
-"
-
-QA_FLAGS_IGNORED="usr/bin/.*"
-
-check_space() {
- local CHECKREQS_DISK_BUILD=3G
- use debug && CHECKREQS_DISK_BUILD=9G
- check-reqs_pkg_setup
-}
-
-pkg_pretend() {
- check_space
-}
-
-pkg_setup() {
- check_space
-}
-
-src_prepare() {
- # https://github.com/astral-sh/uv/pull/3569
- eapply "${FILESDIR}/${PN}-0.1.43-test.patch"
- default
-
- # https://github.com/vorot93/tokio-tar/pull/23
- # (fortunately uv already depends on portable-atomic, so we don't
- # have to fight Cargo.lock)
- cd "${WORKDIR}/cargo_home/gentoo/tokio-tar-0.3.1" || die
- eapply "${FILESDIR}/tokio-tar-0.3.1-ppc.patch"
-}
-
-src_configure() {
- local myfeatures=(
- # from upstream defaults
- flate2/zlib-ng
- python
- pypi
- git
- maturin
- # skip tests that require specific patch version of the interpreter:
- # python-patch
- )
-
- cargo_src_configure --no-default-features
-}
-
-src_compile() {
- cd crates/uv || die
- cargo_src_compile
-}
-
-src_test() {
- cd crates/uv || die
- cargo_src_test --no-fail-fast
-}
-
-src_install() {
- cd crates/uv || die
- cargo_src_install
-}
diff --git a/dev-python/uv/uv-0.4.16.ebuild b/dev-python/uv/uv-0.4.16.ebuild
new file mode 100644
index 000000000000..3ae2d3a44bdd
--- /dev/null
+++ b/dev-python/uv/uv-0.4.16.ebuild
@@ -0,0 +1,135 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+"
+
+declare -A GIT_CRATES=(
+ [async_zip]='https://github.com/charliermarsh/rs-async-zip;011b24604fa7bc223daaad7712c0694bac8f0a87;rs-async-zip-%commit%'
+ [pubgrub]='https://github.com/astral-sh/pubgrub;388685a8711092971930986644cfed152d1a1f6c;pubgrub-%commit%'
+ [reqwest-middleware]='https://github.com/astral-sh/reqwest-middleware;5e3eaf254b5bd481c75d2710eed055f95b756913;reqwest-middleware-%commit%/reqwest-middleware'
+ [reqwest-retry]='https://github.com/astral-sh/reqwest-middleware;5e3eaf254b5bd481c75d2710eed055f95b756913;reqwest-middleware-%commit%/reqwest-retry'
+ [tl]='https://github.com/charliermarsh/tl;6e25b2ee2513d75385101a8ff9f591ef51f314ec;tl-%commit%'
+)
+
+inherit cargo check-reqs
+
+CRATE_PV=0.4.16
+DESCRIPTION="A Python package installer and resolver, written in Rust"
+HOMEPAGE="
+ https://github.com/astral-sh/uv/
+ https://pypi.org/project/uv/
+"
+# pypi sdist misses scripts/, needed for tests
+SRC_URI="
+ https://github.com/astral-sh/uv/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+if [[ ${PKGBUMPING} != ${PVR} ]]; then
+ SRC_URI+="
+ https://dev.gentoo.org/~mgorny/dist/uv-${CRATE_PV}-crates.tar.xz
+ "
+fi
+
+# most of the code
+LICENSE="|| ( Apache-2.0 MIT )"
+# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
+# Dependent crate licenses
+LICENSE+="
+ 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD ISC MIT
+ MPL-2.0 Unicode-DFS-2016
+"
+# ring crate
+LICENSE+=" openssl"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="test"
+PROPERTIES="test_network"
+
+DEPEND="
+ app-arch/bzip2:=
+ app-arch/xz-utils:=
+ app-arch/zstd:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ >=virtual/rust-1.80
+ test? (
+ dev-lang/python:3.8
+ dev-lang/python:3.9
+ dev-lang/python:3.10
+ dev-lang/python:3.11
+ dev-lang/python:3.12
+ )
+"
+
+QA_FLAGS_IGNORED="usr/bin/.*"
+
+check_space() {
+ local CHECKREQS_DISK_BUILD=3G
+ use debug && CHECKREQS_DISK_BUILD=9G
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ check_space
+}
+
+pkg_setup() {
+ check_space
+}
+
+src_prepare() {
+ default
+
+ # remove patch.* that breaks GIT_CRATES
+ local reqmw=${GIT_CRATES[reqwest-middleware]}
+ reqmw=${reqmw#*;}
+ reqmw=${reqmw%;*}
+ sed -i -e "/^\[patch/,\$s@^\(reqwest-middleware = \).*@\1 { path = \"${WORKDIR}/reqwest-middleware-${reqmw}/reqwest-middleware\" }@" Cargo.toml || die
+
+ # enable system libraries where supported
+ export ZSTD_SYS_USE_PKG_CONFIG=1
+ sed -i -e 's:"static"::' crates/uv-extract/Cargo.toml || die
+ # TODO: unbundle libz-ng-sys, tikv-jemalloc-sys?
+
+ # remove unbundled sources, just in case
+ find "${ECARGO_VENDOR}"/{bzip2,lzma,zstd}-sys-*/ -name '*.c' -delete || die
+
+ # bzip2-sys requires a pkg-config file
+ # https://github.com/alexcrichton/bzip2-rs/issues/104
+ mkdir "${T}/pkg-config" || die
+ export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}}
+ cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die
+ Name: bzip2
+ Version: 9999
+ Description:
+ Libs: -lbz2
+ EOF
+}
+
+src_compile() {
+ cd crates/uv || die
+ cargo_src_compile
+}
+
+src_test() {
+ # work around https://github.com/astral-sh/uv/issues/4376
+ local -x PATH=${BROOT}/usr/lib/python-exec/python3.12:${PATH}
+ local -x COLUMNS=100
+ local -x PYTHONDONTWRITEBYTECODE=
+
+ cd crates/uv || die
+ cargo_src_test --no-fail-fast
+}
+
+src_install() {
+ cd crates/uv || die
+ cargo_src_install
+}
diff --git a/dev-python/uv/uv-0.4.17.ebuild b/dev-python/uv/uv-0.4.17.ebuild
new file mode 100644
index 000000000000..af978d888b3e
--- /dev/null
+++ b/dev-python/uv/uv-0.4.17.ebuild
@@ -0,0 +1,144 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+"
+
+declare -A GIT_CRATES=(
+ [async_zip]='https://github.com/charliermarsh/rs-async-zip;011b24604fa7bc223daaad7712c0694bac8f0a87;rs-async-zip-%commit%'
+ [pubgrub]='https://github.com/astral-sh/pubgrub;388685a8711092971930986644cfed152d1a1f6c;pubgrub-%commit%'
+ [reqwest-middleware]='https://github.com/astral-sh/reqwest-middleware;5e3eaf254b5bd481c75d2710eed055f95b756913;reqwest-middleware-%commit%/reqwest-middleware'
+ [reqwest-retry]='https://github.com/astral-sh/reqwest-middleware;5e3eaf254b5bd481c75d2710eed055f95b756913;reqwest-middleware-%commit%/reqwest-retry'
+ [tl]='https://github.com/charliermarsh/tl;6e25b2ee2513d75385101a8ff9f591ef51f314ec;tl-%commit%'
+)
+
+inherit cargo check-reqs
+
+CRATE_PV=0.4.16
+DESCRIPTION="A Python package installer and resolver, written in Rust"
+HOMEPAGE="
+ https://github.com/astral-sh/uv/
+ https://pypi.org/project/uv/
+"
+# pypi sdist misses scripts/, needed for tests
+SRC_URI="
+ https://github.com/astral-sh/uv/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+if [[ ${PKGBUMPING} != ${PVR} ]]; then
+ SRC_URI+="
+ https://dev.gentoo.org/~mgorny/dist/uv-${CRATE_PV}-crates.tar.xz
+ "
+fi
+
+# most of the code
+LICENSE="|| ( Apache-2.0 MIT )"
+# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
+# Dependent crate licenses
+LICENSE+="
+ 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD ISC MIT
+ MPL-2.0 Unicode-DFS-2016
+"
+# ring crate
+LICENSE+=" openssl"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="test"
+PROPERTIES="test_network"
+
+DEPEND="
+ app-arch/bzip2:=
+ app-arch/xz-utils:=
+ app-arch/zstd:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ >=virtual/rust-1.80
+ test? (
+ dev-lang/python:3.8
+ dev-lang/python:3.9
+ dev-lang/python:3.10
+ dev-lang/python:3.11
+ dev-lang/python:3.12
+ )
+"
+
+QA_FLAGS_IGNORED="usr/bin/.*"
+
+check_space() {
+ local CHECKREQS_DISK_BUILD=3G
+ use debug && CHECKREQS_DISK_BUILD=9G
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ check_space
+}
+
+pkg_setup() {
+ check_space
+}
+
+src_prepare() {
+ default
+
+ # remove patch.* that breaks GIT_CRATES
+ local reqmw=${GIT_CRATES[reqwest-middleware]}
+ reqmw=${reqmw#*;}
+ reqmw=${reqmw%;*}
+ sed -i -e "/^\[patch/,\$s@^\(reqwest-middleware = \).*@\1 { path = \"${WORKDIR}/reqwest-middleware-${reqmw}/reqwest-middleware\" }@" Cargo.toml || die
+
+ # enable system libraries where supported
+ export ZSTD_SYS_USE_PKG_CONFIG=1
+ # TODO: unbundle libz-ng-sys, tikv-jemalloc-sys?
+
+ # remove unbundled sources, just in case
+ find "${ECARGO_VENDOR}"/{bzip2,lzma,zstd}-sys-*/ -name '*.c' -delete || die
+
+ # bzip2-sys requires a pkg-config file
+ # https://github.com/alexcrichton/bzip2-rs/issues/104
+ mkdir "${T}/pkg-config" || die
+ export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}}
+ cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die
+ Name: bzip2
+ Version: 9999
+ Description:
+ Libs: -lbz2
+ EOF
+}
+
+src_configure() {
+ local myfeatures=(
+ git
+ pypi
+ python
+ )
+
+ cargo_src_configure --no-default-features
+}
+
+src_compile() {
+ cd crates/uv || die
+ cargo_src_compile
+}
+
+src_test() {
+ # work around https://github.com/astral-sh/uv/issues/4376
+ local -x PATH=${BROOT}/usr/lib/python-exec/python3.12:${PATH}
+ local -x COLUMNS=100
+ local -x PYTHONDONTWRITEBYTECODE=
+
+ cd crates/uv || die
+ cargo_src_test --no-fail-fast
+}
+
+src_install() {
+ cd crates/uv || die
+ cargo_src_install
+}
diff --git a/dev-python/uv/uv-0.4.18.ebuild b/dev-python/uv/uv-0.4.18.ebuild
new file mode 100644
index 000000000000..300228c69c2b
--- /dev/null
+++ b/dev-python/uv/uv-0.4.18.ebuild
@@ -0,0 +1,144 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+"
+
+declare -A GIT_CRATES=(
+ [async_zip]='https://github.com/charliermarsh/rs-async-zip;011b24604fa7bc223daaad7712c0694bac8f0a87;rs-async-zip-%commit%'
+ [pubgrub]='https://github.com/astral-sh/pubgrub;388685a8711092971930986644cfed152d1a1f6c;pubgrub-%commit%'
+ [reqwest-middleware]='https://github.com/astral-sh/reqwest-middleware;5e3eaf254b5bd481c75d2710eed055f95b756913;reqwest-middleware-%commit%/reqwest-middleware'
+ [reqwest-retry]='https://github.com/astral-sh/reqwest-middleware;5e3eaf254b5bd481c75d2710eed055f95b756913;reqwest-middleware-%commit%/reqwest-retry'
+ [tl]='https://github.com/charliermarsh/tl;6e25b2ee2513d75385101a8ff9f591ef51f314ec;tl-%commit%'
+)
+
+inherit cargo check-reqs
+
+CRATE_PV=0.4.18
+DESCRIPTION="A Python package installer and resolver, written in Rust"
+HOMEPAGE="
+ https://github.com/astral-sh/uv/
+ https://pypi.org/project/uv/
+"
+# pypi sdist misses scripts/, needed for tests
+SRC_URI="
+ https://github.com/astral-sh/uv/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+if [[ ${PKGBUMPING} != ${PVR} ]]; then
+ SRC_URI+="
+ https://dev.gentoo.org/~mgorny/dist/uv-${CRATE_PV}-crates.tar.xz
+ "
+fi
+
+# most of the code
+LICENSE="|| ( Apache-2.0 MIT )"
+# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
+# Dependent crate licenses
+LICENSE+="
+ 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD ISC MIT
+ MPL-2.0 Unicode-DFS-2016
+"
+# ring crate
+LICENSE+=" openssl"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="test"
+PROPERTIES="test_network"
+
+DEPEND="
+ app-arch/bzip2:=
+ app-arch/xz-utils:=
+ app-arch/zstd:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ >=virtual/rust-1.80
+ test? (
+ dev-lang/python:3.8
+ dev-lang/python:3.9
+ dev-lang/python:3.10
+ dev-lang/python:3.11
+ dev-lang/python:3.12
+ )
+"
+
+QA_FLAGS_IGNORED="usr/bin/.*"
+
+check_space() {
+ local CHECKREQS_DISK_BUILD=3G
+ use debug && CHECKREQS_DISK_BUILD=9G
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ check_space
+}
+
+pkg_setup() {
+ check_space
+}
+
+src_prepare() {
+ default
+
+ # remove patch.* that breaks GIT_CRATES
+ local reqmw=${GIT_CRATES[reqwest-middleware]}
+ reqmw=${reqmw#*;}
+ reqmw=${reqmw%;*}
+ sed -i -e "/^\[patch/,\$s@^\(reqwest-middleware = \).*@\1 { path = \"${WORKDIR}/reqwest-middleware-${reqmw}/reqwest-middleware\" }@" Cargo.toml || die
+
+ # enable system libraries where supported
+ export ZSTD_SYS_USE_PKG_CONFIG=1
+ # TODO: unbundle libz-ng-sys, tikv-jemalloc-sys?
+
+ # remove unbundled sources, just in case
+ find "${ECARGO_VENDOR}"/{bzip2,lzma,zstd}-sys-*/ -name '*.c' -delete || die
+
+ # bzip2-sys requires a pkg-config file
+ # https://github.com/alexcrichton/bzip2-rs/issues/104
+ mkdir "${T}/pkg-config" || die
+ export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}}
+ cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die
+ Name: bzip2
+ Version: 9999
+ Description:
+ Libs: -lbz2
+ EOF
+}
+
+src_configure() {
+ local myfeatures=(
+ git
+ pypi
+ python
+ )
+
+ cargo_src_configure --no-default-features
+}
+
+src_compile() {
+ cd crates/uv || die
+ cargo_src_compile
+}
+
+src_test() {
+ # work around https://github.com/astral-sh/uv/issues/4376
+ local -x PATH=${BROOT}/usr/lib/python-exec/python3.12:${PATH}
+ local -x COLUMNS=100
+ local -x PYTHONDONTWRITEBYTECODE=
+
+ cd crates/uv || die
+ cargo_src_test --no-fail-fast
+}
+
+src_install() {
+ cd crates/uv || die
+ cargo_src_install
+}