diff --git a/srcpkgs/python3-greenlet/patches/python3.12.patch b/srcpkgs/python3-greenlet/patches/python3.12.patch deleted file mode 100644 index 3febd6fd911..00000000000 --- a/srcpkgs/python3-greenlet/patches/python3.12.patch +++ /dev/null @@ -1,286 +0,0 @@ -From d92c0bc6b221b3a6fdb80cadf13276897b771677 Mon Sep 17 00:00:00 2001 -From: Thomas A Caswell -Date: Fri, 4 Nov 2022 11:11:58 -0400 -Subject: [PATCH 01/13] Fix #323: Support Python 3.12 - ---- - src/greenlet/greenlet_cpython_compat.hpp | 6 ++++++ - src/greenlet/greenlet_greenlet.hpp | 12 +++++++++++- - 2 files changed, 17 insertions(+), 1 deletion(-) - -diff --git a/src/greenlet/greenlet_cpython_compat.hpp b/src/greenlet/greenlet_cpython_compat.hpp -index 3fd13ac..6210586 100644 ---- a/src/greenlet/greenlet_cpython_compat.hpp -+++ b/src/greenlet/greenlet_cpython_compat.hpp -@@ -48,6 +48,12 @@ We have to save and restore this as well. - # define GREENLET_USE_CFRAME 0 - #endif - -+#if PY_VERSION_HEX >= 0x30C0000 -+# define GREENLET_PY312 1 -+#else -+# define GREENLET_PY312 0 -+#endif -+ - #if PY_VERSION_HEX >= 0x30B00A4 - /* - Greenlet won't compile on anything older than Python 3.11 alpha 4 (see -diff --git a/src/greenlet/greenlet_greenlet.hpp b/src/greenlet/greenlet_greenlet.hpp -index cc02c5c..472902e 100644 ---- a/src/greenlet/greenlet_greenlet.hpp -+++ b/src/greenlet/greenlet_greenlet.hpp -@@ -831,7 +831,11 @@ void PythonState::operator<<(const PyThreadState *const tstate) G_NOEXCEPT - this->use_tracing = tstate->cframe->use_tracing; - #endif - #if GREENLET_PY311 -+ #if GREENLET_PY312 -+ this->recursion_depth = tstate->py_recursion_limit - tstate->py_recursion_remaining; -+ #else - this->recursion_depth = tstate->recursion_limit - tstate->recursion_remaining; -+ #endif - this->current_frame = tstate->cframe->current_frame; - this->datastack_chunk = tstate->datastack_chunk; - this->datastack_top = tstate->datastack_top; -@@ -867,7 +871,11 @@ void PythonState::operator>>(PyThreadState *const tstate) G_NOEXCEPT - tstate->cframe->use_tracing = this->use_tracing; - #endif - #if GREENLET_PY311 -+ #if GREENLET_PY312 -+ tstate->py_recursion_remaining = tstate->py_recursion_limit - this->recursion_depth; -+ #else - tstate->recursion_remaining = tstate->recursion_limit - this->recursion_depth; -+ #endif - tstate->cframe->current_frame = this->current_frame; - tstate->datastack_chunk = this->datastack_chunk; - tstate->datastack_top = this->datastack_top; -@@ -895,7 +903,9 @@ void PythonState::will_switch_from(PyThreadState *const origin_tstate) G_NOEXCEP - void PythonState::set_initial_state(const PyThreadState* const tstate) G_NOEXCEPT - { - this->_top_frame = nullptr; --#if GREENLET_PY311 -+#if GREENLET_PY312 -+ this->recursion_depth = tstate->py_recursion_limit - tstate->py_recursion_remaining; -+#elif GREENLET_PY311 - this->recursion_depth = tstate->recursion_limit - tstate->recursion_remaining; - #else - this->recursion_depth = tstate->recursion_depth; - -From 0013135c3d241ecbd35894e1721eaf71ce58421f Mon Sep 17 00:00:00 2001 -From: Michael Droettboom -Date: Thu, 27 Apr 2023 09:52:14 -0400 -Subject: [PATCH 06/13] Updates for PEP669 - ---- - src/greenlet/greenlet.cpp | 4 ++++ - src/greenlet/greenlet_greenlet.hpp | 15 +++++++++------ - 2 files changed, 13 insertions(+), 6 deletions(-) - -diff --git a/src/greenlet/greenlet.cpp b/src/greenlet/greenlet.cpp -index 7f3e804..d01ed96 100644 ---- a/src/greenlet/greenlet.cpp -+++ b/src/greenlet/greenlet.cpp -@@ -3095,7 +3095,11 @@ static PyObject* - mod_get_tstate_trash_delete_nesting(PyObject* UNUSED(module)) - { - PyThreadState* tstate = PyThreadState_GET(); -+#if GREENLET_PY312 -+ return PyLong_FromLong(tstate->trash.delete_nesting); -+#else - return PyLong_FromLong(tstate->trash_delete_nesting); -+#endif - } - - static PyMethodDef GreenMethods[] = { -diff --git a/src/greenlet/greenlet_greenlet.hpp b/src/greenlet/greenlet_greenlet.hpp -index 472902e..7146214 100644 ---- a/src/greenlet/greenlet_greenlet.hpp -+++ b/src/greenlet/greenlet_greenlet.hpp -@@ -828,7 +828,9 @@ void PythonState::operator<<(const PyThreadState *const tstate) G_NOEXCEPT - the switch, use `will_switch_from`. - */ - this->cframe = tstate->cframe; -+ #if !GREENLET_PY312 - this->use_tracing = tstate->cframe->use_tracing; -+ #endif - #endif - #if GREENLET_PY311 - #if GREENLET_PY312 -@@ -843,13 +845,12 @@ void PythonState::operator<<(const PyThreadState *const tstate) G_NOEXCEPT - PyFrameObject *frame = PyThreadState_GetFrame((PyThreadState *)tstate); - Py_XDECREF(frame); // PyThreadState_GetFrame gives us a new reference. - this->_top_frame.steal(frame); -+ this->trash_delete_nesting = tstate->trash.delete_nesting; - #else - this->recursion_depth = tstate->recursion_depth; - this->_top_frame.steal(tstate->frame); --#endif -- -- // All versions of Python. - this->trash_delete_nesting = tstate->trash_delete_nesting; -+#endif - } - - void PythonState::operator>>(PyThreadState *const tstate) G_NOEXCEPT -@@ -868,7 +869,9 @@ void PythonState::operator>>(PyThreadState *const tstate) G_NOEXCEPT - root_cframe here. See note above about why we can't - just copy this from ``origin->cframe->use_tracing``. - */ -+ #if !GREENLET_PY312 - tstate->cframe->use_tracing = this->use_tracing; -+ #endif - #endif - #if GREENLET_PY311 - #if GREENLET_PY312 -@@ -881,17 +884,17 @@ void PythonState::operator>>(PyThreadState *const tstate) G_NOEXCEPT - tstate->datastack_top = this->datastack_top; - tstate->datastack_limit = this->datastack_limit; - this->_top_frame.relinquish_ownership(); -+ tstate->trash.delete_nesting = this->trash_delete_nesting; - #else - tstate->frame = this->_top_frame.relinquish_ownership(); - tstate->recursion_depth = this->recursion_depth; -+ tstate->trash.delete_nesting = this->trash_delete_nesting; - #endif -- // All versions of Python. -- tstate->trash_delete_nesting = this->trash_delete_nesting; - } - - void PythonState::will_switch_from(PyThreadState *const origin_tstate) G_NOEXCEPT - { --#if GREENLET_USE_CFRAME -+#if GREENLET_USE_CFRAME && !GREENLET_PY312 - // The weird thing is, we don't actually save this for an - // effect on the current greenlet, it's saved for an - // effect on the target greenlet. That is, we want - -From 86b096e43234ed1549d76a950cd449ccc51a304a Mon Sep 17 00:00:00 2001 -From: Michael Droettboom -Date: Thu, 27 Apr 2023 09:54:50 -0400 -Subject: [PATCH 07/13] Fix Python 3.11 - ---- - src/greenlet/greenlet_greenlet.hpp | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/src/greenlet/greenlet_greenlet.hpp b/src/greenlet/greenlet_greenlet.hpp -index 7146214..41fda8e 100644 ---- a/src/greenlet/greenlet_greenlet.hpp -+++ b/src/greenlet/greenlet_greenlet.hpp -@@ -845,7 +845,11 @@ void PythonState::operator<<(const PyThreadState *const tstate) G_NOEXCEPT - PyFrameObject *frame = PyThreadState_GetFrame((PyThreadState *)tstate); - Py_XDECREF(frame); // PyThreadState_GetFrame gives us a new reference. - this->_top_frame.steal(frame); -+ #if GREENLET_PY312 - this->trash_delete_nesting = tstate->trash.delete_nesting; -+ #else -+ this->trash_delete_nesting = tstate->trash_delete_nesting; -+ #endif - #else - this->recursion_depth = tstate->recursion_depth; - this->_top_frame.steal(tstate->frame); -@@ -884,7 +888,11 @@ void PythonState::operator>>(PyThreadState *const tstate) G_NOEXCEPT - tstate->datastack_top = this->datastack_top; - tstate->datastack_limit = this->datastack_limit; - this->_top_frame.relinquish_ownership(); -+ #if GREENLET_PY312 - tstate->trash.delete_nesting = this->trash_delete_nesting; -+ #else -+ tstate->trash_delete_nesting = this->trash_delete_nesting; -+ #endif - #else - tstate->frame = this->_top_frame.relinquish_ownership(); - tstate->recursion_depth = this->recursion_depth; - -From 22a84344079a6e6b59e91ede92c9d800bc0f2041 Mon Sep 17 00:00:00 2001 -From: Michael Droettboom -Date: Tue, 2 May 2023 10:48:37 -0400 -Subject: [PATCH 11/13] Fix recursion depth updating - ---- - src/greenlet/greenlet_greenlet.hpp | 19 ++++++++++++++++--- - 1 file changed, 16 insertions(+), 3 deletions(-) - -diff --git a/src/greenlet/greenlet_greenlet.hpp b/src/greenlet/greenlet_greenlet.hpp -index ffb23a7..10244e0 100644 ---- a/src/greenlet/greenlet_greenlet.hpp -+++ b/src/greenlet/greenlet_greenlet.hpp -@@ -143,7 +143,12 @@ namespace greenlet - _PyCFrame* cframe; - int use_tracing; - #endif -+#if GREENLET_PY312 -+ int py_recursion_depth; -+ int c_recursion_depth; -+#else - int recursion_depth; -+#endif - int trash_delete_nesting; - #if GREENLET_PY311 - _PyInterpreterFrame* current_frame; -@@ -748,7 +753,12 @@ PythonState::PythonState() - ,cframe(nullptr) - ,use_tracing(0) - #endif -+#if GREENLET_PY312 -+ ,py_recursion_depth(0) -+ ,c_recursion_depth(0) -+#else - ,recursion_depth(0) -+#endif - ,trash_delete_nesting(0) - #if GREENLET_PY311 - ,current_frame(nullptr) -@@ -834,7 +844,8 @@ void PythonState::operator<<(const PyThreadState *const tstate) G_NOEXCEPT - #endif - #if GREENLET_PY311 - #if GREENLET_PY312 -- this->recursion_depth = tstate->py_recursion_limit - tstate->py_recursion_remaining; -+ this->py_recursion_depth = tstate->py_recursion_limit - tstate->py_recursion_remaining; -+ this->c_recursion_depth = C_RECURSION_LIMIT - tstate->c_recursion_remaining; - #else - this->recursion_depth = tstate->recursion_limit - tstate->recursion_remaining; - #endif -@@ -879,7 +890,8 @@ void PythonState::operator>>(PyThreadState *const tstate) G_NOEXCEPT - #endif - #if GREENLET_PY311 - #if GREENLET_PY312 -- tstate->py_recursion_remaining = tstate->py_recursion_limit - this->recursion_depth; -+ tstate->py_recursion_remaining = tstate->py_recursion_limit - this->py_recursion_depth; -+ tstate->c_recursion_remaining = C_RECURSION_LIMIT - this->c_recursion_depth; - #else - tstate->recursion_remaining = tstate->recursion_limit - this->recursion_depth; - #endif -@@ -915,7 +927,8 @@ void PythonState::set_initial_state(const PyThreadState* const tstate) G_NOEXCEP - { - this->_top_frame = nullptr; - #if GREENLET_PY312 -- this->recursion_depth = tstate->py_recursion_limit - tstate->py_recursion_remaining; -+ this->py_recursion_depth = tstate->py_recursion_limit - tstate->py_recursion_remaining; -+ this->c_recursion_depth = tstate->py_recursion_limit - tstate->py_recursion_remaining; - #elif GREENLET_PY311 - this->recursion_depth = tstate->recursion_limit - tstate->recursion_remaining; - #else - -From 3262da94a8c564bc4c12570a6f060e8af8fd19df Mon Sep 17 00:00:00 2001 -From: Michael Droettboom -Date: Tue, 30 May 2023 12:14:22 -0400 -Subject: [PATCH 12/13] Insert blank line - ---- - src/greenlet/greenlet.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/greenlet/greenlet.cpp b/src/greenlet/greenlet.cpp -index d01ed96..fd12a59 100644 ---- a/src/greenlet/greenlet.cpp -+++ b/src/greenlet/greenlet.cpp -@@ -3095,6 +3095,7 @@ static PyObject* - mod_get_tstate_trash_delete_nesting(PyObject* UNUSED(module)) - { - PyThreadState* tstate = PyThreadState_GET(); -+ - #if GREENLET_PY312 - return PyLong_FromLong(tstate->trash.delete_nesting); - #else - - 2.0.2 (2023-01-28) diff --git a/srcpkgs/python3-greenlet/template b/srcpkgs/python3-greenlet/template index 7e9c8c7aa6b..b7c4ef88ef0 100644 --- a/srcpkgs/python3-greenlet/template +++ b/srcpkgs/python3-greenlet/template @@ -1,7 +1,7 @@ # Template file for 'python3-greenlet' pkgname=python3-greenlet -version=2.0.2 -revision=2 +version=3.0.0 +revision=1 build_style=python3-module hostmakedepends="python3-setuptools" makedepends="python3-devel" @@ -13,7 +13,7 @@ license="MIT" homepage="https://github.com/python-greenlet/greenlet" changelog="https://raw.githubusercontent.com/python-greenlet/greenlet/master/CHANGES.rst" distfiles="${PYPI_SITE}/g/greenlet/greenlet-${version}.tar.gz" -checksum=e7c8dc13af7db097bed64a051d2dd49e9f0af495c26995c00a9ee842690d34c0 +checksum=19834e3f91f485442adc1ee440171ec5d9a4840a1f7bd5ed97833544719ce10b do_check() { python3 setup.py build_ext --inplace