From: Graham Inggs Date: Sat, 25 Jan 2025 16:33:38 +0000 (+0000) Subject: pyside2 (5.15.16-3.1) unstable; urgency=medium X-Git-Tag: archive/raspbian/5.15.16-3.1+rpi1^2~22 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=5dd7b1be97f4c8a18274e8bbd3a67fa65ff149c6;p=pyside2.git pyside2 (5.15.16-3.1) unstable; urgency=medium * Non-maintainer upload * Also make the tests non-fatal on ppc64el, in order to unblock python3.13-default transition, see #1092890 [dgit import unpatched pyside2 5.15.16-3.1] --- 5dd7b1be97f4c8a18274e8bbd3a67fa65ff149c6 diff --cc debian/changelog index 0000000,0000000..c49b8cc new file mode 100644 --- /dev/null +++ b/debian/changelog @@@ -1,0 -1,0 +1,535 @@@ ++pyside2 (5.15.16-3.1) unstable; urgency=medium ++ ++ * Non-maintainer upload ++ * Also make the tests non-fatal on ppc64el, in order to ++ unblock python3.13-default transition, see #1092890 ++ ++ -- Graham Inggs Sat, 25 Jan 2025 16:33:38 +0000 ++ ++pyside2 (5.15.16-3) unstable; urgency=medium ++ ++ * Team upload. ++ * Drop 20 unused binary packages, as part of Qt 5 removal process. ++ - Drop Modify-sendCommand-signatures.patch, no longer needed. ++ ++ -- Dmitry Shachnev Wed, 15 Jan 2025 22:09:58 +0300 ++ ++pyside2 (5.15.16-2) unstable; urgency=medium ++ ++ * Team upload. ++ * Backport upstream patches to support Python 3.13 (closes: #1091430). ++ * Use public version of PyLong_AsInt for Python >= 3.13. ++ ++ -- Dmitry Shachnev Sat, 04 Jan 2025 14:54:50 +0300 ++ ++pyside2 (5.15.16-1) unstable; urgency=medium ++ ++ * Team upload. ++ * New upstream release. ++ * Drop Fix-tests-sample_privatector-sample_privatedtor-failing-w.patch, ++ included in the new release. ++ ++ -- Dmitry Shachnev Sun, 17 Nov 2024 14:20:58 +0300 ++ ++pyside2 (5.15.14-1) unstable; urgency=medium ++ ++ * Team upload. ++ * New upstream release. ++ * Drop patches, included in the new release: ++ - shiboken2-Fix-build-with-clang-16.patch ++ - shiboken2-Fail-template-test-instead-of-crashing.patch ++ * Refresh and rebase other patches. ++ ++ -- Dmitry Shachnev Tue, 25 Jun 2024 23:47:03 +0300 ++ ++pyside2 (5.15.13-1) unstable; urgency=medium ++ ++ * Team upload. ++ * Acknowledge NMU, thanks Steve Langasek! ++ * New upstream release. ++ * Rebase patches for the new release. ++ * Blacklist smart_pointer test (closes: #1068078). ++ * Bump Standards-Version to 4.7.0, no changes needed. ++ ++ -- Dmitry Shachnev Sun, 14 Apr 2024 23:48:11 +0300 ++ ++pyside2 (5.15.12-6.1) unstable; urgency=medium ++ ++ * Non-maintainer upload. ++ * Rename libraries for 64-bit time_t transition. Closes: #1064292 ++ ++ -- Steve Langasek Sat, 02 Mar 2024 00:27:01 +0000 ++ ++pyside2 (5.15.12-6) unstable; urgency=medium ++ ++ * Team upload. ++ * Build with the default LLVM version (16), to fix dep-wait on mips64el. ++ ++ -- Dmitry Shachnev Thu, 08 Feb 2024 11:13:11 +0300 ++ ++pyside2 (5.15.12-5) unstable; urgency=medium ++ ++ * Team upload. ++ * Backport 9 upstream patches for LLVM ≥ 16 support. ++ * Modify sendCommand signatures to use 0 as default value. ++ * Build with llvm-toolchain-17 (closes: #1061206). ++ ++ -- Dmitry Shachnev Sun, 04 Feb 2024 17:20:57 +0300 ++ ++pyside2 (5.15.12-4) unstable; urgency=medium ++ ++ * Team upload. ++ * Make the tests non-fatal on mips64el (see #1061679). ++ ++ -- Dmitry Shachnev Sun, 28 Jan 2024 19:34:21 +0300 ++ ++pyside2 (5.15.12-3) unstable; urgency=medium ++ ++ * Team upload. ++ * Backport upstream change to stop using imp module. ++ * Do not use patchelf to change RPATH, not needed in Debian. ++ ++ -- Dmitry Shachnev Thu, 25 Jan 2024 15:19:52 +0300 ++ ++pyside2 (5.15.12-2) unstable; urgency=medium ++ ++ * Team upload. ++ * Backport upstream patches to support Python 3.12. ++ * Blacklist registry::existence_test. It was never actually run, but ++ Python 3.12 started considering it a failure when all tests are skipped. ++ * Build with bundled patchelf on mips64el again. ++ - Restore update-patchelf.patch which was removed in 5.15.2-1~exp1. ++ ++ -- Dmitry Shachnev Wed, 24 Jan 2024 23:46:56 +0300 ++ ++pyside2 (5.15.12-1) unstable; urgency=medium ++ ++ * Team upload. ++ * New upstream release. ++ * Drop make-wheels-compatible-with-Python-3.11.patch, included in the ++ new release. ++ * Fix a bug in test_install_python3.sh because of which the test did ++ not do anything. Thanks Stuart Prescott! ++ ++ -- Dmitry Shachnev Sat, 20 Jan 2024 21:52:44 +0300 ++ ++pyside2 (5.15.11-1) unstable; urgency=medium ++ ++ * Team upload. ++ * New upstream release. ++ * Drop patches, included in the new release: ++ - libshiboken-Fix-a-crash-in-Shiboken-Object-isValid.patch ++ - Fix-usage-of-Py_TYPE-for-Python-3.11.patch ++ - libshiboken-Fix-crashes-with-static-strings-in-Python-3.11.patch ++ - Fix-Property-GC-tracking-for-Python-3.11.patch ++ - Fix-GLES-builds.patch ++ * Refresh other patches. ++ ++ -- Dmitry Shachnev Sun, 15 Oct 2023 23:04:58 +0300 ++ ++pyside2 (5.15.10-4) unstable; urgency=medium ++ ++ * Team upload. ++ * Build with LLVM 15 for now (closes: #1051886). ++ * Backport upstream patch to fix test failures with Python 3.11.5. ++ * Add a debian/clean file (closes: #1047480). ++ ++ -- Dmitry Shachnev Sun, 01 Oct 2023 23:43:44 +0300 ++ ++pyside2 (5.15.10-3) unstable; urgency=medium ++ ++ * Team upload. ++ * Stop building the Qt WebEngine package on mipsel (closes: #1041253). ++ ++ -- Dmitry Shachnev Sun, 16 Jul 2023 17:49:14 +0300 ++ ++pyside2 (5.15.10-2) unstable; urgency=medium ++ ++ * Team upload. ++ * Regenerate debian/tests/control using debian/tests/control.gen. ++ * Enable the Qt WebEngine packages on mips64el. ++ * Enable the Qt Data Visualization package on all architectures. ++ * Test WebEngine only on architectures where it is available. ++ ++ -- Dmitry Shachnev Wed, 28 Jun 2023 00:02:49 +0300 ++ ++pyside2 (5.15.10-1) unstable; urgency=medium ++ ++ * Team upload. ++ * New upstream release. ++ * Drop patches, no longer needed after upstream changes: ++ - Revert-removal-of-version-check.patch ++ - importlib-machinery.patch ++ * Refresh other patches. ++ ++ -- Dmitry Shachnev Sun, 18 Jun 2023 19:12:26 +0300 ++ ++pyside2 (5.15.8-2) unstable; urgency=medium ++ ++ * Team upload. ++ * Backport upstream patch to fix GLES builds. ++ ++ -- Dmitry Shachnev Mon, 09 Jan 2023 00:06:53 +0400 ++ ++pyside2 (5.15.8-1) unstable; urgency=medium ++ ++ * Team upload. ++ * New upstream release. ++ * Drop patches, included in the new release: ++ - fix-reuse-build.patch ++ - qApp-fix-flag-handling.patch ++ - py3.10-prep-reset-the-type-cache-after-feature-switching.patch ++ - py3.10-prep-Fix-parser.py-for-changed-typing-module.patch ++ - py3.10-prep-Finally-support-Python-3.10.patch ++ - py3.10-prep-Fix-a-very-old-refcounting-error-in-time_test.patch ++ - shiboken6-Adapt-to-LLVM-12.01.patch ++ * Refresh debian/patches/blacklist-failing-tests.patch. ++ * Backport 7 upstream patches to support Python 3.11 (closes: #1027950). ++ * Remove dh-exec (debhelper now supports substitutions natively). ++ * Revert a change from 5.15.8 which broke build without limited API. ++ * Add a patch to fix AttributeError in signature_bootstrap.py. ++ * Fix redundant-globbing-patterns Lintian warning. ++ * Bump Standards-Version to 4.6.2, no changes needed. ++ ++ -- Dmitry Shachnev Sat, 07 Jan 2023 17:38:12 +0400 ++ ++pyside2 (5.15.2-2.3) unstable; urgency=medium ++ ++ * Call "py3versions -d" instead of "py3versions -r" in tests. ++ ++ -- Christian Marillat Fri, 17 Jun 2022 17:49:37 +0200 ++ ++pyside2 (5.15.2-2.2) unstable; urgency=medium ++ ++ * Don't test with python3-all but python3 as only the current python3 is ++ supported. (Closes:# 1012878) ++ ++ -- Christian Marillat Thu, 16 Jun 2022 10:57:23 +0200 ++ ++pyside2 (5.15.2-2.1) unstable; urgency=medium ++ ++ * Non-maintainer upload. ++ * Should always Build-Depends on python3-dev but not on python3-all-dev. ++ This package is unable to manage two python versions at the same time. ++ (Closes: #1008849) ++ ++ -- Christian Marillat Sun, 12 Jun 2022 18:30:03 +0200 ++ ++pyside2 (5.15.2-2) unstable; urgency=medium ++ ++ * Backport upstream patches for Python 3.10 support (closes: #999369). ++ * Backport upstream patch to adapt for LLVM 12.01. ++ * Run build-time tests with all supported Python versions. ++ - Add a patch to make the tests find the matching build directory. ++ ++ -- Dmitry Shachnev Tue, 16 Nov 2021 12:16:14 +0300 ++ ++pyside2 (5.15.2-1) unstable; urgency=medium ++ ++ * Team upload. ++ * Add missing dependencies to make the autopkgtest pass again. ++ * Backport proposed upstream patch to fix qApp flags handling. ++ - Unblacklist QtWidgets::bug_307 test, it should not fail anymore. ++ ++ -- Dmitry Shachnev Sat, 26 Dec 2020 11:39:45 +0300 ++ ++pyside2 (5.15.2-1~exp2) experimental; urgency=medium ++ ++ * Add packages for Qt3DExtras and Qt3DAnimation ++ * Add update-sip-import.patch (Closes: #966041) ++ ++ -- Kurt Kremitzki Sun, 20 Dec 2020 11:32:30 -0600 ++ ++pyside2 (5.15.2-1~exp1) experimental; urgency=medium ++ ++ [ Dmitry Shachnev ] ++ * New upstream release. ++ * Drop python3.9.patch, included in the new release. ++ * Rebase other patches. ++ * Backport upstream changes to pass --reuse-build only to commands that ++ support it. ++ * Build with system patchelf on all architectures. It is now available on ++ mipsel and mips64el too. ++ - Drop update-patchelf.patch, not needed with system patchelf. ++ * Continue building HTML documentation (upstream defaults to qch now). ++ * Replace Qt Quick Controls 1 build-dependency with Qt Quick Controls 2. ++ * Build with default llvm version (closes: #974784). ++ * Revert addition of “Multi-Arch: same” from the previous upload. ++ libpyside2-py3-5.15 is not multi-arch ready because the list of built ++ modules (in _config.py) may be different on different architectures. ++ * Bump Qt build-dependencies to 5.15 (as ftbfs-old-qt.patch was dropped). ++ * Minor debian/rules cleanup. ++ ++ [ Alexander Volkov ] ++ * Add python3-pyside2.qt{quickcontrols2,remoteobjects,serialport} packages. ++ ++ -- Kurt Kremitzki Sat, 19 Dec 2020 14:26:09 -0600 ++ ++pyside2 (5.15.0-6) unstable; urgency=medium ++ ++ * Team upload. ++ ++ [ Debian Janitor ] ++ * Apply multi-arch hints. ++ + python-pyside2-doc, shiboken2-doc: Add Multi-Arch: foreign. ++ + libshiboken2-dev, python3-pyside2.qt*: Add Multi-Arch: same. ++ ++ [ Dmitry Shachnev ] ++ * Drop ftbfs-old-qt.patch. Not needed since Debian has Qt 5.15. ++ * Stop hardcoding py3.8 in debian/shiboken2-doc.docs (closes: #976900). ++ * Blacklist QtWidgets::bug_307 test for now (closes: #976516). ++ ++ -- Dmitry Shachnev Mon, 14 Dec 2020 20:31:39 +0300 ++ ++pyside2 (5.15.0-5) unstable; urgency=medium ++ ++ * Team upload. ++ * Run tests with QSG_NO_DEPTH_BUFFER=1 on mips64el (see #868745). ++ ++ -- Dmitry Shachnev Mon, 19 Oct 2020 21:50:57 +0300 ++ ++pyside2 (5.15.0-4) unstable; urgency=medium ++ ++ * Team upload. ++ * Drop preload-libglx-mesa.patch, not needed with glibc ≥ 2.31-1. ++ * Backport upstream patch to add support for Python 3.9 (closes: #972194). ++ ++ -- Dmitry Shachnev Thu, 15 Oct 2020 20:06:52 +0300 ++ ++pyside2 (5.15.0-3) unstable; urgency=medium ++ ++ [ Dmitry Shachnev ] ++ * Bump Qt build-dependencies to 5.14. As most Qt packages have a ++ Build-Depends-Package field in their symbols files, dpkg-shlibdeps will ++ use that information and generate a runtime dependency on a new enough ++ Qt version (closes: #963983). ++ ++ [ Kurt Kremitzki ] ++ * Remove Freexian folks and add myself to Uploaders ++ * Correct libshiboken2 CMake include path (Closes: #964201) ++ ++ -- Kurt Kremitzki Sun, 05 Jul 2020 05:13:51 -0500 ++ ++pyside2 (5.15.0-2) unstable; urgency=medium ++ ++ * Team upload. ++ * Preload libGLX_mesa.so.0 in web_engine_initialize.py, to work around ++ test failure on arm64 (closes: #963709). ++ ++ -- Dmitry Shachnev Mon, 29 Jun 2020 15:26:26 +0300 ++ ++pyside2 (5.15.0-1) unstable; urgency=medium ++ ++ [ Gianfranco Costamagna ] ++ * Team upload ++ * Upload to unstable ++ * Drop trailing spaces from changelog file ++ * Bump compat level to 13 ++ * Bump std-version to 4.5.0 ++ * Add R^3: no ++ ++ -- Kurt Kremitzki Thu, 25 Jun 2020 21:15:20 -0500 ++ ++pyside2 (5.15.0-1~exp1) experimental; urgency=medium ++ ++ [ Steve Langasek ] ++ * Add test dependency on python3-all to fix autopkgtests (Closes: #950127) ++ ++ [ Gianfranco Costamagna ] ++ * Add python3-distro needed for tests. ++ * Drop "uic" and "rcc" from control file, removed upstream (LP: #1874095) ++ * Add missing Breaks/Replaces for upgrading from previous version ++ (Closes: #949339) ++ * Drop pyside2uic tests, dropped upstream ++ * New upstream version 5.15.0 (Closes: #950126, Closes: #960008) ++ * Drop old Fix-build-with-Qt-5.12, addressed upstream ++ * Add patch to fix build failures with old qt implementation ++ * Refresh patches ++ * Bump copyright years ++ * Bump soname to 15 ++ * Drop manpage, removed upstream ++ * Use llvm-9 to build, fixing a build failure ++ ++ -- Gianfranco Costamagna Sat, 06 Jun 2020 14:48:45 +0200 ++ ++pyside2 (5.14.0-1~exp1) experimental; urgency=medium ++ ++ [ Raphaël Hertzog ] ++ * Team upload ++ * New upstream version 5.14.0. Closes: #945376, #947101 ++ * Update patches (3 dropped, one new for Qt 5.12 compat) ++ * Use --ignore-git option instead of custom patch ++ * Update package names for version 5.14 ++ * Drop python3-pyside2uic, there's no such library anymore ++ * Re-enable tests failing due to broken XDG_RUNTIME_DIR ++ * Drop package prefix from lintian overrides ++ * Drop removed file from debian/copyright ++ * Fix arch-all build on 32 bit arches. Closes: #948764 ++ Thanks to peter green for the patch. ++ ++ [ Kurt Kremitzki ] ++ * Add CMake sed for pyside2 include path ++ * Add CMake sed for multi-Python version support ++ ++ -- Kurt Kremitzki Mon, 13 Jan 2020 00:10:14 -0600 ++ ++pyside2 (5.13.2-2.2) unstable; urgency=medium ++ ++ * Non-maintainer upload ++ * Update cmake paths for new locations ++ ++ -- Gianfranco Costamagna Sun, 29 Dec 2019 22:44:55 +0100 ++ ++pyside2 (5.13.2-2.1) unstable; urgency=medium ++ ++ * Non-maintainer upload ++ * Add an explicit shiboken dependency to fix FTBFS for reverse-dependencies ++ cmake based, who expect it being installed (Closes: #946082) ++ - thanks Tommaso Colombo for the patch ++ ++ -- Gianfranco Costamagna Tue, 24 Dec 2019 09:22:39 +0100 ++ ++pyside2 (5.13.2-2) unstable; urgency=medium ++ ++ * Do not build-depends on libqt5datavisualization5-dev on mipsel and ++ mpis64el (Closes: #945174) and limit .*qtdatavisualization binary package ++ to arch: amd64 arm64 armel armhf i386 ppc64el s390x ++ * Limit python3-pyside2.qtwebengine to amd64 arm64 armhf i386 mipsel ++ (qtwebengine5-dev is not available for other architectures) ++ * Add a patch to blacklist failing tests ++ ++ -- Sophie Brun Fri, 22 Nov 2019 10:28:55 +0100 ++ ++pyside2 (5.13.2-1) unstable; urgency=medium ++ ++ [ Ondřej Nový ] ++ * Remove almost all of Python 2 binary packages (no rdeps): ++ - python-pyside2.qt3dcore ++ - python-pyside2.qt3dinput ++ - python-pyside2.qt3dlogic ++ - python-pyside2.qt3drender ++ - python-pyside2.qtcharts ++ - python-pyside2.qtconcurrent ++ - python-pyside2.qthelp ++ - python-pyside2.qtlocation ++ - python-pyside2.qtmultimedia ++ - python-pyside2.qtmultimediawidgets ++ - python-pyside2.qtnetwork ++ - python-pyside2.qtpositioning ++ - python-pyside2.qtprintsupport ++ - python-pyside2.qtqml ++ - python-pyside2.qtquick ++ - python-pyside2.qtquickwidgets ++ - python-pyside2.qtscript ++ - python-pyside2.qtscripttools ++ - python-pyside2.qtsensors ++ - python-pyside2.qtsql ++ - python-pyside2.qttest ++ - python-pyside2.qttexttospeech ++ - python-pyside2.qtwebchannel ++ - python-pyside2.qtwebenginecore ++ - python-pyside2.qtwebenginewidgets ++ - python-pyside2.qtwebsockets ++ - python-pyside2.qtx11extras ++ - python-pyside2.qtxmlpatterns ++ ++ [ Sophie Brun ] ++ * Update debian/watch ++ * New upstream version 5.13.2 ++ * Refresh patches and remove obsolete patches ++ * Add missing build-deps ++ * Force pybuild to use distutils, not Cmake ++ * Replace deprecated upstream option --jobs with --parallel ++ * Update documentation build ++ * Add a patch to support Python 3.8 (Closes: #942753) ++ * Add new binary packages ++ - python3-pyside2.qtdatavisualization ++ - python3-pyside2.qtopenglfunctions ++ - python3-pyside2.qtscxml ++ - python3-pyside2.qtwebengine ++ * Update list of built files in debian/rules ++ * Switch pyside2-tools to Python3 ++ * Switch to debhelper-compat 12 ++ * Bump Standards-Version to 4.4.1 (no changes) ++ * Update installation of python3 module shiboken2 ++ * Add autopkgtest ++ * Add missing Conflicts/Replaces and Provides for libpyside2-* ++ * Add a patch to use python3 in pyside2-tools ++ * Remove disable failing test in debian/rules ++ * Add missing depends (Closes: #943709) ++ * Run the tests and add missing build-deps for tests ++ * Remove useless build-dep pyqt5-dev ++ ++ [ Raphaël Hertzog ] ++ * Drop remaining python2 parts. ++ ++ -- Sophie Brun Fri, 15 Nov 2019 10:15:57 +0100 ++ ++pyside2 (5.11.2-3) unstable; urgency=medium ++ ++ [ Sébastien Delafond ] ++ * Do not build-depends on patchelf on mips and mipsel (Closes: #917199) ++ ++ -- Sebastien Delafond Wed, 16 Jan 2019 16:30:16 +0100 ++ ++pyside2 (5.11.2-2) unstable; urgency=medium ++ ++ [ Sébastien Delafond ] ++ * Add myself to uploaders ++ * Do not build-depends on patchelf on mips64el (Closes: #917200) ++ ++ -- Sebastien Delafond Thu, 10 Jan 2019 09:21:43 +0100 ++ ++pyside2 (5.11.2-1) unstable; urgency=medium ++ ++ [ Raphaël Hertzog ] ++ * New upstream version 5.11.2 ++ * Remove patches merged upstream ++ * Merge fix-PAGESIZE.patch into update-patchelf.patch ++ * Add patchelf to Build-Depends ++ * Bump Standards-Version to 4.2.1 ++ ++ [ Frédéric Bonnard ] ++ * Fix hardcoded PAGESIZE for patchelf.cc. Closes: #909265 ++ ++ -- Raphaël Hertzog Fri, 28 Sep 2018 15:09:34 +0200 ++ ++pyside2 (5.11.0-4) unstable; urgency=medium ++ ++ * Use default llvm-dev and libclang-dev (Closes: #906168) ++ * Add Cmake config files for Python3 (Closes: #906020) ++ * Fix debian/libpyside2-5.11.install for triplets that are not *-linux-gnu ++ (thanks to Adrian Bunk) ++ * Add an upstream patch to fix build on armel/armhf ++ ++ -- Sophie Brun Mon, 27 Aug 2018 12:53:29 +0200 ++ ++pyside2 (5.11.0-3) unstable; urgency=medium ++ ++ * More fixes for builds building only arch any or only arch all. ++ * Really fix the build with dpkg-buildpackage -A. ++ ++ -- Raphaël Hertzog Tue, 31 Jul 2018 21:33:04 +0200 ++ ++pyside2 (5.11.0-2) unstable; urgency=medium ++ ++ [ Raphaël Hertzog ] ++ * Fix build with dpkg-buildpackage -A. Closes: #904892 ++ * Fix python-pyside2 dependencies. Replace python-pyside2.widgets by ++ python-pyside2.qtwidgets. ++ ++ [ Sophie Brun ] ++ * Drop useless "Testsuite: autopkgtest-pkg-python". ++ * Enable parallel build. ++ * Limit QtWebEngine packages to amd64 arm64 armhf i386 mipsel. ++ * Remove unused lintian-overrides. ++ * Use python2 only in pyside2-tools. ++ * Remove big metapackages python-pyside2 and python3-pyside2. ++ ++ -- Raphaël Hertzog Tue, 31 Jul 2018 16:37:40 +0200 ++ ++pyside2 (5.11.0-1) unstable; urgency=medium ++ ++ * Initial release (Closes: #877871) ++ ++ -- Sophie Brun Thu, 26 Jul 2018 17:47:45 +0200 diff --cc debian/clean index 0000000,0000000..007fd64 new file mode 100644 --- /dev/null +++ b/debian/clean @@@ -1,0 -1,0 +1,6 @@@ ++build_history/2*/ ++pyside3_build/ ++pyside3_install/ ++sources/pyside2/doc/pyside-config.qdocconf ++sources/pyside2/doc/pyside.qdocconf.in ++sources/pyside2/doc/qtmodules/pyside-*.qdocconf diff --cc debian/control index 0000000,0000000..c1dd970 new file mode 100644 --- /dev/null +++ b/debian/control @@@ -1,0 -1,0 +1,451 @@@ ++Source: pyside2 ++Section: python ++Priority: optional ++Maintainer: Debian Qt/KDE Maintainers ++Uploaders: Kurt Kremitzki ++Build-Depends: chrpath, ++ cmake (>= 3.1), ++ debhelper-compat (= 13), ++ dh-python, ++ dpkg-dev (>= 1.22.5), ++ graphviz, ++ libclang-dev, ++ libqt5opengl5-dev (>= 5.15), ++ libqt5svg5-dev (>= 5.15), ++ libqt5webchannel5-dev (>= 5.15), ++ libqt5websockets5-dev (>= 5.15), ++ libqt5xmlpatterns5-dev (>= 5.15), ++ libxml2-dev, ++ libxslt1-dev, ++ llvm-dev, ++ python3-dev, ++ python3-distro, ++ python3-setuptools, ++ python3-sphinx, ++ python3-sphinx-rtd-theme, ++ python3-wheel, ++ qml-module-qtquick-controls2 (>= 5.15), ++ qml-module-qtquick-layouts (>= 5.15), ++ qml-module-qtquick2 (>= 5.15), ++ qt5-qmake (>= 5.15), ++ qt5-qmake-bin (>= 5.15), ++ qtbase5-dev (>= 5.15), ++ qtbase5-private-dev (>= 5.15), ++ qtchooser, ++ qtdeclarative5-dev (>= 5.15), ++ qtdeclarative5-private-dev (>= 5.15), ++ qtmultimedia5-dev (>= 5.15), ++ qttools5-dev (>= 5.15), ++ qtwebengine5-dev (>= 5.15) [amd64 arm64 armhf i386 mips64el], ++ xauth, ++ xvfb ++Rules-Requires-Root: no ++Standards-Version: 4.7.0 ++Homepage: https://wiki.qt.io/Qt_for_Python ++Vcs-Git: https://salsa.debian.org/qt-kde-team/qt/pyside2.git ++Vcs-Browser: https://salsa.debian.org/qt-kde-team/qt/pyside2 ++ ++Package: python-pyside2-doc ++Architecture: all ++Section: doc ++Depends: ${misc:Depends}, ${sphinxdoc:Depends} ++Multi-Arch: foreign ++Description: Python bindings for Qt5 (common documentation) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains the common documentation package. ++ ++Package: libpyside2-py3-5.15t64 ++Breaks: libpyside2-py3-5.15 (<< ${source:Version}) ++Section: libs ++Architecture: any ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends} ++Conflicts: libpyside2-py3-5.11, libpyside2-py3-5.13, libpyside2-py3-5.14 ++Replaces: libpyside2-py3-5.15, libpyside2-py3-5.11, libpyside2-py3-5.13, libpyside2-py3-5.14 ++Provides: ${t64:Provides}, libpyside2-py3 ++Description: Python 3 bindings for Qt5 (base files) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python3 base file used by all modules. ++ ++Package: libpyside2-dev ++Section: libdevel ++Architecture: any ++Depends: ${misc:Depends}, ${shlibs:Depends}, libpyside2-py3-5.15t64 (= ${binary:Version}) ++Description: Python bindings for Qt5 (development files) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package provides the development headers for the libpyside2 library. ++ ++Package: python3-pyside2.qtcore ++Architecture: any ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends} ++Suggests: python-pyside2-doc ++Description: Python bindings for Qt5 core module (Python 3) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python 3 bindings for the QtCore module. ++ ++Package: shiboken2 ++Section: devel ++Architecture: any ++Depends: ${misc:Depends}, ${shlibs:Depends} ++Description: CPython bindings generator for C++ libraries ++ Shiboken2 is a bindings generator for C++ libraries that outputs CPython ++ source code. It collects information from library headers, and then ++ merges modifications and handwritten code defined in the typesystem ++ description. ++ . ++ Shiboken2 is the binding generator used to create the PySide2 bindings. ++ ++Package: libshiboken2-py3-5.15t64 ++Breaks: libshiboken2-py3-5.15 (<< ${source:Version}) ++Section: libs ++Architecture: any ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends} ++Conflicts: libshiboken2-py3-5.11, libshiboken2-py3-5.13, libshiboken2-py3-5.14 ++Replaces: libshiboken2-py3-5.15, libshiboken2-py3-5.11, libshiboken2-py3-5.13, libshiboken2-py3-5.14 ++Provides: ${t64:Provides}, libshiboken2-py3 ++Description: CPython bindings generator for C++ libraries (Python3 shared library) ++ Shiboken2 is a bindings generator for C++ libraries that outputs CPython ++ source code. It collects information from library headers, and then ++ merges modifications and handwritten code defined in the typesystem ++ description. ++ . ++ Shiboken2 is the binding generator used to create the PySide2 bindings. ++ . ++ This package contains the shared Python 3 library used by shiboken2. ++ ++Package: libshiboken2-dev ++Section: libdevel ++Architecture: any ++Depends: ${misc:Depends}, ${shlibs:Depends}, ++ libshiboken2-py3-5.15t64 (= ${binary:Version}), shiboken2 (= ${binary:Version}), python3-dev ++Description: CPython bindings generator for C++ libraries (development files) ++ Shiboken2 is a bindings generator for C++ libraries that outputs CPython ++ source code. It collects information from library headers, and then ++ merges modifications and handwritten code defined in the typesystem ++ description. ++ . ++ Shiboken2 is the binding generator used to create the PySide2 bindings. ++ . ++ This package provides the development headers for the libshiboken2 library. ++ ++Package: shiboken2-doc ++Architecture: all ++Section: doc ++Depends: ${misc:Depends}, ${sphinxdoc:Depends} ++Multi-Arch: foreign ++Description: CPython bindings generator for C++ libraries (common documentation) ++ Shiboken2 is a bindings generator for C++ libraries that outputs CPython ++ source code. It collects information from library headers, and then ++ merges modifications and handwritten code defined in the typesystem ++ description. ++ . ++ Shiboken2 is the binding generator used to create the PySide2 bindings. ++ . ++ This package contains the common documentation. ++ ++Package: pyside2-tools ++Architecture: any ++Depends: ${misc:Depends}, ${shlibs:Depends}, ${python3:Depends}, python3-pyside2.qtcore ++Description: development tools for PySide2 (lupdate) ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ PySide2 ships Python bindings for the Qt5 framework. This package ships ++ the following accompanying tools: ++ * pyside2-lupdate - update Qt Linguist translation files for PySide ++ ++Package: python3-pyside2.qtwidgets ++Architecture: any ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ++ python3-pyside2.qtcore, python3-pyside2.qtgui ++Description: Python bindings for Qt5 Widgets module (Python 3) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python 3 bindings for the QtWidgets module. ++ ++Package: python3-pyside2.qtquick ++Architecture: any ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ++ python3-pyside2.qtcore, python3-pyside2.qtnetwork, python3-pyside2.qtqml, ++ python3-pyside2.qtgui ++Description: Python bindings for Qt5 Quick module (Python 3) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python 3 bindings for the QtQuick module. ++ ++Package: python3-pyside2.qtqml ++Architecture: any ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ++ python3-pyside2.qtcore, python3-pyside2.qtgui, python3-pyside2.qtnetwork ++Description: Python bindings for Qt5 Qml module (Python 3) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python 3 bindings for the QtQml module. ++ ++Package: python3-pyside2.qtwebenginecore ++Architecture: amd64 arm64 armhf i386 mips64el ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ++ python3-pyside2.qtcore, python3-pyside2.qtnetwork ++Description: Python bindings for Qt5 WebEngineCore module (Python 3) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python 3 bindings for the QtWebEngineCore module. ++ ++Package: python3-pyside2.qthelp ++Architecture: any ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ++ python3-pyside2.qtwidgets, python3-pyside2.qtcore, python3-pyside2.qtgui ++Description: Python bindings for Qt5 Help module (Python 3) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python 3 bindings for the QtHelp module. ++ ++Package: python3-pyside2.qtnetwork ++Architecture: any ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ++ python3-pyside2.qtcore ++Description: Python bindings for Qt5 Network module (Python 3) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python 3 bindings for the QtNetwork module. ++ ++Package: python3-pyside2.qtmultimediawidgets ++Architecture: any ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ++ python3-pyside2.qtcore, python3-pyside2.qtgui, python3-pyside2.qtnetwork, ++ python3-pyside2.qtwidgets, python3-pyside2.qtmultimedia ++Description: Python bindings for Qt5 MultimediaWidgets module (Python 3) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python 3 bindings for the QtMultimediaWidgets module. ++ ++Package: python3-pyside2.qtmultimedia ++Architecture: any ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ++ python3-pyside2.qtcore, python3-pyside2.qtgui, python3-pyside2.qtnetwork ++Description: Python bindings for Qt5 Multimedia module (Python 3) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python 3 bindings for the QtMultimedia module. ++ ++Package: python3-pyside2.qtwebchannel ++Architecture: any ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ++ python3-pyside2.qtcore ++Description: Python bindings for Qt5 WebChannel module (Python 3) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python 3 bindings for the QtWebChannel module. ++ ++Package: python3-pyside2.qtprintsupport ++Architecture: any ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ++ python3-pyside2.qtwidgets, python3-pyside2.qtcore, python3-pyside2.qtgui ++Description: Python bindings for Qt5 PrintSupport module (Python 3) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python 3 bindings for the QtPrintSupport module. ++ ++Package: python3-pyside2.qtxml ++Architecture: any ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ++ python3-pyside2.qtcore ++Description: Python bindings for Qt5 Xml module (Python 3) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python 3 bindings for the QtXml module. ++ ++Package: python3-pyside2.qttest ++Architecture: any ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ++ python3-pyside2.qtcore, python3-pyside2.qtgui, python3-pyside2.qtwidgets ++Description: Python bindings for Qt5 Test module (Python 3) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python 3 bindings for the QtTest module. ++ ++Package: python3-pyside2.qtwebenginewidgets ++Architecture: amd64 arm64 armhf i386 mips64el ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ++ python3-pyside2.qtcore, python3-pyside2.qtgui, python3-pyside2.qtwidgets, ++ python3-pyside2.qtnetwork, python3-pyside2.qtwebchannel, ++ python3-pyside2.qtwebenginecore, python3-pyside2.qtprintsupport ++Description: Python bindings for Qt5 WebEngineWidgets module (Python 3) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python 3 bindings for the QtWebEngineWidgets module. ++ ++Package: python3-pyside2.qtconcurrent ++Architecture: any ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ++ python3-pyside2.qtcore ++Description: Python bindings for Qt5 Concurrent module (Python 3) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python 3 bindings for the QtConcurrent module. ++ ++Package: python3-pyside2.qtxmlpatterns ++Architecture: any ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ++ python3-pyside2.qtcore ++Description: Python bindings for Qt5 XmlPatterns module (Python 3) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python 3 bindings for the QtXmlPatterns module. ++ ++Package: python3-pyside2.qtuitools ++Architecture: any ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ++ python3-pyside2.qtwidgets, python3-pyside2.qtxml, python3-pyside2.qtcore, ++ python3-pyside2.qtgui ++Description: Python bindings for Qt5 UiTools module (Python 3) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python 3 bindings for the QtUiTools module. ++ ++Package: python3-pyside2.qtopengl ++Architecture: any ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ++ python3-pyside2.qtwidgets, python3-pyside2.qtcore, python3-pyside2.qtgui ++Description: Python bindings for Qt5 OpenGL module (Python 3) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python 3 bindings for the QtOpenGL module. ++ ++Package: python3-pyside2.qtsql ++Architecture: any ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ++ python3-pyside2.qtwidgets, python3-pyside2.qtgui, python3-pyside2.qtcore ++Description: Python bindings for Qt5 Sql module (Python 3) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python 3 bindings for the QtSql module. ++ ++Package: python3-pyside2.qtgui ++Architecture: any ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ++ python3-pyside2.qtcore ++Description: Python bindings for Qt5 Gui module (Python 3) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python 3 bindings for the QtGui module. ++ ++Package: python3-pyside2.qtsvg ++Architecture: any ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ++ python3-pyside2.qtwidgets, python3-pyside2.qtgui, python3-pyside2.qtcore ++Description: Python bindings for Qt5 Svg module (Python 3) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python 3 bindings for the QtSvg module. ++ ++Package: python3-pyside2.qtwebsockets ++Architecture: any ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ++ python3-pyside2.qtcore, python3-pyside2.qtnetwork ++Description: Python bindings for Qt5 WebSockets module (Python 3) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python 3 bindings for the QtWebSockets module. ++ ++Package: python3-pyside2.qtopenglfunctions ++Architecture: any ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ++ python3-pyside2.qtgui, python3-pyside2.qtcore ++Description: Python bindings for Qt5 Open GL Functions (Python 3) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python 3 bindings for the OpenGLFunctions module. ++ ++Package: python3-pyside2.qtwebengine ++Architecture: amd64 arm64 armhf i386 mips64el ++Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}, ++ python3-pyside2.qtcore ++Description: Python bindings for Qt5 Web Engine (Python 3) ++ pyside2 provides Python bindings for Qt 5.x framework. ++ . ++ Qt is a cross-platform C++ application framework. Qt's primary feature ++ is its rich set of widgets that provide standard GUI functionality. ++ . ++ This package contains Python 3 bindings for the QtWebEngine module. diff --cc debian/copyright index 0000000,0000000..88f22cc new file mode 100644 --- /dev/null +++ b/debian/copyright @@@ -1,0 -1,0 +1,259 @@@ ++Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ ++Upstream-Name: pyside2 ++Source: https://download.qt.io/official_releases/QtForPython/ ++ ++Files: * ++Copyright: 2016-2020 The Qt Company Ltd. ++License: GPL-2 or GPL-3 or LGPL-3 ++ ++Files: examples/* ++Copyright: 2016-2018 The Qt Company Ltd. ++ 2011 Arun Srinivasan ++ 2010-2013 Riverbank Computing Limited. ++ 2010 Hans-Peter Jansen ++ 2010 velociraptor Genjix ++ 2009 Darryl Wallace, 2009 ++License: BSD-3-clause ++ ++Files: sources/patchelf/* ++Copyright: 2004-2009 Eelco Dolstra ++License: GPL-3+ ++ ++Files: sources/patchelf/elf.h ++Copyright: 1995-2008 Free Software Foundation, Inc. ++License: LGPL-2.1+ ++ ++Files: sources/pyside2/doc/typesystem_doc.xml.in ++ sources/pyside2/doc/codesnippets/* ++ sources/pyside2/doc/tutorials/* ++Copyright: 2016 The Qt Company Ltd. ++License: BSD-3-clause ++ ++Files: sources/pyside2/doc/inheritance_diagram.py ++Copyright: 2010-2011 by the PySide team ++ 2007-2011 by the Sphinx team ++License: BSD-2-clause ++ All rights reserved. ++ . ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions are ++ met: ++ . ++ * Redistributions of source code must retain the above copyright ++ notice, this list of conditions and the following disclaimer. ++ . ++ * Redistributions in binary form must reproduce the above copyright ++ notice, this list of conditions and the following disclaimer in the ++ documentation and/or other materials provided with the distribution. ++ . ++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ ++Files: sources/pyside2/tests/run_test.sh ++ sources/pyside2/tests/Qt* ++ sources/pyside2/tests/mac/qmacstyle_test.py ++ sources/pyside2/tests/manually/* ++ sources/pyside2/tests/pysidetest/* ++ sources/pyside2/tests/signals/* ++ sources/pyside2/tests/util/* ++ sources/shiboken2/ApiExtractor/* ++ sources/shiboken2/generator/* ++ sources/shiboken2/generatorrunnermacros.h ++ sources/shiboken2/generators/* ++ sources/shiboken2/tests/* ++Copyright: 2009 Matthias Klose ++ 2002-2005 Roberto Raggi ++ 2011 Thomas Perl ++ 2013 Kitware, Inc. ++ 2016-2017 The Qt Company Ltd. ++License: GPL-3-EXCEPT ++ ++Files: sources/pyside2-tools/* ++Copyright: 2016 The Qt Company Ltd. ++ 2010 Riverbank Computing Limited. ++ 2009-2011 Nokia Corporation and/or its subsidiary(-ies) ++ 2009 Torsten Marek ++ 2002-2007 Detlev Offenbach ++ 1992-2006 Trolltech AS. All rights reserved. ++License: GPL-2 ++ ++Files: debian/* ++Copyright: 2018 Sophie Brun ++License: GPL-2+ ++ This package is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ . ++ This package is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ . ++ You should have received a copy of the GNU General Public License ++ along with this program. If not, see ++ . ++ On Debian systems, the complete text of the GNU General ++ Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". ++ ++License: BSD-3-clause ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions are ++ met: ++ * Redistributions of source code must retain the above copyright ++ notice, this list of conditions and the following disclaimer. ++ * Redistributions in binary form must reproduce the above copyright ++ notice, this list of conditions and the following disclaimer in ++ the documentation and/or other materials provided with the ++ distribution. ++ * Neither the name of The Qt Company Ltd nor the names of its ++ contributors may be used to endorse or promote products derived ++ from this software without specific prior written permission. ++ . ++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ++ ++License: GPL-2 ++ This package is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License version 2 as ++ published by the Free Software Foundation. ++ . ++ This package is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ . ++ You should have received a copy of the GNU General Public License ++ along with this program. If not, see ++ . ++ On Debian systems, the complete text of the GNU General ++ Public License version 2 can be found in "/usr/share/common-licenses/GPL-2" ++ ++License: GPL-3 ++ This package is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License version 3 as ++ published by the Free Software Foundation. ++ . ++ This package is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ . ++ You should have received a copy of the GNU General Public License ++ along with this program. If not, see ++ . ++ On Debian systems, the complete text of the GNU General ++ Public License version 3 can be found in "/usr/share/common-licenses/GPL-3" ++ ++License: GPL-3+ ++ This package is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation, either version 3 of the License, or ++ (at your option) any later version. ++ . ++ This package is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ . ++ You should have received a copy of the GNU General Public License ++ along with this program. If not, see ++ . ++ On Debian systems, the complete text of the GNU General ++ Public License version 3 can be found in "/usr/share/common-licenses/GPL-3" ++ ++License: GPL-3-EXCEPT ++ This package is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License version 3 as ++ published by the Free Software Foundation, annotated with The Qt Company ++ GPL Exception 1.0: ++ . ++ The Qt Company GPL Exception 1.0 ++ . ++ Exception 1: ++ . ++ As a special exception you may create a larger work which contains the ++ output of this application and distribute that work under terms of your ++ choice, so long as the work is not otherwise derived from or based on ++ this application and so long as the work does not in itself generate ++ output that contains the output from this application in its original ++ or modified form. ++ . ++ Exception 2: ++ . ++ As a special exception, you have permission to combine this application ++ with Plugins licensed under the terms of your choice, to produce an ++ executable, and to copy and distribute the resulting executable under ++ the terms of your choice. However, the executable must be accompanied ++ by a prominent notice offering all users of the executable the entire ++ source code to this application, excluding the source code of the ++ independent modules, but including any changes you have made to this ++ application, under the terms of this license. ++ . ++ This package is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ . ++ You should have received a copy of the GNU General Public License ++ along with this program. If not, see ++ . ++ On Debian systems, the complete text of the GNU General ++ Public License version 3 can be found in "/usr/share/common-licenses/GPL-3" ++ ++License: LGPL-2.1+ ++ This library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ . ++ This library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ . ++ You should have received a copy of the GNU Lesser General Public ++ License along with this library; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 ++ USA ++ . ++ On Debian systems, the complete text of the Lesser GNU General ++ Public License version 2.1 can be found in ++ "/usr/share/common-licenses/LGPL-2.1" ++ ++License: LGPL-3 ++ This library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License version 3 as published by the Free Software Foundation. ++ . ++ This library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ . ++ You should have received a copy of the GNU Lesser General Public ++ License along with this library; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 ++ USA ++ . ++ On Debian systems, the complete text of the Lesser GNU General ++ Public License version 3 can be found in ++ "/usr/share/common-licenses/LGPL-3" diff --cc debian/libpyside2-dev.install index 0000000,0000000..3eb64ff new file mode 100644 --- /dev/null +++ b/debian/libpyside2-dev.install @@@ -1,0 -1,0 +1,5 @@@ ++pyside3_install/py3*-relwithdebinfo/include/PySide2 usr/include ++pyside3_install/py3*-relwithdebinfo/share/PySide2 usr/share ++pyside3_install/py3*-relwithdebinfo/lib/pkgconfig/pyside2.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig ++pyside3_install/py3*-relwithdebinfo/lib/libpyside2*.so usr/lib/${DEB_HOST_MULTIARCH} ++pyside3_install/py3*-relwithdebinfo/lib/cmake/PySide2* usr/lib/${DEB_HOST_MULTIARCH}/cmake diff --cc debian/libpyside2-py3-5.15t64.install index 0000000,0000000..cd81eb8 new file mode 100644 --- /dev/null +++ b/debian/libpyside2-py3-5.15t64.install @@@ -1,0 -1,0 +1,4 @@@ ++pyside3_install/py3*-relwithdebinfo/lib/libpyside2*.so.* usr/lib/${DEB_HOST_MULTIARCH} ++pyside3_install/py3*-relwithdebinfo/lib/python*/site-packages/PySide2/_git_pyside_version.py usr/lib/python3/dist-packages/PySide2 ++pyside3_install/py3*-relwithdebinfo/lib/python*/site-packages/PySide2/__init__.py usr/lib/python3/dist-packages/PySide2 ++pyside3_install/py3*-relwithdebinfo/lib/python*/site-packages/PySide2/_config.py usr/lib/python3/dist-packages/PySide2 diff --cc debian/libpyside2-py3-5.15t64.lintian-overrides index 0000000,0000000..7705865 new file mode 100644 --- /dev/null +++ b/debian/libpyside2-py3-5.15t64.lintian-overrides @@@ -1,0 -1,0 +1,3 @@@ ++# We ship compiled versions for each supported python3 version, with a symlink to the default version ++package-name-doesnt-match-sonames * ++libpyside2-py3-5.15t64: package-name-doesnt-match-sonames libpyside2-py3-5.15 diff --cc debian/libshiboken2-dev.install index 0000000,0000000..b2dd32a new file mode 100644 --- /dev/null +++ b/debian/libshiboken2-dev.install @@@ -1,0 -1,0 +1,4 @@@ ++pyside3_install/py3*-relwithdebinfo/include/shiboken2 usr/include ++pyside3_install/py3*-relwithdebinfo/lib/pkgconfig/shiboken2.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig ++pyside3_install/py3*-relwithdebinfo/lib/libshiboken2*.so usr/lib/${DEB_HOST_MULTIARCH} ++pyside3_install/py3*-relwithdebinfo/lib/cmake/Shiboken2* usr/lib/${DEB_HOST_MULTIARCH}/cmake diff --cc debian/libshiboken2-py3-5.15t64.install index 0000000,0000000..1bc2122 new file mode 100644 --- /dev/null +++ b/debian/libshiboken2-py3-5.15t64.install @@@ -1,0 -1,0 +1,2 @@@ ++pyside3_install/py3*-relwithdebinfo/lib/libshiboken2*.so.* usr/lib/${DEB_HOST_MULTIARCH} ++pyside3_install/py3*-relwithdebinfo/lib/python3*/site-packages/shiboken2/* usr/lib/python3/dist-packages/shiboken2 diff --cc debian/libshiboken2-py3-5.15t64.lintian-overrides index 0000000,0000000..8018cec new file mode 100644 --- /dev/null +++ b/debian/libshiboken2-py3-5.15t64.lintian-overrides @@@ -1,0 -1,0 +1,3 @@@ ++# We ship compiled versions for each supported python3 version, with a symlink to the default version ++package-name-doesnt-match-sonames * ++libshiboken2-py3-5.15t64: package-name-doesnt-match-sonames libshiboken2-py3-5.15 diff --cc debian/patches/Do-not-change-RPATH.patch index 0000000,0000000..2e3dc19 new file mode 100644 --- /dev/null +++ b/debian/patches/Do-not-change-RPATH.patch @@@ -1,0 -1,0 +1,37 @@@ ++From: Dmitry Shachnev ++Date: Thu, 25 Jan 2024 14:21:09 +0300 ++Subject: Do not change RPATH ++ ++Forwarded: not-needed ++--- ++ build_scripts/main.py | 3 --- ++ build_scripts/platforms/unix.py | 5 ----- ++ 2 files changed, 8 deletions(-) ++ ++diff --git a/build_scripts/main.py b/build_scripts/main.py ++index 23b37c5..25c0cf3 100644 ++--- a/build_scripts/main.py +++++ b/build_scripts/main.py ++@@ -631,9 +631,6 @@ class PysideBuild(_build, DistUtilsCommandMixin): ++ log.info("Created {}".format(build_history)) ++ ++ if not OPTION["SKIP_PACKAGING"]: ++- # Build patchelf if needed ++- self.build_patchelf() ++- ++ # Prepare packages ++ self.prepare_packages() ++ ++diff --git a/build_scripts/platforms/unix.py b/build_scripts/platforms/unix.py ++index b842510..8df0e73 100644 ++--- a/build_scripts/platforms/unix.py +++++ b/build_scripts/platforms/unix.py ++@@ -220,8 +220,3 @@ def prepare_packages_posix(self, vars): ++ if config.is_internal_shiboken_generator_build(): ++ # Copy over clang before rpath patching. ++ self.prepare_standalone_clang(is_win=False) ++- ++- # Update rpath to $ORIGIN ++- if sys.platform.startswith('linux') or sys.platform.startswith('darwin'): ++- rpath_path = "{st_build_dir}/{st_package_name}".format(**vars) ++- self.update_rpath(rpath_path, executables) diff --cc debian/patches/Do-the-transition-to-Python-3.13.patch index 0000000,0000000..8fb529a new file mode 100644 --- /dev/null +++ b/debian/patches/Do-the-transition-to-Python-3.13.patch @@@ -1,0 -1,0 +1,24 @@@ ++From: Christian Tismer ++Date: Fri, 7 Jun 2024 14:57:14 +0200 ++Subject: Do the transition to Python 3.13 ++ ++Task-number: PYSIDE-2751 ++Change-Id: I37b447148787e2923a58c091a5c8ac808d579bc0 ++Reviewed-by: Friedemann Kleint ++(cherry picked from commit ad18260e583a30505e42b04fd242c52ff36f735c) ++--- ++ build_scripts/config.py | 1 + ++ 1 file changed, 1 insertion(+) ++ ++diff --git a/build_scripts/config.py b/build_scripts/config.py ++index fb27394..0e7f9fd 100644 ++--- a/build_scripts/config.py +++++ b/build_scripts/config.py ++@@ -96,6 +96,7 @@ class Config(object): ++ 'Programming Language :: Python :: 3.10', ++ 'Programming Language :: Python :: 3.11', ++ 'Programming Language :: Python :: 3.12', +++ 'Programming Language :: Python :: 3.13', ++ ] ++ ++ self.setup_script_dir = None diff --cc debian/patches/Final-details-to-enable-3.12-wheel-compatibility.patch index 0000000,0000000..b40d6aa new file mode 100644 --- /dev/null +++ b/debian/patches/Final-details-to-enable-3.12-wheel-compatibility.patch @@@ -1,0 -1,0 +1,27 @@@ ++From: =?utf-8?q?Cristi=C3=A1n_Maureira-Fredes?= ++ ++Date: Tue, 10 Oct 2023 15:52:09 +0200 ++Subject: Final details to enable 3.12 wheel compatibility ++ ++Change-Id: I0252c4e73e8c214ef8aa418ddf88bc452c0fdf53 ++Pick-to: 6.6 ++Task-number: PYSIDE-2230 ++Reviewed-by: Friedemann Kleint ++(cherry picked from commit 6c7bb7b6e1008909e49bc04d2a48024309a784cc) ++--- ++ build_scripts/config.py | 2 +- ++ 1 file changed, 1 insertion(+), 1 deletion(-) ++ ++diff --git a/build_scripts/config.py b/build_scripts/config.py ++index 5fc23d4..fb27394 100644 ++--- a/build_scripts/config.py +++++ b/build_scripts/config.py ++@@ -138,7 +138,7 @@ class Config(object): ++ setup_kwargs['zip_safe'] = False ++ setup_kwargs['cmdclass'] = cmd_class_dict ++ setup_kwargs['version'] = package_version ++- setup_kwargs['python_requires'] = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <3.12" +++ setup_kwargs['python_requires'] = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <3.13" ++ ++ if quiet: ++ # Tells distutils / setuptools to be quiet, and only print warnings or errors. diff --cc debian/patches/Fix-condition-to-allow-3.13-for-wheel-creation.patch index 0000000,0000000..4d0343f new file mode 100644 --- /dev/null +++ b/debian/patches/Fix-condition-to-allow-3.13-for-wheel-creation.patch @@@ -1,0 -1,0 +1,27 @@@ ++From: =?utf-8?q?Cristi=C3=A1n_Maureira-Fredes?= ++ ++Date: Thu, 19 Sep 2024 09:25:05 +0200 ++Subject: Fix condition to allow 3.13 for wheel creation ++ ++Task-number: PYSIDE-2751 ++Pick-to: 6.8 ++Change-Id: Iaf6e914bf798371faf5066f4a2d70fe3e2c124e5 ++Reviewed-by: Christian Tismer ++(cherry picked from commit a86135803fe51e5702444f8b7dcb2a4dccd3a209) ++--- ++ build_scripts/config.py | 2 +- ++ 1 file changed, 1 insertion(+), 1 deletion(-) ++ ++diff --git a/build_scripts/config.py b/build_scripts/config.py ++index 0e7f9fd..27844ee 100644 ++--- a/build_scripts/config.py +++++ b/build_scripts/config.py ++@@ -139,7 +139,7 @@ class Config(object): ++ setup_kwargs['zip_safe'] = False ++ setup_kwargs['cmdclass'] = cmd_class_dict ++ setup_kwargs['version'] = package_version ++- setup_kwargs['python_requires'] = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <3.13" +++ setup_kwargs['python_requires'] = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <3.14" ++ ++ if quiet: ++ # Tells distutils / setuptools to be quiet, and only print warnings or errors. diff --cc debian/patches/PyEnum-make-forgiving-duplicates-work-with-Python-3.11.patch index 0000000,0000000..d62b339 new file mode 100644 --- /dev/null +++ b/debian/patches/PyEnum-make-forgiving-duplicates-work-with-Python-3.11.patch @@@ -1,0 -1,0 +1,63 @@@ ++From: Christian Tismer ++Date: Tue, 21 Jun 2022 10:22:04 +0200 ++Subject: PyEnum: make forgiving duplicates work with Python 3.11 ++ ++There was a silent change in PyEnums that turns Enum attributes ++into properties. This does not harm the Python interface but ++needed some change in the duplication emulation. ++ ++Furthermore, new internal enums are created with an underscore name. ++ ++The meta class was changed from EnumMeta to EnumType. ++ ++[ChangeLog][shiboken6] The new Python Enums are now compatible with Python 3.11 ++ ++Change-Id: I3b1ab63dc5eed15a75ebd0f42dddf4001f640c00 ++Pick-to: 6.3 ++Task-number: PYSIDE-1735 ++Fixes: PYSIDE-1960 ++Reviewed-by: Qt CI Bot ++Reviewed-by: Cristian Maureira-Fredes ++(cherry picked from commit da2cf031521815a9559ca784beadb70c7a2852d9) ++--- ++ sources/pyside2/tests/QtCore/qenum_test.py | 6 ++++-- ++ .../files.dir/shibokensupport/signature/lib/enum_sig.py | 3 ++- ++ 2 files changed, 6 insertions(+), 3 deletions(-) ++ ++diff --git a/sources/pyside2/tests/QtCore/qenum_test.py b/sources/pyside2/tests/QtCore/qenum_test.py ++index f99a893..0981c26 100644 ++--- a/sources/pyside2/tests/QtCore/qenum_test.py +++++ b/sources/pyside2/tests/QtCore/qenum_test.py ++@@ -197,14 +197,16 @@ class SomeClass(QObject): ++ ++ @unittest.skipUnless(HAVE_ENUM, "requires 'enum' module (use 'pip install enum34' for Python 2)") ++ class TestQEnumMacro(unittest.TestCase): +++ meta_name = "EnumType" if sys.version_info[:2] >= (3, 11) else "EnumMeta" +++ ++ def testTopLevel(self): ++ self.assertEqual(type(OuterEnum).__module__, "enum") ++- self.assertEqual(type(OuterEnum).__name__, "EnumMeta") +++ self.assertEqual(type(OuterEnum).__name__, self.meta_name) ++ self.assertEqual(len(OuterEnum.__members__), 2) ++ ++ def testSomeClass(self): ++ self.assertEqual(type(SomeClass.SomeEnum).__module__, "enum") ++- self.assertEqual(type(SomeClass.SomeEnum).__name__, "EnumMeta") +++ self.assertEqual(type(SomeClass.SomeEnum).__name__, self.meta_name) ++ self.assertEqual(len(SomeClass.SomeEnum.__members__), 3) ++ with self.assertRaises(TypeError): ++ int(SomeClass.SomeEnum.C) == 6 ++diff --git a/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/lib/enum_sig.py b/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/lib/enum_sig.py ++index 088a93a..2f78718 100644 ++--- a/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/lib/enum_sig.py +++++ b/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/lib/enum_sig.py ++@@ -139,7 +139,8 @@ class ExactEnumerator(object): ++ functions.append((func_name, thing)) ++ elif type(type(thing)) is EnumMeta: ++ # take the real enum name, not what is in the dict ++- enums.append((thing_name, type(thing).__qualname__, thing)) +++ if not thing_name.startswith("_"): +++ enums.append((thing_name, type(thing).__qualname__, thing)) ++ init_signature = getattr(klass, "__signature__", None) ++ enums.sort(key=lambda tup: tup[1 : 3]) # sort by class then enum value ++ self.fmt.have_body = bool(subclasses or functions or enums or init_signature) diff --cc debian/patches/Python-3.12-Fix-the-structure-of-class-property.patch index 0000000,0000000..0eadc11 new file mode 100644 --- /dev/null +++ b/debian/patches/Python-3.12-Fix-the-structure-of-class-property.patch @@@ -1,0 -1,0 +1,38 @@@ ++From: Christian Tismer ++Date: Tue, 14 Feb 2023 14:46:22 +0100 ++Subject: Python 3.12: Fix the structure of class property ++ ++There is a PySide bug in Python 3.10 already: The structure for ++classproperty derives from the property structure. This was extended ++in Python 3.10, already, but the type generation check was made more ++exhaustive in Python 3.12 and recognized that. ++ ++This change is only for making the compiler/C API happy. ++In order to use the extension field, it is necessary to do a runtime ++check because of the Limited API. ++ ++Task-number: PYSIDE-2230 ++Change-Id: I88dcaa11589ff41852f08fa2defa5200a0dd4eb6 ++Reviewed-by: Adrian Herrmann ++Reviewed-by: Friedemann Kleint ++(cherry picked from commit edfd9a5ad174a48f8d7da511dc6a1c69e931a418) ++--- ++ sources/pyside2/libpyside/feature_select.cpp | 5 +++++ ++ 1 file changed, 5 insertions(+) ++ ++diff --git a/sources/pyside2/libpyside/feature_select.cpp b/sources/pyside2/libpyside/feature_select.cpp ++index 3011b35..b9e1470 100644 ++--- a/sources/pyside2/libpyside/feature_select.cpp +++++ b/sources/pyside2/libpyside/feature_select.cpp ++@@ -671,6 +671,11 @@ typedef struct { ++ PyObject *prop_set; ++ PyObject *prop_del; ++ PyObject *prop_doc; +++#if PY_VERSION_HEX >= 0x030A0000 +++ // Note: This is a problem with Limited API: We have no direct access. +++ // You need to pick it from runtime info. +++ PyObject *prop_name; +++#endif ++ int getter_doc; ++ } propertyobject; ++ diff --cc debian/patches/Shiboken-Fix-the-oldest-shiboken-bug-ever.patch index 0000000,0000000..98315dd new file mode 100644 --- /dev/null +++ b/debian/patches/Shiboken-Fix-the-oldest-shiboken-bug-ever.patch @@@ -1,0 -1,0 +1,44 @@@ ++From: Christian Tismer ++Date: Tue, 21 Jun 2022 10:22:04 +0200 ++Subject: Shiboken: Fix the oldest shiboken bug ever which shows up on Python ++ 3.11 ++ ++b7df2f1c0 "Fix signal initializer.", 18. May 2010 at 00:55 ++ ++There was a `PySequence_Check` in the evaluation of some signature ++function parameter processing, which should have been `PyTuple_Check`. ++ ++Since the new PyEnums are also sequences, the new optimization in ++Python 3.11 changed the parameter handling in a correct way and ++replaced the argument tuple by a direct single argument of an enum ++type. And that is also a sequence ... ++ ++There are probably still dormant issues like this in the codebase ++which gives reason to submit a task that checks all Python interface ++functions for correctness. ++ ++Change-Id: I45996a0458c3e60795d2eb802eb98f7dd3678d92 ++Pick-to: 6.3 ++Task-number: PYSIDE-1735 ++Task-number: PYSIDE-1987 ++Fixes: PYSIDE-1988 ++Reviewed-by: Cristian Maureira-Fredes ++Reviewed-by: Shyamnath Premnadh ++(cherry picked from commit 2720e01f21f3771cb755ef183b8160f691bdb575) ++--- ++ sources/pyside2/libpyside/pysidesignal.cpp | 2 +- ++ 1 file changed, 1 insertion(+), 1 deletion(-) ++ ++diff --git a/sources/pyside2/libpyside/pysidesignal.cpp b/sources/pyside2/libpyside/pysidesignal.cpp ++index 607ce16..6824a71 100644 ++--- a/sources/pyside2/libpyside/pysidesignal.cpp +++++ b/sources/pyside2/libpyside/pysidesignal.cpp ++@@ -726,7 +726,7 @@ static QByteArray buildSignature(const QByteArray &name, const QByteArray &signa ++ ++ static QByteArray parseSignature(PyObject *args) ++ { ++- if (args && (Shiboken::String::check(args) || !PySequence_Check(args))) +++ if (args && (Shiboken::String::check(args) || !PyTuple_Check(args))) ++ return getTypeName(args); ++ ++ QByteArray signature; diff --cc debian/patches/Stop-using-imp-module.patch index 0000000,0000000..fd303c2 new file mode 100644 --- /dev/null +++ b/debian/patches/Stop-using-imp-module.patch @@@ -1,0 -1,0 +1,32 @@@ ++From: Friedemann Kleint ++Date: Thu, 3 Sep 2020 11:14:55 +0200 ++Subject: Stop using imp module ++ ++Part of commit e796600c9663a26ccf1929aca8336eb0cb23fe5d. ++--- ++ sources/shiboken2/tests/otherbinding/module_reload_test.py | 5 +---- ++ 1 file changed, 1 insertion(+), 4 deletions(-) ++ ++diff --git a/sources/shiboken2/tests/otherbinding/module_reload_test.py b/sources/shiboken2/tests/otherbinding/module_reload_test.py ++index 368425c..c63af18 100644 ++--- a/sources/shiboken2/tests/otherbinding/module_reload_test.py +++++ b/sources/shiboken2/tests/otherbinding/module_reload_test.py ++@@ -29,6 +29,7 @@ ++ ## ++ ############################################################################# ++ +++from importlib import reload ++ import os ++ import shutil ++ import sys ++@@ -38,10 +39,6 @@ sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) ++ from shiboken_paths import init_paths ++ init_paths() ++ ++-from py3kcompat import IS_PY3K ++- ++-if IS_PY3K: ++- from imp import reload ++ ++ orig_path = os.path.join(os.path.dirname(__file__)) ++ workdir = os.getcwd() diff --cc debian/patches/Support-running-PySide-on-Python-3.12.patch index 0000000,0000000..6f3fb3b new file mode 100644 --- /dev/null +++ b/debian/patches/Support-running-PySide-on-Python-3.12.patch @@@ -1,0 -1,0 +1,297 @@@ ++From: Christian Tismer ++Date: Tue, 14 Feb 2023 14:46:22 +0100 ++Subject: Support running PySide on Python 3.12 ++ ++Builtin types no longer have tp_dict set. We need to ++use PyType_GetDict, instead. This works without Limited API ++at the moment. ++ ++With some great cheating, this works with Limited API, too. ++We emulate PyType_GetDict by tp_dict if that is not 0. ++Otherwise we create an empty dict. ++ ++Some small changes to Exception handling and longer ++warm-up in leaking tests were found, too. ++ ++Pick-to: 6.6 6.5 6.2 ++Task-number: PYSIDE-2230 ++Change-Id: I8a56de6208ec00979255b39b5784dfc9b4b92def ++Reviewed-by: Friedemann Kleint ++(cherry picked from commit 441ffbd4fc622e67acd81e9c1c6d3a0b0fbcacf0) ++--- ++ build_scripts/config.py | 3 +- ++ sources/pyside2/PySide2/support/generate_pyi.py | 8 ++++-- ++ sources/pyside2/libpyside/feature_select.cpp | 10 ++++--- ++ sources/pyside2/libpyside/pysideproperty.cpp | 4 +-- ++ sources/pyside2/libpyside/pysidesignal.cpp | 4 +-- ++ sources/pyside2/tests/QtWidgets/bug_662.py | 3 +- ++ sources/pyside2/tests/signals/bug_79.py | 5 ++++ ++ sources/shiboken2/libshiboken/pep384impl.cpp | 33 ++++++++++++++++++++++ ++ sources/shiboken2/libshiboken/pep384impl.h | 8 ++++++ ++ .../shiboken2/libshiboken/signature/signature.cpp | 2 +- ++ .../libshiboken/signature/signature_helper.cpp | 6 ++-- ++ .../shibokensupport/signature/errorhandler.py | 6 ++++ ++ sources/shiboken2/tests/samplebinding/enum_test.py | 2 +- ++ 13 files changed, 78 insertions(+), 16 deletions(-) ++ ++diff --git a/build_scripts/config.py b/build_scripts/config.py ++index f2b4c40..5fc23d4 100644 ++--- a/build_scripts/config.py +++++ b/build_scripts/config.py ++@@ -94,7 +94,8 @@ class Config(object): ++ 'Programming Language :: Python :: 3.8', ++ 'Programming Language :: Python :: 3.9', ++ 'Programming Language :: Python :: 3.10', ++- 'Programming Language :: Python :: 3.11' +++ 'Programming Language :: Python :: 3.11', +++ 'Programming Language :: Python :: 3.12', ++ ] ++ ++ self.setup_script_dir = None ++diff --git a/sources/pyside2/PySide2/support/generate_pyi.py b/sources/pyside2/PySide2/support/generate_pyi.py ++index 1956533..fd05b1f 100644 ++--- a/sources/pyside2/PySide2/support/generate_pyi.py +++++ b/sources/pyside2/PySide2/support/generate_pyi.py ++@@ -116,8 +116,12 @@ class Formatter(Writer): ++ """ ++ def _typevar__repr__(self): ++ return "typing." + self.__name__ ++- typing.TypeVar.__repr__ = _typevar__repr__ ++- +++ # This is no longer necessary for modern typing versions. +++ # Ignore therefore if the repr is read-only and cannot be changed. +++ try: +++ typing.TypeVar.__repr__ = _typevar__repr__ +++ except TypeError: +++ pass ++ # Adding a pattern to substitute "Union[T, NoneType]" by "Optional[T]" ++ # I tried hard to replace typing.Optional by a simple override, but ++ # this became _way_ too much. ++diff --git a/sources/pyside2/libpyside/feature_select.cpp b/sources/pyside2/libpyside/feature_select.cpp ++index b9e1470..533c09d 100644 ++--- a/sources/pyside2/libpyside/feature_select.cpp +++++ b/sources/pyside2/libpyside/feature_select.cpp ++@@ -358,7 +358,8 @@ static bool SelectFeatureSetSubtype(PyTypeObject *type, PyObject *select_id) ++ * This is the selector for one sublass. We need to call this for ++ * every subclass until no more subclasses or reaching the wanted id. ++ */ ++- if (Py_TYPE(type->tp_dict) == Py_TYPE(PyType_Type.tp_dict)) { +++ static const auto *pyTypeType_tp_dict = PepType_GetDict(&PyType_Type); +++ if (Py_TYPE(type->tp_dict) == Py_TYPE(pyTypeType_tp_dict)) { ++ // On first touch, we initialize the dynamic naming. ++ // The dict type will be replaced after the first call. ++ if (!replaceClassDict(type)) { ++@@ -385,7 +386,8 @@ static inline PyObject *SelectFeatureSet(PyTypeObject *type) ++ * Generated functions call this directly. ++ * Shiboken will assign it via a public hook of `basewrapper.cpp`. ++ */ ++- if (Py_TYPE(type->tp_dict) == Py_TYPE(PyType_Type.tp_dict)) { +++ static const auto *pyTypeType_tp_dict = PepType_GetDict(&PyType_Type); +++ if (Py_TYPE(type->tp_dict) == Py_TYPE(pyTypeType_tp_dict)) { ++ // We initialize the dynamic features by using our own dict type. ++ if (!replaceClassDict(type)) ++ return nullptr; ++@@ -721,11 +723,11 @@ static bool patch_property_impl() ++ // Turn `__doc__` into a computed attribute without changing writability. ++ auto gsp = property_getset; ++ auto type = &PyProperty_Type; ++- auto dict = type->tp_dict; +++ AutoDecRef dict(PepType_GetDict(type)); ++ AutoDecRef descr(PyDescr_NewGetSet(type, gsp)); ++ if (descr.isNull()) ++ return false; ++- if (PyDict_SetItemString(dict, gsp->name, descr) < 0) +++ if (PyDict_SetItemString(dict.object(), gsp->name, descr) < 0) ++ return false; ++ // Replace property_descr_get/set by slightly changed versions ++ return true; ++diff --git a/sources/pyside2/libpyside/pysideproperty.cpp b/sources/pyside2/libpyside/pysideproperty.cpp ++index 86909d3..d2e2c68 100644 ++--- a/sources/pyside2/libpyside/pysideproperty.cpp +++++ b/sources/pyside2/libpyside/pysideproperty.cpp ++@@ -445,8 +445,8 @@ namespace { ++ ++ static PyObject *getFromType(PyTypeObject *type, PyObject *name) ++ { ++- PyObject *attr = nullptr; ++- attr = PyDict_GetItem(type->tp_dict, name); +++ AutoDecRef tpDict(PepType_GetDict(type)); +++ auto *attr = PyDict_GetItem(tpDict.object(), name); ++ if (!attr) { ++ PyObject *bases = type->tp_bases; ++ int size = PyTuple_GET_SIZE(bases); ++diff --git a/sources/pyside2/libpyside/pysidesignal.cpp b/sources/pyside2/libpyside/pysidesignal.cpp ++index 6824a71..f15d7aa 100644 ++--- a/sources/pyside2/libpyside/pysidesignal.cpp +++++ b/sources/pyside2/libpyside/pysidesignal.cpp ++@@ -670,8 +670,8 @@ void updateSourceObject(PyObject *source) ++ Py_ssize_t pos = 0; ++ PyObject *value; ++ PyObject *key; ++- ++- while (PyDict_Next(objType->tp_dict, &pos, &key, &value)) { +++ Shiboken::AutoDecRef tpDict(PepType_GetDict(objType)); +++ while (PyDict_Next(tpDict, &pos, &key, &value)) { ++ if (PyObject_TypeCheck(value, PySideSignalTypeF())) { ++ Shiboken::AutoDecRef signalInstance(reinterpret_cast(PyObject_New(PySideSignalInstance, PySideSignalInstanceTypeF()))); ++ instanceInitialize(signalInstance.cast(), key, reinterpret_cast(value), source, 0); ++diff --git a/sources/pyside2/tests/QtWidgets/bug_662.py b/sources/pyside2/tests/QtWidgets/bug_662.py ++index 7fb97de..ec0e6f9 100644 ++--- a/sources/pyside2/tests/QtWidgets/bug_662.py +++++ b/sources/pyside2/tests/QtWidgets/bug_662.py ++@@ -40,7 +40,8 @@ from PySide2.QtWidgets import QTextEdit, QApplication ++ import sys ++ ++ class testQTextBlock(unittest.TestCase): ++- def tesIterator(self): +++ +++ def testIterator(self): ++ edit = QTextEdit() ++ cursor = edit.textCursor() ++ fmt = QTextCharFormat() ++diff --git a/sources/pyside2/tests/signals/bug_79.py b/sources/pyside2/tests/signals/bug_79.py ++index ca25fb3..b70c8c5 100644 ++--- a/sources/pyside2/tests/signals/bug_79.py +++++ b/sources/pyside2/tests/signals/bug_79.py ++@@ -60,6 +60,11 @@ class ConnectTest(unittest.TestCase): ++ gc.collect() ++ # if this is no debug build, then we check at least that ++ # we do not crash any longer. +++ for idx in range(200): +++ # PYSIDE-2230: Warm-up is necessary before measuring, because +++ # the code changes the constant parts after some time. +++ o.selectionModel().destroyed.connect(self.callback) +++ o.selectionModel().destroyed.disconnect(self.callback) ++ if not skiptest: ++ total = gettotalrefcount() ++ for idx in range(1000): ++diff --git a/sources/shiboken2/libshiboken/pep384impl.cpp b/sources/shiboken2/libshiboken/pep384impl.cpp ++index d12dae3..fed2716 100644 ++--- a/sources/shiboken2/libshiboken/pep384impl.cpp +++++ b/sources/shiboken2/libshiboken/pep384impl.cpp ++@@ -810,6 +810,39 @@ init_PepRuntime() ++ PepRuntime_38_flag = 1; ++ } ++ +++#ifdef Py_LIMITED_API +++static PyObject *emulatePyType_GetDict(PyTypeObject *type) +++{ +++ if (_PepRuntimeVersion() < 0x030C00 || type->tp_dict) { +++ auto *res = type->tp_dict; +++ Py_XINCREF(res); +++ return res; +++ } +++ // PYSIDE-2230: Here we are really cheating. We don't know how to +++ // access an internal dict, and so we simply pretend +++ // it were an empty dict. This works great for our types. +++ // This was an unexpectedly simple solution :D +++ return PyDict_New(); +++} +++#endif +++ +++// PyType_GetDict: replacement for .tp_dict, which is +++// zero for builtin types since 3.12. +++PyObject *PepType_GetDict(PyTypeObject *type) +++{ +++#if !defined(Py_LIMITED_API) +++# if PY_VERSION_HEX >= 0x030C0000 +++ return PyType_GetDict(type); +++# else +++ // pre 3.12 fallback code, mimicking the addref-behavior. +++ Py_XINCREF(type->tp_dict); +++ return type->tp_dict; +++# endif +++#else +++ return emulatePyType_GetDict(type); +++#endif // Py_LIMITED_API +++} +++ ++ /***************************************************************************** ++ * ++ * Module Initialization ++diff --git a/sources/shiboken2/libshiboken/pep384impl.h b/sources/shiboken2/libshiboken/pep384impl.h ++index a870d6b..440784e 100644 ++--- a/sources/shiboken2/libshiboken/pep384impl.h +++++ b/sources/shiboken2/libshiboken/pep384impl.h ++@@ -567,6 +567,14 @@ extern LIBSHIBOKEN_API PyObject *PepMapping_Items(PyObject *o); ++ ++ extern LIBSHIBOKEN_API int PepRuntime_38_flag; ++ +++/***************************************************************************** +++ * +++ * Runtime support for Python 3.12 incompatibility +++ * +++ */ +++ +++LIBSHIBOKEN_API PyObject *PepType_GetDict(PyTypeObject *type); +++ ++ /***************************************************************************** ++ * ++ * Module Initialization ++diff --git a/sources/shiboken2/libshiboken/signature/signature.cpp b/sources/shiboken2/libshiboken/signature/signature.cpp ++index 191af3d..f817e47 100644 ++--- a/sources/shiboken2/libshiboken/signature/signature.cpp +++++ b/sources/shiboken2/libshiboken/signature/signature.cpp ++@@ -482,7 +482,7 @@ static PyObject *adjustFuncName(const char *func_name) ++ ++ // Find the feature flags ++ auto type = reinterpret_cast(obtype.object()); ++- auto dict = type->tp_dict; +++ AutoDecRef dict(PepType_GetDict(type)); ++ int id = SbkObjectType_GetReserved(type); ++ id = id < 0 ? 0 : id; // if undefined, set to zero ++ auto lower = id & 0x01; ++diff --git a/sources/shiboken2/libshiboken/signature/signature_helper.cpp b/sources/shiboken2/libshiboken/signature/signature_helper.cpp ++index 0246ec6..05eaa14 100644 ++--- a/sources/shiboken2/libshiboken/signature/signature_helper.cpp +++++ b/sources/shiboken2/libshiboken/signature/signature_helper.cpp ++@@ -105,7 +105,8 @@ int add_more_getsets(PyTypeObject *type, PyGetSetDef *gsp, PyObject **doc_descr) ++ */ ++ assert(PyType_Check(type)); ++ PyType_Ready(type); ++- PyObject *dict = type->tp_dict; +++ AutoDecRef tpDict(PepType_GetDict(type)); +++ auto *dict = tpDict.object(); ++ for (; gsp->name != nullptr; gsp++) { ++ PyObject *have_descr = PyDict_GetItemString(dict, gsp->name); ++ if (have_descr != nullptr) { ++@@ -346,7 +347,8 @@ static int _build_func_to_type(PyObject *obtype) ++ * We also check for hidden methods, see below. ++ */ ++ auto *type = reinterpret_cast(obtype); ++- PyObject *dict = type->tp_dict; +++ AutoDecRef tpDict(PepType_GetDict(type)); +++ auto *dict = tpDict.object(); ++ PyMethodDef *meth = type->tp_methods; ++ ++ if (meth == nullptr) ++diff --git a/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/errorhandler.py b/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/errorhandler.py ++index 47ab89a..3e1266c 100644 ++--- a/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/errorhandler.py +++++ b/sources/shiboken2/shibokenmodule/files.dir/shibokensupport/signature/errorhandler.py ++@@ -113,6 +113,12 @@ def seterror_argument(args, func_name, info): ++ msg = "{func_name}(): {info}".format(**locals()) ++ err = AttributeError ++ return err, msg +++ if isinstance(info, Exception): +++ # PYSIDE-2230: Python 3.12 seems to always do normalization. +++ err = type(info) +++ info = info.args[0] +++ msg = f"{func_name}(): {info}" +++ return err, msg ++ if info and type(info) is dict: ++ keyword = tuple(info)[0] ++ msg = "{func_name}(): unsupported keyword '{keyword}'".format(**locals()) ++diff --git a/sources/shiboken2/tests/samplebinding/enum_test.py b/sources/shiboken2/tests/samplebinding/enum_test.py ++index 0beb720..f2606a4 100644 ++--- a/sources/shiboken2/tests/samplebinding/enum_test.py +++++ b/sources/shiboken2/tests/samplebinding/enum_test.py ++@@ -95,7 +95,7 @@ class EnumTest(unittest.TestCase): ++ ++ def testEnumConstructorWithTooManyParameters(self): ++ '''Calling the constructor of non-extensible enum with the wrong number of parameters.''' ++- self.assertRaises(TypeError, SampleNamespace.InValue, 13, 14) +++ self.assertRaises((TypeError, ValueError), SampleNamespace.InValue, 13, 14) ++ ++ def testEnumConstructorWithNonNumberParameter(self): ++ '''Calling the constructor of non-extensible enum with a string.''' diff --cc debian/patches/Use-public-version-of-PyLong_AsInt-for-Python-3.13.patch index 0000000,0000000..91948d6 new file mode 100644 --- /dev/null +++ b/debian/patches/Use-public-version-of-PyLong_AsInt-for-Python-3.13.patch @@@ -1,0 -1,0 +1,22 @@@ ++From: Dmitry Shachnev ++Date: Sat, 4 Jan 2025 21:20:12 +0300 ++Subject: Use public version of PyLong_AsInt for Python >= 3.13 ++ ++Forwarded: no ++--- ++ sources/shiboken2/libshiboken/pep384impl.h | 2 ++ ++ 1 file changed, 2 insertions(+) ++ ++diff --git a/sources/shiboken2/libshiboken/pep384impl.h b/sources/shiboken2/libshiboken/pep384impl.h ++index 440784e..323715b 100644 ++--- a/sources/shiboken2/libshiboken/pep384impl.h +++++ b/sources/shiboken2/libshiboken/pep384impl.h ++@@ -183,6 +183,8 @@ LIBSHIBOKEN_API const char *PepType_GetNameStr(PyTypeObject *type); ++ */ ++ #ifdef Py_LIMITED_API ++ LIBSHIBOKEN_API int _PepLong_AsInt(PyObject *); +++#elif PY_VERSION_HEX >= 0x030D0000 +++#define _PepLong_AsInt PyLong_AsInt ++ #else ++ #define _PepLong_AsInt _PyLong_AsInt ++ #endif diff --cc debian/patches/blacklist-failing-tests.patch index 0000000,0000000..58c5e67 new file mode 100644 --- /dev/null +++ b/debian/patches/blacklist-failing-tests.patch @@@ -1,0 -1,0 +1,55 @@@ ++From: Sophie Brun ++Date: Fri, 22 Nov 2019 13:24:54 +0100 ++Subject: Blacklist failing tests ++ ++Forwarded: ++https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-1146?filter=allopenissues ++--- ++ build_history/blacklist.txt | 11 ++++++++++- ++ 1 file changed, 10 insertions(+), 1 deletion(-) ++ ++diff --git a/build_history/blacklist.txt b/build_history/blacklist.txt ++index 827191a..5565cda 100644 ++--- a/build_history/blacklist.txt +++++ b/build_history/blacklist.txt ++@@ -22,6 +22,9 @@ ++ linux ++ darwin ++ win32 +++# crash on s390x Debian build, https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-1146 +++[QtCore::qbytearray_test] +++ linux ++ [QtGui::qmatrix_test] ++ win32 ++ [QtWidgets::bug_576] ++@@ -64,8 +67,9 @@ ++ py2 win32 ++ [QtQml::qquickitem_grabToImage] ++ darwin +++# Fails on armel, not reproducible on a porter box. ++ [smart::smart_pointer] ++- py2 +++ linux ++ # PYSIDE-474 ++ [QtWebEngineWidgets::pyside-474-qtwebengineview] ++ py2 ++@@ -83,6 +87,9 @@ ++ win32 ++ linux ++ darwin +++# crash on s390x Debian build, https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-1146 +++[QtQml::qquickitem_grabToImage] +++ linux ++ # In addition to a pre-existing windows failure, ++ # qtlocation/ac899dcc40bb3ad09307583fb7e6befd45a77b33 / QTBUG-66304 introduced ++ # a failure in 5.14 ++@@ -91,7 +98,9 @@ ++ linux ++ darwin ++ # Open GL functions failures on macOS (2/2020) +++# Python 3.12 considers it a failure when no tests are run ++ [registry::existence_test] +++ linux ++ darwin ++ # Incomplehensible effect with feature switching on 3.6, qApp.process_events() ++ [QtCore::feature_with_uic_test] diff --cc debian/patches/fix-spelling-errors.patch index 0000000,0000000..941e661 new file mode 100644 --- /dev/null +++ b/debian/patches/fix-spelling-errors.patch @@@ -1,0 -1,0 +1,22 @@@ ++From: Sophie Brun ++Date: Tue, 5 Nov 2019 10:39:14 +0100 ++Subject: Fix spelling errors ++ ++Last-Update: 2018-07-12 ++--- ++ sources/pyside2/libpyside/pysideproperty.cpp | 2 +- ++ 1 file changed, 1 insertion(+), 1 deletion(-) ++ ++diff --git a/sources/pyside2/libpyside/pysideproperty.cpp b/sources/pyside2/libpyside/pysideproperty.cpp ++index 0d0957f..86909d3 100644 ++--- a/sources/pyside2/libpyside/pysideproperty.cpp +++++ b/sources/pyside2/libpyside/pysideproperty.cpp ++@@ -519,7 +519,7 @@ int setValue(PySideProperty *self, PyObject *source, PyObject *value) ++ Shiboken::AutoDecRef result(PyObject_CallObject(fdel, args)); ++ return (result.isNull() ? -1 : 0); ++ } ++- PyErr_SetString(PyExc_AttributeError, "Attibute read only"); +++ PyErr_SetString(PyExc_AttributeError, "Attribute read only"); ++ return -1; ++ } ++ diff --cc debian/patches/series index 0000000,0000000..4a43c93 new file mode 100644 --- /dev/null +++ b/debian/patches/series @@@ -1,0 -1,0 +1,21 @@@ ++update-sip-import.patch ++fix-spelling-errors.patch ++blacklist-failing-tests.patch ++test-with-current-interpreter.patch ++Shiboken-Fix-the-oldest-shiboken-bug-ever.patch ++PyEnum-make-forgiving-duplicates-work-with-Python-3.11.patch ++Python-3.12-Fix-the-structure-of-class-property.patch ++Support-running-PySide-on-Python-3.12.patch ++Final-details-to-enable-3.12-wheel-compatibility.patch ++Stop-using-imp-module.patch ++Do-not-change-RPATH.patch ++shiboken2-clang-Fix-clashes-between-type-name-and-enumera.patch ++shiboken2-clang-Fix-and-simplify-resolveType-helper.patch ++shiboken2-clang-Remove-typedef-expansion.patch ++shiboken2-clang-Fix-build-with-clang-16.patch ++shiboken2-clang-Record-scope-resolution-of-arguments-func.patch ++shiboken2-clang-Suppress-class-scope-look-up-for-paramete.patch ++shiboken2-clang-Write-scope-resolution-for-all-parameters.patch ++Do-the-transition-to-Python-3.13.patch ++Fix-condition-to-allow-3.13-for-wheel-creation.patch ++Use-public-version-of-PyLong_AsInt-for-Python-3.13.patch diff --cc debian/patches/shiboken2-clang-Fix-and-simplify-resolveType-helper.patch index 0000000,0000000..304cff9 new file mode 100644 --- /dev/null +++ b/debian/patches/shiboken2-clang-Fix-and-simplify-resolveType-helper.patch @@@ -1,0 -1,0 +1,88 @@@ ++From: Friedemann Kleint ++Date: Tue, 25 Apr 2023 10:00:39 +0200 ++Subject: shiboken2/clang: Fix and simplify resolveType() helper ++ ++The function had a bug which only manifested with clang 16: ++"type" should have been assigned the type of the cursor ++obtained from clang_getTypeDeclaration(). With this, the complicated ++lookup code in getBaseClass() can be removed. ++ ++Task-number: PYSIDE-2288 ++Pick-to: 6.5 ++Change-Id: I861e30451b3f4af2ec0c2e4ffa4179a429854533 ++Reviewed-by: Christian Tismer ++Reviewed-by: Qt CI Bot ++--- ++ .../ApiExtractor/clangparser/clangbuilder.cpp | 39 ++++++++++------------ ++ 1 file changed, 18 insertions(+), 21 deletions(-) ++ ++diff --git a/sources/shiboken2/ApiExtractor/clangparser/clangbuilder.cpp b/sources/shiboken2/ApiExtractor/clangparser/clangbuilder.cpp ++index e8e5bcf..1b4c81c 100644 ++--- a/sources/shiboken2/ApiExtractor/clangparser/clangbuilder.cpp +++++ b/sources/shiboken2/ApiExtractor/clangparser/clangbuilder.cpp ++@@ -627,6 +627,9 @@ long clang_EnumDecl_isScoped4(BaseVisitor *bv, const CXCursor &cursor) ++ #endif // CLANG_NO_ENUMDECL_ISSCOPED ++ ++ // Resolve declaration and type of a base class +++// Note: TypeAliasTemplateDecl ("using QVector=QList") is automatically +++// resolved by clang_getTypeDeclaration(), but it stops at +++// TypeAliasDecl / TypedefDecl. ++ ++ struct TypeDeclaration ++ { ++@@ -634,19 +637,23 @@ struct TypeDeclaration ++ CXCursor declaration; ++ }; ++ +++static inline bool isTypeAliasDecl(const CXCursor &cursor) +++{ +++ const auto kind = clang_getCursorKind(cursor); +++ return kind == CXCursor_TypeAliasDecl || kind == CXCursor_TypedefDecl; +++} +++ ++ static TypeDeclaration resolveBaseSpecifier(const CXCursor &cursor) ++ { ++ Q_ASSERT(clang_getCursorKind(cursor) == CXCursor_CXXBaseSpecifier); ++ CXType inheritedType = clang_getCursorType(cursor); ++ CXCursor decl = clang_getTypeDeclaration(inheritedType); ++- if (inheritedType.kind != CXType_Unexposed) { ++- while (true) { ++- auto kind = clang_getCursorKind(decl); ++- if (kind != CXCursor_TypeAliasDecl && kind != CXCursor_TypedefDecl) ++- break; ++- inheritedType = clang_getTypedefDeclUnderlyingType(decl); ++- decl = clang_getTypeDeclaration(inheritedType); ++- } +++ auto resolvedType = clang_getCursorType(decl); +++ if (resolvedType.kind != CXType_Invalid && resolvedType.kind != inheritedType.kind) +++ inheritedType = resolvedType; +++ while (isTypeAliasDecl(decl)) { +++ inheritedType = clang_getTypedefDeclUnderlyingType(decl); +++ decl = clang_getTypeDeclaration(inheritedType); ++ } ++ return {inheritedType, decl}; ++ } ++@@ -656,20 +663,10 @@ void BuilderPrivate::addBaseClass(const CXCursor &cursor) ++ { ++ Q_ASSERT(clang_getCursorKind(cursor) == CXCursor_CXXBaseSpecifier); ++ // Note: spelling has "struct baseClass", use type ++- QString baseClassName; ++ const auto decl = resolveBaseSpecifier(cursor); ++- if (decl.type.kind == CXType_Unexposed) { ++- // The type is unexposed when the base class is a template type alias: ++- // "class QItemSelection : public QList" where QList is aliased to QVector. ++- // Try to resolve via code model. ++- TypeInfo info = createTypeInfo(decl.type); ++- auto parentScope = m_scopeStack.at(m_scopeStack.size() - 2); // Current is class. ++- auto resolved = TypeInfo::resolveType(info, parentScope); ++- if (resolved != info) ++- baseClassName = resolved.toString(); ++- } ++- if (baseClassName.isEmpty()) ++- baseClassName = getTypeName(decl.type); +++ QString baseClassName = getTypeName(decl.type); +++ if (baseClassName.startsWith(u"std::")) // Simplify "std::" types +++ baseClassName = createTypeInfo(decl.type).toString(); ++ ++ auto it = m_cursorClassHash.constFind(decl.declaration); ++ const CodeModel::AccessPolicy access = accessPolicy(clang_getCXXAccessSpecifier(cursor)); diff --cc debian/patches/shiboken2-clang-Fix-build-with-clang-16.patch index 0000000,0000000..b07cc33 new file mode 100644 --- /dev/null +++ b/debian/patches/shiboken2-clang-Fix-build-with-clang-16.patch @@@ -1,0 -1,0 +1,108 @@@ ++From: Friedemann Kleint ++Date: Tue, 25 Apr 2023 14:01:45 +0200 ++Subject: shiboken2/clang: Fix build with clang 16 ++ ++clang 16 returns more elaborated types instead of fully qualified type ++names. Qualify elaborated types when retrieving the type name. ++ ++[ChangeLog][shiboken6] Support for libclang version 16 has been added. ++ ++Task-number: PYSIDE-2288 ++Pick-to: 6.5 5.15 ++Change-Id: Ibd428280180967f11d82a72159e744c016afc927 ++Reviewed-by: Christian Tismer ++(cherry picked from commit 44ef1859214c66861a251d4a0faf5c38dc050850) ++--- ++ .../ApiExtractor/clangparser/clangbuilder.cpp | 2 +- ++ .../ApiExtractor/clangparser/clangutils.cpp | 23 ++++++++++++++++++++++ ++ .../ApiExtractor/clangparser/clangutils.h | 1 + ++ .../shiboken2/ApiExtractor/tests/testtemplates.cpp | 3 +-- ++ 4 files changed, 26 insertions(+), 3 deletions(-) ++ ++diff --git a/sources/shiboken2/ApiExtractor/clangparser/clangbuilder.cpp b/sources/shiboken2/ApiExtractor/clangparser/clangbuilder.cpp ++index 332f1da..ed1e15d 100644 ++--- a/sources/shiboken2/ApiExtractor/clangparser/clangbuilder.cpp +++++ b/sources/shiboken2/ApiExtractor/clangparser/clangbuilder.cpp ++@@ -524,7 +524,7 @@ TypeInfo BuilderPrivate::createTypeInfoHelper(const CXType &type) const ++ typeInfo.setConstant(clang_isConstQualifiedType(nestedType) != 0); ++ typeInfo.setVolatile(clang_isVolatileQualifiedType(nestedType) != 0); ++ ++- QString typeName = getTypeName(nestedType); +++ QString typeName = getResolvedTypeName(nestedType); ++ while (TypeInfo::stripLeadingConst(&typeName) ++ || TypeInfo::stripLeadingVolatile(&typeName)) { ++ } ++diff --git a/sources/shiboken2/ApiExtractor/clangparser/clangutils.cpp b/sources/shiboken2/ApiExtractor/clangparser/clangutils.cpp ++index 57271ef..295ede3 100644 ++--- a/sources/shiboken2/ApiExtractor/clangparser/clangutils.cpp +++++ b/sources/shiboken2/ApiExtractor/clangparser/clangutils.cpp ++@@ -130,6 +130,23 @@ QString getCursorDisplayName(const CXCursor &cursor) ++ return result; ++ } ++ +++static inline bool isBuiltinType(CXTypeKind kind) +++{ +++ return kind >= CXType_FirstBuiltin && kind <= CXType_LastBuiltin; +++} +++ +++// Resolve elaborated types occurring with clang 16 +++static CXType resolveType(const CXType &type) +++{ +++ if (!isBuiltinType(type.kind)) { +++ CXCursor decl = clang_getTypeDeclaration(type); +++ auto resolvedType = clang_getCursorType(decl); +++ if (resolvedType.kind != CXType_Invalid && resolvedType.kind != type.kind) +++ return resolvedType; +++ } +++ return type; +++} +++ ++ QString getTypeName(const CXType &type) ++ { ++ CXString typeSpelling = clang_getTypeSpelling(type); ++@@ -138,6 +155,12 @@ QString getTypeName(const CXType &type) ++ return result; ++ } ++ +++// Resolve elaborated types occurring with clang 16 +++QString getResolvedTypeName(const CXType &type) +++{ +++ return getTypeName(resolveType(type)); +++} +++ ++ Diagnostic::Diagnostic(const QString &m, const CXCursor &c, CXDiagnosticSeverity s) ++ : message(m), source(Other), severity(s) ++ { ++diff --git a/sources/shiboken2/ApiExtractor/clangparser/clangutils.h b/sources/shiboken2/ApiExtractor/clangparser/clangutils.h ++index f7c230a..aacaf63 100644 ++--- a/sources/shiboken2/ApiExtractor/clangparser/clangutils.h +++++ b/sources/shiboken2/ApiExtractor/clangparser/clangutils.h ++@@ -52,6 +52,7 @@ QString getCursorKindName(CXCursorKind cursorKind); ++ QString getCursorSpelling(const CXCursor &cursor); ++ QString getCursorDisplayName(const CXCursor &cursor); ++ QString getTypeName(const CXType &type); +++QString getResolvedTypeName(const CXType &type); ++ inline QString getCursorTypeName(const CXCursor &cursor) ++ { return getTypeName(clang_getCursorType(cursor)); } ++ inline QString getCursorResultTypeName(const CXCursor &cursor) ++diff --git a/sources/shiboken2/ApiExtractor/tests/testtemplates.cpp b/sources/shiboken2/ApiExtractor/tests/testtemplates.cpp ++index 9f929c4..fbc5c4c 100644 ++--- a/sources/shiboken2/ApiExtractor/tests/testtemplates.cpp +++++ b/sources/shiboken2/ApiExtractor/tests/testtemplates.cpp ++@@ -236,7 +236,6 @@ struct List { ++ const AbstractMetaFunction *erase = list->findFunction(QStringLiteral("erase")); ++ QVERIFY(erase); ++ QCOMPARE(erase->arguments().size(), 1); ++- QEXPECT_FAIL("", "Clang: Some other code changes the parameter type", Abort); ++ QCOMPARE(erase->arguments().at(0)->type()->cppSignature(), QLatin1String("List::Iterator")); ++ } ++ ++@@ -389,7 +388,7 @@ typedef BaseTemplateClass TypeOneClass; ++ const ComplexTypeEntry* oneType = one->typeEntry(); ++ const ComplexTypeEntry* baseType = base->typeEntry(); ++ QCOMPARE(oneType->baseContainerType(), baseType); ++- QCOMPARE(one->baseClassNames(), QStringList(QLatin1String("BaseTemplateClass"))); +++ QCOMPARE(one->baseClassNames(), QStringList(QLatin1String("NSpace::BaseTemplateClass"))); ++ ++ QVERIFY(one->hasTemplateBaseClassInstantiations()); ++ AbstractMetaTypeList instantiations = one->templateBaseClassInstantiations(); diff --cc debian/patches/shiboken2-clang-Fix-clashes-between-type-name-and-enumera.patch index 0000000,0000000..62de5a1 new file mode 100644 --- /dev/null +++ b/debian/patches/shiboken2-clang-Fix-clashes-between-type-name-and-enumera.patch @@@ -1,0 -1,0 +1,92 @@@ ++From: Friedemann Kleint ++Date: Tue, 25 Apr 2023 15:30:30 +0200 ++Subject: shiboken2/clang: Fix clashes between type name and enumeration ++ values ++ ++Remove all constant and enum value type entries found in the type lookup ++unless it is looking for template arguments; where it may be a ++non-type template argument. ++ ++Task-number: PYSIDE-2288 ++Pick-to: 6.5 5.15 ++Change-Id: If0609ce0d0223f551ed6dee1d1e0ea3ef49d6917 ++Reviewed-by: Christian Tismer ++(cherry picked from commit e22f717153a5e9855531f45c0bf82ff2461a3f7e) ++--- ++ .../shiboken2/ApiExtractor/abstractmetabuilder.cpp | 21 +++++++++++++++++++-- ++ .../shiboken2/ApiExtractor/abstractmetabuilder.h | 3 ++- ++ .../shiboken2/ApiExtractor/typesystem_typedefs.h | 1 + ++ 3 files changed, 22 insertions(+), 3 deletions(-) ++ ++diff --git a/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp b/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp ++index 5a413ec..2f34e16 100644 ++--- a/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp +++++ b/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp ++@@ -2144,6 +2144,13 @@ static bool isNumber(const QString &s) ++ [](QChar c) { return c.isDigit(); }); ++ } ++ +++// A type entry relevant only for non type template "X<5>" +++static bool isNonTypeTemplateArgument(const TypeEntryCPtr &te) +++{ +++ const auto type = te->type(); +++ return type == TypeEntry::EnumValue || type == TypeEntry::ConstantValueType; +++} +++ ++ AbstractMetaType *AbstractMetaBuilderPrivate::translateTypeStatic(const TypeInfo &_typei, ++ AbstractMetaClass *currentClass, ++ AbstractMetaBuilderPrivate *d, ++@@ -2271,7 +2278,15 @@ AbstractMetaType *AbstractMetaBuilderPrivate::translateTypeStatic(const TypeInfo ++ typeInfo.clearInstantiations(); ++ } ++ ++- const TypeEntries types = findTypeEntries(qualifiedName, name, currentClass, d); +++ TypeEntries types = findTypeEntries(qualifiedName, name, currentClass, d); +++ if (!flags.testFlag(AbstractMetaBuilder::TemplateArgument)) { +++ // Avoid clashes between QByteArray and enum value QMetaType::QByteArray +++ // unless we are looking for template arguments. +++ auto end = std::remove_if(types.begin(), types.end(), +++ isNonTypeTemplateArgument); +++ types.erase(end, types.end()); +++ } +++ ++ if (types.isEmpty()) { ++ if (errorMessageIn) { ++ *errorMessageIn = ++@@ -2293,7 +2308,9 @@ AbstractMetaType *AbstractMetaBuilderPrivate::translateTypeStatic(const TypeInfo ++ const auto &templateArguments = typeInfo.instantiations(); ++ for (int t = 0, size = templateArguments.size(); t < size; ++t) { ++ const TypeInfo &ti = templateArguments.at(t); ++- AbstractMetaType *targType = translateTypeStatic(ti, currentClass, d, flags, &errorMessage); +++ AbstractMetaType *targType = translateTypeStatic(ti, currentClass, d, +++ flags | AbstractMetaBuilder::TemplateArgument, +++ &errorMessage); ++ // For non-type template parameters, create a dummy type entry on the fly ++ // as is done for classes. ++ if (!targType) { ++diff --git a/sources/shiboken2/ApiExtractor/abstractmetabuilder.h b/sources/shiboken2/ApiExtractor/abstractmetabuilder.h ++index d2dc080..8916eaf 100644 ++--- a/sources/shiboken2/ApiExtractor/abstractmetabuilder.h +++++ b/sources/shiboken2/ApiExtractor/abstractmetabuilder.h ++@@ -93,7 +93,8 @@ public: ++ void setSkipDeprecated(bool value); ++ ++ enum TranslateTypeFlag { ++- DontResolveType = 0x1 +++ DontResolveType = 0x1, +++ TemplateArgument = 0x2 ++ }; ++ Q_DECLARE_FLAGS(TranslateTypeFlags, TranslateTypeFlag); ++ ++diff --git a/sources/shiboken2/ApiExtractor/typesystem_typedefs.h b/sources/shiboken2/ApiExtractor/typesystem_typedefs.h ++index 73f92b2..5dcc65c 100644 ++--- a/sources/shiboken2/ApiExtractor/typesystem_typedefs.h +++++ b/sources/shiboken2/ApiExtractor/typesystem_typedefs.h ++@@ -48,6 +48,7 @@ using CodeSnipList = QVector; ++ using DocModificationList = QVector; ++ using FieldModificationList = QVector; ++ using FunctionModificationList = QVector; +++using TypeEntryCPtr = const TypeEntry *; ++ using TypeEntries = QVector; ++ ++ #endif // TYPESYSTEM_TYPEDEFS_H diff --cc debian/patches/shiboken2-clang-Record-scope-resolution-of-arguments-func.patch index 0000000,0000000..f5b1fc0 new file mode 100644 --- /dev/null +++ b/debian/patches/shiboken2-clang-Record-scope-resolution-of-arguments-func.patch @@@ -1,0 -1,0 +1,178 @@@ ++From: Friedemann Kleint ++Date: Thu, 27 Apr 2023 12:44:10 +0200 ++Subject: shiboken2/clang: Record scope resolution of arguments/function ++ return ++ ++Add a flag indicating whether a type was specified with a leading "::" ++(scope resolution). Such parameters previously caused the function to ++rejected due to the "::TypeName" not being found. The type resolution ++added for clang 16 strips these qualifiers though, so, the information ++needs to be stored. ++ ++Task-number: PYSIDE-2288 ++Pick-to: 6.5 5.15 ++Change-Id: I27d27c94ec43bcc4cb3b79e6e9ce6706c749a1e9 ++Reviewed-by: Christian Tismer ++(cherry picked from commit 075d8ad4660f05e6d2583ff1c05e9987ad624bfe) ++--- ++ .../ApiExtractor/clangparser/clangbuilder.cpp | 8 ++++++-- ++ .../ApiExtractor/clangparser/clangutils.cpp | 11 ++++++++++ ++ .../ApiExtractor/clangparser/clangutils.h | 1 + ++ .../shiboken2/ApiExtractor/parser/codemodel.cpp | 24 ++++++++++++++++++++++ ++ sources/shiboken2/ApiExtractor/parser/codemodel.h | 8 ++++++++ ++ 5 files changed, 50 insertions(+), 2 deletions(-) ++ ++diff --git a/sources/shiboken2/ApiExtractor/clangparser/clangbuilder.cpp b/sources/shiboken2/ApiExtractor/clangparser/clangbuilder.cpp ++index ed1e15d..1b5cc5c 100644 ++--- a/sources/shiboken2/ApiExtractor/clangparser/clangbuilder.cpp +++++ b/sources/shiboken2/ApiExtractor/clangparser/clangbuilder.cpp ++@@ -294,7 +294,9 @@ FunctionModelItem BuilderPrivate::createFunction(const CXCursor &cursor, ++ name = fixTypeName(name); ++ FunctionModelItem result(new _FunctionModelItem(m_model, name)); ++ setFileName(cursor, result.data()); ++- result->setType(createTypeInfoHelper(clang_getCursorResultType(cursor))); +++ const auto type = clang_getCursorResultType(cursor); +++ result->setType(createTypeInfoHelper(type)); +++ result->setScopeResolution(hasScopeResolution(type)); ++ result->setFunctionType(t); ++ result->setScope(m_scope); ++ result->setStatic(clang_Cursor_getStorageClass(cursor) == CX_SC_Static); ++@@ -1031,7 +1033,9 @@ BaseVisitor::StartTokenResult Builder::startToken(const CXCursor &cursor) ++ if (d->m_currentArgument.isNull() && !d->m_currentFunction.isNull()) { ++ const QString name = getCursorSpelling(cursor); ++ d->m_currentArgument.reset(new _ArgumentModelItem(d->m_model, name)); ++- d->m_currentArgument->setType(d->createTypeInfo(cursor)); +++ const auto type = clang_getCursorType(cursor); +++ d->m_currentArgument->setScopeResolution(hasScopeResolution(type)); +++ d->m_currentArgument->setType(d->createTypeInfo(type)); ++ d->m_currentFunction->addArgument(d->m_currentArgument); ++ QString defaultValueExpression = d->cursorValueExpression(this, cursor); ++ if (!defaultValueExpression.isEmpty()) { ++diff --git a/sources/shiboken2/ApiExtractor/clangparser/clangutils.cpp b/sources/shiboken2/ApiExtractor/clangparser/clangutils.cpp ++index 295ede3..ec6d228 100644 ++--- a/sources/shiboken2/ApiExtractor/clangparser/clangutils.cpp +++++ b/sources/shiboken2/ApiExtractor/clangparser/clangutils.cpp ++@@ -155,6 +155,17 @@ QString getTypeName(const CXType &type) ++ return result; ++ } ++ +++// Quick check for "::Type" +++bool hasScopeResolution(const CXType &type) +++{ +++ CXString typeSpelling = clang_getTypeSpelling(type); +++ const QString spelling = QString::fromUtf8(clang_getCString(typeSpelling)); +++ const bool result = spelling.startsWith(QLatin1String("::")) +++ || spelling.contains(QLatin1String(" ::")); +++ clang_disposeString(typeSpelling); +++ return result; +++} +++ ++ // Resolve elaborated types occurring with clang 16 ++ QString getResolvedTypeName(const CXType &type) ++ { ++diff --git a/sources/shiboken2/ApiExtractor/clangparser/clangutils.h b/sources/shiboken2/ApiExtractor/clangparser/clangutils.h ++index aacaf63..33f362c 100644 ++--- a/sources/shiboken2/ApiExtractor/clangparser/clangutils.h +++++ b/sources/shiboken2/ApiExtractor/clangparser/clangutils.h ++@@ -52,6 +52,7 @@ QString getCursorKindName(CXCursorKind cursorKind); ++ QString getCursorSpelling(const CXCursor &cursor); ++ QString getCursorDisplayName(const CXCursor &cursor); ++ QString getTypeName(const CXType &type); +++bool hasScopeResolution(const CXType &type); ++ QString getResolvedTypeName(const CXType &type); ++ inline QString getCursorTypeName(const CXCursor &cursor) ++ { return getTypeName(clang_getCursorType(cursor)); } ++diff --git a/sources/shiboken2/ApiExtractor/parser/codemodel.cpp b/sources/shiboken2/ApiExtractor/parser/codemodel.cpp ++index dea0812..ba07a01 100644 ++--- a/sources/shiboken2/ApiExtractor/parser/codemodel.cpp +++++ b/sources/shiboken2/ApiExtractor/parser/codemodel.cpp ++@@ -1121,11 +1121,23 @@ void _ArgumentModelItem::setDefaultValue(bool defaultValue) ++ m_defaultValue = defaultValue; ++ } ++ +++bool _ArgumentModelItem::scopeResolution() const +++{ +++ return m_scopeResolution; +++} +++ +++void _ArgumentModelItem::setScopeResolution(bool v) +++{ +++ m_scopeResolution = v; +++} +++ ++ #ifndef QT_NO_DEBUG_STREAM ++ void _ArgumentModelItem::formatDebug(QDebug &d) const ++ { ++ _CodeModelItem::formatDebug(d); ++ d << ", type=" << m_type; +++ if (m_scopeResolution) +++ d << ", [m_scope resolution]"; ++ if (m_defaultValue) ++ d << ", defaultValue=\"" << m_defaultValueExpression << '"'; ++ } ++@@ -1200,6 +1212,16 @@ void _FunctionModelItem::setVariadics(bool isVariadics) ++ m_isVariadics = isVariadics; ++ } ++ +++bool _FunctionModelItem::scopeResolution() const +++{ +++ return m_scopeResolution; +++} +++ +++void _FunctionModelItem::setScopeResolution(bool v) +++{ +++ m_scopeResolution = v; +++} +++ ++ bool _FunctionModelItem::isNoExcept() const ++ { ++ return m_exceptionSpecification == ExceptionSpecification::NoExcept; ++@@ -1343,6 +1365,8 @@ void _FunctionModelItem::formatDebug(QDebug &d) const ++ d << " [explicit]"; ++ if (m_isInvokable) ++ d << " [invokable]"; +++ if (m_scopeResolution) +++ d << " [scope resolution]"; ++ formatModelItemList(d, ", arguments=", m_arguments); ++ if (m_isVariadics) ++ d << ",..."; ++diff --git a/sources/shiboken2/ApiExtractor/parser/codemodel.h b/sources/shiboken2/ApiExtractor/parser/codemodel.h ++index b990ad9..85f298c 100644 ++--- a/sources/shiboken2/ApiExtractor/parser/codemodel.h +++++ b/sources/shiboken2/ApiExtractor/parser/codemodel.h ++@@ -499,6 +499,10 @@ public: ++ QString defaultValueExpression() const { return m_defaultValueExpression; } ++ void setDefaultValueExpression(const QString &expr) { m_defaultValueExpression = expr; } ++ +++ // Argument type has scope resolution "::ArgumentType" +++ bool scopeResolution() const; +++ void setScopeResolution(bool v); +++ ++ #ifndef QT_NO_DEBUG_STREAM ++ void formatDebug(QDebug &d) const override; ++ #endif ++@@ -507,6 +511,7 @@ private: ++ TypeInfo m_type; ++ QString m_defaultValueExpression; ++ bool m_defaultValue = false; +++ bool m_scopeResolution = false; ++ }; ++ ++ class _MemberModelItem: public _CodeModelItem ++@@ -623,6 +628,8 @@ public: ++ bool isVariadics() const; ++ void setVariadics(bool isVariadics); ++ +++ bool scopeResolution() const; // Return type has scope resolution "::ReturnType" +++ void setScopeResolution(bool v); ++ ++ bool isSimilar(const FunctionModelItem &other) const; ++ ++@@ -652,6 +659,7 @@ private: ++ uint m_isExplicit: 1; ++ uint m_isVariadics: 1; ++ uint m_isInvokable : 1; // Qt +++ uint m_scopeResolution: 1; ++ }; ++ uint m_flags; ++ }; diff --cc debian/patches/shiboken2-clang-Remove-typedef-expansion.patch index 0000000,0000000..1426411 new file mode 100644 --- /dev/null +++ b/debian/patches/shiboken2-clang-Remove-typedef-expansion.patch @@@ -1,0 -1,0 +1,101 @@@ ++From: Friedemann Kleint ++Date: Thu, 20 Apr 2023 11:16:15 +0200 ++Subject: shiboken2/clang: Remove typedef expansion ++ ++The functionality will be re-added by a subsequent change ++expanding elaborated types. ++ ++Task-number: PYSIDE-2288 ++Pick-to: 6.5 5.15 ++Change-Id: I3245c6dccba7de0ed1ce0e7820e1edb4567ca3c2 ++Reviewed-by: Christian Tismer ++(cherry picked from commit 24742dca014109bd3c2a9775fc15ca306ab22c9c) ++--- ++ .../ApiExtractor/clangparser/clangbuilder.cpp | 39 ---------------------- ++ 1 file changed, 39 deletions(-) ++ ++diff --git a/sources/shiboken2/ApiExtractor/clangparser/clangbuilder.cpp b/sources/shiboken2/ApiExtractor/clangparser/clangbuilder.cpp ++index 1b4c81c..332f1da 100644 ++--- a/sources/shiboken2/ApiExtractor/clangparser/clangbuilder.cpp +++++ b/sources/shiboken2/ApiExtractor/clangparser/clangbuilder.cpp ++@@ -140,7 +140,6 @@ static bool isSigned(CXTypeKind kind) ++ class BuilderPrivate { ++ public: ++ using CursorClassHash = QHash; ++- using CursorTypedefHash = QHash; ++ using TypeInfoHash = QHash; ++ ++ explicit BuilderPrivate(BaseVisitor *bv) : m_baseVisitor(bv), m_model(new CodeModel) ++@@ -197,9 +196,6 @@ public: ++ QString cursorValueExpression(BaseVisitor *bv, const CXCursor &cursor) const; ++ void addBaseClass(const CXCursor &cursor); ++ ++- template ++- void qualifyTypeDef(const CXCursor &typeRefCursor, const QSharedPointer &item) const; ++- ++ bool visitHeader(const char *cFileName) const; ++ ++ void setFileName(const CXCursor &cursor, _CodeModelItem *item); ++@@ -213,7 +209,6 @@ public: ++ // classes can be correctly parented in case of forward-declared inner classes ++ // (QMetaObject::Connection) ++ CursorClassHash m_cursorClassHash; ++- CursorTypedefHash m_cursorTypedefHash; ++ ++ mutable TypeInfoHash m_typeInfoHash; // Cache type information ++ mutable QHash m_templateTypeAliases; ++@@ -561,7 +556,6 @@ void BuilderPrivate::addTypeDef(const CXCursor &cursor, const CXType &cxType) ++ item->setType(createTypeInfo(cxType)); ++ item->setScope(m_scope); ++ m_scopeStack.back()->addTypeDef(item); ++- m_cursorTypedefHash.insert(cursor, item); ++ } ++ ++ void BuilderPrivate::startTemplateTypeAlias(const CXCursor &cursor) ++@@ -703,31 +697,6 @@ static inline CXCursor definitionFromTypeRef(const CXCursor &typeRefCursor) ++ return clang_getTypeDeclaration(clang_getCursorType(typeRefCursor)); ++ } ++ ++-// Qualify function arguments or fields that are typedef'ed from another scope: ++-// enum ConversionFlag {}; ++-// typedef QFlags ConversionFlags; ++-// class QTextCodec { ++-// enum ConversionFlag {}; ++-// typedef QFlags ConversionFlags; ++-// struct ConverterState { ++-// explicit ConverterState(ConversionFlags); ++-// ^^ qualify to QTextCodec::ConversionFlags ++-// ConversionFlags m_flags; ++-// ^^ ditto ++- ++-template // ArgumentModelItem, VariableModelItem ++-void BuilderPrivate::qualifyTypeDef(const CXCursor &typeRefCursor, const QSharedPointer &item) const ++-{ ++- TypeInfo type = item->type(); ++- if (type.qualifiedName().size() == 1) { // item's type is unqualified. ++- const auto it = m_cursorTypedefHash.constFind(definitionFromTypeRef(typeRefCursor)); ++- if (it != m_cursorTypedefHash.constEnd() && !it.value()->scope().isEmpty()) { ++- type.setQualifiedName(it.value()->scope() + type.qualifiedName()); ++- item->setType(type); ++- } ++- } ++-} ++- ++ void BuilderPrivate::setFileName(const CXCursor &cursor, _CodeModelItem *item) ++ { ++ const SourceRange range = getCursorRange(cursor); ++@@ -1120,14 +1089,6 @@ BaseVisitor::StartTokenResult Builder::startToken(const CXCursor &cursor) ++ } ++ break; ++ case CXCursor_TypeRef: ++- if (!d->m_currentFunction.isNull()) { ++- if (d->m_currentArgument.isNull()) ++- d->qualifyTypeDef(cursor, d->m_currentFunction); // return type ++- else ++- d->qualifyTypeDef(cursor, d->m_currentArgument); ++- } else if (!d->m_currentField.isNull()) { ++- d->qualifyTypeDef(cursor, d->m_currentField); ++- } ++ break; ++ case CXCursor_CXXFinalAttr: ++ if (!d->m_currentFunction.isNull()) diff --cc debian/patches/shiboken2-clang-Suppress-class-scope-look-up-for-paramete.patch index 0000000,0000000..db9791a new file mode 100644 --- /dev/null +++ b/debian/patches/shiboken2-clang-Suppress-class-scope-look-up-for-paramete.patch @@@ -1,0 -1,0 +1,96 @@@ ++From: Friedemann Kleint ++Date: Thu, 27 Apr 2023 13:00:37 +0200 ++Subject: shiboken2/clang: Suppress class scope look up for parameters with ++ scope resolution ++ ++Add a flag to AbstractMetaBuilderPrivate::findTypeEntriesHelper() ++to suppress the class scope look in case scope resolution. ++ ++Task-number: PYSIDE-2288 ++Pick-to: 6.5 5.15 ++Change-Id: I04a4810d03845fb48393c5efed3641220bd12d87 ++Reviewed-by: Christian Tismer ++--- ++ sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp | 16 ++++++++++++---- ++ sources/shiboken2/ApiExtractor/abstractmetabuilder.h | 3 ++- ++ sources/shiboken2/ApiExtractor/abstractmetabuilder_p.h | 1 + ++ 3 files changed, 15 insertions(+), 5 deletions(-) ++ ++diff --git a/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp b/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp ++index 2f34e16..4bf4ab4 100644 ++--- a/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp +++++ b/sources/shiboken2/ApiExtractor/abstractmetabuilder.cpp ++@@ -1845,7 +1845,10 @@ AbstractMetaFunction *AbstractMetaBuilderPrivate::traverseFunction(const Functio ++ return nullptr; ++ } ++ ++- AbstractMetaType *type = translateType(returnType, currentClass, {}, &errorMessage); +++ TranslateTypeFlags flags; +++ if (functionItem->scopeResolution()) +++ flags.setFlag(AbstractMetaBuilder::NoClassScopeLookup); +++ AbstractMetaType *type = translateType(returnType, currentClass, flags, &errorMessage); ++ if (!type) { ++ const QString reason = msgUnmatchedReturnType(functionItem, errorMessage); ++ qCWarning(lcShiboken, "%s", ++@@ -1880,7 +1883,10 @@ AbstractMetaFunction *AbstractMetaBuilderPrivate::traverseFunction(const Functio ++ return nullptr; ++ } ++ ++- AbstractMetaType *metaType = translateType(arg->type(), currentClass, {}, &errorMessage); +++ TranslateTypeFlags flags; +++ if (arg->scopeResolution()) +++ flags.setFlag(AbstractMetaBuilder::NoClassScopeLookup); +++ AbstractMetaType *metaType = translateType(arg->type(), currentClass, flags, &errorMessage); ++ if (!metaType) { ++ // If an invalid argument has a default value, simply remove it ++ // unless the function is virtual (since the override in the ++@@ -2073,11 +2079,13 @@ static const TypeEntry* findTypeEntryUsingContext(const AbstractMetaClass* metaC ++ // Helper for translateTypeStatic() ++ TypeEntries AbstractMetaBuilderPrivate::findTypeEntries(const QString &qualifiedName, ++ const QString &name, +++ TranslateTypeFlags flags, ++ AbstractMetaClass *currentClass, ++ AbstractMetaBuilderPrivate *d) ++ { ++ // 5.1 - Try first using the current scope ++- if (currentClass) { +++ if (currentClass != nullptr +++ && !flags.testFlag(AbstractMetaBuilder::NoClassScopeLookup)) { ++ if (auto type = findTypeEntryUsingContext(currentClass, qualifiedName)) ++ return {type}; ++ ++@@ -2278,7 +2286,7 @@ AbstractMetaType *AbstractMetaBuilderPrivate::translateTypeStatic(const TypeInfo ++ typeInfo.clearInstantiations(); ++ } ++ ++- TypeEntries types = findTypeEntries(qualifiedName, name, currentClass, d); +++ TypeEntries types = findTypeEntries(qualifiedName, name, flags, currentClass, d); ++ if (!flags.testFlag(AbstractMetaBuilder::TemplateArgument)) { ++ // Avoid clashes between QByteArray and enum value QMetaType::QByteArray ++ // unless we are looking for template arguments. ++diff --git a/sources/shiboken2/ApiExtractor/abstractmetabuilder.h b/sources/shiboken2/ApiExtractor/abstractmetabuilder.h ++index 8916eaf..f333ad5 100644 ++--- a/sources/shiboken2/ApiExtractor/abstractmetabuilder.h +++++ b/sources/shiboken2/ApiExtractor/abstractmetabuilder.h ++@@ -94,7 +94,8 @@ public: ++ ++ enum TranslateTypeFlag { ++ DontResolveType = 0x1, ++- TemplateArgument = 0x2 +++ TemplateArgument = 0x2, +++ NoClassScopeLookup = 0x4 ++ }; ++ Q_DECLARE_FLAGS(TranslateTypeFlags, TranslateTypeFlag); ++ ++diff --git a/sources/shiboken2/ApiExtractor/abstractmetabuilder_p.h b/sources/shiboken2/ApiExtractor/abstractmetabuilder_p.h ++index 8468950..8ddd369 100644 ++--- a/sources/shiboken2/ApiExtractor/abstractmetabuilder_p.h +++++ b/sources/shiboken2/ApiExtractor/abstractmetabuilder_p.h ++@@ -154,6 +154,7 @@ public: ++ TranslateTypeFlags flags = {}, ++ QString *errorMessageIn = nullptr); ++ static TypeEntries findTypeEntries(const QString &qualifiedName, const QString &name, +++ TranslateTypeFlags flags = {}, ++ AbstractMetaClass *currentClass = nullptr, ++ AbstractMetaBuilderPrivate *d = nullptr); ++ diff --cc debian/patches/shiboken2-clang-Write-scope-resolution-for-all-parameters.patch index 0000000,0000000..b0be6fa new file mode 100644 --- /dev/null +++ b/debian/patches/shiboken2-clang-Write-scope-resolution-for-all-parameters.patch @@@ -1,0 -1,0 +1,62 @@@ ++From: Friedemann Kleint ++Date: Thu, 27 Apr 2023 12:18:39 +0200 ++Subject: shiboken2/clang: Write scope resolution for all parameters of native ++ wrappers ++ ++Make sure types are correct for cases like: ++ ++- QtDBusHelper::QDBusReply::QDBusReply(::QDBusReply) ++- Qt3DInput*Event constructors taking the equivalent QtGui classes ++ (Qt3DInput::QMouseEvent(::QMouseEvent *); ++ ++[ChangeLog][shiboken6] Support for parameters/function return ++types with scope resolution has been improved. ++ ++Fixes: PYSIDE-2288 ++Pick-to: 6.5 5.15 ++Change-Id: Id29758fceb88188f4cd834fbd5a7cc0ab511fb1a ++Reviewed-by: Christian Tismer ++(cherry picked from commit dd863857436bbeeba4c0a1077f5ad16653296277) ++--- ++ sources/shiboken2/generator/generator.cpp | 24 +++++++++++++----------- ++ 1 file changed, 13 insertions(+), 11 deletions(-) ++ ++diff --git a/sources/shiboken2/generator/generator.cpp b/sources/shiboken2/generator/generator.cpp ++index 6028282..6147b8a 100644 ++--- a/sources/shiboken2/generator/generator.cpp +++++ b/sources/shiboken2/generator/generator.cpp ++@@ -899,21 +899,23 @@ QString Generator::translateType(const AbstractMetaType *cType, ++ if (index >= (s.size() - (constLen + 1))) // (VarType const) or (VarType const[*|&]) ++ s = s.remove(index, constLen); ++ } ++- } else if (options & Generator::ExcludeConst || options & Generator::ExcludeReference) { +++ } else { ++ AbstractMetaType *copyType = cType->copy(); +++ if (options & Generator::ExcludeConst || options & Generator::ExcludeReference) { +++ if (options & Generator::ExcludeConst) +++ copyType->setConstant(false); ++ ++- if (options & Generator::ExcludeConst) ++- copyType->setConstant(false); ++- ++- if (options & Generator::ExcludeReference) ++- copyType->setReferenceType(NoReference); ++- +++ if (options & Generator::ExcludeReference) +++ copyType->setReferenceType(NoReference); +++ } ++ s = copyType->cppSignature(); ++- if (!copyType->typeEntry()->isVoid() && !copyType->typeEntry()->isCppPrimitive()) ++- s.prepend(QLatin1String("::")); +++ const auto te = copyType->typeEntry(); +++ if (!te->isVoid() && !te->isCppPrimitive()) { // Add scope resolution +++ const auto pos = s.indexOf(te->qualifiedCppName()); // Skip const/volatile +++ Q_ASSERT(pos >= 0); +++ s.insert(pos, QLatin1String("::")); +++ } ++ delete copyType; ++- } else { ++- s = cType->cppSignature(); ++ } ++ } ++ diff --cc debian/patches/test-with-current-interpreter.patch index 0000000,0000000..642cb20 new file mode 100644 --- /dev/null +++ b/debian/patches/test-with-current-interpreter.patch @@@ -1,0 -1,0 +1,27 @@@ ++From: Dmitry Shachnev ++Date: Sun, 14 Nov 2021 21:08:50 +0300 ++Subject: Find the build directory matching the current interpreter ++ ++This is needed to allow us to run tests with all supported Python versions. ++Without this patch, the latest build directory will be always picked, no ++matter what the current interpreter is. ++--- ++ testing/buildlog.py | 5 +++++ ++ 1 file changed, 5 insertions(+) ++ ++diff --git a/testing/buildlog.py b/testing/buildlog.py ++index 216282b..5d3aa1f 100644 ++--- a/testing/buildlog.py +++++ b/testing/buildlog.py ++@@ -94,6 +94,11 @@ class BuildLog(object): ++ """.format(fpath))) ++ sys.exit(1) ++ +++ # We need to find the build directory for the current interpreter +++ py_version = "{}.{}".format(sys.version_info[0], sys.version_info[1]) +++ if py_version not in build_classifiers: +++ continue +++ ++ if not os.path.exists(build_dir): ++ rel_dir, low_part = os.path.split(build_dir) ++ rel_dir, two_part = os.path.split(rel_dir) diff --cc debian/patches/update-sip-import.patch index 0000000,0000000..2f4958b new file mode 100644 --- /dev/null +++ b/debian/patches/update-sip-import.patch @@@ -1,0 -1,0 +1,25 @@@ ++Description: Update import of PyQt5 private sip module and remove Python 2/PyQt4 setapi calls ++Author: Kurt Kremitzki ++Last-Updated: 2020-12-20 ++ ++--- a/sources/pyside2/tests/tools/list-class-hierarchy.py +++++ b/sources/pyside2/tests/tools/list-class-hierarchy.py ++@@ -96,14 +96,10 @@ ++ for l in libraries: ++ dictionary = [] ++ if l =="PyQt5": ++- import sip ++- sip.setapi('QDate',2) ++- sip.setapi('QDateTime',2) ++- sip.setapi('QString',2) ++- sip.setapi('QTextStream',2) ++- sip.setapi('QTime',2) ++- sip.setapi('QUrl',2) ++- sip.setapi('QVariant',2) +++ try: +++ from PyQt5 import sip +++ except ModuleNotFoundError: +++ import sip ++ ++ for m in modules: ++ exec("from %s import %s" % (l,m), globals(), locals()) diff --cc debian/pyside2-tools.install index 0000000,0000000..bb4b1fe new file mode 100644 --- /dev/null +++ b/debian/pyside2-tools.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py3.*/bin/pyside2-* usr/bin diff --cc debian/pyside2-tools.manpages index 0000000,0000000..ca1b931 new file mode 100644 --- /dev/null +++ b/debian/pyside2-tools.manpages @@@ -1,0 -1,0 +1,2 @@@ ++pyside3_install/py3*/share/man/man1/pyside2-* ++ diff --cc debian/python-pyside2-doc.docs index 0000000,0000000..2ada6e7 new file mode 100644 --- /dev/null +++ b/debian/python-pyside2-doc.docs @@@ -1,0 -1,0 +1,3 @@@ ++README.md ++README.pyside2.md ++README.shiboken2.md diff --cc debian/python-pyside2-doc.examples index 0000000,0000000..e39721e new file mode 100644 --- /dev/null +++ b/debian/python-pyside2-doc.examples @@@ -1,0 -1,0 +1,1 @@@ ++examples/* diff --cc debian/python3-pyside2.qtconcurrent.install index 0000000,0000000..ed9eae0 new file mode 100644 --- /dev/null +++ b/debian/python3-pyside2.qtconcurrent.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtConcurrent.*.so usr/lib/python3/dist-packages/PySide2 diff --cc debian/python3-pyside2.qtcore.install index 0000000,0000000..18bfbc7 new file mode 100644 --- /dev/null +++ b/debian/python3-pyside2.qtcore.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtCore.*.so usr/lib/python3/dist-packages/PySide2 diff --cc debian/python3-pyside2.qtgui.install index 0000000,0000000..9c8d25c new file mode 100644 --- /dev/null +++ b/debian/python3-pyside2.qtgui.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtGui.*.so usr/lib/python3/dist-packages/PySide2 diff --cc debian/python3-pyside2.qthelp.install index 0000000,0000000..8012c75 new file mode 100644 --- /dev/null +++ b/debian/python3-pyside2.qthelp.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtHelp.*.so usr/lib/python3/dist-packages/PySide2 diff --cc debian/python3-pyside2.qtmultimedia.install index 0000000,0000000..e100d1e new file mode 100644 --- /dev/null +++ b/debian/python3-pyside2.qtmultimedia.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtMultimedia.*.so usr/lib/python3/dist-packages/PySide2 diff --cc debian/python3-pyside2.qtmultimediawidgets.install index 0000000,0000000..11420f9 new file mode 100644 --- /dev/null +++ b/debian/python3-pyside2.qtmultimediawidgets.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtMultimediaWidgets.*.so usr/lib/python3/dist-packages/PySide2 diff --cc debian/python3-pyside2.qtnetwork.install index 0000000,0000000..cddff59 new file mode 100644 --- /dev/null +++ b/debian/python3-pyside2.qtnetwork.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtNetwork.*.so usr/lib/python3/dist-packages/PySide2 diff --cc debian/python3-pyside2.qtopengl.install index 0000000,0000000..736e241 new file mode 100644 --- /dev/null +++ b/debian/python3-pyside2.qtopengl.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtOpenGL.*.so usr/lib/python3/dist-packages/PySide2 diff --cc debian/python3-pyside2.qtopenglfunctions.install index 0000000,0000000..9b444f7 new file mode 100644 --- /dev/null +++ b/debian/python3-pyside2.qtopenglfunctions.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtOpenGLFunctions.*.so usr/lib/python3/dist-packages/PySide2 diff --cc debian/python3-pyside2.qtprintsupport.install index 0000000,0000000..72eb659 new file mode 100644 --- /dev/null +++ b/debian/python3-pyside2.qtprintsupport.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtPrintSupport.*.so usr/lib/python3/dist-packages/PySide2 diff --cc debian/python3-pyside2.qtqml.install index 0000000,0000000..8116b2d new file mode 100644 --- /dev/null +++ b/debian/python3-pyside2.qtqml.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtQml.*.so usr/lib/python3/dist-packages/PySide2 diff --cc debian/python3-pyside2.qtquick.install index 0000000,0000000..d2045b1 new file mode 100644 --- /dev/null +++ b/debian/python3-pyside2.qtquick.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtQuick.*.so usr/lib/python3/dist-packages/PySide2 diff --cc debian/python3-pyside2.qtsql.install index 0000000,0000000..b50b3e4 new file mode 100644 --- /dev/null +++ b/debian/python3-pyside2.qtsql.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtSql.*.so usr/lib/python3/dist-packages/PySide2 diff --cc debian/python3-pyside2.qtsvg.install index 0000000,0000000..522de6c new file mode 100644 --- /dev/null +++ b/debian/python3-pyside2.qtsvg.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtSvg.*.so usr/lib/python3/dist-packages/PySide2 diff --cc debian/python3-pyside2.qttest.install index 0000000,0000000..bc16f74 new file mode 100644 --- /dev/null +++ b/debian/python3-pyside2.qttest.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtTest.*.so usr/lib/python3/dist-packages/PySide2 diff --cc debian/python3-pyside2.qtuitools.install index 0000000,0000000..9bbb6db new file mode 100644 --- /dev/null +++ b/debian/python3-pyside2.qtuitools.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtUiTools.*.so usr/lib/python3/dist-packages/PySide2 diff --cc debian/python3-pyside2.qtwebchannel.install index 0000000,0000000..97ab7cf new file mode 100644 --- /dev/null +++ b/debian/python3-pyside2.qtwebchannel.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtWebChannel.*.so usr/lib/python3/dist-packages/PySide2 diff --cc debian/python3-pyside2.qtwebengine.install index 0000000,0000000..4430a23 new file mode 100644 --- /dev/null +++ b/debian/python3-pyside2.qtwebengine.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtWebEngine.*.so usr/lib/python3/dist-packages/PySide2 diff --cc debian/python3-pyside2.qtwebenginecore.install index 0000000,0000000..efe85a2 new file mode 100644 --- /dev/null +++ b/debian/python3-pyside2.qtwebenginecore.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtWebEngineCore.*.so usr/lib/python3/dist-packages/PySide2 diff --cc debian/python3-pyside2.qtwebenginewidgets.install index 0000000,0000000..3dbc143 new file mode 100644 --- /dev/null +++ b/debian/python3-pyside2.qtwebenginewidgets.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtWebEngineWidgets.*.so usr/lib/python3/dist-packages/PySide2 diff --cc debian/python3-pyside2.qtwebsockets.install index 0000000,0000000..54f3e1b new file mode 100644 --- /dev/null +++ b/debian/python3-pyside2.qtwebsockets.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtWebSockets.*.so usr/lib/python3/dist-packages/PySide2 diff --cc debian/python3-pyside2.qtwidgets.install index 0000000,0000000..ff9a2ce new file mode 100644 --- /dev/null +++ b/debian/python3-pyside2.qtwidgets.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtWidgets.*.so usr/lib/python3/dist-packages/PySide2 diff --cc debian/python3-pyside2.qtxml.install index 0000000,0000000..714f2b4 new file mode 100644 --- /dev/null +++ b/debian/python3-pyside2.qtxml.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtXml.*.so usr/lib/python3/dist-packages/PySide2 diff --cc debian/python3-pyside2.qtxmlpatterns.install index 0000000,0000000..a4b464d new file mode 100644 --- /dev/null +++ b/debian/python3-pyside2.qtxmlpatterns.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtXmlPatterns.*.so usr/lib/python3/dist-packages/PySide2 diff --cc debian/rules index 0000000,0000000..f928389 new file mode 100755 --- /dev/null +++ b/debian/rules @@@ -1,0 -1,0 +1,63 @@@ ++#!/usr/bin/make -f ++ ++include /usr/share/dpkg/default.mk ++ ++# Safety measure to ensure package names match SONAMEs ++PYSIDE_MAJOR := $(shell echo $(DEB_VERSION_UPSTREAM) | cut -d. -f1-2) ++ifeq ($(shell awk '/Package:/ {print $$2}' debian/control | grep -- '-$(PYSIDE_MAJOR)\(t64\)\?$$'),) ++ $(error Please update package names for major version $(PYSIDE_MAJOR)) ++endif ++ifeq ($(shell ls debian/lib* | grep -- -$(PYSIDE_MAJOR)),) ++ $(error Please update files debian/lib*.* for major version $(PYSIDE_MAJOR)) ++endif ++ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) ++ OPTION_JOBS = --parallel=$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) ++endif ++ ++export PYBUILD_NAME=pyside2 ++export PYBUILD_SYSTEM=distutils ++export PYBUILD_BUILD_ARGS=--relwithdebinfo --verbose-build --no-examples --build-tests --doc-build-online --ignore-git $(OPTION_JOBS) ++ ++export MAIN_VERSION_UPSTREAM := $(shell echo $(DEB_VERSION_UPSTREAM)) ++export DEB_BUILD_MAINT_OPTIONS = hardening=+all ++# Add CPPFLAGS to CXXFLAGS as CMake ignores CPPFLAGS by default ++CXXFLAGS+=$(CPPFLAGS) ++ ++# Work around buildd bug (https://bugs.debian.org/842565) ++undefine XDG_RUNTIME_DIR ++ ++%: ++ dh $@ --with python3,sphinxdoc --buildsystem=pybuild ++ ++override_dh_auto_install: ++ # Don't use pybuild install process, we take over this step to ++ # split files in the way we want it. But we echo the list of files ++ # built to make it easier to update *.install files. ++ echo ">>> In pyside*_{package,install}" ++ -find pyside*_install pyside*_build ++ ++override_dh_makeshlibs: ++ dh_makeshlibs -VUpstream-Version ++ ++override_dh_install-indep: ++ dh_install -X.doctrees ++ ++override_dh_install-arch: ++ dh_install ++ # remove RUNPATH setup in shiboken2 ++ chrpath -d debian/shiboken2/usr/bin/shiboken2 ++ # change the library path in pkg-info/*.pc and in *.cmake files: ++ # during the build the path is setup to the build dir ++ # /build/pyside2* (required to find lib during the build) but it's ++ # not what we need ++ debian/set-paths ++ ++override_dh_auto_test: ++ifneq (,$(filter $(DEB_HOST_ARCH), mips64el ppc64el)) ++ # See https://bugs.debian.org/868745, https://bugs.debian.org/1061679 ++ -QSG_NO_DEPTH_BUFFER=1 xvfb-run -a dh_auto_test -- --system=custom \ ++ --test-args '{interpreter} testrunner.py test' ++else ++ xvfb-run -a dh_auto_test -- --system=custom \ ++ --test-args '{interpreter} testrunner.py test' ++endif diff --cc debian/set-paths index 0000000,0000000..9e334a2 new file mode 100755 --- /dev/null +++ b/debian/set-paths @@@ -1,0 -1,0 +1,42 @@@ ++#!/bin/sh ++ ++# Replace build directory value by install directory value ++package="libshiboken2-dev" ++for directory in "cmake/Shiboken2-$MAIN_VERSION_UPSTREAM" "pkgconfig"; do ++ sed -i "s|build.*relwithdebinfo/lib|usr/lib/$DEB_HOST_MULTIARCH|" \ ++ debian/$package/usr/lib/$DEB_HOST_MULTIARCH/$directory/*; ++ sed -i "s|build.*relwithdebinfo|usr|" \ ++ debian/$package/usr/lib/$DEB_HOST_MULTIARCH/$directory/*; ++ sed -i "s|\${PACKAGE_PREFIX_DIR}|/usr|" \ ++ debian/$package/usr/lib/$DEB_HOST_MULTIARCH/$directory/*; ++ sed -i "s|\${_IMPORT_PREFIX}/lib|\${_IMPORT_PREFIX}/$DEB_HOST_MULTIARCH|" \ ++ debian/$package/usr/lib/$DEB_HOST_MULTIARCH/$directory/*; ++ sed -i "s|\${_IMPORT_PREFIX}/include|\${_IMPORT_PREFIX}/../include|" \ ++ debian/$package/usr/lib/$DEB_HOST_MULTIARCH/$directory/*; ++ sed -i "s|libshiboken2.*\.so|libshiboken2\${PYTHON_CONFIG_SUFFIX}.so|" \ ++ debian/$package/usr/lib/$DEB_HOST_MULTIARCH/$directory/Shiboken2Targets-*.cmake; ++done ++ ++package="libpyside2-dev" ++for directory in "pkgconfig" "cmake/PySide2-$MAIN_VERSION_UPSTREAM"; do ++ sed -i "s|build.*relwithdebinfo/lib|usr/lib/$DEB_HOST_MULTIARCH|" \ ++ debian/$package/usr/lib/$DEB_HOST_MULTIARCH/$directory/*; ++ sed -i "s|build.*relwithdebinfo|usr|" \ ++ debian/$package/usr/lib/$DEB_HOST_MULTIARCH/$directory/*; ++ sed -i "s|\${PACKAGE_PREFIX_DIR}|/usr|" \ ++ debian/$package/usr/lib/$DEB_HOST_MULTIARCH/$directory/*; ++ sed -i "s|\${_IMPORT_PREFIX}/lib|\${_IMPORT_PREFIX}/$DEB_HOST_MULTIARCH|" \ ++ debian/$package/usr/lib/$DEB_HOST_MULTIARCH/$directory/*; ++ sed -i "s|\${_IMPORT_PREFIX}/include|\${_IMPORT_PREFIX}/../include|" \ ++ debian/$package/usr/lib/$DEB_HOST_MULTIARCH/$directory/*; ++ sed -i "s|libpyside2.*\.so|libpyside2\${PYTHON_CONFIG_SUFFIX}.so|" \ ++ debian/$package/usr/lib/$DEB_HOST_MULTIARCH/$directory/PySide2Targets-*.cmake; ++done ++ ++# Set correctly the python path for pyside2 (Python3) ++sed -i "s|^set_and_check(PYSIDE_PYTHONPATH.*|set_and_check(PYSIDE_PYTHONPATH \"/usr/lib/python3/dist-packages/PySide2\")|" \ ++ debian/libpyside2-dev/usr/lib/$DEB_HOST_MULTIARCH/cmake/PySide2-$MAIN_VERSION_UPSTREAM/PySide2Config.cpython-3*-$DEB_HOST_MULTIARCH.cmake ++ ++# Set correctly the python path for shiboken2 (Python3) ++sed -i "s|^set_and_check(SHIBOKEN_PYTHON_MODULE_DIR.*|set_and_check(SHIBOKEN_PYTHON_MODULE_DIR \"/usr/lib/python3/dist-packages/shiboken2\")|" \ ++ debian/libshiboken2-dev/usr/lib/$DEB_HOST_MULTIARCH/cmake/Shiboken2-$MAIN_VERSION_UPSTREAM/Shiboken2Config.cpython-3*-$DEB_HOST_MULTIARCH.cmake diff --cc debian/shiboken2-doc.docs index 0000000,0000000..bc427a5 new file mode 100644 --- /dev/null +++ b/debian/shiboken2-doc.docs @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_build/py3*-relwithdebinfo/shiboken2/doc/html diff --cc debian/shiboken2.install index 0000000,0000000..335f3c4 new file mode 100644 --- /dev/null +++ b/debian/shiboken2.install @@@ -1,0 -1,0 +1,1 @@@ ++pyside3_install/py3*-relwithdebinfo/bin/shiboken2 usr/bin diff --cc debian/source/format index 0000000,0000000..163aaf8 new file mode 100644 --- /dev/null +++ b/debian/source/format @@@ -1,0 -1,0 +1,1 @@@ ++3.0 (quilt) diff --cc debian/source/options index 0000000,0000000..cb61fa5 new file mode 100644 --- /dev/null +++ b/debian/source/options @@@ -1,0 -1,0 +1,1 @@@ ++extend-diff-ignore = "^[^/]*[.]egg-info/" diff --cc debian/tests/control index 0000000,0000000..0db5537 new file mode 100644 --- /dev/null +++ b/debian/tests/control @@@ -1,0 -1,0 +1,98 @@@ ++Test-Command: debian/tests/test_install_python3.sh python3-pyside2.qtcore PySide2.QtCore ++Depends: python3-pyside2.qtcore, python3 ++Restrictions: allow-stderr, superficial ++ ++Test-Command: debian/tests/test_install_python3.sh python3-pyside2.qtwidgets PySide2.QtWidgets ++Depends: python3-pyside2.qtwidgets, python3 ++Restrictions: allow-stderr, superficial ++ ++Test-Command: debian/tests/test_install_python3.sh python3-pyside2.qtquick PySide2.QtQuick ++Depends: python3-pyside2.qtquick, python3 ++Restrictions: allow-stderr, superficial ++ ++Test-Command: debian/tests/test_install_python3.sh python3-pyside2.qtqml PySide2.QtQml ++Depends: python3-pyside2.qtqml, python3 ++Restrictions: allow-stderr, superficial ++ ++Test-Command: debian/tests/test_install_python3.sh python3-pyside2.qtwebenginecore PySide2.QtWebEngineCore ++Depends: python3-pyside2.qtwebenginecore, python3 ++Restrictions: allow-stderr, superficial ++Architecture: amd64 arm64 armhf i386 mips64el ++ ++Test-Command: debian/tests/test_install_python3.sh python3-pyside2.qthelp PySide2.QtHelp ++Depends: python3-pyside2.qthelp, python3 ++Restrictions: allow-stderr, superficial ++ ++Test-Command: debian/tests/test_install_python3.sh python3-pyside2.qtnetwork PySide2.QtNetwork ++Depends: python3-pyside2.qtnetwork, python3 ++Restrictions: allow-stderr, superficial ++ ++Test-Command: debian/tests/test_install_python3.sh python3-pyside2.qtmultimediawidgets PySide2.QtMultimediaWidgets ++Depends: python3-pyside2.qtmultimediawidgets, python3 ++Restrictions: allow-stderr, superficial ++ ++Test-Command: debian/tests/test_install_python3.sh python3-pyside2.qtmultimedia PySide2.QtMultimedia ++Depends: python3-pyside2.qtmultimedia, python3 ++Restrictions: allow-stderr, superficial ++ ++Test-Command: debian/tests/test_install_python3.sh python3-pyside2.qtwebchannel PySide2.QtWebChannel ++Depends: python3-pyside2.qtwebchannel, python3 ++Restrictions: allow-stderr, superficial ++ ++Test-Command: debian/tests/test_install_python3.sh python3-pyside2.qtprintsupport PySide2.QtPrintSupport ++Depends: python3-pyside2.qtprintsupport, python3 ++Restrictions: allow-stderr, superficial ++ ++Test-Command: debian/tests/test_install_python3.sh python3-pyside2.qtxml PySide2.QtXml ++Depends: python3-pyside2.qtxml, python3 ++Restrictions: allow-stderr, superficial ++ ++Test-Command: debian/tests/test_install_python3.sh python3-pyside2.qttest PySide2.QtTest ++Depends: python3-pyside2.qttest, python3 ++Restrictions: allow-stderr, superficial ++ ++Test-Command: debian/tests/test_install_python3.sh python3-pyside2.qtwebenginewidgets PySide2.QtWebEngineWidgets ++Depends: python3-pyside2.qtwebenginewidgets, python3 ++Restrictions: allow-stderr, superficial ++Architecture: amd64 arm64 armhf i386 mips64el ++ ++Test-Command: debian/tests/test_install_python3.sh python3-pyside2.qtconcurrent PySide2.QtConcurrent ++Depends: python3-pyside2.qtconcurrent, python3 ++Restrictions: allow-stderr, superficial ++ ++Test-Command: debian/tests/test_install_python3.sh python3-pyside2.qtxmlpatterns PySide2.QtXmlPatterns ++Depends: python3-pyside2.qtxmlpatterns, python3 ++Restrictions: allow-stderr, superficial ++ ++Test-Command: debian/tests/test_install_python3.sh python3-pyside2.qtuitools PySide2.QtUiTools ++Depends: python3-pyside2.qtuitools, python3 ++Restrictions: allow-stderr, superficial ++ ++Test-Command: debian/tests/test_install_python3.sh python3-pyside2.qtopengl PySide2.QtOpenGL ++Depends: python3-pyside2.qtopengl, python3 ++Restrictions: allow-stderr, superficial ++ ++Test-Command: debian/tests/test_install_python3.sh python3-pyside2.qtsql PySide2.QtSql ++Depends: python3-pyside2.qtsql, python3 ++Restrictions: allow-stderr, superficial ++ ++Test-Command: debian/tests/test_install_python3.sh python3-pyside2.qtgui PySide2.QtGui ++Depends: python3-pyside2.qtgui, python3 ++Restrictions: allow-stderr, superficial ++ ++Test-Command: debian/tests/test_install_python3.sh python3-pyside2.qtsvg PySide2.QtSvg ++Depends: python3-pyside2.qtsvg, python3 ++Restrictions: allow-stderr, superficial ++ ++Test-Command: debian/tests/test_install_python3.sh python3-pyside2.qtwebsockets PySide2.QtWebSockets ++Depends: python3-pyside2.qtwebsockets, python3 ++Restrictions: allow-stderr, superficial ++ ++Test-Command: debian/tests/test_install_python3.sh python3-pyside2.qtopenglfunctions PySide2.QtOpenGLFunctions ++Depends: python3-pyside2.qtopenglfunctions, python3 ++Restrictions: allow-stderr, superficial ++ ++Test-Command: debian/tests/test_install_python3.sh python3-pyside2.qtwebengine PySide2.QtWebEngine ++Depends: python3-pyside2.qtwebengine, python3 ++Restrictions: allow-stderr, superficial ++Architecture: amd64 arm64 armhf i386 mips64el diff --cc debian/tests/control.gen index 0000000,0000000..c3a4140 new file mode 100755 --- /dev/null +++ b/debian/tests/control.gen @@@ -1,0 -1,0 +1,21 @@@ ++#!/bin/sh ++ ++# Remove debian/tests/control ++rm -f debian/tests/control ++ ++# Create the basic (import) test for Python 3 modules ++for binary_package in $(dh_listpackages|grep "python3-pyside2.qt"); do ++ module_name=$(echo $binary_package|awk -F. '{print $2}') ++ # find import_name ++ import_name=$(find sources/pyside2/PySide2/ -maxdepth 1 -type d| xargs -n 1 basename|grep -i ^$module_name$) ++ echo "Test-Command: debian/tests/test_install_python3.sh $binary_package PySide2.$import_name ++Depends: $binary_package, python3 ++Restrictions: allow-stderr, superficial" >>debian/tests/control ++ architecture=$(sed -n "/^Package: ${binary_package}$/{n; p}" debian/control) ++ if [ "$architecture" != 'Architecture: any' ]; then ++ echo "$architecture" >>debian/tests/control ++ fi ++ echo "" >>debian/tests/control ++done ++ ++sed -i '$d' debian/tests/control diff --cc debian/tests/test_install_python3.sh index 0000000,0000000..d74a4c9 new file mode 100755 --- /dev/null +++ b/debian/tests/test_install_python3.sh @@@ -1,0 -1,0 +1,10 @@@ ++#!/bin/sh ++ ++set -e ++ ++echo "Testing python3 package $1" ++for py in $(py3versions -d 2>/dev/null) ; do ++ cd "$AUTOPKGTEST_TMP" ; ++ echo "Testing with $py:" ; ++ $py -c "import $2; print($2)" ; ++done diff --cc debian/watch index 0000000,0000000..9fe24da new file mode 100644 --- /dev/null +++ b/debian/watch @@@ -1,0 -1,0 +1,2 @@@ ++version=4 ++https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-([\d\.]+)-src/ pyside-setup-.*-src-@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate