commit:     e76c0e9dc75d26a9aee0fb5f145c90909a1f8b18
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 18 06:35:18 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Dec 18 07:06:19 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e76c0e9d

dev-python/dulwich: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 dev-python/dulwich/Manifest                        |  10 -
 dev-python/dulwich/dulwich-0.24.5.ebuild           | 121 ------------
 dev-python/dulwich/dulwich-0.24.6.ebuild           | 122 ------------
 dev-python/dulwich/files/dulwich-0.24.1-test.patch | 220 ---------------------
 .../dulwich/files/dulwich-0.24.2-test-path.patch   |  49 -----
 5 files changed, 522 deletions(-)

diff --git a/dev-python/dulwich/Manifest b/dev-python/dulwich/Manifest
index 3caf42657afc..5633c83f64f4 100644
--- a/dev-python/dulwich/Manifest
+++ b/dev-python/dulwich/Manifest
@@ -2,10 +2,6 @@ DIST autocfg-1.5.0.crate 18729 BLAKE2B 
27580e39b366c6fca02c9db09997b6415c409f120
 DIST dulwich-0.23.2.tar.gz 704361 BLAKE2B 
2ba377c86a96069efa93f0e227297ba679bf04b346fe799f7b36a54bb38b51b9178c407d373a5f3e4adc4188d268ac3705a16ef98e84758cc3b8c2eaff1f5ecd
 SHA512 
b3da400f7b89b0afd1ad14623a2a8765f2c36131f2b401ed2267637d961a65e9be32c6bb56c555d7c649d8d828088a83b433a66669b48e2a295b782fffcf9c22
 DIST dulwich-0.24.10.tar.gz 999843 BLAKE2B 
2008f377a9c48fe5315507b6b4e3ef89fb482b63eb7a811b5b144ad6d93023b74944dca2d8487196d58ca8e22e2a94e6a6783fcb45acebf82d78cdd98e88b2d1
 SHA512 
b52cd3b4c76934466f18ff9b8e143fc61c4669b88d51fdb399bdf9679cd417b7453941dfe51710ae888cdbcd017e7fcce2817a466ad420a12beb4919701c7aca
 DIST dulwich-0.24.10.tar.gz.provenance 9795 BLAKE2B 
53ba898e10f7e4f4ed6d2b65509f207503e7f1938ad96452bbcd319564cf1b174532a4c101b927bbc1342a95ee2952595eeaccf5a4bef80befc46d40c36bf3fc
 SHA512 
cab587d1efc69f47c7ee63ffe07dd9f9989c36bca7c35d3029672f19362bc3175542ca68c0c9e5991440ee332805cc528030ead571ef32338bcb87ccb3094f1e
-DIST dulwich-0.24.5.tar.gz 913018 BLAKE2B 
68c111fb5e08c57ad6a5829f48ba9c83400d7d71d952e3a400a8350410ef838886dc0fca78100fb7f32db3a89e9dfbad96b3c22012d4386fd0e827f0c5e89a68
 SHA512 
450aba2f77108f1221159bb5e41289f3eebb5750295047b07df2adc9295bba07766b628ac0b28c24082eb4f5d4bdf123bf5ddb89f7ae1f1374df4bb52f945659
-DIST dulwich-0.24.5.tar.gz.provenance 9673 BLAKE2B 
5660ee4813676825980a103cbf4d6f342eab3d60a831a4d40005247f0f3d0dd4f28e571ecafe172963a5a531306ea4bf875b1ae77c620bd022bb8cc16b636408
 SHA512 
e32ca85ef1bcbd92ff9f0cb8e3e5d8b4796d20b50f2bac046099740a236f73782ec5af7d1fe9a7488054bc6c6636d4fb2ba846a101f6cd5d34b9f46301584e69
-DIST dulwich-0.24.6.tar.gz 946625 BLAKE2B 
76522ea32796b8db0fc1873f7ad555de79b11d63420459cefe43ccb67ab4fa81587a8b00b38c2f0df2b9c34cb5d439f1b53ea2430ca8e7174fea168e14a506ba
 SHA512 
90eaad4ae75b7f6bfd41bdbbd4c6907eea0b0426003d8d3a0d37959c7b7bf518ef49e74bd82fcee19109d7e134868ac77a175b769be323ccdc07a24382cdb3d7
-DIST dulwich-0.24.6.tar.gz.provenance 9391 BLAKE2B 
9168157d0059a622c603d46d0768379ceb709e580789ce5c83e73d8596a7174138f5efcb32da01288211225f3310088d88a8456b2a628cbc0f67df02141a8f50
 SHA512 
4d9a5cd1d2f07e21cb298d8d9adc461c4ffe7ba1057f70c5ff1894e99ee986b0923e95560dc532080741f4991d6efa30579edf5b5664b7045e48afd97e5427b9
 DIST dulwich-0.24.7.tar.gz 968411 BLAKE2B 
4565335f4d1f7bb9dcd05c079b261f3881c86542d57810722bc6d225e8145f5e61b77f3f3fd0722a68ae00994b8ad8cf7b13f03c26d8a0cdd4ac5cab599673bd
 SHA512 
