Accepting request 1207947 from KDE:Qt6

Update to 6.8.0

OBS-URL: https://build.opensuse.org/request/show/1207947
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python3-pyside6?expand=0&rev=35
This commit is contained in:
Ana Guerrero 2024-10-17 16:39:21 +00:00 committed by Git OBS Bridge
commit ed7f77d10d
8 changed files with 129 additions and 15 deletions

View File

@ -1,15 +1,18 @@
From 3de1ff0464ccf0f5e88c62330e98cb816c42f7b2 Mon Sep 17 00:00:00 2001 From e9591e27db4ae3412d4504a69a8afebee9a1b83e Mon Sep 17 00:00:00 2001
From: Christophe Giboudeaux <christophe@krop.fr> From: Christophe Giboudeaux <christophe@krop.fr>
Date: Tue, 27 Jul 2021 14:54:00 +0200 Date: Tue, 27 Jul 2021 14:54:00 +0200
Subject: [PATCH] Always link to python libraries. Subject: [PATCH] Always link to python libraries.
Change-Id: I687191431adaff55927de353db8f81dfa30ba1b1 Change-Id: I687191431adaff55927de353db8f81dfa30ba1b1
--- ---
sources/shiboken6/cmake/ShibokenHelpers.cmake | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/sources/shiboken6/cmake/ShibokenHelpers.cmake b/sources/shiboken6/cmake/ShibokenHelpers.cmake diff --git a/sources/shiboken6/cmake/ShibokenHelpers.cmake b/sources/shiboken6/cmake/ShibokenHelpers.cmake
index 1a46e5b..6c10c07 100644 index 27ee333..4be2ad1 100644
--- a/sources/shiboken6/cmake/ShibokenHelpers.cmake --- a/sources/shiboken6/cmake/ShibokenHelpers.cmake
+++ b/sources/shiboken6/cmake/ShibokenHelpers.cmake +++ b/sources/shiboken6/cmake/ShibokenHelpers.cmake
@@ -420,13 +420,9 @@ macro(shiboken_compute_python_libraries) @@ -425,13 +425,9 @@ macro(shiboken_compute_python_libraries)
"SHIBOKEN_COMPUTE_LIBS" "shiboken_compute_python_libraries" "SHIBOKEN_COMPUTE_LIBS" "shiboken_compute_python_libraries"
"IS_CALLED_FROM_EXPORT" "" "" ${ARGN}) "IS_CALLED_FROM_EXPORT" "" "" ${ARGN})
@ -26,3 +29,6 @@ index 1a46e5b..6c10c07 100644
# If the resulting variable # If the resulting variable
# contains a "debug;X;optimized;Y" list like described in shiboken_check_if_limited_api, # contains a "debug;X;optimized;Y" list like described in shiboken_check_if_limited_api,
--
2.46.1

View File

@ -0,0 +1,54 @@
From e67404e0715d9d6a27e52dbd0be9c34643a89a03 Mon Sep 17 00:00:00 2001
From: Christian Tismer <tismer@stackless.com>
Date: Sun, 13 Oct 2024 23:29:47 +0200
Subject: [PATCH] Lazy Init: Support Lazy Subtypes, amended
The addition of nested types made it necessary to filter
subtypes out of resolveLazyClasses because incarnateType
should be called for toplevel types, only.
Task-number: PYSIDE-2404
Change-Id: I4b95c0f65c055376defb6a8e9ea888285c82a8e2
Fixes: PYSIDE-2888
Pick-to: 6.8
---
sources/shiboken6/libshiboken/sbkmodule.cpp | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/sources/shiboken6/libshiboken/sbkmodule.cpp b/sources/shiboken6/libshiboken/sbkmodule.cpp
index acadc60..bca7383 100644
--- a/sources/shiboken6/libshiboken/sbkmodule.cpp
+++ b/sources/shiboken6/libshiboken/sbkmodule.cpp
@@ -93,8 +93,10 @@ static void incarnateHelper(PyObject *module, const std::string_view names,
startPos = dotPos + 1;
dotPos = names.find('.', startPos);
}
- // now we have the type to create.
+ // now we have the type to create. (May be done already)
auto funcIter = nameToFunc.find(std::string(names));
+ if (funcIter == nameToFunc.end())
+ return;
// - call this function that returns a PyTypeObject
auto tcStruct = funcIter->second;
auto initFunc = tcStruct.func;
@@ -174,11 +176,15 @@ void resolveLazyClasses(PyObject *module)
// - see if there are still unloaded elements
auto &nameToFunc = tableIter->second;
- // - incarnate all types.
+ // - incarnate all toplevel types. Subtypes will be handled there.
while (!nameToFunc.empty()) {
auto it = nameToFunc.begin();
auto attrNameStr = it->first;
- incarnateType(module, attrNameStr.c_str(), nameToFunc);
+ if (attrNameStr.find('.') == std::string::npos) {
+ incarnateType(module, attrNameStr.c_str(), nameToFunc);
+ } else {
+ nameToFunc.erase(it);
+ }
}
}
--
2.47.0

