From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 71EAB158089 for ; Mon, 6 Nov 2023 14:40:29 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id B4A2D2BC043; Mon, 6 Nov 2023 14:40:28 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 975982BC043 for ; Mon, 6 Nov 2023 14:40:28 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id D12A9335D2F for ; Mon, 6 Nov 2023 14:40:27 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 2370BC3D for ; Mon, 6 Nov 2023 14:40:26 +0000 (UTC) From: "Sam James" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" Message-ID: <1699281590.d6f68f48a5d578608b07ec63017a0a23c80c9017.sam@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: dev-python/grpcio/, dev-python/grpcio/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: dev-python/grpcio/files/1.51.0-cython3.patch dev-python/grpcio/grpcio-1.51.0-r1.ebuild X-VCS-Directories: dev-python/grpcio/ dev-python/grpcio/files/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: d6f68f48a5d578608b07ec63017a0a23c80c9017 X-VCS-Branch: master Date: Mon, 6 Nov 2023 14:40:26 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 27399978-7b76-4ec5-bdb8-dacb7b0855a9 X-Archives-Hash: e39d49e5dcf6c2cf1ed0428f350e6141 commit: d6f68f48a5d578608b07ec63017a0a23c80c9017 Author: Sam James gentoo org> AuthorDate: Mon Nov 6 14:39:35 2023 +0000 Commit: Sam James gentoo org> CommitDate: Mon Nov 6 14:39:50 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d6f68f48 dev-python/grpcio: fix cython-3 compat Closes: https://bugs.gentoo.org/911370 Closes: https://bugs.gentoo.org/905740 Signed-off-by: Sam James gentoo.org> dev-python/grpcio/files/1.51.0-cython3.patch | 150 +++++++++++++++++++++++++++ dev-python/grpcio/grpcio-1.51.0-r1.ebuild | 50 +++++++++ 2 files changed, 200 insertions(+) diff --git a/dev-python/grpcio/files/1.51.0-cython3.patch b/dev-python/grpcio/files/1.51.0-cython3.patch new file mode 100644 index 000000000000..97e70e150455 --- /dev/null +++ b/dev-python/grpcio/files/1.51.0-cython3.patch @@ -0,0 +1,150 @@ +https://bugs.gentoo.org/911370 +https://github.com/grpc/grpc/issues/33918#issuecomment-1703386656 +https://github.com/grpc/grpc/issues/33918#issuecomment-1788823585 +https://github.com/grpc/grpc/pull/34242 +https://src.fedoraproject.org/rpms/grpc/blob/8bf11b8c20d2c54dcf7b88777d7590237b6b0555/f/0001-Specify-noexcept-for-cdef-functions.patch + +From 45d31dba83999638808891ee7bf93638106bdb71 Mon Sep 17 00:00:00 2001 +From: Atri Bhattacharya +Date: Thu, 7 Sep 2023 07:06:56 +0200 +Subject: [PATCH] Specify noexcept for cdef functions. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +To build against cython 3.0, cdef functions that do not raise exceptions +need to be explicitly declared as noexcept. Fixes issue #33918. + +Co-Authored-By: Miro HronĨok +--- + .../grpc/_cython/_cygrpc/aio/callback_common.pxd.pxi | 2 +- + .../grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi | 2 +- + .../grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi | 2 +- + .../grpcio/grpc/_cython/_cygrpc/fork_posix.pxd.pxi | 12 ++++++------ + .../grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi | 6 +++--- + .../grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi | 6 +++--- + 6 files changed, 15 insertions(+), 15 deletions(-) + +diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pxd.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pxd.pxi +index e54e510..26edbdb 100644 +--- a/src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pxd.pxi ++++ b/src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pxd.pxi +@@ -48,7 +48,7 @@ cdef class CallbackWrapper: + @staticmethod + cdef void functor_run( + grpc_completion_queue_functor* functor, +- int succeed) ++ int succeed) noexcept + + cdef grpc_completion_queue_functor *c_functor(self) + +diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi +index f2d94a9..5dda90a 100644 +--- a/src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi ++++ b/src/python/grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi +@@ -50,7 +50,7 @@ cdef class CallbackWrapper: + @staticmethod + cdef void functor_run( + grpc_completion_queue_functor* functor, +- int success): ++ int success) noexcept: + cdef CallbackContext *context = functor + cdef object waiter = context.waiter + if not waiter.cancelled(): +diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi +index 23de3a0..52071f5 100644 +--- a/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi ++++ b/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi +@@ -314,7 +314,7 @@ def server_credentials_ssl_dynamic_cert_config(initial_cert_config, + return credentials + + cdef grpc_ssl_certificate_config_reload_status _server_cert_config_fetcher_wrapper( +- void* user_data, grpc_ssl_server_certificate_config **config) with gil: ++ void* user_data, grpc_ssl_server_certificate_config **config) noexcept with gil: + # This is a credentials.ServerCertificateConfig + cdef ServerCertificateConfig cert_config = None + if not user_data: +diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pxd.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pxd.pxi +index a925bdd..5e97a6d 100644 +--- a/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pxd.pxi ++++ b/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pxd.pxi +@@ -15,15 +15,15 @@ + + cdef extern from "pthread.h" nogil: + int pthread_atfork( +- void (*prepare)() nogil, +- void (*parent)() nogil, +- void (*child)() nogil) ++ void (*prepare)() noexcept nogil, ++ void (*parent)() noexcept nogil, ++ void (*child)() noexcept nogil) noexcept + + +-cdef void __prefork() nogil ++cdef void __prefork() noexcept nogil + + +-cdef void __postfork_parent() nogil ++cdef void __postfork_parent() noexcept nogil + + +-cdef void __postfork_child() nogil +\ No newline at end of file ++cdef void __postfork_child() noexcept nogil +\ No newline at end of file +diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi +index 53657e8..d4d1cff 100644 +--- a/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi ++++ b/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi +@@ -34,7 +34,7 @@ _GRPC_ENABLE_FORK_SUPPORT = ( + + _fork_handler_failed = False + +-cdef void __prefork() nogil: ++cdef void __prefork() noexcept nogil: + with gil: + global _fork_handler_failed + _fork_handler_failed = False +@@ -48,14 +48,14 @@ cdef void __prefork() nogil: + _fork_handler_failed = True + + +-cdef void __postfork_parent() nogil: ++cdef void __postfork_parent() noexcept nogil: + with gil: + with _fork_state.fork_in_progress_condition: + _fork_state.fork_in_progress = False + _fork_state.fork_in_progress_condition.notify_all() + + +-cdef void __postfork_child() nogil: ++cdef void __postfork_child() noexcept nogil: + with gil: + try: + if _fork_handler_failed: +diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi +index da4b81b..f594100 100644 +--- a/src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi ++++ b/src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi +@@ -13,16 +13,16 @@ + # limitations under the License. + + # TODO(https://github.com/grpc/grpc/issues/15662): Reform this. +-cdef void* _copy_pointer(void* pointer): ++cdef void* _copy_pointer(void* pointer) noexcept: + return pointer + + + # TODO(https://github.com/grpc/grpc/issues/15662): Reform this. +-cdef void _destroy_pointer(void* pointer): ++cdef void _destroy_pointer(void* pointer) noexcept: + pass + + +-cdef int _compare_pointer(void* first_pointer, void* second_pointer): ++cdef int _compare_pointer(void* first_pointer, void* second_pointer) noexcept: + if first_pointer < second_pointer: + return -1 + elif first_pointer > second_pointer: +-- +2.41.0 diff --git a/dev-python/grpcio/grpcio-1.51.0-r1.ebuild b/dev-python/grpcio/grpcio-1.51.0-r1.ebuild new file mode 100644 index 000000000000..3fd7cdbe2a7f --- /dev/null +++ b/dev-python/grpcio/grpcio-1.51.0-r1.ebuild @@ -0,0 +1,50 @@ +# Copyright 1999-2023 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_{9..11} ) + +inherit distutils-r1 multiprocessing prefix pypi + +DESCRIPTION="High-performance RPC framework (python libraries)" +HOMEPAGE="https://grpc.io" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~riscv x86" + +RDEPEND=" + >=dev-libs/openssl-1.1.1:0=[-bindist(-)] + >=dev-libs/re2-0.2021.11.01:= + =dev-python/protobuf-python-4.21.3[${PYTHON_USEDEP}] + net-dns/c-ares:= + sys-libs/zlib:= +" +DEPEND="${RDEPEND}" +BDEPEND="dev-python/cython[${PYTHON_USEDEP}]" + +PATCHES=( + "${FILESDIR}/1.51.0-respect-cc.patch" + "${FILESDIR}/1.51.0-cython3.patch" +) + +python_prepare_all() { + distutils-r1_python_prepare_all + hprefixify setup.py +} + +python_configure_all() { + # os.environ.get('GRPC_BUILD_WITH_BORING_SSL_ASM', True) + export GRPC_BUILD_WITH_BORING_SSL_ASM= + export GRPC_PYTHON_DISABLE_LIBC_COMPATIBILITY=1 + export GRPC_PYTHON_BUILD_SYSTEM_CARES=1 + export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1 + export GRPC_PYTHON_BUILD_WITH_SYSTEM_RE2=1 + export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1 + export GRPC_PYTHON_BUILD_WITH_CYTHON=1 + export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS="$(makeopts_jobs)" +}