Merge pull request #315368 from mjoerg/pyside-6.7.1

python311Packages.{pyside,shiboken}6: 6.7.0 -> 6.7.2
This commit is contained in:
K900 2024-06-24 15:39:48 +03:00 committed by GitHub
commit 1c452779c8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 20 additions and 136 deletions

View File

@ -8,18 +8,12 @@
shiboken6,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "pyside6";
inherit (shiboken6) version src;
patches = [
# stripped down version of https://github.com/pyside/pyside-setup/commit/a0d68856d67ce6e178e3cfc2fccc236707e02fcd
# FIXME: remove in next release
./qt-6.7.1.patch
];
sourceRoot = "pyside-setup-everywhere-src-${version}/sources/${pname}";
sourceRoot = "pyside-setup-everywhere-src-${finalAttrs.version}/sources/pyside6";
# FIXME: cmake/Macros/PySideModules.cmake supposes that all Qt frameworks on macOS
# reside in the same directory as QtCore.framework, which is not true for Nix.
@ -80,18 +74,19 @@ stdenv.mkDerivation rec {
cp -r PySide6.egg-info $out/${python.sitePackages}/
'';
meta = with lib; {
meta = {
description = "Python bindings for Qt";
license = with licenses; [
license = with lib.licenses; [
lgpl3Only
gpl2Only
gpl3Only
];
homepage = "https://wiki.qt.io/Qt_for_Python";
maintainers = with maintainers; [
changelog = "https://code.qt.io/cgit/pyside/pyside-setup.git/tree/doc/changelogs/changes-${finalAttrs.version}?h=v${finalAttrs.version}";
maintainers = with lib.maintainers; [
gebner
Enzime
];
platforms = platforms.all;
platforms = lib.platforms.all;
};
}
})

View File

@ -1,87 +0,0 @@
--- a/PySide6/QtMultimedia/CMakeLists.txt
+++ b/PySide6/QtMultimedia/CMakeLists.txt
@@ -12,6 +12,7 @@ ${QtMultimedia_GEN_DIR}/qaudioinput_wrapper.cpp
${QtMultimedia_GEN_DIR}/qaudiooutput_wrapper.cpp
${QtMultimedia_GEN_DIR}/qaudiosink_wrapper.cpp
${QtMultimedia_GEN_DIR}/qaudiosource_wrapper.cpp
+${QtMultimedia_GEN_DIR}/qaudio_wrapper.cpp
${QtMultimedia_GEN_DIR}/qcameraformat_wrapper.cpp
${QtMultimedia_GEN_DIR}/qcameradevice_wrapper.cpp
${QtMultimedia_GEN_DIR}/qcamera_wrapper.cpp
@@ -28,7 +29,6 @@ ${QtMultimedia_GEN_DIR}/qmediatimerange_wrapper.cpp
${QtMultimedia_GEN_DIR}/qmediatimerange_interval_wrapper.cpp
${QtMultimedia_GEN_DIR}/qscreencapture_wrapper.cpp
${QtMultimedia_GEN_DIR}/qsoundeffect_wrapper.cpp
-${QtMultimedia_GEN_DIR}/qtaudio_wrapper.cpp
${QtMultimedia_GEN_DIR}/qtvideo_wrapper.cpp
${QtMultimedia_GEN_DIR}/qvideoframe_wrapper.cpp
${QtMultimedia_GEN_DIR}/qvideoframeformat_wrapper.cpp
diff --git a/PySide6/QtMultimedia/typesystem_multimedia.xml b/PySide6/QtMultimedia/typesystem_multimedia.xml
index dd58f41cc..d37eb15fd 100644
--- a/PySide6/QtMultimedia/typesystem_multimedia.xml
+++ b/PySide6/QtMultimedia/typesystem_multimedia.xml
@@ -9,7 +9,7 @@
<load-typesystem name="QtGui/typesystem_gui.xml" generate="no"/>
<load-typesystem name="QtNetwork/typesystem_network.xml" generate="no"/>
- <namespace-type name="QtAudio">
+ <namespace-type name="QAudio">
<enum-type name="Error"/>
<enum-type name="State"/>
<enum-type name="VolumeScale"/>
@@ -65,9 +65,6 @@
</modify-argument>
</modify-function>
<modify-function signature="stop()" allow-thread="true"/>
- <!-- FIXME PYSIDE 7: Remove this (QT6_DECL_NEW_OVERLOAD_TAIL) -->
- <declare-function signature="state()const" return-type="QtAudio::State"/>
- <declare-function signature="error()const" return-type="QtAudio::Error"/>
</object-type>
<object-type name="QAudioSink">
@@ -82,9 +79,6 @@
</modify-argument>
</modify-function>
<modify-function signature="stop()" allow-thread="true"/>
- <!-- FIXME PYSIDE 7: Remove this (QT6_DECL_NEW_OVERLOAD_TAIL) -->
- <declare-function signature="state()const" return-type="QtAudio::State"/>
- <declare-function signature="error()const" return-type="QtAudio::Error"/>
</object-type>
<object-type name="QCamera">
diff --git a/PySide6/glue/qtmultimedia.cpp b/PySide6/glue/qtmultimedia.cpp
index d193b1bd3..ac8434b97 100644
--- a/PySide6/glue/qtmultimedia.cpp
+++ b/PySide6/glue/qtmultimedia.cpp
@@ -2,6 +2,7 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// @snippet qvideoframe-bits
+#include "object.h"
%BEGIN_ALLOW_THREADS
%RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(%1);
%END_ALLOW_THREADS
@@ -23,5 +24,5 @@ const auto size = %CPPSELF.byteCount();
// @snippet qtaudio-namespace-compatibility-alias
Py_INCREF(pyType);
-PyModule_AddObject(module, "QAudio", reinterpret_cast<PyObject *>(pyType));
+PyModule_AddObject(module, "QtAudio", reinterpret_cast<PyObject *>(pyType));
// @snippet qtaudio-namespace-compatibility-alias
diff --git a/libpyside/signalmanager.cpp b/libpyside/signalmanager.cpp
index 625e4a405..557f130e0 100644
--- a/libpyside/signalmanager.cpp
+++ b/libpyside/signalmanager.cpp
@@ -813,11 +813,6 @@ static PyObject *parseArguments(const QMetaMethod &method, void **args)
for (qsizetype i = 0; i < argsSize; ++i) {
void *data = args[i+1];
auto param = paramTypes.at(i);
-#if QT_VERSION < QT_VERSION_CHECK(7, 0, 0)
- // Qt 6.7 renamed namespace "QAudio"->"QtAudio" except for signals
- if (param.startsWith("QAudio::"_ba))
- param.insert(1, 't');
-#endif
Shiboken::Conversions::SpecificConverter converter(param.constData());
if (!converter) {
PyErr_SetString(PyExc_TypeError, msgCannotConvertParameter(method, i).constData());

View File

@ -1,7 +1,6 @@
{
lib,
fetchurl,
fetchpatch,
llvmPackages,
python,
cmake,
@ -12,28 +11,19 @@
let
stdenv' = if stdenv.cc.isClang then stdenv else llvmPackages.stdenv;
in
stdenv'.mkDerivation rec {
stdenv'.mkDerivation (finalAttrs: {
pname = "shiboken6";
version = "6.7.0";
version = "6.7.2";
src = fetchurl {
# https://download.qt.io/official_releases/QtForPython/shiboken6/
url = "https://download.qt.io/official_releases/QtForPython/shiboken6/PySide6-${version}-src/pyside-setup-everywhere-src-${version}.tar.xz";
hash = "sha256-gurjcHN99ez1OcFl0J18gdX8YVOlQbjT03sRJ1+ePo8=";
url = "mirror://qt/official_releases/QtForPython/shiboken6/PySide6-${finalAttrs.version}-src/pyside-setup-everywhere-src-${finalAttrs.version}.tar.xz";
hash = "sha256-OisNDW54yapd3H8GyktvEaP+FFYLrrFI7qU7XZjjaMc=";
};
sourceRoot = "pyside-setup-everywhere-src-${version}/sources/${pname}";
sourceRoot = "pyside-setup-everywhere-src-${finalAttrs.version}/sources/shiboken6";
patches = [
./fix-include-qt-headers.patch
# Remove this patch when updating to 6.8.0
(fetchpatch {
name = "backwards-compatibility-with-6.6.x.patch";
url = "https://code.qt.io/cgit/pyside/pyside-setup.git/patch/?id=4f9a20e3635f4f0957e0774588b1d9156e88a572";
hash = "sha256-B2jhLWopgaSF/rUXMZFPZArDUNojlBgn7kdVyQull+I=";
stripLen = 2;
})
];
patches = [ ./fix-include-qt-headers.patch ];
nativeBuildInputs = [
cmake
@ -57,21 +47,6 @@ stdenv'.mkDerivation rec {
substituteInPlace cmake/ShibokenHelpers.cmake --replace-fail '#!/bin/bash' '#!''${BASH}'
'';
# Due to Shiboken.abi3.so being linked to libshiboken6.abi3.so.6.6 in the build tree,
# we need to remove the build tree reference from the RPATH and then add the correct
# directory to the RPATH. On Linux, the second part is handled by autoPatchelfHook.
# https://bugreports.qt.io/browse/PYSIDE-2233
preFixup =
''
echo "fixing RPATH of Shiboken.abi3.so"
''
+ lib.optionalString stdenv.isDarwin ''
install_name_tool -change {@rpath,$out/lib}/libshiboken6.abi3.6.6.dylib $out/${python.sitePackages}/shiboken6/Shiboken.abi3.so
''
+ lib.optionalString stdenv.isLinux ''
patchelf $out/${python.sitePackages}/shiboken6/Shiboken.abi3.so --shrink-rpath --allowed-rpath-prefixes ${builtins.storeDir}
'';
postInstall = ''
cd ../../..
${python.pythonOnBuildForHost.interpreter} setup.py egg_info --build-type=shiboken6
@ -80,18 +55,19 @@ stdenv'.mkDerivation rec {
dontWrapQtApps = true;
meta = with lib; {
meta = {
description = "Generator for the pyside6 Qt bindings";
license = with licenses; [
license = with lib.licenses; [
lgpl3Only
gpl2Only
gpl3Only
];
homepage = "https://wiki.qt.io/Qt_for_Python";
maintainers = with maintainers; [
changelog = "https://code.qt.io/cgit/pyside/pyside-setup.git/tree/doc/changelogs/changes-${finalAttrs.version}?h=v${finalAttrs.version}";
maintainers = with lib.maintainers; [
gebner
Enzime
];
platforms = platforms.all;
platforms = lib.platforms.all;
};
}
})