Date: Wednesday, April 12, 2023 @ 16:53:31
  Author: arojas
Revision: 473990

archrelease: copy trunk to staging-x86_64

Added:
  pyside2/repos/staging-x86_64/PKGBUILD
    (from rev 473989, pyside2/trunk/PKGBUILD)
  pyside2/repos/staging-x86_64/fix-build.patch
    (from rev 473989, pyside2/trunk/fix-build.patch)
  pyside2/repos/staging-x86_64/limited-api.patch
    (from rev 473989, pyside2/trunk/limited-api.patch)
  pyside2/repos/staging-x86_64/python3.11.patch
    (from rev 473989, pyside2/trunk/python3.11.patch)
Deleted:
  pyside2/repos/staging-x86_64/PKGBUILD
  pyside2/repos/staging-x86_64/fix-build.patch
  pyside2/repos/staging-x86_64/limited-api.patch
  pyside2/repos/staging-x86_64/python3.11.patch

-------------------+
 PKGBUILD          |  235 +++++++++++++++++++------------------
 fix-build.patch   |   24 +--
 limited-api.patch |   22 +--
 python3.11.patch  |  322 ++++++++++++++++++++++++++--------------------------
 4 files changed, 302 insertions(+), 301 deletions(-)

Deleted: PKGBUILD
===================================================================
--- PKGBUILD    2023-04-12 16:53:09 UTC (rev 473989)
+++ PKGBUILD    2023-04-12 16:53:31 UTC (rev 473990)
@@ -1,117 +0,0 @@
-# Maintainer: Antonio Rojas <[email protected]>
-# Maintainer: Felix Yan <[email protected]>
-
-pkgbase=pyside2
-pkgname=(shiboken2 python-shiboken2 pyside2 pyside2-tools)
-_qtver=5.15.9
-_clangver=15.0.7
-pkgver=${_qtver/-/}
-pkgrel=2
-arch=(x86_64)
-url='https://www.qt.io'
-license=(LGPL)
-makedepends=(cmake python-setuptools llvm clang=$_clangver
-             qt5-multimedia qt5-tools qt5-sensors qt5-charts qt5-webengine 
qt5-datavis3d
-             qt5-websockets qt5-speech qt5-3d qt5-svg qt5-script qt5-scxml 
qt5-x11extras
-             qt5-quickcontrols2 qt5-serialport qt5-remoteobjects 
qt5-xmlpatterns)
-optdepends=('qt5-svg: QtSvg bindings'
-            'qt5-script: QtScript bindings'
-            'qt5-speech: QtTextToSpeech bindings'
-            'qt5-websockets: QtWebSockets bindings'
-            'qt5-webengine: QtWebEngine bindings'
-            'qt5-datavis3d: QtDataVisualization bindings'
-            'qt5-scxml: QtScxml bindings'
-            'qt5-sensors: QtSensors bindings'
-            'qt5-3d: Qt3D bindings'
-            'qt5-x11extras: QtX11Extras bindings'
-            'qt5-charts: QtCharts bindings'
-            'qt5-tools: QtHelp bindings'
-            'qt5-remoteobjects: QtRemoteObjects bindings'
-            'qt5-serialport: QtSerialPort bindings'
-            'qt5-quickcontrols2: QtQuickControls2 bindings')
-_pkgfqn=pyside-setup-opensource-src-$_qtver
-source=(https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-$pkgver-src/${_pkgfqn}.tar.xz
-        fix-build.patch
-        limited-api.patch
-        python3.11.patch)
-sha256sums=('2ea5917652036a9007d66ba4dc0aa75f381a3a25ccf0fa70fa2d9e9c8c9dacae'
-            '4f8815840b5df2e1e3b9f201a3402126821b0d9702920cefdc18050639143ad1'
-            '9d9b0d74b5159dbafd9e3c4cd794d84b671c299edab3cac1660f094e9a8791ea'
-            'e91549f7d3da412e864af26f604d0023b80233a7165f50fa21e53cbe861db886')
-
-prepare() {
-  patch -d $_pkgfqn -p1 < fix-build.patch
-  patch -d $_pkgfqn -p1 < limited-api.patch
-  patch -d $_pkgfqn -p1 < python3.11.patch # Fix build with Python 3.11
-}
-
-build() {
-  cmake -B build -S $_pkgfqn \
-    -DCMAKE_INSTALL_PREFIX=/usr \
-    -DCMAKE_BUILD_TYPE=None \
-    -DBUILD_TESTS=OFF \
-    -DPYTHON_EXECUTABLE=/usr/bin/python
-  cmake --build build
-}
-
-package_shiboken2() {
-  pkgdesc='Generates bindings for C++ libraries using CPython source code'
-  depends=(clang=$_clangver llvm libxslt qt5-xmlpatterns)
-
-  DESTDIR="$pkgdir" cmake --install build/sources/shiboken2
-# Provided in python-shiboken2
-  rm -r "$pkgdir"/usr/lib/{python*,libshiboken*}
-# Conflicts with shiboken6 and doesn't work anyway
-  rm "$pkgdir"/usr/bin/shiboken_tool.py
-}
-
-package_python-shiboken2() {
-  pkgdesc='Python bindings for shiboken2'
-  depends=(python)
-
-  DESTDIR="$pkgdir" cmake --install build/sources/shiboken2
-# Provided in shiboken2
-  rm -r "$pkgdir"/usr/{bin,include,lib/{cmake,pkgconfig}}
-
-# Install egg-info
-  cd $_pkgfqn
-  python setup.py egg_info --build-type=shiboken2
-  _pythonpath=`python -c "from sysconfig import get_path; 
print(get_path('platlib'))"`
-  cp -r shiboken2.egg-info "$pkgdir"/$_pythonpath
-}
-
-package_pyside2() {
-  pkgdesc='Enables the use of Qt5 APIs in Python applications'
-  depends=(python-shiboken2 qt5-declarative)
-  optdepends=('qt5-svg: QtSvg bindings'
-              'qt5-script: QtScript bindings'
-              'qt5-speech: QtTextToSpeech bindings'
-              'qt5-websockets: QtWebSockets bindings'
-              'qt5-webengine: QtWebEngine bindings'
-              'qt5-datavis3d: QtDataVisualization bindings'
-              'qt5-scxml: QtScxml bindings'
-              'qt5-sensors: QtSensors bindings'
-              'qt5-3d: Qt3D bindings'
-              'qt5-x11extras: QtX11Extras bindings'
-              'qt5-charts: QtCharts bindings'
-              'qt5-tools: QtHelp bindings'
-              'qt5-remoteobjects: QtRemoteObjects bindings'
-              'qt5-serialport: QtSerialPort bindings'
-              'qt5-quickcontrols2: QtQuickControls2 bindings')
-  provides=(qt5-python-bindings)
-
-  DESTDIR="$pkgdir" cmake --install build/sources/pyside2
-# Install egg-info
-  cd $_pkgfqn
-  python setup.py egg_info --build-type=pyside2
-  _pythonpath=`python -c "from sysconfig import get_path; 
print(get_path('platlib'))"`
-  cp -r PySide2.egg-info "$pkgdir"/$_pythonpath
-}
-
-package_pyside2-tools() {
-  pkgdesc='Tools for PySide2'
-  depends=(pyside2)
-
-  DESTDIR="$pkgdir" cmake --install build/sources/pyside2-tools
-  rm "$pkgdir"/usr/bin/{rcc,uic,designer,pyside_tool.py} # provided by qt5-base
-}

