commit:     88dd089fe38d1422fdc54b84bf6d291ccac59974
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 14 13:07:18 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Oct 14 13:09:51 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=88dd089f

dev-python/dulwich: Add missing merge3 test dep

Closes: https://bugs.gentoo.org/964313
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 dev-python/dulwich/dulwich-0.24.3-r1.ebuild | 119 ++++++++++++++++++++++++++++
 1 file changed, 119 insertions(+)

diff --git a/dev-python/dulwich/dulwich-0.24.3-r1.ebuild 
b/dev-python/dulwich/dulwich-0.24.3-r1.ebuild
new file mode 100644
index 000000000000..14f33141013b
--- /dev/null
+++ b/dev-python/dulwich/dulwich-0.24.3-r1.ebuild
@@ -0,0 +1,119 @@
+# 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
+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 ~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() {
+       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
+}

Reply via email to