[bug#77986,1/2] gnu: python-zeroc-ice-3.6: Fix build with Python@3.11.
Commit Message
* gnu/packages/python-xyz.scm (python-zeroc-ice-3.6)
[source]: Add patch.
* gnu/packages/patches/python-zeroc-ice-3.6.5-python-3.11-support.patch:
Add patch.
---
...-zeroc-ice-3.6.5-python-3.11-support.patch | 33 +++++++++++++++++++
gnu/packages/python-xyz.scm | 5 ++-
2 files changed, 37 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/python-zeroc-ice-3.6.5-python-3.11-support.patch
new file mode 100644
@@ -0,0 +1,33 @@
+Only in zeroc-ice-3.6.5: setup.py.orig
+diff --color -ur zeroc-ice-3.6.5.orig/src/Slice.cpp zeroc-ice-3.6.5/src/Slice.cpp
+--- zeroc-ice-3.6.5.orig/src/Slice.cpp 2019-07-31 21:49:38.000000000 +0200
++++ zeroc-ice-3.6.5/src/Slice.cpp 2023-10-12 10:52:07.029069937 +0200
+@@ -17,12 +17,6 @@
+ #include <Slice/Util.h>
+ #include <IceUtil/Options.h>
+
+-//
+-// Python headers needed for PyEval_EvalCode.
+-//
+-#include <compile.h>
+-#include <eval.h>
+-
+ using namespace std;
+ using namespace IcePy;
+ using namespace Slice;
+diff --color -ur zeroc-ice-3.6.5.orig/src/Util.cpp zeroc-ice-3.6.5/src/Util.cpp
+--- zeroc-ice-3.6.5.orig/src/Util.cpp 2019-07-31 21:49:38.000000000 +0200
++++ zeroc-ice-3.6.5/src/Util.cpp 2023-10-12 10:49:15.033366926 +0200
+@@ -214,7 +214,12 @@
+ //
+ // Get name of current function.
+ //
++ // Use PyEval_GetFrame with Pyhthon >= 3.11
++#if PY_VERSION_HEX >= 0x030B0000
++ PyFrameObject *f = PyEval_GetFrame();
++#else
+ PyFrameObject *f = PyThreadState_GET()->frame;
++#endif
+ PyObjectHandle code = PyObject_GetAttrString(reinterpret_cast<PyObject*>(f), STRCAST("f_code"));
+ assert(code.get());
+ PyObjectHandle func = PyObject_GetAttrString(code.get(), STRCAST("co_name"));
@@ -40633,7 +40633,10 @@ (define-public python-zeroc-ice-3.6
(uri (pypi-uri "zeroc-ice" version))
(sha256
(base32
- "0mikjfvq26kh8asnn9v55z41pap4c5ypymqnwwi4xkavc3mzyda2"))))))
+ "0mikjfvq26kh8asnn9v55z41pap4c5ypymqnwwi4xkavc3mzyda2"))
+ (patches
+ (search-patches
+ "python-zeroc-ice-3.6.5-python-3.11-support.patch"))))))
(define-public python-whenever
(package