Copied: pyside2/repos/staging-x86_64/PKGBUILD (from rev 473989, 
pyside2/trunk/PKGBUILD)
===================================================================
--- PKGBUILD                            (rev 0)
+++ PKGBUILD    2023-04-12 16:53:31 UTC (rev 473990)
@@ -0,0 +1,118 @@
+# Maintainer: Antonio Rojas <[email protected]>
+# Maintainer: Felix Yan <[email protected]>
+
+pkgbase=pyside2
+pkgname=(shiboken2 python-shiboken2 pyside2 pyside2-tools)
+_qtver=5.15.9
+_clangver=15.0.7
+pkgver=${_qtver/-/}
+pkgrel=3
+arch=(x86_64)
+url='https://www.qt.io'
+license=(LGPL)
+makedepends=(cmake python-setuptools llvm clang=$_clangver
+             qt5-multimedia qt5-tools qt5-sensors qt5-charts qt5-webengine 
qt5-datavis3d
+             qt5-websockets qt5-speech qt5-3d qt5-svg qt5-script qt5-scxml 
qt5-x11extras
+             qt5-quickcontrols2 qt5-serialport qt5-remoteobjects 
qt5-xmlpatterns)
+optdepends=('qt5-svg: QtSvg bindings'
+            'qt5-script: QtScript bindings'
+            'qt5-speech: QtTextToSpeech bindings'
+            'qt5-websockets: QtWebSockets bindings'
+            'qt5-webengine: QtWebEngine bindings'
+            'qt5-datavis3d: QtDataVisualization bindings'
+            'qt5-scxml: QtScxml bindings'
+            'qt5-sensors: QtSensors bindings'
+            'qt5-3d: Qt3D bindings'
+            'qt5-x11extras: QtX11Extras bindings'
+            'qt5-charts: QtCharts bindings'
+            'qt5-tools: QtHelp bindings'
+            'qt5-remoteobjects: QtRemoteObjects bindings'
+            'qt5-serialport: QtSerialPort bindings'
+            'qt5-quickcontrols2: QtQuickControls2 bindings')
+_pkgfqn=pyside-setup-opensource-src-$_qtver
+source=(https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-$pkgver-src/${_pkgfqn}.tar.xz
+        fix-build.patch
+        limited-api.patch
+        python3.11.patch)
+sha256sums=('2ea5917652036a9007d66ba4dc0aa75f381a3a25ccf0fa70fa2d9e9c8c9dacae'
+            '4f8815840b5df2e1e3b9f201a3402126821b0d9702920cefdc18050639143ad1'
+            '9d9b0d74b5159dbafd9e3c4cd794d84b671c299edab3cac1660f094e9a8791ea'
+            'e91549f7d3da412e864af26f604d0023b80233a7165f50fa21e53cbe861db886')
+
+prepare() {
+  patch -d $_pkgfqn -p1 < fix-build.patch
+  patch -d $_pkgfqn -p1 < limited-api.patch
+  patch -d $_pkgfqn -p1 < python3.11.patch # Fix build with Python 3.11
+  sed -e 's|0x030AFFFF|0x030BFFFF|' -i 
$_pkgfqn/sources/shiboken2/libshiboken/pep384impl.h
+}
+
+build() {
+  cmake -B build -S $_pkgfqn \
+    -DCMAKE_INSTALL_PREFIX=/usr \
+    -DCMAKE_BUILD_TYPE=None \
+    -DBUILD_TESTS=OFF \
+    -DPYTHON_EXECUTABLE=/usr/bin/python
+  cmake --build build
+}
+
+package_shiboken2() {
+  pkgdesc='Generates bindings for C++ libraries using CPython source code'
+  depends=(clang=$_clangver llvm libxslt qt5-xmlpatterns)
+
+  DESTDIR="$pkgdir" cmake --install build/sources/shiboken2
+# Provided in python-shiboken2
+  rm -r "$pkgdir"/usr/lib/{python*,libshiboken*}
+# Conflicts with shiboken6 and doesn't work anyway
+  rm "$pkgdir"/usr/bin/shiboken_tool.py
+}
+
+package_python-shiboken2() {
+  pkgdesc='Python bindings for shiboken2'
+  depends=(python)
+
+  DESTDIR="$pkgdir" cmake --install build/sources/shiboken2
+# Provided in shiboken2
+  rm -r "$pkgdir"/usr/{bin,include,lib/{cmake,pkgconfig}}
+
+# Install egg-info
+  cd $_pkgfqn
+  python setup.py egg_info --build-type=shiboken2
+  _pythonpath=`python -c "from sysconfig import get_path; 
print(get_path('platlib'))"`
+  cp -r shiboken2.egg-info "$pkgdir"/$_pythonpath
+}
+
+package_pyside2() {
+  pkgdesc='Enables the use of Qt5 APIs in Python applications'
+  depends=(python-shiboken2 qt5-declarative)
+  optdepends=('qt5-svg: QtSvg bindings'
+              'qt5-script: QtScript bindings'
+              'qt5-speech: QtTextToSpeech bindings'
+              'qt5-websockets: QtWebSockets bindings'
+              'qt5-webengine: QtWebEngine bindings'
+              'qt5-datavis3d: QtDataVisualization bindings'
+              'qt5-scxml: QtScxml bindings'
+              'qt5-sensors: QtSensors bindings'
+              'qt5-3d: Qt3D bindings'
+              'qt5-x11extras: QtX11Extras bindings'
+              'qt5-charts: QtCharts bindings'
+              'qt5-tools: QtHelp bindings'
+              'qt5-remoteobjects: QtRemoteObjects bindings'
+              'qt5-serialport: QtSerialPort bindings'
+              'qt5-quickcontrols2: QtQuickControls2 bindings')
+  provides=(qt5-python-bindings)
+
+  DESTDIR="$pkgdir" cmake --install build/sources/pyside2
+# Install egg-info
+  cd $_pkgfqn
+  python setup.py egg_info --build-type=pyside2
+  _pythonpath=`python -c "from sysconfig import get_path; 
print(get_path('platlib'))"`
+  cp -r PySide2.egg-info "$pkgdir"/$_pythonpath
+}
+
+package_pyside2-tools() {
+  pkgdesc='Tools for PySide2'
+  depends=(pyside2)
+
+  DESTDIR="$pkgdir" cmake --install build/sources/pyside2-tools
+  rm "$pkgdir"/usr/bin/{rcc,uic,designer,pyside_tool.py} # provided by qt5-base
+}

