From 0209f704629a670b0e466c6e97fd83d9e2e64f7a Mon Sep 17 00:00:00 2001 From: "Andrew J. Hesford" Date: Wed, 7 Oct 2020 09:54:59 -0400 Subject: [PATCH] freecad: rebuild for Python 3.9 --- srcpkgs/freecad/patches/091-py39.patch | 174 +++++++++++++++++++++++++ srcpkgs/freecad/template | 2 +- 2 files changed, 175 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/freecad/patches/091-py39.patch diff --git a/srcpkgs/freecad/patches/091-py39.patch b/srcpkgs/freecad/patches/091-py39.patch new file mode 100644 index 00000000000..d03bb03adb2 --- /dev/null +++ b/srcpkgs/freecad/patches/091-py39.patch @@ -0,0 +1,174 @@ +Fix for Python 3.9 + +https://github.com/FreeCAD/FreeCAD/commit/ae641dc5278efafa22b168fc196875558b92e436 + +diff --git src/Base/swigpyrun_1.3.25.h src/Base/swigpyrun_1.3.25.h +index 91717210b..9ebadbc83 100644 +--- src/Base/swigpyrun_1.3.25.h ++++ src/Base/swigpyrun_1.3.25.h +@@ -699,7 +699,11 @@ PySwigObject_type(void) { + 0, /*tp_itemsize*/ + /* methods */ + (destructor)PySwigObject_dealloc, /*tp_dealloc*/ ++#if PY_VERSION_HEX < 0x03080000 + (printfunc)PySwigObject_print, /*tp_print*/ ++#else ++ 0, /*tp_vectorcall_offset*/ ++#endif + (getattrfunc)0, /*tp_getattr*/ + (setattrfunc)0, /*tp_setattr*/ + (cmpfunc)PySwigObject_compare, /*tp_compare*/ +@@ -859,7 +863,11 @@ PySwigPacked_type(void) { + 0, /*tp_itemsize*/ + /* methods */ + (destructor)PySwigPacked_dealloc, /*tp_dealloc*/ ++#if PY_VERSION_HEX < 0x03080000 + (printfunc)PySwigPacked_print, /*tp_print*/ ++#else ++ 0, /*tp_vectorcall_offset*/ ++#endif + (getattrfunc)0, /*tp_getattr*/ + (setattrfunc)0, /*tp_setattr*/ + (cmpfunc)PySwigPacked_compare, /*tp_compare*/ +diff --git src/Base/swigpyrun_1.3.33.h src/Base/swigpyrun_1.3.33.h +index f83ac1e89..afd5a8c50 100644 +--- src/Base/swigpyrun_1.3.33.h ++++ src/Base/swigpyrun_1.3.33.h +@@ -1620,7 +1620,11 @@ _PySwigObject_type(void) { + sizeof(PySwigObject), /* tp_basicsize */ + 0, /* tp_itemsize */ + (destructor)PySwigObject_dealloc, /* tp_dealloc */ ++#if PY_VERSION_HEX < 0x03080000 + (printfunc)PySwigObject_print, /* tp_print */ ++#else ++ 0, /*tp_vectorcall_offset*/ ++#endif + #if PY_VERSION_HEX < 0x02020000 + (getattrfunc)PySwigObject_getattr, /* tp_getattr */ + #else +@@ -1790,7 +1794,11 @@ _PySwigPacked_type(void) { + sizeof(PySwigPacked), /* tp_basicsize */ + 0, /* tp_itemsize */ + (destructor)PySwigPacked_dealloc, /* tp_dealloc */ ++#if PY_VERSION_HEX < 0x03080000 + (printfunc)PySwigPacked_print, /* tp_print */ ++#else ++ 0, /*tp_vectorcall_offset*/ ++#endif + (getattrfunc)0, /* tp_getattr */ + (setattrfunc)0, /* tp_setattr */ + (cmpfunc)PySwigPacked_compare, /* tp_compare */ +diff --git src/Base/swigpyrun_1.3.36.h src/Base/swigpyrun_1.3.36.h +index 02c58ad8a..12ad41e12 100644 +--- src/Base/swigpyrun_1.3.36.h ++++ src/Base/swigpyrun_1.3.36.h +@@ -1628,7 +1628,12 @@ _PySwigObject_type(void) { + sizeof(PySwigObject), /* tp_basicsize */ + 0, /* tp_itemsize */ + (destructor)PySwigObject_dealloc, /* tp_dealloc */ ++#if PY_VERSION_HEX < 0x03080000 + (printfunc)PySwigObject_print, /* tp_print */ ++#else ++ 0, /*tp_vectorcall_offset*/ ++#endif ++ + #if PY_VERSION_HEX < 0x02020000 + (getattrfunc)PySwigObject_getattr, /* tp_getattr */ + #else +@@ -1798,7 +1803,11 @@ _PySwigPacked_type(void) { + sizeof(PySwigPacked), /* tp_basicsize */ + 0, /* tp_itemsize */ + (destructor)PySwigPacked_dealloc, /* tp_dealloc */ ++#if PY_VERSION_HEX < 0x03080000 + (printfunc)PySwigPacked_print, /* tp_print */ ++#else ++ 0, /*tp_vectorcall_offset*/ ++#endif + (getattrfunc)0, /* tp_getattr */ + (setattrfunc)0, /* tp_setattr */ + (cmpfunc)PySwigPacked_compare, /* tp_compare */ +diff --git src/Base/swigpyrun_1.3.38.h src/Base/swigpyrun_1.3.38.h +index dae058c20..7cacc1579 100644 +--- src/Base/swigpyrun_1.3.38.h ++++ src/Base/swigpyrun_1.3.38.h +@@ -1741,7 +1741,11 @@ _PySwigObject_type(void) { + sizeof(SwigPyObject), /* tp_basicsize */ + 0, /* tp_itemsize */ + (destructor)SwigPyObject_dealloc, /* tp_dealloc */ ++#if PY_VERSION_HEX < 0x03080000 + (printfunc)SwigPyObject_print, /* tp_print */ ++#else ++ 0, /*tp_vectorcall_offset*/ ++#endif + #if PY_VERSION_HEX < 0x02020000 + (getattrfunc)SwigPyObject_getattr, /* tp_getattr */ + #else +@@ -1919,7 +1923,11 @@ _PySwigPacked_type(void) { + sizeof(SwigPyPacked), /* tp_basicsize */ + 0, /* tp_itemsize */ + (destructor)SwigPyPacked_dealloc, /* tp_dealloc */ ++#if PY_VERSION_HEX < 0x03080000 + (printfunc)SwigPyPacked_print, /* tp_print */ ++#else ++ 0, /*tp_vectorcall_offset*/ ++#endif + (getattrfunc)0, /* tp_getattr */ + (setattrfunc)0, /* tp_setattr */ + (cmpfunc)SwigPyPacked_compare, /* tp_compare */ +diff --git src/Base/swigpyrun_1.3.40.h src/Base/swigpyrun_1.3.40.h +index 136ba809f..400db8b47 100644 +--- src/Base/swigpyrun_1.3.40.h ++++ src/Base/swigpyrun_1.3.40.h +@@ -1766,7 +1766,11 @@ _PySwigObject_type(void) { + sizeof(SwigPyObject), /* tp_basicsize */ + 0, /* tp_itemsize */ + (destructor)SwigPyObject_dealloc, /* tp_dealloc */ ++#if PY_VERSION_HEX < 0x03080000 + (printfunc)SwigPyObject_print, /* tp_print */ ++#else ++ 0, /*tp_vectorcall_offset*/ ++#endif + #if PY_VERSION_HEX < 0x02020000 + (getattrfunc)SwigPyObject_getattr, /* tp_getattr */ + #else +@@ -1947,8 +1951,12 @@ _PySwigPacked_type(void) { + (char *)"SwigPyPacked", /* tp_name */ + sizeof(SwigPyPacked), /* tp_basicsize */ + 0, /* tp_itemsize */ +- (destructor)SwigPyPacked_dealloc, /* tp_dealloc */ +- (printfunc)SwigPyPacked_print, /* tp_print */ ++ (destructor)SwigPyPacked_dealloc, /* tp_dealloc */ ++#if PY_VERSION_HEX < 0x03080000 ++ (printfunc)SwigPyPacked_print, /* tp_print */ ++#else ++ 0, /*tp_vectorcall_offset*/ ++#endif + (getattrfunc)0, /* tp_getattr */ + (setattrfunc)0, /* tp_setattr */ + #if PY_VERSION_HEX>=0x03000000 +diff --git src/CXX/Python3/cxx_extensions.cxx src/CXX/Python3/cxx_extensions.cxx +index fb3da455f..9ff94612f 100644 +--- src/CXX/Python3/cxx_extensions.cxx ++++ src/CXX/Python3/cxx_extensions.cxx +@@ -381,7 +381,11 @@ PythonType::PythonType( size_t basic_size, int itemsize, const char *default_nam + + // Methods to implement standard operations + table->tp_dealloc = (destructor)standard_dealloc; ++#if PY_VERSION_HEX < 0x03080000 + table->tp_print = 0; ++#else ++ table->tp_vectorcall_offset = 0; ++#endif + table->tp_getattr = 0; + table->tp_setattr = 0; + table->tp_repr = 0; +@@ -524,7 +528,9 @@ PythonType &PythonType::supportClass() + #ifdef PYCXX_PYTHON_2TO3 + PythonType &PythonType::supportPrint() + { ++#if PY_VERSION_HEX < 0x03080000 + table->tp_print = print_handler; ++#endif + return *this; + } + #endif diff --git a/srcpkgs/freecad/template b/srcpkgs/freecad/template index 8a36d1a38e4..76d6df64724 100644 --- a/srcpkgs/freecad/template +++ b/srcpkgs/freecad/template @@ -1,7 +1,7 @@ # Template file for 'freecad' pkgname=freecad version=0.18.4 -revision=8 +revision=9 wrksrc="FreeCAD-${version}" build_style=cmake