1d060f75aaa08c491008b7e198691f296c643eea829c2a2f14800b5725472b659d271aed042954281e259d369f6c76cd067a6f461a9ce821669789f8e45167df
 DIST dulwich-0.24.7.tar.gz.provenance 9720 BLAKE2B 
4b5d683bfd30387ba2b0d0ad8e597ed817d4e062457f7df5dd20c60f9e03da6538b1603b74848163425c00ad448af0ff253e2fabdeeea23f08757125bf4f55d3
 SHA512 
035b860fbdd7f3c43be6c61dab3a196f2cabfff3b368c40cb70d671ca66b1d7547e4040a20d9fff4a132395d72849a1a9e6d34f97897de776b7311045dccd5af
 DIST dulwich-0.24.8.tar.gz 998526 BLAKE2B 
ee5ee83ed26aa6e561ba86de0dd97c8d6a2ddbd3eaf2f659c17e7faddef8377411c81338f8d7690446cafda20048f5847b96c5bc37881cfbd7ba8c5a0a759b5b
 SHA512 
818af9224d05c58ab5faf8d1dee5834c1fdbd9c7b3e9244728d78b24349cc218eabbb55381ef4e05e70737c03c87f1eb502abd20c46547e0356ec62475812e68
@@ -24,23 +20,18 @@ DIST proc-macro2-1.0.101.crate 53886 BLAKE2B 
db566c4fb6a197e0aa45cc074310853eaa2
 DIST proc-macro2-1.0.103.crate 60024 BLAKE2B 
e5ce5f77838fd063b5615b1555db02175621135132de6aa7479d67fd0a34c15e8235290112a728f3251cf913a835bf0aafaf6930880511427143b63152047259
 SHA512 
9a6964a2ad24dbb1108b7018882ddb48cb6e6f652d1c5eed1cac94602539fc71f011a0a276765778df161edbd6387bf03a8505d93565e0c106f09e98d7d6efce
 DIST proc-macro2-1.0.95.crate 51820 BLAKE2B 
93229d80556ec03bce4031607d13c7902cacc2d7e2586a692ffe8543d52e3f3ba253c9c311ddedf6d9348ce8758ae8ff64577675cda2dac557f936a328de47e3
 SHA512 
f78e4d47ecd29c1b2315554705e445507bbfb9449afd0bf1b74df28f266ac6382ca8c3ce135ddc55c989eaee64d1794a0933a941c8ff55f543fa21c400016547
 DIST pyo3-0.25.1.crate 1121993 BLAKE2B 
79a982131fc4c4f9292e97bc8d938d236ee9cefb99bb90646a84703660ad506aee8ae1f1e626d985aa62c695722510f2697544581fa5c3a01f193be2bc2779fe
 SHA512 
9c842c89d274dba0c8a3085a8524736245d65f07e5c05bc13fc89167cfdeb1a4ff2b4a9da9467eee918e45d01777473f39bda11efe0052859969d4fdeac1adc6
-DIST pyo3-0.26.0.crate 1151579 BLAKE2B 
bcc8236785502928bf4a0b7a320e0a8f3d6140c562de4351a52d015aaebb8dd6b4d68fe607c8ea13ec66941c8f01d2c18c4249adfacb521355d4bf158667f3a3
 SHA512 
e073a4d893f88aa0301ef0ead78048137515edd93c490e6dccbc301ff65a208534c65c1d216b04639d4b1ec1e4b69bc87bd34974e5d0659134c28dcce589c194
 DIST pyo3-0.27.0.crate 1172080 BLAKE2B 
ad1e9f00d17caeec2a1b2fb812d834006cdc105201a54d72e419dd05e76a023fcf0915b966998b22d15dc61a0d999ebf84f918b76cd9b57020724dd0de9e6755
 SHA512 
7dfd6428a3fb6b1a92f1fcfe9c8082006b7a8c56a1a51d20b7557d2508ed9e5f69b56e2ac7c519ff60208e15d78e77c812dc929ad0c73b1f5df17c7fbbd51df8
 DIST pyo3-0.27.1.crate 1172212 BLAKE2B 
29ea2d7dffa41ac5414aa5bc537b90e5979dd4a05a04c4cb1d2b70d6d5b7f9cb506fe864236f65495e7646406b695d5891af5cad2d67fd665a1ab4357fa31921
 SHA512 
f4c8d65b0a95633850597d6b29298c4a14aa3239fa245684cf6caf275f070698b35b03bfb3f256aaca0cec0d31211c51e2f2650a9d12eddce2a4d5d1f81e06a2
 DIST pyo3-build-config-0.25.1.crate 34126 BLAKE2B 
ca905f1f74e26f38ab63a4f5754055c9dff01f9396f81ece09b7ce067181b657e6746db3b373f7177805f6564d0df0db064b5fcab8160d5edc357e64dd32d0fc
 SHA512 
