From 3164fd84d451d3e610f62aefa4427612fc809ef5674ca92ca67b5fa240b0eafc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mark=C3=A9ta=20Machov=C3=A1?= Date: Tue, 30 Jul 2024 20:06:37 +0000 Subject: [PATCH] Accepting request 1190485 from home:glaubitz:branches:devel:languages:python - Cherry-pick upstream patch to fix compatibility with Python 3.13 * replace-private-function.patch OBS-URL: https://build.opensuse.org/request/show/1190485 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pyrsistent?expand=0&rev=33 --- python-pyrsistent.changes | 6 ++++++ python-pyrsistent.spec | 3 +++ replace-private-function.patch | 36 ++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 replace-private-function.patch diff --git a/python-pyrsistent.changes b/python-pyrsistent.changes index 55169de..cb3e2c3 100644 --- a/python-pyrsistent.changes +++ b/python-pyrsistent.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Jul 30 13:00:09 UTC 2024 - John Paul Adrian Glaubitz + +- Cherry-pick upstream patch to fix compatibility with Python 3.13 + * replace-private-function.patch + ------------------------------------------------------------------- Fri Jan 5 17:29:47 UTC 2024 - Dirk Müller diff --git a/python-pyrsistent.spec b/python-pyrsistent.spec index 2601eb4..da57c5c 100644 --- a/python-pyrsistent.spec +++ b/python-pyrsistent.spec @@ -25,6 +25,8 @@ License: MIT Group: Development/Languages/Python URL: http://github.com/tobgu/pyrsistent/ Source: https://files.pythonhosted.org/packages/source/p/pyrsistent/pyrsistent-%{version}.tar.gz +# PATCH-FIX-UPSTREAM - gh/tobgu/pyrsistent#284 - Replace _PyList_Extend with PyList_SetSlice +Patch: https://patch-diff.githubusercontent.com/raw/tobgu/pyrsistent/pull/284.patch#/replace-private-function.patch BuildRequires: %{python_module devel} BuildRequires: %{python_module hypothesis} BuildRequires: %{python_module pip} @@ -47,6 +49,7 @@ is left untouched. %prep %setup -q -n pyrsistent-%{version} +%patch -P0 -p1 %build export CFLAGS="%{optflags}" diff --git a/replace-private-function.patch b/replace-private-function.patch new file mode 100644 index 0000000..24d49b3 --- /dev/null +++ b/replace-private-function.patch @@ -0,0 +1,36 @@ +From c876adc774e7bb3c896b013f13d7c6ce80e79544 Mon Sep 17 00:00:00 2001 +From: "Benjamin A. Beasley" +Date: Thu, 26 Oct 2023 09:53:40 -0400 +Subject: [PATCH] Replace _PyList_Extend with PyList_SetSlice + +This private function is no longer exported in Python 3.13. + +It is possible that a PyList_Extend() function-like macro may be added +before Python 3.13 final, but using PyList_SetSlice() directly will +still work. + +https://github.com/python/cpython/pull/108451 + +https://github.com/python/cpython/issues/111138 +--- + pvectorcmodule.c | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/pvectorcmodule.c b/pvectorcmodule.c +index 8667abb..9b83a56 100644 +--- a/pvectorcmodule.c ++++ b/pvectorcmodule.c +@@ -1313,12 +1313,10 @@ static PyObject *PVectorEvolver_append(PVectorEvolver *self, PyObject *args) { + } + + static PyObject *PVectorEvolver_extend(PVectorEvolver *self, PyObject *args) { +- PyObject *retVal = _PyList_Extend((PyListObject *)self->appendList, args); +- if (retVal == NULL) { ++ if (PyList_SetSlice(self->appendList, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, args) < 0) { + return NULL; + } + +- Py_DECREF(retVal); + Py_INCREF(self); + return (PyObject*)self; + }