[packages/grpc] adjusted upstream fix for cython >= 3; rel 6
atler
atler at pld-linux.org
Wed Mar 19 20:53:58 CET 2025
commit 3b6b72aff54a5eb3b76383f6b3abd66479a2da9c
Author: Jan Palus <atler at pld-linux.org>
Date: Wed Mar 19 20:42:14 2025 +0100
adjusted upstream fix for cython >= 3; rel 6
cython3.patch | 181 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
grpc.spec | 6 +-
2 files changed, 185 insertions(+), 2 deletions(-)
---
diff --git a/grpc.spec b/grpc.spec
index b49f4e1..282146b 100644
--- a/grpc.spec
+++ b/grpc.spec
@@ -11,7 +11,7 @@ Summary(pl.UTF-8): Biblioteka i szkielet RPC
Name: grpc
# 1.51+ requires protobuf 4.x
Version: 1.50.2
-Release: 5
+Release: 6
License: Apache v2.0
Group: Libraries
#Source0Download: https://github.com/grpc/grpc/releases
@@ -23,6 +23,7 @@ Patch0: %{name}-format.patch
Patch1: %{name}-sphinx.patch
Patch2: %{name}-x32.patch
Patch5: %{name}-system-openssl.patch
+Patch6: cython3.patch
URL: https://grpc.io/
BuildRequires: abseil-cpp-devel >= 20220623
BuildRequires: c-ares-devel >= 1.13.0
@@ -39,7 +40,7 @@ BuildRequires: rpmbuild(macros) >= 1.714
BuildRequires: zlib-devel
%if %{with python3}
BuildRequires: python3 >= 1:3.7
-BuildRequires: python3-Cython >= 0.29.8
+BuildRequires: python3-Cython >= 3
BuildRequires: python3-modules >= 1:3.7
BuildRequires: python3-setuptools
%endif
@@ -127,6 +128,7 @@ Dokumentacja API biblioteki Pythona gRPC.
%patch -P 1 -p1
%patch -P 2 -p1
%patch -P 5 -p1
+%patch -P 6 -p1
%{__rm} doc/.gitignore
diff --git a/cython3.patch b/cython3.patch
new file mode 100644
index 0000000..a15cea5
--- /dev/null
+++ b/cython3.patch
@@ -0,0 +1,181 @@
+From 4bea12353c2f0f5a52746821f1e3f961592c7ca0 Mon Sep 17 00:00:00 2001
+From: Atri Bhattacharya <A.Bhattacharya at uliege.be>
+Date: Tue, 2 Apr 2024 10:05:04 -0700
+Subject: [PATCH] [python] Cython 3 compatibility: declare functions noexcept.
+ (#35995)
+
+In Cython 3, cdef functions that really will not raise exceptions must be declared as `noexcept`. Fixed by this commit.
+
+Update requirements to `cython >= 3.0` in requirements*.txt and setup.py.
+
+Fixes issue #33918.
+
+<!--
+
+If you know who should review your pull request, please assign it to that
+person, otherwise the pull request would get assigned randomly.
+
+If your pull request is for a specific language, please add the appropriate
+lang label.
+
+-->
+
+Closes #35995
+
+COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35995 from badshah400:master b3277bac1585ddee88a170b0a95c260d909cce9c
+PiperOrigin-RevId: 621214091
+---
+ requirements.bazel.txt | 2 +-
+ requirements.txt | 2 +-
+ setup.py | 2 +-
+ .../grpcio/grpc/_cython/_cygrpc/aio/callback_common.pxd.pxi | 2 +-
+ .../grpcio/grpc/_cython/_cygrpc/aio/callback_common.pyx.pxi | 2 +-
+ src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi | 2 +-
+ src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pxd.pxi | 6 +++---
+ src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi | 6 +++---
+ src/python/grpcio/grpc/_cython/_cygrpc/vtable.pyx.pxi | 6 +++---
+ 9 files changed, 15 insertions(+), 15 deletions(-)
+
+diff --git a/requirements.txt b/requirements.txt
+index 05390850559f1..56169434b1b78 100644
+--- a/requirements.txt
++++ b/requirements.txt
+@@ -1,6 +1,6 @@
+ # GRPC Python setup requirements
+ coverage>=4.0
+-cython>=0.29.8
++cython>=3.0.0
+ protobuf>=4.21.3,<5.0dev
+ six>=1.10
+ wheel>=0.29
+diff --git a/setup.py b/setup.py
+index 93138a2d11aba..19544ce89d832 100644
+--- a/setup.py
++++ b/setup.py
+@@ -545,7 +545,7 @@ def cython_extensions_and_necessity():
+ elif need_cython:
+ sys.stderr.write(
+ 'We could not find Cython. Setup may take 10-20 minutes.\n')
+- SETUP_REQUIRES += ('cython>=0.23',)
++ SETUP_REQUIRES += ('cython>=3.0.0',)
+
+ COMMAND_CLASS = {
+ 'doc': commands.SphinxDocumentation,
+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 e54e5107547c1..26edbdb917b10 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 14a0098fc2041..2b0df0e5ce7f7 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 = <CallbackContext *>functor
+ cdef object waiter = <object>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 74a3f16d72dbb..600c0f304e067 100644
+--- a/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi
++++ b/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi
+@@ -316,7 +316,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.pyx.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi
+index 565f483b2ae00..d901cfddf4321 100644
+--- a/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi
++++ b/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pyx.pxi
+@@ -35,7 +35,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
+@@ -49,14 +49,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 da4b81bd97e65..f59410073b736 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:
+--- grpc-1.50.2/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pxd.pxi.orig 2025-03-19 19:23:03.248118406 +0100
++++ grpc-1.50.2/src/python/grpcio/grpc/_cython/_cygrpc/fork_posix.pxd.pxi 2025-03-19 19:27:46.116368426 +0100
+@@ -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)
+
+
+-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
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/grpc.git/commitdiff/3b6b72aff54a5eb3b76383f6b3abd66479a2da9c
More information about the pld-cvs-commit
mailing list