diff --git a/dev-python/dulwich/Manifest b/dev-python/dulwich/Manifest index 43d3b95e40ea0..e86ea2ebf50dc 100644 --- a/dev-python/dulwich/Manifest +++ b/dev-python/dulwich/Manifest @@ -6,6 +6,8 @@ DIST dulwich-1.2.1.tar.gz 1223320 BLAKE2B f88dd9a5799abd09e8e930efcf3f232cc2fb99 DIST dulwich-1.2.1.tar.gz.provenance 9741 BLAKE2B d5a97c9eeb6279a98647b43bd29103bcd703d08317b520e7bc49995f89c8d05bf64add3766a16ddd8f07bbfc152140a0460bad85471902ce8be17beff7cbd04b SHA512 3aab6fd326d6596879ee07e4095b8bbf932e221736c57824bf617b5390ffaededdeac8bc8568c3a0440c6c5707fc7fd861b62a69c551ba2d7a57efb3cf01c4cd DIST dulwich-1.2.3.tar.gz 1242315 BLAKE2B 620e0b2a28bdfddcb51ad171dcd6fbd91fcdebab72c5b6b9d9cfd5bb20a57dbdc960dbe991a7899f43bf89531c2a8ae21727250406ac5874910f0b19481f12c7 SHA512 9ce66da1a58852a23f1eafa551fb7e2206df55336e0ae921ed96a394e0212b8317875e0c6b84b2c27c75dba983d2913446f7fa421b5dcd9ade75ea8128e8ee2f DIST dulwich-1.2.3.tar.gz.provenance 9882 BLAKE2B f282734f20e6cf53909c16c7b834e899bf2008ec7f3f09adc5dc85cfa13ddf1b8dcfe13b3d30d92d178f1373145652e8c31866fc6580936c9c1b477759833945 SHA512 3b40b9f2a54d13a65b0c7fd209dc0ca55e5c357be33888ad07375e1c65e6122199ce92096ad382bb38641a7198a4040c99be5a17a1113e6f8bc4dc06336b1f95 +DIST dulwich-1.2.4.tar.gz 1243653 BLAKE2B 7d898010b1c4effd5b0e03bce42b1c6fb432fc4c330daf30acd649840d2afada234f7ee106c7d97a4f44042ab013dc6eea7760540f0bfd096e04143ebf8e00d2 SHA512 2e0679cd0267ae2857a254a1b750ca861eaf2b313611d739b0e894e293d6c09a41ca81fbb444ce4a07db83249840b67deb26fb52a51821b7f91f57e189db1a4c +DIST dulwich-1.2.4.tar.gz.provenance 9886 BLAKE2B 03ff5ca49763c79747c14b8c810627cbd8cc7c4d9da4935b70d9640aaff89db1199c59f47fc5dc9bcaf449a5cf771e1182070e5619835abff089b85eacbe392f SHA512 9ddbf0c3ab0eed77873d74fc5eb1455a51f8f227c740d24d37a3e64016b19828ab23a44fcb357c75bc14a2aa88e235b0df11b20888bd44944bda3133923a506e DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76 DIST indoc-2.0.7.crate 17184 BLAKE2B aae454874b44dbc908a75b64626e608e04017c1407daff9a2e2dd12a337ac04db594540d2f31bfc590d6f37f0d711ff2d3054352ff1b33e736c36620404be0a0 SHA512 6e80cf927001821606488a822fd0f67ae1a569b022c98e727e6b1571c88d87775166f088322bd5f17abb8fc1fde62c9d14fb2e99f1e50918487252d823e48f73 DIST libc-0.2.182.crate 814873 BLAKE2B a5fae27ee77495d8638297523d7428eda4a608109e7e1b67db1ba621f7700761f8131710a49bbd24bedf62f8df7ecdeaedb5def47201146a05b4288ee2f92515 SHA512 7923eeb0ee1db8b5b00a6a4352cf5fd3f877a2f727af5857ca49ceeab2dc7519137eb3a982f5a763ae61fbe422ba8f0fe83d92dcabcfa18c23fae619960f96db diff --git a/dev-python/dulwich/dulwich-1.2.4.ebuild b/dev-python/dulwich/dulwich-1.2.4.ebuild new file mode 100644 index 0000000000000..f5da6eafd4a15 --- /dev/null +++ b/dev-python/dulwich/dulwich-1.2.4.ebuild @@ -0,0 +1,128 @@ +# Copyright 1999-2026 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} ) + +RUST_MIN_VER="1.83.0" +CRATES=" + bstr@1.12.1 + heck@0.5.0 + libc@0.2.185 + memchr@2.8.0 + once_cell@1.21.4 + portable-atomic@1.13.1 + proc-macro2@1.0.106 + pyo3-build-config@0.28.3 + pyo3-ffi@0.28.3 + pyo3-macros-backend@0.28.3 + pyo3-macros@0.28.3 + pyo3@0.28.3 + quote@1.0.45 + serde@1.0.228 + serde_core@1.0.228 + serde_derive@1.0.228 + similar@3.1.0 + syn@2.0.117 + target-lexicon@0.13.5 + unicode-ident@1.0.24 +" + +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 Apache-2.0-with-LLVM-exceptions Unicode-3.0 + || ( MIT Unlicense ) +" +LICENSE+=" )" + +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +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/hypothesis-6[${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 +}