d6fe4a46111188203a839c8c73b9835f98cd6bc5982868cbcc9f502c5a09b35c3e61117b50ef8372470051b5bc4959731907748ffca89f42f300a3081b7b0467
-DIST pyo3-build-config-0.26.0.crate 34309 BLAKE2B 
5ea8b51da2f425674cd3bfcc1090ffdd08da01d2161dc66b08995c20cc859422f9f84077c545e5a0580182910aeb9dbba97838915148a82b86948d1cca3c8722
 SHA512 
a982d0a0baa4af58c2cef7c0c4b2671e3f559ca7f30586eda9fbd05e842efa2bfea0089ddbc729225b848871f6a25f85e86576e1dff519192ba289cd92c6aa8b
 DIST pyo3-build-config-0.27.0.crate 35562 BLAKE2B 
445de8da51ca7312e8a94e9018ccf959461dad66fd22cf869cc8c09974ecb72fe4bb6f79c2d040f18bf465878fe54c7ccf905b6b6e296f0a7bfc496aebe04ba9
 SHA512 
2946aa4f564da7349413f609d6781aa54551dee40f47f4577c54f8311e6b4c7699d997ea25cc219dd1383e727643949b231876ddcc056fb6bc965d634232ae4a
 DIST pyo3-build-config-0.27.1.crate 35565 BLAKE2B 
2dfb7e1c07ff0f7cdad8f77e4a33ce7696f914f29d931c967f0fcf24fe257b6e421cb2f8e2820a5e66440490cfd96eb733073651a153fd6932f2da5c1068187a
 SHA512 
9add95c372ac2db8e3e719ca2b393aa1e18b6786a7d34e113b07a7e0ad9698ad2d3753a1e7707e4df1edbf62c4fba2df6e0227e5658d5d368ac1dbf76a0e9455
 DIST pyo3-ffi-0.25.1.crate 78058 BLAKE2B 
351fe00c99008a34a003e50cd4f6d25e6dae5a446928358cd5146ac9924254614724a015ae77d8aade7bcb497cf5e5b5018021ff5d89a8efa6412f5ccb48744e
 SHA512 
35ab63888f49df13fab8b96b87f6c705186173923fd5898abe8730675156426f020ee517019926ba5e06cdb4fc5f91a75f648ce9eba892e9eaf3ee17864a8ec7
-DIST pyo3-ffi-0.26.0.crate 78247 BLAKE2B 
65f1c399bc763bf8afc36ccac27d28242ebcccebd08ab8d9b3165ca5c9abb10f76e76fe5a250aa1e0cdc1d1e8a613160660f07bc0dbc2812675acb9dfc8e89c2
 SHA512 
91c2ae828e997dee5e48d839794727e94576228e9329c358a3bc77a59f8f37fa0ae6c2579229782b3f46ab90725844ce9194b9de4d3849d824adf1d40743bf7e
 DIST pyo3-ffi-0.27.0.crate 78505 BLAKE2B 
5b9b7660299c63d28471df050d88a3ccc92c143b77e1fbddd14f2fd1641a2e00be600dd3f512bc2cb9847a6b98f001ddc82cd94ad072fcde187d03a7d490f83e
 SHA512 
87173bf740a9446e1365747c7544b9f0f814bc39430fbcf37f1ef7d9649512bb8fe9de2f87033a5dcf9e5b00e3c1667868c875389e41f9e1b856e78b5399ec36
 DIST pyo3-ffi-0.27.1.crate 78517 BLAKE2B 
f0a093a594e47856c6458da59cc41d5b772be369fb245a1c09f5264464e0ddc527b243cd451352c7b3b1682fcb26cb1d7b93abfefe19411eec8de73d98918b74
 SHA512 
5bfb8e7982b0d9ddf6fb2c2a4110b43c5b4bcc6f0a14acb50af329742b6eb9993df2ffe88bc34732fd0a58ca552df1b071fa8efd7b38d3441a7b9f45245168ea
 DIST pyo3-macros-0.25.1.crate 8886 BLAKE2B 
aad9c975c90ff93429be24287d76edd945578b546a927f54d82b6d4bf184f1f8d426ac112307205346e85999a1e89b097f68310de647f27474790bff01c3517a
 SHA512 
08387f3d1ddb0cc253eed376e6e8ebe5722b31664ec742f16c0454b52f1fbcadbe7720ae9e2d3870fe0ca2690916cf6e3e032f5a3e65d767322c068432f6d470
-DIST pyo3-macros-0.26.0.crate 8906 BLAKE2B 
60eef72d27b5bc922b75f71ae24bb6f380288cb3a619bf2940b0de47b27e86cce0ffdb1fbdc9c0540d3f15c9df4884497aa1e6efec0f1579ac722b414818a428
 SHA512 
07bcddba0926c3dff7629da3260f9a38593fbb337b6a68d55c223f5944d912885e5319cd635ae1785026fed4adea1fcc19695ae83aca5bea127c5a8868fd2c43
 DIST pyo3-macros-0.27.0.crate 8916 BLAKE2B 
01a755b8a1417833c77cd0d2a43c69120f3ff77ab6671031116eb07ce36379a5b17524265014765dbc8773e4a4b610273328fb340ff0c61901949ffd35519a22
 SHA512 
