summaryrefslogtreecommitdiff
path: root/skip/python-pyside2/python-3.10.patch
blob: 0e8b0f2d803830824631d4f14df6bd8de70ada24 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# Based on:
# https://github.com/pyside/pyside-setup/commit/81e9cff884d6
# https://github.com/pyside/pyside-setup/commit/2530cb3f165a

diff -upr pyside-setup-opensource-src-5.15.2.orig/build_scripts/config.py pyside-setup-opensource-src-5.15.2/build_scripts/config.py
--- pyside-setup-opensource-src-5.15.2.orig/build_scripts/config.py	2020-11-11 14:51:30.000000000 +0200
+++ pyside-setup-opensource-src-5.15.2/build_scripts/config.py	2021-12-01 15:15:52.323808457 +0200
@@ -93,6 +93,7 @@ class Config(object):
             'Programming Language :: Python :: 3.7',
             'Programming Language :: Python :: 3.8',
             'Programming Language :: Python :: 3.9',
+            'Programming Language :: Python :: 3.10',
         ]
 
         self.setup_script_dir = None
diff -upr pyside-setup-opensource-src-5.15.2.orig/sources/shiboken2/libshiboken/pep384impl.cpp pyside-setup-opensource-src-5.15.2/sources/shiboken2/libshiboken/pep384impl.cpp
--- pyside-setup-opensource-src-5.15.2.orig/sources/shiboken2/libshiboken/pep384impl.cpp	2020-11-11 14:51:30.000000000 +0200
+++ pyside-setup-opensource-src-5.15.2/sources/shiboken2/libshiboken/pep384impl.cpp	2021-12-01 15:17:21.444888977 +0200
@@ -751,14 +751,14 @@ _Pep_PrivateMangle(PyObject *self, PyObj
 #endif // IS_PY2
     Shiboken::AutoDecRef privateobj(PyObject_GetAttr(
         reinterpret_cast<PyObject *>(Py_TYPE(self)), Shiboken::PyMagicName::name()));
-#ifndef Py_LIMITED_API
-    return _Py_Mangle(privateobj, name);
-#else
-    // For some reason, _Py_Mangle is not in the Limited API. Why?
-    size_t plen = PyUnicode_GET_LENGTH(privateobj);
+
+    // PYSIDE-1436: _Py_Mangle is no longer exposed; implement it always.
+    // The rest of this function is our own implementation of _Py_Mangle.
+    // Please compare the original function in compile.c .
+    size_t plen = PyUnicode_GET_LENGTH(privateobj.object());
     /* Strip leading underscores from class name */
     size_t ipriv = 0;
-    while (PyUnicode_READ_CHAR(privateobj, ipriv) == '_')
+    while (PyUnicode_READ_CHAR(privateobj.object(), ipriv) == '_')
         ipriv++;
     if (ipriv == plen) {
         Py_INCREF(name);
@@ -787,7 +787,6 @@ _Pep_PrivateMangle(PyObject *self, PyObj
     if (amount > big_stack)
         free(resbuf);
     return result;
-#endif // else Py_LIMITED_API
 }
 
 /*****************************************************************************
diff -upr pyside-setup-opensource-src-5.15.2.orig/sources/shiboken2/libshiboken/pep384impl.h pyside-setup-opensource-src-5.15.2/sources/shiboken2/libshiboken/pep384impl.h
--- pyside-setup-opensource-src-5.15.2.orig/sources/shiboken2/libshiboken/pep384impl.h	2020-11-11 14:51:30.000000000 +0200
+++ pyside-setup-opensource-src-5.15.2/sources/shiboken2/libshiboken/pep384impl.h	2021-12-01 15:13:58.899521842 +0200
@@ -40,6 +40,11 @@
 #ifndef PEP384IMPL_H
 #define PEP384IMPL_H
 
+// PYSIDE-1436: Adapt to Python 3.10
+#if PY_VERSION_HEX < 0x030900A4
+#  define Py_SET_REFCNT(obj, refcnt) ((Py_REFCNT(obj) = (refcnt)), (void)0)
+#endif
+
 extern "C"
 {
 
@@ -327,7 +332,7 @@ LIBSHIBOKEN_API PyObject *PyRun_String(c
 // But this is no problem as we check it's validity for every version.
 
 #define PYTHON_BUFFER_VERSION_COMPATIBLE    (PY_VERSION_HEX >= 0x03030000 && \
-                                             PY_VERSION_HEX <  0x0309FFFF)
+                                             PY_VERSION_HEX <  0x030AFFFF)
 #if !PYTHON_BUFFER_VERSION_COMPATIBLE
 # error Please check the buffer compatibility for this python version!
 #endif
diff -upr pyside-setup-opensource-src-5.15.2.orig/sources/shiboken2/libshiboken/sbkstring.cpp pyside-setup-opensource-src-5.15.2/sources/shiboken2/libshiboken/sbkstring.cpp
--- pyside-setup-opensource-src-5.15.2.orig/sources/shiboken2/libshiboken/sbkstring.cpp	2020-11-11 14:51:30.000000000 +0200
+++ pyside-setup-opensource-src-5.15.2/sources/shiboken2/libshiboken/sbkstring.cpp	2021-12-01 15:14:47.703201473 +0200
@@ -247,7 +247,7 @@ static void finalizeStaticStrings()
 {
     auto &set = staticStrings();
     for (PyObject *ob : set) {
-        Py_REFCNT(ob) = 1;
+        Py_SET_REFCNT(ob, 1);
         Py_DECREF(ob);
     }
     set.clear();
diff -upr pyside-setup-opensource-src-5.15.2.orig/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/mapping.py pyside-setup-opensource-src-5.15.2/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/mapping.py
--- pyside-setup-opensource-src-5.15.2.orig/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/mapping.py	2020-11-11 14:51:30.000000000 +0200
+++ pyside-setup-opensource-src-5.15.2/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/mapping.py	2021-12-01 15:15:14.560100869 +0200
@@ -300,6 +300,7 @@ type_map.update({
     "zero(object)": None,
     "zero(str)": "",
     "zero(typing.Any)": None,
+    "zero(Any)": None,
     })
 
 type_map.update({
diff -upr pyside-setup-opensource-src-5.15.2.orig/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/parser.py pyside-setup-opensource-src-5.15.2/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/parser.py
--- pyside-setup-opensource-src-5.15.2.orig/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/parser.py	2020-11-11 14:51:30.000000000 +0200
+++ pyside-setup-opensource-src-5.15.2/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/parser.py	2021-12-01 15:25:43.267843740 +0200
@@ -43,10 +43,11 @@ import sys
 import re
 import warnings
 import types
+import typing
 import keyword
 import functools
 from shibokensupport.signature.mapping import (type_map, update_mapping,
-    namespace, typing, _NotCalled, ResultVariable, ArrayLikeVariable)
+    namespace, _NotCalled, ResultVariable, ArrayLikeVariable)
 from shibokensupport.signature.lib.tool import (SimpleNamespace,
     build_brace_pattern)
 
@@ -222,7 +223,7 @@ def _resolve_arraytype(thing, line):
 def to_string(thing):
     if isinstance(thing, str):
         return thing
-    if hasattr(thing, "__name__"):
+    if hasattr(thing, "__name__") and thing.__module__ != "typing":
         dot = "." in str(thing)
         name = get_name(thing)
         return thing.__module__ + "." + name if dot else name