commit:     448215ed366bed91445ad383572a9e3eb9f25e74
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sat Jun  6 12:09:39 2020 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sat Jun  6 13:17:00 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=448215ed

sci-libs/vtk: python3_8

Package-Manager: Portage-2.3.100, Repoman-2.3.22
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 sci-libs/vtk/files/vtk-8.2.0-py38.patch | 175 ++++++++++++++++++++++++++++++++
 sci-libs/vtk/vtk-8.2.0.ebuild           |   3 +-
 2 files changed, 177 insertions(+), 1 deletion(-)

diff --git a/sci-libs/vtk/files/vtk-8.2.0-py38.patch 
b/sci-libs/vtk/files/vtk-8.2.0-py38.patch
new file mode 100644
index 00000000000..c4c235dafd3
--- /dev/null
+++ b/sci-libs/vtk/files/vtk-8.2.0-py38.patch
@@ -0,0 +1,175 @@
+From 257b9d7b18d5f3db3fe099dc18f230e23f7dfbab Mon Sep 17 00:00:00 2001
+From: David Gobbi <[email protected]>
+Date: Tue, 20 Aug 2019 17:02:24 -0600
+Subject: [PATCH] Compatibility for Python 3.8
+
+The PyTypeObject struct was modified in Python 3.8, this change is
+required to avoid compile errors.
+---
+ .../PythonInterpreter/vtkPythonStdStreamCaptureHelper.h   | 6 ++++++
+ Wrapping/PythonCore/PyVTKMethodDescriptor.cxx             | 2 +-
+ Wrapping/PythonCore/PyVTKNamespace.cxx                    | 2 +-
+ Wrapping/PythonCore/PyVTKReference.cxx                    | 8 ++++----
+ Wrapping/PythonCore/PyVTKTemplate.cxx                     | 2 +-
+ Wrapping/PythonCore/vtkPythonCompatibility.h              | 8 +++++++-
+ Wrapping/Tools/vtkWrapPythonClass.c                       | 2 +-
+ Wrapping/Tools/vtkWrapPythonEnum.c                        | 2 +-
+ Wrapping/Tools/vtkWrapPythonType.c                        | 2 +-
+ 9 files changed, 23 insertions(+), 11 deletions(-)
+
+diff --git a/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h 
b/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h
+index b1c12c83de..14ccfbe928 100644
+--- a/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h
++++ b/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h
+@@ -140,6 +140,12 @@ static PyTypeObject vtkPythonStdStreamCaptureHelperType = 
{
+ #if PY_VERSION_HEX >= 0x03040000
+   0, // tp_finalize
+ #endif
++#if PY_VERSION_HEX >= 0x03080000
++  0, // tp_vectorcall
++#if PY_VERSION_HEX < 0x03090000
++  0, // tp_print
++#endif
++#endif
+ };
+ 
+ static PyObject* vtkWrite(PyObject* self, PyObject* args)
+diff --git a/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx 
b/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx
+index 2b0d443537..3840038498 100644
+--- a/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx
++++ b/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx
+@@ -186,7 +186,7 @@ PyTypeObject PyVTKMethodDescriptor_Type = {
+   sizeof(PyMethodDescrObject),           // tp_basicsize
+   0,                                     // tp_itemsize
+   PyVTKMethodDescriptor_Delete,          // tp_dealloc
+-  nullptr,                               // tp_print
++  0,                                     // tp_vectorcall_offset
+   nullptr,                               // tp_getattr
+   nullptr,                               // tp_setattr
+   nullptr,                               // tp_compare
+diff --git a/Wrapping/PythonCore/PyVTKNamespace.cxx 
b/Wrapping/PythonCore/PyVTKNamespace.cxx
+index 71ee2a3516..5cf5bfbe6b 100644
+--- a/Wrapping/PythonCore/PyVTKNamespace.cxx
++++ b/Wrapping/PythonCore/PyVTKNamespace.cxx
+@@ -49,7 +49,7 @@ PyTypeObject PyVTKNamespace_Type = {
+   0,                                     // tp_basicsize
+   0,                                     // tp_itemsize
+   PyVTKNamespace_Delete,                 // tp_dealloc
+-  nullptr,                               // tp_print
++  0,                                     // tp_vectorcall_offset
+   nullptr,                               // tp_getattr
+   nullptr,                               // tp_setattr
+   nullptr,                               // tp_compare
+diff --git a/Wrapping/PythonCore/PyVTKReference.cxx 
b/Wrapping/PythonCore/PyVTKReference.cxx
+index 943ac71080..b7104091c0 100644
+--- a/Wrapping/PythonCore/PyVTKReference.cxx
++++ b/Wrapping/PythonCore/PyVTKReference.cxx
+@@ -1010,7 +1010,7 @@ PyTypeObject PyVTKReference_Type = {
+   sizeof(PyVTKReference),                // tp_basicsize
+   0,                                     // tp_itemsize
+   PyVTKReference_Delete,                 // tp_dealloc
+-  nullptr,                               // tp_print
++  0,                                     // tp_vectorcall_offset
+   nullptr,                               // tp_getattr
+   nullptr,                               // tp_setattr
+   nullptr,                               // tp_compare
+@@ -1067,7 +1067,7 @@ PyTypeObject PyVTKNumberReference_Type = {
+   sizeof(PyVTKReference),                // tp_basicsize
+   0,                                     // tp_itemsize
+   PyVTKReference_Delete,                 // tp_dealloc
+-  nullptr,                               // tp_print
++  0,                                     // tp_vectorcall_offset
+   nullptr,                               // tp_getattr
+   nullptr,                               // tp_setattr
+   nullptr,                               // tp_compare
+@@ -1124,7 +1124,7 @@ PyTypeObject PyVTKStringReference_Type = {
+   sizeof(PyVTKReference),                // tp_basicsize
+   0,                                     // tp_itemsize
+   PyVTKReference_Delete,                 // tp_dealloc
+-  nullptr,                               // tp_print
++  0,                                     // tp_vectorcall_offset
+   nullptr,                               // tp_getattr
+   nullptr,                               // tp_setattr
+   nullptr,                               // tp_compare
+@@ -1181,7 +1181,7 @@ PyTypeObject PyVTKTupleReference_Type = {
+   sizeof(PyVTKReference),                // tp_basicsize
+   0,                                     // tp_itemsize
+   PyVTKReference_Delete,                 // tp_dealloc
+-  nullptr,                               // tp_print
++  0,                                     // tp_vectorcall_offset
+   nullptr,                               // tp_getattr
+   nullptr,                               // tp_setattr
+   nullptr,                               // tp_compare
+diff --git a/Wrapping/PythonCore/PyVTKTemplate.cxx 
b/Wrapping/PythonCore/PyVTKTemplate.cxx
+index be200985b3..340fe7953b 100644
+--- a/Wrapping/PythonCore/PyVTKTemplate.cxx
++++ b/Wrapping/PythonCore/PyVTKTemplate.cxx
+@@ -268,7 +268,7 @@ PyTypeObject PyVTKTemplate_Type = {
+   0,                                     // tp_basicsize
+   0,                                     // tp_itemsize
+   nullptr,                               // tp_dealloc
+-  nullptr,                               // tp_print
++  0,                                     // tp_vectorcall_offset
+   nullptr,                               // tp_getattr
+   nullptr,                               // tp_setattr
+   nullptr,                               // tp_compare
+diff --git a/Wrapping/PythonCore/vtkPythonCompatibility.h 
b/Wrapping/PythonCore/vtkPythonCompatibility.h
+index 4a767844a6..be208faeef 100644
+--- a/Wrapping/PythonCore/vtkPythonCompatibility.h
++++ b/Wrapping/PythonCore/vtkPythonCompatibility.h
+@@ -64,7 +64,13 @@
+ #endif
+ 
+ // PyTypeObject compatibility
+-#if PY_VERSION_HEX >= 0x03040000
++#if PY_VERSION_HEX >= 0x03090000
++#define VTK_WRAP_PYTHON_SUPPRESS_UNINITIALIZED \
++  0, 0, 0, 0,
++#elif PY_VERSION_HEX >= 0x03080000
++#define VTK_WRAP_PYTHON_SUPPRESS_UNINITIALIZED \
++  0, 0, 0, 0, 0,
++#elif PY_VERSION_HEX >= 0x03040000
+ #define VTK_WRAP_PYTHON_SUPPRESS_UNINITIALIZED \
+   0, 0, 0,
+ #else
+diff --git a/Wrapping/Tools/vtkWrapPythonClass.c 
b/Wrapping/Tools/vtkWrapPythonClass.c
+index b1e45f8e80..4d558ea081 100644
+--- a/Wrapping/Tools/vtkWrapPythonClass.c
++++ b/Wrapping/Tools/vtkWrapPythonClass.c
+@@ -521,7 +521,7 @@ void vtkWrapPython_GenerateObjectType(
+     "  sizeof(PyVTKObject), // tp_basicsize\n"
+     "  0, // tp_itemsize\n"
+     "  PyVTKObject_Delete, // tp_dealloc\n"
+-    "  nullptr, // tp_print\n"
++    "  0, // tp_vectorcall_offset\n"
+     "  nullptr, // tp_getattr\n"
+     "  nullptr, // tp_setattr\n"
+     "  nullptr, // tp_compare\n"
+diff --git a/Wrapping/Tools/vtkWrapPythonEnum.c 
b/Wrapping/Tools/vtkWrapPythonEnum.c
+index b933702242..1249362854 100644
+--- a/Wrapping/Tools/vtkWrapPythonEnum.c
++++ b/Wrapping/Tools/vtkWrapPythonEnum.c
+@@ -145,7 +145,7 @@ void vtkWrapPython_GenerateEnumType(
+     "  sizeof(PyIntObject), // tp_basicsize\n"
+     "  0, // tp_itemsize\n"
+     "  nullptr, // tp_dealloc\n"
+-    "  nullptr, // tp_print\n"
++    "  0, // tp_vectorcall_offset\n"
+     "  nullptr, // tp_getattr\n"
+     "  nullptr, // tp_setattr\n"
+     "  nullptr, // tp_compare\n"
+diff --git a/Wrapping/Tools/vtkWrapPythonType.c 
b/Wrapping/Tools/vtkWrapPythonType.c
+index 744cb1b9d3..0a1375e541 100644
+--- a/Wrapping/Tools/vtkWrapPythonType.c
++++ b/Wrapping/Tools/vtkWrapPythonType.c
+@@ -709,7 +709,7 @@ void vtkWrapPython_GenerateSpecialType(
+     "  sizeof(PyVTKSpecialObject), // tp_basicsize\n"
+     "  0, // tp_itemsize\n"
+     "  Py%s_Delete, // tp_dealloc\n"
+-    "  nullptr, // tp_print\n"
++    "  0, // tp_vectorcall_offset\n"
+     "  nullptr, // tp_getattr\n"
+     "  nullptr, // tp_setattr\n"
+     "  nullptr, // tp_compare\n"
+-- 
+2.21.0

diff --git a/sci-libs/vtk/vtk-8.2.0.ebuild b/sci-libs/vtk/vtk-8.2.0.ebuild
index 127d1b0e81e..ea05c1e5549 100644
--- a/sci-libs/vtk/vtk-8.2.0.ebuild
+++ b/sci-libs/vtk/vtk-8.2.0.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=7
 
-PYTHON_COMPAT=( python3_{6,7} )
+PYTHON_COMPAT=( python3_{6,7,8} )
 WEBAPP_OPTIONAL=yes
 WEBAPP_MANUAL_SLOT=yes
 
@@ -128,6 +128,7 @@ PATCHES=(
        "${FILESDIR}"/${P}-qt-5.15.patch # bug 726960
        "${FILESDIR}"/${P}-gcc-10.patch # bug 723374
        "${FILESDIR}"/${P}-fno-common.patch # bug 721048
+       "${FILESDIR}"/${P}-py38.patch
 )
 
 RESTRICT="test"

Reply via email to