git » pyside2.git » commit d60e6ae

Fix build with Python 3.10

author Evangelos Foutras
2021-12-01 13:44:48 UTC
committer Evangelos Foutras
2021-12-01 13:44:48 UTC
parent c417a13f6eac3e002e46ba65fcd8fd182e8066c5

Fix build with Python 3.10

PKGBUILD +9 -2
python310.patch +23 -0

diff --git a/PKGBUILD b/PKGBUILD
index 30dd422..4a5016b 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -34,8 +34,15 @@ conflicts=(python-pyside2)
 provides=(python-pyside2 qt5-python-bindings)
 replaces=(python-pyside2)
 _pkgfqn=pyside-setup-opensource-src-$_qtver
-source=("https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-$pkgver-src/${_pkgfqn}.tar.xz")
-sha256sums=('b306504b0b8037079a8eab772ee774b9e877a2d84bab2dbefbe4fa6f83941418')
+source=("https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-$pkgver-src/${_pkgfqn}.tar.xz"
+        python310.patch)
+sha256sums=('b306504b0b8037079a8eab772ee774b9e877a2d84bab2dbefbe4fa6f83941418'
+            'ae896a09d18ef215243175fce047d8c370ab4a2d77ed0022991ed70bd23a30d0')
+
+prepare() {
+  cd ${_pkgfqn}
+  patch -Np1 -i ../python310.patch
+}
 
 build() {
   cmake -B build -S ${_pkgfqn}/sources/pyside2 \
diff --git a/python310.patch b/python310.patch
new file mode 100644
index 0000000..fd70e1c
--- /dev/null
+++ b/python310.patch
@@ -0,0 +1,23 @@
+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:36:17.120806984 +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/pyside2/libpyside/feature_select.cpp pyside-setup-opensource-src-5.15.2/sources/pyside2/libpyside/feature_select.cpp
+--- pyside-setup-opensource-src-5.15.2.orig/sources/pyside2/libpyside/feature_select.cpp	2020-11-11 14:51:30.000000000 +0200
++++ pyside-setup-opensource-src-5.15.2/sources/pyside2/libpyside/feature_select.cpp	2021-12-01 15:39:40.356426568 +0200
+@@ -405,6 +405,8 @@ static inline PyObject *SelectFeatureSet
+             if (!SelectFeatureSetSubtype(sub_type, select_id))
+                 break;
+         }
++        // PYSIDE-1436: Clear all caches for the type and subtypes.
++        PyType_Modified(type);
+     }
+     return type->tp_dict;
+ }