65a3f685052c900b0afbc39cf27855d337093a7c793dcea39069e1ef8500ddaf0a16f4acf222a862ae0e2a35744e098d7065f3b61931275af3e044934e299732
 DIST pyo3-macros-0.27.1.crate 8918 BLAKE2B 
d98f155ba4867fec265b7ab82a89d6e025259fc113d9bcddc179a0a0df961ad36cafee1e781ef8fee6d607b8f943b6a095c0a1a188603f9be624a663170791d5
 SHA512 
7d33a363e464e2fe5b4fe4b958877c695542c8e18a0b512868d579455c9c6072d8a4c00a36b069bf8b54f7dade9847b3968c3d3f40b0b2b54fcfeff44f0afef2
 DIST pyo3-macros-backend-0.25.1.crate 76006 BLAKE2B 
02225f8591585a6cbea7d6e53503bfbac395253cb0f45c588a2eb38908bf241034412832f2fcf4e9301318b5b9b82a888755d970f544f402a4f0cf9e4a6eefe9
 SHA512 
4c9006424630ab9bcd5dcdd45fe927a95a40a61757f0950396eb9f0c3f1794772092a19773c102220489cc621ad65d81dbbe459a1be472f6cd3211c50ef33cc2
-DIST pyo3-macros-backend-0.26.0.crate 81809 BLAKE2B 
73885035855daf00b001e97e0a5ebe09412d212c8f01aa4db6638ef09990bf1bccbacf2e5a7e6ec21929bb1c2beba06587ecdb6ee954eda9e9c51c6c276cea95
 SHA512 
4146011a8ef18ecaa44b425eebe6e5e1370945063b98aaa83452e57b66aefbf5d483367b1d4d44aa5091303c4ba7f568c6428ecec0cfa6c90ba41631d4e99367
 DIST pyo3-macros-backend-0.27.0.crate 82461 BLAKE2B 
5edd562cfc43197328621b7d6167fd0135f45047eb82f02c774fdadcb896fa8be6ed5725311994d4c6f6b8f75e3724a6b0aee6eb56b98fe9c4c0ff29c56fc879
 SHA512 
ad895e12e3891ec36bb755b3cf8530a2fe12597715a8e32aba8873823d455d852c31d9eb9d573c9099d8a8278b20f50b68fc5be6b4613f788184ccb45e40f9a4
 DIST pyo3-macros-backend-0.27.1.crate 82521 BLAKE2B 
fc5a1516eb0c55525cf648114274a741a01ee215cee8ef5ba44c0da225b98c1db15d3459f81028ae5b7376fcaf4744a59a34ec345403097d7b374aa8cd9d1e50
 SHA512 
036147deb1ad48815e22c84071069ed4eefe6b75c95cf727259231d63f0dbde00310983fbe90ab1b740ade071a22b9bb09073d6f120b519242c4bd8989bf3202
 DIST quote-1.0.40.crate 31063 BLAKE2B 
09036ff3e5ebbd775c466bb936de91d4c070481eb4b98c62a4cddcda57cd7b67d63f979b321f6ec64aabee3f5da6c28e7a3efb83f4647768ba578f1bd0bd0bdb
 SHA512 
45a76e22a2b0bec47e4ba73c3b73cc41d821dfcce9876134c5d8eed514da214aee4ce7612e372c8709f888c0d8b9b7e5442f27adb7a59f3571f0339ed7e2ac99
@@ -49,7 +40,6 @@ DIST quote-1.0.42.crate 31504 BLAKE2B 
a8106c0fe3953bcc2aa421516dfbaad6d6cb2ea839
 DIST rustversion-1.0.22.crate 21096 BLAKE2B 
cdf773cda21ebde50da897c0af0e4af14660ce953d3037054a99d8adc3db2dc6e30a57201a45676abfb183c62016a68069848e7537f711b1752339d194b0a378
 SHA512 
7929352df3e5279ac88cebb26ca89bb13c755f46986d2d1f514d18a3239a63638bf64f8ff153920569d173185d988d692ee676335afba0bf72d47f71babe0e15
 DIST similar-2.7.0.crate 53928 BLAKE2B 
41d6aec64403069dcf81a9a00b9db041967b89d09cf9f2371444928f32bbc2a8c6066adb93eaf25c72a257fab87e24c160265d687c4e33848728a4ddd374012a
 SHA512 
4a2559d2e47e7747eb2bde0f02a0e652ff0e116d1d3c3756dd86fd48f114e2b42157b860165e5cc29c2123cf19c64ebd17f023aaa05950de03ab5752562206b3
 DIST syn-2.0.104.crate 299699 BLAKE2B 
f64d2267abe9140456dd31d52ada0c75bfa3e4e0112ca77491245e9e84a0530f6c7cdc7428b73cf567a65ef6e7727f814fb9cb34db0ecc9cc3afd05b69fd36f7
 SHA512 