Deleted: fix-build.patch
===================================================================
--- fix-build.patch     2023-04-12 16:53:09 UTC (rev 473989)
+++ fix-build.patch     2023-04-12 16:53:31 UTC (rev 473990)
@@ -1,12 +0,0 @@
-diff -ru 
pyside-setup-opensource-src-5.15.6.orig/sources/shiboken2/libshiboken/embed/signature_bootstrap.py
 
pyside-setup-opensource-src-5.15.6/sources/shiboken2/libshiboken/embed/signature_bootstrap.py
---- 
pyside-setup-opensource-src-5.15.6.orig/sources/shiboken2/libshiboken/embed/signature_bootstrap.py
 2022-09-08 23:54:19.419724864 +0200
-+++ 
pyside-setup-opensource-src-5.15.6/sources/shiboken2/libshiboken/embed/signature_bootstrap.py
      2022-09-08 23:55:04.494277606 +0200
-@@ -211,7 +211,7 @@
-         return self if self._mod2path.get(fullname) else None
- 
-     def load_module(self, fullname):
--        import importlib
-+        import importlib.machinery
-         import sys
- 
-         filename = self._mod2path.get(fullname)

Copied: pyside2/repos/staging-x86_64/fix-build.patch (from rev 473989, 
pyside2/trunk/fix-build.patch)
===================================================================
--- fix-build.patch                             (rev 0)
+++ fix-build.patch     2023-04-12 16:53:31 UTC (rev 473990)
@@ -0,0 +1,12 @@
+diff -ru 
pyside-setup-opensource-src-5.15.6.orig/sources/shiboken2/libshiboken/embed/signature_bootstrap.py
 
