summaryrefslogtreecommitdiff
path: root/dev-python/pyside2/files/pyside2-5.15.2-python311-fixups.patch
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-07-09 15:43:36 +0100
committerV3n3RiX <venerix@koprulu.sector>2022-07-09 15:43:36 +0100
commit2719f73b6813d11d13a9650cdd2ab8ec6e69385d (patch)
tree8c816148bcbd22757d892089c989ae614eae4f5a /dev-python/pyside2/files/pyside2-5.15.2-python311-fixups.patch
parent0f558761aa2dee1017b4751e4017205e015a9560 (diff)
gentoo resync : 09.07.2022
Diffstat (limited to 'dev-python/pyside2/files/pyside2-5.15.2-python311-fixups.patch')
-rw-r--r--dev-python/pyside2/files/pyside2-5.15.2-python311-fixups.patch54
1 files changed, 54 insertions, 0 deletions
diff --git a/dev-python/pyside2/files/pyside2-5.15.2-python311-fixups.patch b/dev-python/pyside2/files/pyside2-5.15.2-python311-fixups.patch
new file mode 100644
index 000000000000..d91b0b6806ca
--- /dev/null
+++ b/dev-python/pyside2/files/pyside2-5.15.2-python311-fixups.patch
@@ -0,0 +1,54 @@
+The Fedora / upstream fixes (shiboken2-5.15.2-python311.patch) end up breaking
+Python 3.8 compatibility (maybe 3.9 too, but didn't get that far).
+
+Wrap them with PY_VERSION_HEX for Python 3.11.
+--- a/libpyside/pysideqflags.cpp
++++ b/libpyside/pysideqflags.cpp
+@@ -187,7 +187,12 @@ namespace QFlags
+ }
+ newspec.slots = SbkNewQFlagsType_spec.slots;
+ PyTypeObject *type = (PyTypeObject *)SbkType_FromSpec(&newspec);
+- Py_SET_TYPE(type, &PyType_Type);
++
++ #if PY_VERSION_HEX < 0x030B00A1
++ Py_TYPE(type) = &PyType_Type;
++ #else
++ Py_SET_TYPE(type, &PyType_Type);
++ #endif
+
+ PySideQFlagsType *flagsType = reinterpret_cast<PySideQFlagsType *>(type);
+ PepType_PFTP(flagsType)->converterPtr = &PepType_PFTP(flagsType)->converter;
+--- a/libpyside/pysidesignal.cpp
++++ b/libpyside/pysidesignal.cpp
+@@ -162,7 +162,13 @@ PyTypeObject *PySideSignalTypeF(void)
+ if (!type) {
+ type = reinterpret_cast<PyTypeObject *>(SbkType_FromSpec(&PySideSignalType_spec));
+ PyTypeObject *hold = Py_TYPE(type);
+- Py_SET_TYPE(type, PySideMetaSignalTypeF());
++
++ #if PY_VERSION_HEX < 0x030B00A1
++ Py_TYPE(type) = PySideMetaSignalTypeF();
++ #else
++ Py_SET_TYPE(type, PySideMetaSignalTypeF());
++ #endif
++
+ Py_INCREF(Py_TYPE(type));
+ Py_DECREF(hold);
+ }
+--- a/libpyside/pysideweakref.cpp
++++ b/libpyside/pysideweakref.cpp
+@@ -90,7 +90,13 @@ PyObject *create(PyObject *obj, PySideWeakRefFunction func, void *userData)
+
+ if (Py_TYPE(PySideCallableObjectTypeF()) == 0)
+ {
+- Py_SET_TYPE(PySideCallableObjectTypeF(), &PyType_Type);
++
++ #if PY_VERSION_HEX < 0x030B00A1
++ Py_TYPE(PySideCallableObjectTypeF()) = &PyType_Type;
++ #else
++ Py_SET_TYPE(PySideCallableObjectTypeF(), &PyType_Type);
++ #endif
++
+ PyType_Ready(PySideCallableObjectTypeF());
+ }
+