diff --git a/dev-python/dulwich/Manifest b/dev-python/dulwich/Manifest index ed18dab3186c4..09fa91ca86842 100644 --- a/dev-python/dulwich/Manifest +++ b/dev-python/dulwich/Manifest @@ -3,6 +3,8 @@ DIST dulwich-1.2.12.tar.gz 1323805 BLAKE2B bcb786645f006538af2f6f982eca3beab31b9 DIST dulwich-1.2.12.tar.gz.provenance 10114 BLAKE2B 0a76afc9ad6661d1431ba0fc4c99232b50e0bef2cd1153b904f95e05640f1059cd755fc76e1eee590b02515a12b2b722e0cd3ebed3c0cf1880be4f5acf89af9d SHA512 9067a8739a7bcd988798cce63fd5b5256faf8630565194fd5722aec61e0eac2b5efb883cbbd5cea0c4ed767b4715928d1b8ec00b190c96a386e0c38fd34383d2 DIST dulwich-1.2.13.tar.gz 1361288 BLAKE2B a87e2cdf3150cdf05a572d79bb65ce23760eeb9375806fb4eb8ced47a9df1b9416f9363a1995467049bce7438aa8445aadc64debfa05a4d64db1febaa305175e SHA512 e20d0fbd1078587b37bbd27d5735b821cfa99c4bc30acb6f21379882bcbcbb815f965e4963532433090a48eadc939d61d4f0bbdd5ce3c8115b7ce34a6a147585 DIST dulwich-1.2.13.tar.gz.provenance 9634 BLAKE2B 17b7da9e754d622cea090b145067cc020ac95b783a180b82dfcf6cdca9241646cf6b6574530ca528ceb30eef2f437c968ad8c934c820fccb3b06b1813ff2e0b5 SHA512 054c0060ccbcc4e022e31aa334a2d909308a0d479f8838ff76aa6000ce89e69065225a166e0d686393f67c8ca7fadb50218db7d46465ef67e7f13b15327b52e5 +DIST dulwich-1.2.14.tar.gz 1361695 BLAKE2B df32f5624b285000ad3fa0d8d9608ad196a1bd1e168effe5d0b0b106db394ca4e8e815be21b0c0a6c0726a6b7861ade5d6ede19b30c73c9188081ed6b8584291 SHA512 8bea61b50759879872b7960bbb2bcd9d94570079e97ce2f0ab9ba7f5bd1dfa63eceae2253d461f1e7c6093d70cdb5295b7f4d9204330c2724a577873304de972 +DIST dulwich-1.2.14.tar.gz.provenance 9959 BLAKE2B 01bb7882dfa2b845aa32f936e07ad3f8e0c0099d42f3e51a89a73e1c412410de5a09a65d1250fbe34f46d9b15325638f3af4e8d445bbf5f820ec5d933c493625 SHA512 66ae3484f7bb2de0f48710ddfe2aabddfe82271c9d8234ade2dc78a2487b7aec467575b9d21f1cf0bd8fa5705e14f4e7f99377cdedd29c28cb5c4227a0037923 DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76 DIST libc-0.2.186.crate 821883 BLAKE2B ebe7aac5f8937a8064c64a0d4dc72e5fc794080e09b96c6d245bdec0fd9a19d49ab38e25306e22e47564764cf5dcde45855237cffc70230a143eca2626bd5c3c SHA512 6a58e671ec6811dff9a0d7d4db8f37d38bcbca9efff20dad4706190e5cdb77b426567754bcf0ef0f2d0c31d6506401f724f3ca500b9bed57bb8605b1141ed690 DIST memchr-2.8.2.crate 99069 BLAKE2B 1a9567e9e05fd357df8ff8ef835316b3692e2df6e8a2a8783ddb2fa7596ac7bca88159b800a2b8ae070cb1ca09d8c48abea658b884cc091a6a12e40b5d35bd6e SHA512 011574c7b8519b19298e553d170c1defc5fd06698d4c00684715802de57b235562c8849ca7bc0ad2b77a05eb2f94af1f49289285803d4461460469248319a15e diff --git a/dev-python/dulwich/dulwich-1.2.14.ebuild b/dev-python/dulwich/dulwich-1.2.14.ebuild new file mode 100644 index 0000000000000..fee0ba45e87ce --- /dev/null +++ b/dev-python/dulwich/dulwich-1.2.14.ebuild @@ -0,0 +1,127 @@ +# 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_{12..14} ) + +RUST_MIN_VER="1.85.0" +CRATES=" + bstr@1.12.3 + heck@0.5.0 + libc@0.2.186 + memchr@2.8.3 + once_cell@1.21.4 + portable-atomic@1.13.1 + proc-macro2@1.0.106 + pyo3-build-config@0.29.0 + pyo3-ffi@0.29.0 + pyo3-macros-backend@0.29.0 + pyo3-macros@0.29.0 + pyo3@0.29.0 + quote@1.0.46 + serde_core@1.0.228 + serde_derive@1.0.228 + similar@3.1.1 + syn@2.0.118 + 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 +}