pyside-setup-opensource-src-5.15.6/sources/shiboken2/libshiboken/embed/signature_bootstrap.py
+--- 
pyside-setup-opensource-src-5.15.6.orig/sources/shiboken2/libshiboken/embed/signature_bootstrap.py
 2022-09-08 23:54:19.419724864 +0200
++++ 
pyside-setup-opensource-src-5.15.6/sources/shiboken2/libshiboken/embed/signature_bootstrap.py
      2022-09-08 23:55:04.494277606 +0200
+@@ -211,7 +211,7 @@
+         return self if self._mod2path.get(fullname) else None
+ 
+     def load_module(self, fullname):
+-        import importlib
++        import importlib.machinery
+         import sys
+ 
+         filename = self._mod2path.get(fullname)

Deleted: limited-api.patch
===================================================================
--- limited-api.patch   2023-04-12 16:53:09 UTC (rev 473989)
+++ limited-api.patch   2023-04-12 16:53:31 UTC (rev 473990)
@@ -1,11 +0,0 @@
---- 
pyside-setup-opensource-src-5.15.7/sources/shiboken2/libshiboken/pep384impl.cpp 
   2022-09-23 08:47:20.000000000 +0200
-+++ 
pyside-setup-opensource-src-5.15.8/sources/shiboken2/libshiboken/pep384impl.cpp 
   2023-01-04 08:07:17.000000000 +0100
-@@ -751,7 +751,7 @@
- #endif // IS_PY2
-     Shiboken::AutoDecRef privateobj(PyObject_GetAttr(
-         reinterpret_cast<PyObject *>(Py_TYPE(self)), 
Shiboken::PyMagicName::name()));
--#ifndef Py_LIMITED_API
-+#if !defined(Py_LIMITED_API) && PY_VERSION_HEX < 0x03010000
-     return _Py_Mangle(privateobj, name);
- #else
-     // PYSIDE-1436: _Py_Mangle is no longer exposed; implement it always.

Copied: pyside2/repos/staging-x86_64/limited-api.patch (from rev 473989, 
pyside2/trunk/limited-api.patch)
===================================================================
--- limited-api.patch                           (rev 0)
+++ limited-api.patch   2023-04-12 16:53:31 UTC (rev 473990)
@@ -0,0 +1,11 @@
+--- 
pyside-setup-opensource-src-5.15.7/sources/shiboken2/libshiboken/pep384impl.cpp 
   2022-09-23 08:47:20.000000000 +0200
++++ 
pyside-setup-opensource-src-5.15.8/sources/shiboken2/libshiboken/pep384impl.cpp 
   2023-01-04 08:07:17.000000000 +0100
+@@ -751,7 +751,7 @@
+ #endif // IS_PY2
+     Shiboken::AutoDecRef privateobj(PyObject_GetAttr(
+         reinterpret_cast<PyObject *>(Py_TYPE(self)), 
Shiboken::PyMagicName::name()));
+-#ifndef Py_LIMITED_API
++#if !defined(Py_LIMITED_API) && PY_VERSION_HEX < 0x03010000
+     return _Py_Mangle(privateobj, name);
+ #else
+     // PYSIDE-1436: _Py_Mangle is no longer exposed; implement it always.