da532fa362266161b5604c821c913f8f990eb32c18e18c0a360b7147b9f71ae008e208f377cb203e85818bd5db926951122a971fa97563a10678f0ba4671e64f
-DIST syn-2.0.106.crate 301514 BLAKE2B 
6b28b30ee067c23dc4bd1b38365d14c1700245c974e785173965b0822301966d642b36bdda25210d61f17a99fc71eb81e29a56c89d1649773908bae32778fb1f
 SHA512 
e07e1058770fa3f1039eaf335340cefb597c0dd11bb90fec9fa777ca5815d0e0bb1711bb4db52cac77e205dd68fbe2bce0e1aa9895c2a52a1ea6d7758d13424c
 DIST syn-2.0.107.crate 301716 BLAKE2B 
76ae71e40724b7ab0912df8c5d9ff571a21b6da1ed8f849395ca8565535c245894bbb1927952fa2c81891ce08d5e19336138f80c6374ca4a46c8bc8ed1ff53c7
 SHA512 
6c65589ad86a01307defcbfcb62d95b342135ad22636b899195784e56d476fe5eb5c7f2b54f827166e573f0a4af0ca834f4a107700417fd68edce7e423467f4a
 DIST syn-2.0.110.crate 302184 BLAKE2B 
68135017080bbdcee324fc4c98a719d70f9abe3f0a0913b82ad5dd96c8969712bb50d1bb387ed5e60b9fb64e69d6a1e0070361b4c41bc7c0804a4b674099222f
 SHA512 
f9a393a3edcb49d039926bafa46f8befcb840da2af80329eb8b0efa1a2911e5db3e531d1866341f78cb4c28b7a122a07e269263262ff372c27334c7988f536e1
 DIST target-lexicon-0.13.2.crate 27923 BLAKE2B 
0761f0ffdc23b9c9df86b384d59611c7b8b5e29ff068f03367ad2fe84cfb6d11e1af149b9338236978e9566fedc51387db9f239d2a602db41045ac3db907faec
 SHA512 
d25e3cc3d679cb6b6f24c03e0c24db9d6ca31b8ed42ac9531bd7637557fbba225a6c8ac4f68a8eaf3569195814d599e668a968afbc73b940a77cbc27552cc90a