View File

@ -0,0 +1,32 @@
From 7911d19e7cd8479c3b3098848ba1627e7de91f29 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fvogt@suse.de>
Date: Mon, 14 Oct 2024 13:09:41 +0200
Subject: [PATCH] signature: Fix pointers to signature bytes with the highest
bit set
If a pointer to signature bytes has the highest bit set (e.g. 0xf6dd2840 on
32bit), it is interpreted as negative Py_ssize_t value by Py_BuildValue.
PyLong_AsSize_t cannot convert this into size_t and returns -1, resulting
in an invalid pointer.
To avoid this, use PyLong_AsSsize_t and intptr_t instead.
---
sources/shiboken6/libshiboken/signature/signature.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/shiboken6/libshiboken/signature/signature.cpp b/sources/shiboken6/libshiboken/signature/signature.cpp
index e69de193f13b..09d4120bf002 100644
--- a/sources/shiboken6/libshiboken/signature/signature.cpp
+++ b/sources/shiboken6/libshiboken/signature/signature.cpp
@@ -435,7 +435,7 @@ PyObject *PySide_BuildSignatureProps(PyObject *type_key)
if (PyTuple_Check(numkey)) {
PyObject *obAddress = PyTuple_GetItem(numkey, 0);
PyObject *obSize = PyTuple_GetItem(numkey, 1);
- const size_t addr = PyLong_AsSize_t(obAddress);
+ const intptr_t addr = PyLong_AsSsize_t(obAddress);
const Py_ssize_t size = PyLong_AsSsize_t(obSize);
const char **cstrings = bytesToStrings(reinterpret_cast<const uint8_t *>(addr), size);
if (cstrings == nullptr)
--
2.47.0

View File

@ -26,11 +26,11 @@ without the first one being processed yet.
Submitted to upstream in https://codereview.qt-project.org/c/pyside/pyside-setup/+/567559 Submitted to upstream in https://codereview.qt-project.org/c/pyside/pyside-setup/+/567559
Index: pyside-setup-everywhere-src-6.7.1/sources/pyside6/libpyside/pysidesignal.cpp diff --git a/sources/pyside6/libpyside/pysidesignal.cpp b/sources/pyside6/libpyside/pysidesignal.cpp
=================================================================== index 13d95fa..228f1e3 100644
--- pyside-setup-everywhere-src-6.7.1.orig/sources/pyside6/libpyside/pysidesignal.cpp --- a/sources/pyside6/libpyside/pysidesignal.cpp
+++ pyside-setup-everywhere-src-6.7.1/sources/pyside6/libpyside/pysidesignal.cpp +++ b/sources/pyside6/libpyside/pysidesignal.cpp
@@ -718,7 +718,7 @@ static PyObject *signalInstanceDisconnec @@ -715,7 +715,7 @@ static PyObject *signalInstanceDisconnect(PyObject *self, PyObject *args)
Shiboken::AutoDecRef pyMethod(PyObject_GetAttr(source->d->source, Shiboken::AutoDecRef pyMethod(PyObject_GetAttr(source->d->source,
PySide::PySideName::qtDisconnect())); PySide::PySideName::qtDisconnect()));
PyObject *result = PyObject_CallObject(pyMethod, tupleArgs); PyObject *result = PyObject_CallObject(pyMethod, tupleArgs);

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a4c414be013d5051a2d10a9a1151e686488a3172c08a57461ea04b0a0ab74e09
size 14591496

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5c05ad3ae7e7279d6db9dc94a46eb0a05fd093537309f7439c38671bd7255190
size 14641856

View File

@ -1,3 +1,21 @@
-------------------------------------------------------------------
Mon Oct 14 11:35:35 UTC 2024 - Fabian Vogt <fvogt@suse.com>
- Add patch to fix shiboken on 32bit platforms:
* 0001-signature-Fix-pointers-to-signature-bytes-with-the-h.patch
-------------------------------------------------------------------
Mon Oct 14 06:45:34 UTC 2024 - Christophe Marin <christophe@krop.fr>
- Add upstream change:
* 0001-Lazy-Init-Support-Lazy-Subtypes-amended.patch
-------------------------------------------------------------------
Thu Oct 10 20:20:00 UTC 2024 - Christophe Marin <christophe@krop.fr>
- Update to 6.8.0. Check the installed changes-6.8.0 file for the
full list of changes
------------------------------------------------------------------- -------------------------------------------------------------------
Sat Sep 28 08:37:04 UTC 2024 - Christophe Marin <christophe@krop.fr> Sat Sep 28 08:37:04 UTC 2024 - Christophe Marin <christophe@krop.fr>

View File

@ -17,7 +17,7 @@
%define tar_name pyside-setup-everywhere-src %define tar_name pyside-setup-everywhere-src
%define short_version 6.7 %define short_version 6.8
%global flavor @BUILD_FLAVOR@%{nil} %global flavor @BUILD_FLAVOR@%{nil}
%if "%flavor" == "" %if "%flavor" == ""
@ -43,16 +43,20 @@ ExclusiveArch: donotbuild
%endif %endif
Name: %{mypython}-%{pyside_flavor} Name: %{mypython}-%{pyside_flavor}
Version: 6.7.3 Version: 6.8.0
Release: 0 Release: 0
Summary: Python bindings for Qt 6 Summary: Python bindings for Qt 6
License: LGPL-3.0-only OR (GPL-2.0-only OR GPL-3.0-or-later) AND GPL-2.0-only AND GPL-3.0-only WITH Qt-GPL-exception-1.0 License: LGPL-3.0-only OR (GPL-2.0-only OR GPL-3.0-or-later) AND GPL-2.0-only AND GPL-3.0-only WITH Qt-GPL-exception-1.0
URL: https://www.qt.io URL: https://www.qt.io
Source: https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-%{version}-src/%{tar_name}-%{version}.tar.xz Source: https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-%{version}-src/%{tar_name}-%{short_version}.tar.xz
# PATCH-FIX-OPENSUSE # PATCH-FIX-OPENSUSE
Patch0: 0001-Always-link-to-python-libraries.patch Patch0: 0001-Always-link-to-python-libraries.patch
# PATCH-FIX-UPSTREAM https://codereview.qt-project.org/c/pyside/pyside-setup/+/567559 # PATCH-FIX-UPSTREAM https://codereview.qt-project.org/c/pyside/pyside-setup/+/567559
Patch1: fix-pytest-qt.patch Patch1: fix-pytest-qt.patch
# PATCH-FIX-UPSTREAM https://bugreports.qt.io/browse/PYSIDE-2888
Patch2: 0001-Lazy-Init-Support-Lazy-Subtypes-amended.patch
# PATCH-FIX-UPSTREAM
Patch3: 0001-signature-Fix-pointers-to-signature-bytes-with-the-h.patch
# SECTION common_dependencies # SECTION common_dependencies
BuildRequires: clang-devel BuildRequires: clang-devel
BuildRequires: %{mypython}-Sphinx BuildRequires: %{mypython}-Sphinx
@ -164,7 +168,7 @@ Obsoletes: python3-%{pyside_flavor}-devel < %{version}-%{release}
Python bindings for the Qt cross-platform application and UI framework Python bindings for the Qt cross-platform application and UI framework
%prep %prep
%autosetup -p1 -n %{tar_name}-%{version} %autosetup -p1 -n %{tar_name}-%{short_version}
# Restore 6.6.1 RPATH value. rpmlint will complain otherwise # Restore 6.6.1 RPATH value. rpmlint will complain otherwise
sed -i 's#${base}/../shiboken6/##' sources/pyside6/CMakeLists.txt sed -i 's#${base}/../shiboken6/##' sources/pyside6/CMakeLists.txt