Deleted: python3.11.patch
===================================================================
--- python3.11.patch    2023-04-12 16:53:09 UTC (rev 473989)
+++ python3.11.patch    2023-04-12 16:53:31 UTC (rev 473990)
@@ -1,161 +0,0 @@
-From b64ad27d8dfeeecaaa8a98051252a32c9d998df4 Mon Sep 17 00:00:00 2001
-From: Friedemann Kleint <[email protected]>
-Date: Thu, 9 Jun 2022 16:50:41 +0200
-Subject: [PATCH] libshiboken: Fix a crash in Shiboken::Object::isValid() for
- Python 3.11
-
-The function is passed type objects for class methods, which caused
-it to crash.
-
-The first clause did not catch this, and so it was cast to SbkObject
-below.
-
-Add a type check to prevent this.
-
-Pick-to: 6.3 6.2 5.15
-Task-number: PYSIDE-1960
-Change-Id: Icfdd6fefb7156ac5961444bd5395109849a1d66e
-Reviewed-by: Christian Tismer <[email protected]>
-Reviewed-by: Qt CI Bot <[email protected]>
----
- sources/shiboken2/libshiboken/basewrapper.cpp | 1 +
- 1 file changed, 1 insertion(+)
-
-Index: 
pyside-setup-opensource-src-5.15.7/sources/shiboken2/libshiboken/basewrapper.cpp
-===================================================================
---- 
pyside-setup-opensource-src-5.15.7.orig/sources/shiboken2/libshiboken/basewrapper.cpp
-+++ 
pyside-setup-opensource-src-5.15.7/sources/shiboken2/libshiboken/basewrapper.cpp
-@@ -377,7 +377,7 @@ SbkObjectType *SbkObject_TypeF(void)
-     static PyTypeObject *type = nullptr;
-     if (!type) {
-         type = reinterpret_cast<PyTypeObject 
*>(SbkType_FromSpec(&SbkObject_Type_spec));
--        Py_TYPE(type) = SbkObjectType_TypeF();
-+        Py_SET_TYPE(type, SbkObjectType_TypeF());
-         Py_INCREF(Py_TYPE(type));
-         type->tp_weaklistoffset = offsetof(SbkObject, weakreflist);
-         type->tp_dictoffset = offsetof(SbkObject, ob_dict);
-@@ -1160,7 +1160,7 @@ introduceWrapperType(PyObject *enclosing
-     typeSpec->slots[0].pfunc = reinterpret_cast<void *>(baseType ? baseType : 
SbkObject_TypeF());
- 
-     PyObject *heaptype = SbkType_FromSpecWithBases(typeSpec, baseTypes);
--    Py_TYPE(heaptype) = SbkObjectType_TypeF();
-+    Py_SET_TYPE(heaptype, SbkObjectType_TypeF());
-     Py_INCREF(Py_TYPE(heaptype));
-     auto *type = reinterpret_cast<SbkObjectType *>(heaptype);
- #if PY_VERSION_HEX < 0x03000000
-@@ -1525,6 +1525,7 @@ bool setCppPointer(SbkObject *sbkObj, Py
- bool isValid(PyObject *pyObj)
- {
-     if (!pyObj || pyObj == Py_None
-+        || PyType_Check(pyObj) != 0
-         || Py_TYPE(Py_TYPE(pyObj)) != SbkObjectType_TypeF()) {
-         return true;
-     }
-Index: 
pyside-setup-opensource-src-5.15.7/sources/pyside2/libpyside/pysideqflags.cpp
-===================================================================
---- 
pyside-setup-opensource-src-5.15.7.orig/sources/pyside2/libpyside/pysideqflags.cpp
-+++ 
pyside-setup-opensource-src-5.15.7/sources/pyside2/libpyside/pysideqflags.cpp
-@@ -192,7 +192,7 @@ namespace QFlags
-         }
-         newspec.slots = SbkNewQFlagsType_spec.slots;
-         PyTypeObject *type = (PyTypeObject *)SbkType_FromSpec(&newspec);
--        Py_TYPE(type) = &PyType_Type;
-+        Py_SET_TYPE(type, &PyType_Type);
- 
-         PySideQFlagsType *flagsType = reinterpret_cast<PySideQFlagsType 
*>(type);
-         PepType_PFTP(flagsType)->converterPtr = 
&PepType_PFTP(flagsType)->converter;
-Index: 
pyside-setup-opensource-src-5.15.7/sources/pyside2/libpyside/pysidesignal.cpp
-===================================================================
---- 
pyside-setup-opensource-src-5.15.7.orig/sources/pyside2/libpyside/pysidesignal.cpp
-+++ 
pyside-setup-opensource-src-5.15.7/sources/pyside2/libpyside/pysidesignal.cpp
-@@ -162,7 +162,7 @@ PyTypeObject *PySideSignalTypeF(void)
-     if (!type) {
-         type = reinterpret_cast<PyTypeObject 
*>(SbkType_FromSpec(&PySideSignalType_spec));
-         PyTypeObject *hold = Py_TYPE(type);
--        Py_TYPE(type) = PySideMetaSignalTypeF();
-+        Py_SET_TYPE(type, PySideMetaSignalTypeF());
-         Py_INCREF(Py_TYPE(type));
-         Py_DECREF(hold);
-     }
-Index: 
pyside-setup-opensource-src-5.15.7/sources/pyside2/libpyside/pysideweakref.cpp
-===================================================================
---- 
pyside-setup-opensource-src-5.15.7.orig/sources/pyside2/libpyside/pysideweakref.cpp
-+++ 
pyside-setup-opensource-src-5.15.7/sources/pyside2/libpyside/pysideweakref.cpp
-@@ -90,7 +90,7 @@ PyObject *create(PyObject *obj, PySideWe
- 
-     if (Py_TYPE(PySideCallableObjectTypeF()) == 0)
-     {
--        Py_TYPE(PySideCallableObjectTypeF()) = &PyType_Type;
-+        Py_SET_TYPE(PySideCallableObjectTypeF(), &PyType_Type);
-         PyType_Ready(PySideCallableObjectTypeF());
-     }
- 
-Index: 
pyside-setup-opensource-src-5.15.7/sources/shiboken2/libshiboken/sbkenum.cpp
-===================================================================
---- 
pyside-setup-opensource-src-5.15.7.orig/sources/shiboken2/libshiboken/sbkenum.cpp
-+++ 
pyside-setup-opensource-src-5.15.7/sources/shiboken2/libshiboken/sbkenum.cpp
-@@ -754,7 +754,7 @@ newTypeWithName(const char *name,
-     PyTuple_SetItem(bases, 0, reinterpret_cast<PyObject *>(basetype));
-     auto *type = reinterpret_cast<PyTypeObject 
*>(SbkType_FromSpecWithBases(&newspec, bases));
-     PyErr_Print();
--    Py_TYPE(type) = SbkEnumType_TypeF();
-+      Py_SET_TYPE(type, SbkEnumType_TypeF());
- 
-     auto *enumType = reinterpret_cast<SbkEnumType *>(type);
-     PepType_SETP(enumType)->cppName = cppName;
-Index: 
pyside-setup-opensource-src-5.15.7/sources/shiboken2/libshiboken/sbkstring.cpp
-===================================================================
---- 
pyside-setup-opensource-src-5.15.7.orig/sources/shiboken2/libshiboken/sbkstring.cpp
-+++ 
pyside-setup-opensource-src-5.15.7/sources/shiboken2/libshiboken/sbkstring.cpp
-@@ -41,8 +41,14 @@
- #include "sbkstaticstrings_p.h"
- #include "autodecref.h"
- 
--#include <vector>
--#include <unordered_set>
-+#if PY_VERSION_HEX >= 0x030B0000 || defined(Py_LIMITED_API)
-+#  define USE_INTERN_STRINGS
-+#endif
-+
-+#ifndef USE_INTERN_STRINGS
-+#  include <vector>
-+#  include <unordered_set>
-+#endif
- 
- namespace Shiboken
- {
-@@ -233,6 +239,13 @@ Py_ssize_t len(PyObject *str)
- //     PyObject *attr = PyObject_GetAttr(obj, name());
- //
- 
-+#ifdef USE_INTERN_STRINGS
-+PyObject *createStaticString(const char *str)
-+{
-+     return PyUnicode_InternFromString(str);
-+}
-+#else
-+
- using StaticStrings = std::unordered_set<PyObject *>;
- 
- static void finalizeStaticStrings();    // forward
-@@ -283,6 +296,8 @@ PyObject *createStaticString(const char
-     return result;
- }
- 
-+#endif // !USE_INTERN_STRINGS
-+
- ///////////////////////////////////////////////////////////////////////
- //
- // PYSIDE-1019: Helper function for snake_case vs. camelCase names
-Index: pyside-setup-opensource-src-5.15.7/build_scripts/config.py
-===================================================================
---- pyside-setup-opensource-src-5.15.7.orig/build_scripts/config.py
-+++ pyside-setup-opensource-src-5.15.7/build_scripts/config.py
-@@ -94,6 +94,7 @@ class Config(object):
-             'Programming Language :: Python :: 3.8',
-             'Programming Language :: Python :: 3.9',
-             'Programming Language :: Python :: 3.10',
-+            'Programming Language :: Python :: 3.11',
-         ]
- 
-         self.setup_script_dir = None

Copied: pyside2/repos/staging-x86_64/python3.11.patch (from rev 473989, 
pyside2/trunk/python3.11.patch)
===================================================================
--- python3.11.patch                            (rev 0)
+++ python3.11.patch    2023-04-12 16:53:31 UTC (rev 473990)
@@ -0,0 +1,161 @@
+From b64ad27d8dfeeecaaa8a98051252a32c9d998df4 Mon Sep 17 00:00:00 2001
+From: Friedemann Kleint <[email protected]>
+Date: Thu, 9 Jun 2022 16:50:41 +0200
+Subject: [PATCH] libshiboken: Fix a crash in Shiboken::Object::isValid() for
+ Python 3.11
+
+The function is passed type objects for class methods, which caused
+it to crash.
+
+The first clause did not catch this, and so it was cast to SbkObject
+below.
+
+Add a type check to prevent this.
+
+Pick-to: 6.3 6.2 5.15
+Task-number: PYSIDE-1960
+Change-Id: Icfdd6fefb7156ac5961444bd5395109849a1d66e
+Reviewed-by: Christian Tismer <[email protected]>
+Reviewed-by: Qt CI Bot <[email protected]>
+---
+ sources/shiboken2/libshiboken/basewrapper.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+Index: 
pyside-setup-opensource-src-5.15.7/sources/shiboken2/libshiboken/basewrapper.cpp
+===================================================================
+--- 
pyside-setup-opensource-src-5.15.7.orig/sources/shiboken2/libshiboken/basewrapper.cpp
++++ 
pyside-setup-opensource-src-5.15.7/sources/shiboken2/libshiboken/basewrapper.cpp
+@@ -377,7 +377,7 @@ SbkObjectType *SbkObject_TypeF(void)
+     static PyTypeObject *type = nullptr;
+     if (!type) {
+         type = reinterpret_cast<PyTypeObject 
*>(SbkType_FromSpec(&SbkObject_Type_spec));
+-        Py_TYPE(type) = SbkObjectType_TypeF();
++        Py_SET_TYPE(type, SbkObjectType_TypeF());
+         Py_INCREF(Py_TYPE(type));
+         type->tp_weaklistoffset = offsetof(SbkObject, weakreflist);
+         type->tp_dictoffset = offsetof(SbkObject, ob_dict);
+@@ -1160,7 +1160,7 @@ introduceWrapperType(PyObject *enclosing
+     typeSpec->slots[0].pfunc = reinterpret_cast<void *>(baseType ? baseType : 
SbkObject_TypeF());
+ 
+     PyObject *heaptype = SbkType_FromSpecWithBases(typeSpec, baseTypes);
+-    Py_TYPE(heaptype) = SbkObjectType_TypeF();
++    Py_SET_TYPE(heaptype, SbkObjectType_TypeF());
+     Py_INCREF(Py_TYPE(heaptype));
+     auto *type = reinterpret_cast<SbkObjectType *>(heaptype);
+ #if PY_VERSION_HEX < 0x03000000
+@@ -1525,6 +1525,7 @@ bool setCppPointer(SbkObject *sbkObj, Py
+ bool isValid(PyObject *pyObj)
+ {
+     if (!pyObj || pyObj == Py_None
++        || PyType_Check(pyObj) != 0
+         || Py_TYPE(Py_TYPE(pyObj)) != SbkObjectType_TypeF()) {
+         return true;
+     }
+Index: 
pyside-setup-opensource-src-5.15.7/sources/pyside2/libpyside/pysideqflags.cpp
+===================================================================
+--- 
pyside-setup-opensource-src-5.15.7.orig/sources/pyside2/libpyside/pysideqflags.cpp
++++ 
pyside-setup-opensource-src-5.15.7/sources/pyside2/libpyside/pysideqflags.cpp
+@@ -192,7 +192,7 @@ namespace QFlags
+         }
+         newspec.slots = SbkNewQFlagsType_spec.slots;
+         PyTypeObject *type = (PyTypeObject *)SbkType_FromSpec(&newspec);
+-        Py_TYPE(type) = &PyType_Type;
++        Py_SET_TYPE(type, &PyType_Type);
+ 
+         PySideQFlagsType *flagsType = reinterpret_cast<PySideQFlagsType 
*>(type);
+         PepType_PFTP(flagsType)->converterPtr = 
&PepType_PFTP(flagsType)->converter;
+Index: 
pyside-setup-opensource-src-5.15.7/sources/pyside2/libpyside/pysidesignal.cpp
+===================================================================
+--- 
pyside-setup-opensource-src-5.15.7.orig/sources/pyside2/libpyside/pysidesignal.cpp
++++ 
pyside-setup-opensource-src-5.15.7/sources/pyside2/libpyside/pysidesignal.cpp
+@@ -162,7 +162,7 @@ PyTypeObject *PySideSignalTypeF(void)
+     if (!type) {
+         type = reinterpret_cast<PyTypeObject 
*>(SbkType_FromSpec(&PySideSignalType_spec));
+         PyTypeObject *hold = Py_TYPE(type);
+-        Py_TYPE(type) = PySideMetaSignalTypeF();
++        Py_SET_TYPE(type, PySideMetaSignalTypeF());
+         Py_INCREF(Py_TYPE(type));
+         Py_DECREF(hold);
+     }
+Index: 
pyside-setup-opensource-src-5.15.7/sources/pyside2/libpyside/pysideweakref.cpp
+===================================================================
+--- 
pyside-setup-opensource-src-5.15.7.orig/sources/pyside2/libpyside/pysideweakref.cpp
++++ 
pyside-setup-opensource-src-5.15.7/sources/pyside2/libpyside/pysideweakref.cpp
+@@ -90,7 +90,7 @@ PyObject *create(PyObject *obj, PySideWe
+ 
+     if (Py_TYPE(PySideCallableObjectTypeF()) == 0)
+     {
+-        Py_TYPE(PySideCallableObjectTypeF()) = &PyType_Type;
++        Py_SET_TYPE(PySideCallableObjectTypeF(), &PyType_Type);
+         PyType_Ready(PySideCallableObjectTypeF());
+     }
+ 
+Index: 
pyside-setup-opensource-src-5.15.7/sources/shiboken2/libshiboken/sbkenum.cpp
+===================================================================
+--- 
pyside-setup-opensource-src-5.15.7.orig/sources/shiboken2/libshiboken/sbkenum.cpp
++++ 
pyside-setup-opensource-src-5.15.7/sources/shiboken2/libshiboken/sbkenum.cpp
+@@ -754,7 +754,7 @@ newTypeWithName(const char *name,
+     PyTuple_SetItem(bases, 0, reinterpret_cast<PyObject *>(basetype));
+     auto *type = reinterpret_cast<PyTypeObject 
*>(SbkType_FromSpecWithBases(&newspec, bases));
+     PyErr_Print();
+-    Py_TYPE(type) = SbkEnumType_TypeF();
++      Py_SET_TYPE(type, SbkEnumType_TypeF());
+ 
+     auto *enumType = reinterpret_cast<SbkEnumType *>(type);
+     PepType_SETP(enumType)->cppName = cppName;
+Index: 
pyside-setup-opensource-src-5.15.7/sources/shiboken2/libshiboken/sbkstring.cpp
+===================================================================
+--- 
pyside-setup-opensource-src-5.15.7.orig/sources/shiboken2/libshiboken/sbkstring.cpp
++++ 
pyside-setup-opensource-src-5.15.7/sources/shiboken2/libshiboken/sbkstring.cpp
+@@ -41,8 +41,14 @@
+ #include "sbkstaticstrings_p.h"
+ #include "autodecref.h"
+ 
+-#include <vector>
+-#include <unordered_set>
++#if PY_VERSION_HEX >= 0x030B0000 || defined(Py_LIMITED_API)
++#  define USE_INTERN_STRINGS
++#endif
++
++#ifndef USE_INTERN_STRINGS
++#  include <vector>
++#  include <unordered_set>
++#endif
+ 
+ namespace Shiboken
+ {
+@@ -233,6 +239,13 @@ Py_ssize_t len(PyObject *str)
+ //     PyObject *attr = PyObject_GetAttr(obj, name());
+ //
+ 
++#ifdef USE_INTERN_STRINGS
++PyObject *createStaticString(const char *str)
++{
++     return PyUnicode_InternFromString(str);
++}
++#else
++
+ using StaticStrings = std::unordered_set<PyObject *>;
+ 
+ static void finalizeStaticStrings();    // forward
+@@ -283,6 +296,8 @@ PyObject *createStaticString(const char
+     return result;
+ }
+ 
++#endif // !USE_INTERN_STRINGS
++
+ ///////////////////////////////////////////////////////////////////////
+ //
+ // PYSIDE-1019: Helper function for snake_case vs. camelCase names
+Index: pyside-setup-opensource-src-5.15.7/build_scripts/config.py
+===================================================================
+--- pyside-setup-opensource-src-5.15.7.orig/build_scripts/config.py
++++ pyside-setup-opensource-src-5.15.7/build_scripts/config.py
+@@ -94,6 +94,7 @@ class Config(object):
+             'Programming Language :: Python :: 3.8',
+             'Programming Language :: Python :: 3.9',
+             'Programming Language :: Python :: 3.10',
++            'Programming Language :: Python :: 3.11',
+         ]
+ 
+         self.setup_script_dir = None

Reply via email to