From c13346731c63c56908e92226ec0cb1b803f1a84e Mon Sep 17 00:00:00 2001 From: Christoph Moench-Tegeder Date: Sun, 13 Dec 2020 22:24:13 +0000 Subject: [PATCH] try to make FreeCAD compile with Python 3.9 patch from upstream cannot be applied directly as dos2unix runs before patch. PR: 251145 Submitted by: Oleg Sidorkin --- cad/freecad/Makefile | 2 +- cad/freecad/distinfo | 2 +- cad/freecad/files/ae641dc5278efaf.patch | 186 ++++++++++++++++++++++++ 3 files changed, 188 insertions(+), 2 deletions(-) create mode 100644 cad/freecad/files/ae641dc5278efaf.patch diff --git a/cad/freecad/Makefile b/cad/freecad/Makefile index 5e9f2b229231..053c2d7299bb 100644 --- a/cad/freecad/Makefile +++ b/cad/freecad/Makefile @@ -2,7 +2,7 @@ PORTNAME= FreeCAD DISTVERSION= 0.18.5 -PORTREVISION= 1 +PORTREVISION= 2 # use these for bugfixes/snapshots # DISTVERSION= 0.18-16093 # git rev-list --count # DISTVERSIONSUFFIX= -g690774c0e diff --git a/cad/freecad/distinfo b/cad/freecad/distinfo index 6d4b3ea73ceb..23c233ba8ffb 100644 --- a/cad/freecad/distinfo +++ b/cad/freecad/distinfo @@ -1,4 +1,4 @@ -TIMESTAMP = 1606511424 +TIMESTAMP = 1607894358 SHA256 (FreeCAD-FreeCAD-0.18.5_GH0.tar.gz) = 592c552237effc7a658730718a7f5a94b3819cd7a2f1476a9858c2752a98540a SIZE (FreeCAD-FreeCAD-0.18.5_GH0.tar.gz) = 219762319 SHA256 (6eacb17b3e03d20.patch) = 3d2570c143825acd01b8eeb645fc450566e9ac20d6333de9e17cbc10fb5a13e0 diff --git a/cad/freecad/files/ae641dc5278efaf.patch b/cad/freecad/files/ae641dc5278efaf.patch new file mode 100644 index 000000000000..86858f478fca --- /dev/null +++ b/cad/freecad/files/ae641dc5278efaf.patch @@ -0,0 +1,186 @@ +dos2unix fixed variant of https://github.com/FreeCAD/FreeCAD/commit/ae641dc5278efaf.patch +From ae641dc5278efafa22b168fc196875558b92e436 Mon Sep 17 00:00:00 2001 +From: wmayer +Date: Sun, 7 Jun 2020 12:53:47 +0200 +Subject: [PATCH] Python: [skip ci] tp_print slot has been replaced with + tp_vectorcall_offset in Py3.8 + +--- + src/Base/swigpyrun_1.3.25.h | 8 ++++++++ + src/Base/swigpyrun_1.3.33.h | 8 ++++++++ + src/Base/swigpyrun_1.3.36.h | 9 +++++++++ + src/Base/swigpyrun_1.3.38.h | 8 ++++++++ + src/Base/swigpyrun_1.3.40.h | 12 ++++++++++-- + src/CXX/Python3/cxx_extensions.cxx | 6 ++++++ + 6 files changed, 49 insertions(+), 2 deletions(-) + +diff --git a/src/Base/swigpyrun_1.3.25.h b/src/Base/swigpyrun_1.3.25.h +index 91717210b48..9ebadbc83a2 100644 +--- a/src/Base/swigpyrun_1.3.25.h ++++ b/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 a/src/Base/swigpyrun_1.3.33.h b/src/Base/swigpyrun_1.3.33.h +index f83ac1e89c3..afd5a8c504f 100644 +--- a/src/Base/swigpyrun_1.3.33.h ++++ b/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 a/src/Base/swigpyrun_1.3.36.h b/src/Base/swigpyrun_1.3.36.h +index 02c58ad8ab9..12ad41e12a8 100644 +--- a/src/Base/swigpyrun_1.3.36.h ++++ b/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 a/src/Base/swigpyrun_1.3.38.h b/src/Base/swigpyrun_1.3.38.h +index dae058c202f..7cacc157970 100644 +--- a/src/Base/swigpyrun_1.3.38.h ++++ b/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 a/src/Base/swigpyrun_1.3.40.h b/src/Base/swigpyrun_1.3.40.h +index 136ba809fb7..400db8b4784 100644 +--- a/src/Base/swigpyrun_1.3.40.h ++++ b/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 a/src/CXX/Python3/cxx_extensions.cxx b/src/CXX/Python3/cxx_extensions.cxx +index fb3da455f5b..9ff94612f07 100644 +--- a/src/CXX/Python3/cxx_extensions.cxx ++++ b/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