diff --git a/dev-python/dulwich/dulwich-0.24.5.ebuild 
b/dev-python/dulwich/dulwich-0.24.5.ebuild
deleted file mode 100644
index afdcc58c8f89..000000000000
--- a/dev-python/dulwich/dulwich-0.24.5.ebuild
+++ /dev/null
@@ -1,121 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CARGO_OPTIONAL=1
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYPI_VERIFY_REPO=https://github.com/jelmer/dulwich
-PYTHON_COMPAT=( python3_{11..14} )
-
-CRATES="
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-"
-
-inherit cargo distutils-r1 pypi
-
-DESCRIPTION="Pure-Python implementation of the Git file formats and protocols"
-HOMEPAGE="
-       https://github.com/jelmer/dulwich/
-       https://pypi.org/project/dulwich/
-"
-SRC_URI+="
-       native-extensions? (
-               ${CARGO_CRATE_URIS}
-       )
-"
-
-LICENSE="GPL-2+ Apache-2.0"
-LICENSE+=" native-extensions? ("
-# Dependent crate licenses
-LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0"
-LICENSE+=" )"
-
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm64 ~ppc ~ppc64 ~riscv ~x86"
-IUSE="doc examples +native-extensions test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-       >=dev-python/urllib3-2.2.2[${PYTHON_USEDEP}]
-       $(python_gen_cond_dep '
-               >=dev-python/typing-extensions-4.0[${PYTHON_USEDEP}]
-       ' 3.11)
-"
-BDEPEND="
-       native-extensions? (
-               ${RUST_DEPEND}
-               dev-python/setuptools-rust[${PYTHON_USEDEP}]
-       )
-       test? (
-               ${RDEPEND}
-               dev-python/fastimport[${PYTHON_USEDEP}]
-               dev-python/gpgmepy[${PYTHON_USEDEP}]
-               dev-python/merge3[${PYTHON_USEDEP}]
-               dev-python/paramiko[${PYTHON_USEDEP},server(+)]
-       )
-"
-
-distutils_enable_sphinx docs
-
-QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/dulwich/_.*.so"
-
-pkg_setup() {
-       # avoid rust_pkg_setup which will die when there's no Rust found
-       if use native-extensions ; then
-               rust_pkg_setup  # implicitly inherited through cargo
-       fi
-}
-
-src_unpack() {
-       pypi_src_unpack
-       cargo_src_unpack
-}
-
-python_compile() {
-       unset PURE
-       # TODO: enable Rust extensions
-       if ! use native-extensions; then
-               local -x PURE=1
-       fi
-
-       distutils-r1_python_compile
-}
-
-python_test() {
-       # remove interference from the tests that do stuff like user.name
-       unset GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_DATE
-       unset GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL GIT_COMMITTER_DATE
-       unset EMAIL
-       # Do not use make check which rebuilds the extension and uses -Werror,
-       # causing unexpected failures.
-       "${EPYTHON}" -m unittest -v tests.test_suite ||
-               die "tests failed with ${EPYTHON}"
-}
-
-python_install_all() {
-       if use examples; then
-               docompress -x "/usr/share/doc/${PF}/examples"
-               dodoc -r examples
-       fi
-       distutils-r1_python_install_all
-}

diff --git a/dev-python/dulwich/dulwich-0.24.6.ebuild 
b/dev-python/dulwich/dulwich-0.24.6.ebuild
deleted file mode 100644
index 3650f935361f..000000000000
--- a/dev-python/dulwich/dulwich-0.24.6.ebuild
+++ /dev/null
@@ -1,122 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CARGO_OPTIONAL=1
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYPI_VERIFY_REPO=https://github.com/jelmer/dulwich
-PYTHON_COMPAT=( python3_{11..14} )
-
-CRATES="
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-       [email protected]
-"
-
-inherit cargo distutils-r1 pypi
-
-DESCRIPTION="Pure-Python implementation of the Git file formats and protocols"
-HOMEPAGE="
-       https://github.com/jelmer/dulwich/
-       https://pypi.org/project/dulwich/
-"
-SRC_URI+="
-       native-extensions? (
-               ${CARGO_CRATE_URIS}
-       )
-"
-
-LICENSE="GPL-2+ Apache-2.0"
-LICENSE+=" native-extensions? ("
-# Dependent crate licenses
-LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0"
-LICENSE+=" )"
-
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
-IUSE="doc examples +native-extensions test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
-       >=dev-python/urllib3-2.2.2[${PYTHON_USEDEP}]
-       $(python_gen_cond_dep '
-               >=dev-python/typing-extensions-4.0[${PYTHON_USEDEP}]
-       ' 3.11)
-"
-BDEPEND="
-       native-extensions? (
-               ${RUST_DEPEND}
-               dev-python/setuptools-rust[${PYTHON_USEDEP}]
-       )
-       test? (
-               ${RDEPEND}
-               dev-python/fastimport[${PYTHON_USEDEP}]
-               dev-python/gpgmepy[${PYTHON_USEDEP}]
-               dev-python/merge3[${PYTHON_USEDEP}]
-               dev-python/paramiko[${PYTHON_USEDEP},server(+)]
-       )
-"
-
-distutils_enable_sphinx docs
-
-QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/dulwich/_.*.so"
-
-pkg_setup() {
-       # avoid rust_pkg_setup which will die when there's no Rust found
-       if use native-extensions ; then
-               rust_pkg_setup  # implicitly inherited through cargo
-       fi
-}
-
-src_unpack() {
-       pypi_src_unpack
-       cargo_src_unpack
-}
-
-python_compile() {
-       # make extension build errors fatal
-       local -x CIBUILDWHEEL=1
-       unset PURE
-       if ! use native-extensions; then
-               local -x PURE=1
-       fi
-
-       distutils-r1_python_compile
-}
-
-python_test() {
-       # remove interference from the tests that do stuff like user.name
-       unset GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_DATE
-       unset GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL GIT_COMMITTER_DATE
-       unset EMAIL
-       # Do not use make check which rebuilds the extension and uses -Werror,
-       # causing unexpected failures.
-       "${EPYTHON}" -m unittest -v tests.test_suite ||
-               die "tests failed with ${EPYTHON}"
-}
-
-python_install_all() {
-       if use examples; then
-               docompress -x "/usr/share/doc/${PF}/examples"
-               dodoc -r examples
-       fi
-       distutils-r1_python_install_all
-}

diff --git a/dev-python/dulwich/files/dulwich-0.24.1-test.patch 
b/dev-python/dulwich/files/dulwich-0.24.1-test.patch
deleted file mode 100644
index 46ac3317553a..000000000000
--- a/dev-python/dulwich/files/dulwich-0.24.1-test.patch
+++ /dev/null
@@ -1,220 +0,0 @@
-From 624c8f77ac17cf4e9d2017cf31a353eb9f3e41ec Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jelmer=20Vernoo=C4=B3?= <[email protected]>
-Date: Sat, 2 Aug 2025 15:10:36 +0100
-Subject: [PATCH] Fix worktree CLI tests to properly change to repository
- directory
-
-The worktree CLI commands expect to be run from within a repository
-directory. Updated the test methods to change to the repo directory
-before running commands and restore the original directory afterward.
-
-diff --git a/tests/test_cli.py b/tests/test_cli.py
-index 5394104e98..5322433d5c 100644
---- a/tests/test_cli.py
-+++ b/tests/test_cli.py
-@@ -2338,12 +2338,18 @@ def setUp(self):
- 
-     def test_worktree_list(self):
-         """Test worktree list command."""
--        io.StringIO()
--        cmd = cli.cmd_worktree()
--        result = cmd.run(["list"])
-+        # Change to repo directory
-+        old_cwd = os.getcwd()
-+        os.chdir(self.repo_path)
-+        try:
-+            io.StringIO()
-+            cmd = cli.cmd_worktree()
-+            result = cmd.run(["list"])
- 
--        # Should list the main worktree
--        self.assertEqual(result, 0)
-+            # Should list the main worktree
-+            self.assertEqual(result, 0)
-+        finally:
-+            os.chdir(old_cwd)
- 
-     def test_worktree_add(self):
-         """Test worktree add command."""
-@@ -2367,81 +2373,115 @@ def test_worktree_add_detached(self):
-         """Test worktree add with detached HEAD."""
-         wt_path = os.path.join(self.test_dir, "detached-wt")
- 
--        cmd = cli.cmd_worktree()
--        with patch("sys.stdout", new_callable=io.StringIO):
--            result = cmd.run(["add", "--detach", wt_path])
-+        # Change to repo directory
-+        old_cwd = os.getcwd()
-+        os.chdir(self.repo_path)
-+        try:
-+            cmd = cli.cmd_worktree()
-+            with patch("sys.stdout", new_callable=io.StringIO):
-+                result = cmd.run(["add", "--detach", wt_path])
- 
--        self.assertEqual(result, 0)
--        self.assertTrue(os.path.exists(wt_path))
-+            self.assertEqual(result, 0)
-+            self.assertTrue(os.path.exists(wt_path))
-+        finally:
-+            os.chdir(old_cwd)
- 
-     def test_worktree_remove(self):
-         """Test worktree remove command."""
-         # First add a worktree
-         wt_path = os.path.join(self.test_dir, "to-remove")
--        cmd = cli.cmd_worktree()
--        cmd.run(["add", wt_path])
- 
--        # Then remove it
--        with patch("sys.stdout", new_callable=io.StringIO) as mock_stdout:
--            result = cmd.run(["remove", wt_path])
-+        # Change to repo directory
-+        old_cwd = os.getcwd()
-+        os.chdir(self.repo_path)
-+        try:
-+            cmd = cli.cmd_worktree()
-+            cmd.run(["add", wt_path])
- 
--        self.assertEqual(result, 0)
--        self.assertFalse(os.path.exists(wt_path))
--        self.assertIn("Worktree removed:", mock_stdout.getvalue())
-+            # Then remove it
-+            with patch("sys.stdout", new_callable=io.StringIO) as mock_stdout:
-+                result = cmd.run(["remove", wt_path])
-+
-+            self.assertEqual(result, 0)
-+            self.assertFalse(os.path.exists(wt_path))
-+            self.assertIn("Worktree removed:", mock_stdout.getvalue())
-+        finally:
-+            os.chdir(old_cwd)
- 
-     def test_worktree_prune(self):
-         """Test worktree prune command."""
-         # Add a worktree and manually remove it
-         wt_path = os.path.join(self.test_dir, "to-prune")
--        cmd = cli.cmd_worktree()
--        cmd.run(["add", wt_path])
--        shutil.rmtree(wt_path)
- 
--        # Prune
--        with patch("sys.stdout", new_callable=io.StringIO) as mock_stdout:
--            result = cmd.run(["prune", "-v"])
-+        # Change to repo directory
-+        old_cwd = os.getcwd()
-+        os.chdir(self.repo_path)
-+        try:
-+            cmd = cli.cmd_worktree()
-+            cmd.run(["add", wt_path])
-+            shutil.rmtree(wt_path)
-+
-+            # Prune
-+            with patch("sys.stdout", new_callable=io.StringIO) as mock_stdout:
-+                result = cmd.run(["prune", "-v"])
- 
--        self.assertEqual(result, 0)
--        output = mock_stdout.getvalue()
--        self.assertIn("to-prune", output)
-+            self.assertEqual(result, 0)
-+            output = mock_stdout.getvalue()
-+            self.assertIn("to-prune", output)
-+        finally:
-+            os.chdir(old_cwd)
- 
-     def test_worktree_lock_unlock(self):
-         """Test worktree lock and unlock commands."""
-         # Add a worktree
-         wt_path = os.path.join(self.test_dir, "lockable")
--        cmd = cli.cmd_worktree()
--        cmd.run(["add", wt_path])
- 
--        # Lock it
--        with patch("sys.stdout", new_callable=io.StringIO) as mock_stdout:
--            result = cmd.run(["lock", wt_path, "--reason", "Testing"])
-+        # Change to repo directory
-+        old_cwd = os.getcwd()
-+        os.chdir(self.repo_path)
-+        try:
-+            cmd = cli.cmd_worktree()
-+            cmd.run(["add", wt_path])
- 
--        self.assertEqual(result, 0)
--        self.assertIn("Worktree locked:", mock_stdout.getvalue())
-+            # Lock it
-+            with patch("sys.stdout", new_callable=io.StringIO) as mock_stdout:
-+                result = cmd.run(["lock", wt_path, "--reason", "Testing"])
- 
--        # Unlock it
--        with patch("sys.stdout", new_callable=io.StringIO) as mock_stdout:
--            result = cmd.run(["unlock", wt_path])
-+            self.assertEqual(result, 0)
-+            self.assertIn("Worktree locked:", mock_stdout.getvalue())
- 
--        self.assertEqual(result, 0)
--        self.assertIn("Worktree unlocked:", mock_stdout.getvalue())
-+            # Unlock it
-+            with patch("sys.stdout", new_callable=io.StringIO) as mock_stdout:
-+                result = cmd.run(["unlock", wt_path])
-+
-+            self.assertEqual(result, 0)
-+            self.assertIn("Worktree unlocked:", mock_stdout.getvalue())
-+        finally:
-+            os.chdir(old_cwd)
- 
-     def test_worktree_move(self):
-         """Test worktree move command."""
-         # Add a worktree
-         old_path = os.path.join(self.test_dir, "old-location")
-         new_path = os.path.join(self.test_dir, "new-location")
--        cmd = cli.cmd_worktree()
--        cmd.run(["add", old_path])
- 
--        # Move it
--        with patch("sys.stdout", new_callable=io.StringIO) as mock_stdout:
--            result = cmd.run(["move", old_path, new_path])
-+        # Change to repo directory
-+        old_cwd = os.getcwd()
-+        os.chdir(self.repo_path)
-+        try:
-+            cmd = cli.cmd_worktree()
-+            cmd.run(["add", old_path])
-+
-+            # Move it
-+            with patch("sys.stdout", new_callable=io.StringIO) as mock_stdout:
-+                result = cmd.run(["move", old_path, new_path])
- 
--        self.assertEqual(result, 0)
--        self.assertFalse(os.path.exists(old_path))
--        self.assertTrue(os.path.exists(new_path))
--        self.assertIn("Worktree moved:", mock_stdout.getvalue())
-+            self.assertEqual(result, 0)
-+            self.assertFalse(os.path.exists(old_path))
-+            self.assertTrue(os.path.exists(new_path))
-+            self.assertIn("Worktree moved:", mock_stdout.getvalue())
-+        finally:
-+            os.chdir(old_cwd)
- 
-     def test_worktree_invalid_command(self):
-         """Test invalid worktree subcommand."""
-From 4f52beca896bb66f9a0cd0e4117474af284158e8 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jelmer=20Vernoo=C4=B3?= <[email protected]>
-Date: Mon, 15 Sep 2025 19:18:20 +0100
-Subject: [PATCH] Support TMPDIR as example system directory in symlink test
-
-Fixes #1885
----
- tests/test_porcelain.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tests/test_porcelain.py b/tests/test_porcelain.py
-index f99b588f58..b3d10423d8 100644
---- a/tests/test_porcelain.py
-+++ b/tests/test_porcelain.py
-@@ -1684,7 +1684,7 @@ def test_add_symlink_absolute_to_system(self) -> None:
-             symlink_target = os.environ["TEMP"]
-         else:
-             # On Unix-like systems, use /tmp
--            symlink_target = "/tmp"
-+            symlink_target = os.environ.get("TMPDIR", "/tmp")
-         os.symlink(symlink_target, symlink_path)
- 
-         # Adding a symlink to a directory outside the repo should raise 
ValueError

diff --git a/dev-python/dulwich/files/dulwich-0.24.2-test-path.patch 
b/dev-python/dulwich/files/dulwich-0.24.2-test-path.patch
deleted file mode 100644
index 63af9b5b2e09..000000000000
--- a/dev-python/dulwich/files/dulwich-0.24.2-test-path.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 1643810cec254c9c7d78614c4ffedb8ac7cc77c6 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <[email protected]>
-Date: Sat, 4 Oct 2025 15:52:07 +0200
-Subject: [PATCH] Fix BlackboxTestCase to respect Python venv path
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Fix BlackboxTestCase to include `sysconfig.get_path("scripts")`
-in binary paths, which corresponds to the binary directory used
-in the current virtual environment.  This ensures that the tests use
-the correct dulwich executables rather than the (possibly older) version
-installed to `/usr/bin`.
-
-The test previously attempted to reconstruct the `bin` path relatively
-to the test file.  However, that logic stopped working correctly when
-tests were moved out of the package in
-245331a60d743b7b73ba3a8b15e6f4648273369f.  I suspect that the problem
-may have went unnoticed for a time, since the tests are skipped when
-the binaries can't be found.  While it is technically possible to fix
-the reconstruction logic to use the `dulwich` module path, using
-`sysconfig` ensures we are using the correct path rather than guessing.
-
-Signed-off-by: Michał Górny <[email protected]>
----
- tests/__init__.py | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/tests/__init__.py b/tests/__init__.py
-index fb70aa5b32..d7cbf8a6ea 100644
---- a/tests/__init__.py
-+++ b/tests/__init__.py
-@@ -34,6 +34,7 @@
- import shutil
- import subprocess
- import sys
-+import sysconfig
- import tempfile
- 
- # If Python itself provides an exception, use that
-@@ -70,7 +71,7 @@ class BlackboxTestCase(TestCase):
- 
-     # TODO(jelmer): Include more possible binary paths.
-     bin_directories: ClassVar[list[str]] = [
--        os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", 
"bin")),
-+        sysconfig.get_path("scripts"),
-         "/usr/bin",
-         "/usr/local/bin",
-     ]

Reply via email to