commit:     cd37f8eb287497af5a30b3c68beafc82412cd88d
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 14 03:07:50 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Jan 14 03:10:04 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cd37f8eb

dev-python/uvloop: fix cython-3 compat

Bug: https://github.com/MagicStack/uvloop/issues/586
Bug: https://github.com/MagicStack/uvloop/pull/587
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-python/uvloop/Manifest                |  1 +
 dev-python/uvloop/uvloop-0.19.0-r1.ebuild | 85 +++++++++++++++++++++++++++++++
 2 files changed, 86 insertions(+)

diff --git a/dev-python/uvloop/Manifest b/dev-python/uvloop/Manifest
index b7035611ed1e..6e0b45805324 100644
--- a/dev-python/uvloop/Manifest
+++ b/dev-python/uvloop/Manifest
@@ -1 +1,2 @@
+DIST uvloop-0.19.0-cython3.patch.xz 6352 BLAKE2B 
4a7056299d3d430ce5b6986d43ba4f20726ae4f9635042a43e2995ea373ed53ddce6af2eaa32202f81f80a27bd1d814e635a6be091b5f751bcf6825fd2c8e88a
 SHA512 
aeda541f1327860d23b31ffda9923270a56a8311ec86b06f3bd653478bff591372106e8848af5229e3ad298e950b4c3a728ab4dd9056219b8afe55f5dd58ee3d
 DIST uvloop-0.19.0.tar.gz 2318492 BLAKE2B 
1c46a8bf3e204c261e3a5e60c3583b75b8b9b20086443725c42842f96ea3f6804242470aa9569f8cc74a6e3bd38b5aaa70f9a9d92b5df3e73911acc169185570
 SHA512 
b6ca7ba7baf61dc930bb92e35013e5abaf7a227a5e99c88ec4b58fa87a40692151d9891b81d9e514a8481df62bb9721baa789ec234dcbbb34f69e0bee489c57c

diff --git a/dev-python/uvloop/uvloop-0.19.0-r1.ebuild 
b/dev-python/uvloop/uvloop-0.19.0-r1.ebuild
new file mode 100644
index 000000000000..ad287eaf03d7
--- /dev/null
+++ b/dev-python/uvloop/uvloop-0.19.0-r1.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Ultra-fast implementation of asyncio event loop on top of libuv"
+HOMEPAGE="
+       https://github.com/magicstack/uvloop/
+       https://pypi.org/project/uvloop/
+"
+SRC_URI+=" 
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-0.19.0-cython3.patch.xz";
+
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 -riscv ~sparc ~x86"
+LICENSE="MIT"
+SLOT="0"
+IUSE="examples"
+
+DEPEND="
+       >=dev-libs/libuv-1.11.0:=
+"
+RDEPEND="
+       ${DEPEND}
+"
+BDEPEND="
+       >=dev-python/cython-0.29.36[${PYTHON_USEDEP}]
+       test? (
+               dev-python/aiohttp[${PYTHON_USEDEP}]
+               >=dev-python/pyopenssl-22.0.0[${PYTHON_USEDEP}]
+               dev-python/psutil[${PYTHON_USEDEP}]
+       )
+"
+
+PATCHES=(
+       "${WORKDIR}"/${PN}-0.19.0-cython3.patch
+)
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+       rm -r vendor || die
+       cat <<-EOF >> setup.cfg || die
+               [build_ext]
+               use_system_libuv=True
+               cython_always=True
+       EOF
+
+       # force cythonization
+       rm uvloop/loop.c || die
+
+       distutils-r1_python_prepare_all
+}
+
+python_test() {
+       local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+       local EPYTEST_IGNORE=(
+               # linting
+               tests/test_sourcecode.py
+       )
+       local EPYTEST_DESELECT=(
+               # TODO: expects some... cython_helper?
+               
tests/test_libuv_api.py::Test_UV_libuv::test_libuv_get_loop_t_ptr
+               # unhappy about sandbox injecting its envvars
+               tests/test_process.py::Test_UV_Process::test_process_env_2
+               tests/test_process.py::Test_AIO_Process::test_process_env_2
+               # hangs
+               
tests/test_tcp.py::Test_AIO_TCPSSL::test_remote_shutdown_receives_trailing_data
+               # crashes on assertion
+               # https://github.com/MagicStack/uvloop/issues/574
+               
tests/test_cython.py::TestCythonIntegration::test_cython_coro_is_coroutine
+       )
+
+       rm -rf uvloop || die
+       epytest -s
+}
+
+python_install_all() {
+       use examples && dodoc -r examples
+       distutils-r1_python_install_all
+}

Reply via email to