diff --git a/0001-Add-support-for-Python-3.12.patch b/0001-Add-support-for-Python-3.12.patch new file mode 100644 index 0000000000000000000000000000000000000000..e90652b553cd54ed75f01b0e191bb4488f791dbc --- /dev/null +++ b/0001-Add-support-for-Python-3.12.patch @@ -0,0 +1,71 @@ +From a5590bb04de3f1f201fd1fd0ce9cfe5825db80ac Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=E6=BB=95=E7=A3=8A?= Hugo van Kemenade +Date: Thu, 9 May 2024 14:35:57 +0800 +Subject: [PATCH] Add support for Python 3.12 + +--- + README.rst | 2 +- + curio/channel.py | 14 ++++++++++---- + curio/ssl.py | 4 ++-- + 3 files changed, 13 insertions(+), 7 deletions(-) + +diff --git a/README.rst b/README.rst +index 945dac8..83f9ee7 100644 +--- a/README.rst ++++ b/README.rst +@@ -3,7 +3,7 @@ Curio + + Curio is a coroutine-based library for concurrent Python systems + programming using async/await. It provides standard programming +-abstractions such as as tasks, sockets, files, locks, and queues as ++abstractions such as tasks, sockets, files, locks, and queues as + well as some advanced features such as support for structured + concurrency. It works on Unix and Windows and has zero dependencies. + You'll find it to be familiar, small, fast, and fun. +diff --git a/curio/channel.py b/curio/channel.py +index 230427f..556be63 100644 +--- a/curio/channel.py ++++ b/curio/channel.py +@@ -28,10 +28,16 @@ from .time import timeout_after, sleep + # Authentication parameters (copied from multiprocessing) + + AUTH_MESSAGE_LENGTH = mpc.MESSAGE_LENGTH # 20 +-CHALLENGE = mpc.CHALLENGE # b'#CHALLENGE#' +-WELCOME = mpc.WELCOME # b'#WELCOME#' +-FAILURE = mpc.FAILURE # b'#FAILURE#' +- ++try: ++ # Python 3.12+ ++ CHALLENGE = mpc._CHALLENGE # b'#CHALLENGE#' ++ WELCOME = mpc._WELCOME # b'#WELCOME#' ++ FAILURE = mpc._FAILURE # b'#FAILURE#' ++except AttributeError: ++ # Python 3.7-3.11 ++ CHALLENGE = mpc.CHALLENGE # b'#CHALLENGE#' ++ WELCOME = mpc.WELCOME # b'#WELCOME#' ++ FAILURE = mpc.FAILURE # b'#FAILURE#' + + + class ConnectionError(CurioError): +diff --git a/curio/ssl.py b/curio/ssl.py +index 37efa08..4619eb1 100644 +--- a/curio/ssl.py ++++ b/curio/ssl.py +@@ -27,12 +27,12 @@ from .workers import run_in_thread + from .io import Socket + + if _ssl: +- @wraps(_ssl.wrap_socket) ++ @wraps(_ssl.SSLContext.wrap_socket) + async def wrap_socket(sock, *args, do_handshake_on_connect=True, **kwargs): + if isinstance(sock, Socket): + sock = sock._socket + +- ssl_sock = _ssl.wrap_socket(sock, *args, do_handshake_on_connect=False, **kwargs) ++ ssl_sock = _ssl.SSLContext.wrap_socket(sock, *args, do_handshake_on_connect=False, **kwargs) + cssl_sock = Socket(ssl_sock) + cssl_sock.do_handshake_on_connect = do_handshake_on_connect + if do_handshake_on_connect and ssl_sock._connected: +-- +2.43.0 + diff --git a/python-curio.spec b/python-curio.spec index 6c30d1570c8f6c85276dbc727b35191ec963d44b..919edbaad31a51c485ec041bc8a70f56294865be 100644 --- a/python-curio.spec +++ b/python-curio.spec @@ -1,7 +1,7 @@ %global _empty_manifest_terminate_build 0 Name: python-curio Version: 1.6 -Release: 1 +Release: 2 Summary: Curio License: BSD-3-Clause URL: https://github.com/dabeaz/curio @@ -16,6 +16,7 @@ Summary: Curio Provides: python-curio = %{version}-%{release} BuildRequires: python3-devel BuildRequires: python3-setuptools +Patch0001: 0001-Add-support-for-Python-3.12.patch %description -n python3-curio Curio is a coroutine-based library for concurrent systems programming. @@ -26,7 +27,7 @@ Provides: python3-curio-doc Curio is a coroutine-based library for concurrent systems programming. %prep -%autosetup -n curio-%{version} +%autosetup -n curio-%{version} -p1 %build %py3_build @@ -66,8 +67,12 @@ mv %{buildroot}/doclist.lst . %{_docdir}/* %changelog +* Thu May 9 2024 tenglei - 1.6-2 +- change-incorrect-README.rst +- add support for python 3.12 + * Fri Dec 16 2022 liqiuyu - 1.6-1 - Update package to version 1.6 * Mon Jul 05 2021 liliang - 1.5-1 -- Init project \ No newline at end of file +- Init project