pyside2 (5.15.16-3.1) unstable; urgency=medium
authorGraham Inggs <ginggs@debian.org>
Sat, 25 Jan 2025 16:33:38 +0000 (16:33 +0000)
committerGraham Inggs <ginggs@debian.org>
Sat, 25 Jan 2025 16:33:38 +0000 (16:33 +0000)
  * 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]

70 files changed:
1  2 
debian/changelog
debian/clean
debian/control
debian/copyright
debian/libpyside2-dev.install
debian/libpyside2-py3-5.15t64.install
debian/libpyside2-py3-5.15t64.lintian-overrides
debian/libshiboken2-dev.install
debian/libshiboken2-py3-5.15t64.install
debian/libshiboken2-py3-5.15t64.lintian-overrides
debian/patches/Do-not-change-RPATH.patch
debian/patches/Do-the-transition-to-Python-3.13.patch
debian/patches/Final-details-to-enable-3.12-wheel-compatibility.patch
debian/patches/Fix-condition-to-allow-3.13-for-wheel-creation.patch
debian/patches/PyEnum-make-forgiving-duplicates-work-with-Python-3.11.patch
debian/patches/Python-3.12-Fix-the-structure-of-class-property.patch
debian/patches/Shiboken-Fix-the-oldest-shiboken-bug-ever.patch
debian/patches/Stop-using-imp-module.patch
debian/patches/Support-running-PySide-on-Python-3.12.patch
debian/patches/Use-public-version-of-PyLong_AsInt-for-Python-3.13.patch
debian/patches/blacklist-failing-tests.patch
debian/patches/fix-spelling-errors.patch
debian/patches/series
debian/patches/shiboken2-clang-Fix-and-simplify-resolveType-helper.patch
debian/patches/shiboken2-clang-Fix-build-with-clang-16.patch
debian/patches/shiboken2-clang-Fix-clashes-between-type-name-and-enumera.patch
debian/patches/shiboken2-clang-Record-scope-resolution-of-arguments-func.patch
debian/patches/shiboken2-clang-Remove-typedef-expansion.patch
debian/patches/shiboken2-clang-Suppress-class-scope-look-up-for-paramete.patch
debian/patches/shiboken2-clang-Write-scope-resolution-for-all-parameters.patch
debian/patches/test-with-current-interpreter.patch
debian/patches/update-sip-import.patch
debian/pyside2-tools.install
debian/pyside2-tools.manpages
debian/python-pyside2-doc.docs
debian/python-pyside2-doc.examples
debian/python3-pyside2.qtconcurrent.install
debian/python3-pyside2.qtcore.install
debian/python3-pyside2.qtgui.install
debian/python3-pyside2.qthelp.install
debian/python3-pyside2.qtmultimedia.install
debian/python3-pyside2.qtmultimediawidgets.install
debian/python3-pyside2.qtnetwork.install
debian/python3-pyside2.qtopengl.install
debian/python3-pyside2.qtopenglfunctions.install
debian/python3-pyside2.qtprintsupport.install
debian/python3-pyside2.qtqml.install
debian/python3-pyside2.qtquick.install
debian/python3-pyside2.qtsql.install
debian/python3-pyside2.qtsvg.install
debian/python3-pyside2.qttest.install
debian/python3-pyside2.qtuitools.install
debian/python3-pyside2.qtwebchannel.install
debian/python3-pyside2.qtwebengine.install
debian/python3-pyside2.qtwebenginecore.install
debian/python3-pyside2.qtwebenginewidgets.install
debian/python3-pyside2.qtwebsockets.install
debian/python3-pyside2.qtwidgets.install
debian/python3-pyside2.qtxml.install
debian/python3-pyside2.qtxmlpatterns.install
debian/rules
debian/set-paths
debian/shiboken2-doc.docs
debian/shiboken2.install
debian/source/format
debian/source/options
debian/tests/control
debian/tests/control.gen
debian/tests/test_install_python3.sh
debian/watch

index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c49b8cc0d6abfc915633c01160ce6be5ccf6a98d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -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 <ginggs@debian.org>  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 <mitya57@debian.org>  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 <mitya57@debian.org>  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 <mitya57@debian.org>  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 <mitya57@debian.org>  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 <mitya57@debian.org>  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 <vorlon@debian.org>  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 <mitya57@debian.org>  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 <mitya57@debian.org>  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 <mitya57@debian.org>  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 <mitya57@debian.org>  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 <mitya57@debian.org>  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 <mitya57@debian.org>  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 <mitya57@debian.org>  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 <mitya57@debian.org>  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 <mitya57@debian.org>  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 <mitya57@debian.org>  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 <mitya57@debian.org>  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 <mitya57@debian.org>  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 <mitya57@debian.org>  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 <marillat@debian.org>  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 <marillat@debian.org>  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 <marillat@debian.org>  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 <mitya57@debian.org>  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 <mitya57@debian.org>  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 <kkremitzki@debian.org>  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 <kkremitzki@debian.org>  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 <mitya57@debian.org>  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 <mitya57@debian.org>  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 <mitya57@debian.org>  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 <kkremitzki@debian.org>  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 <mitya57@debian.org>  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 <kurt@kwk.systems>  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 <locutusofborg@debian.org>  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 <plugwash@p10link.net> for the patch.
++
++  [ Kurt Kremitzki ]
++  * Add CMake sed for pyside2 include path
++  * Add CMake sed for multi-Python version support
++
++ -- Kurt Kremitzki <kurt@kwk.systems>  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 <locutusofborg@debian.org>  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 <locutusofborg@debian.org>  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 <sophie@freexian.com>  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 <sophie@freexian.com>  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 <seb@debian.org>  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 <seb@debian.org>  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 <hertzog@debian.org>  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 <sophie@freexian.com>  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 <hertzog@debian.org>  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 <hertzog@debian.org>  Tue, 31 Jul 2018 16:37:40 +0200
++
++pyside2 (5.11.0-1) unstable; urgency=medium
++
++  * Initial release (Closes: #877871)
++
++ -- Sophie Brun <sophie@freexian.com>  Thu, 26 Jul 2018 17:47:45 +0200
diff --cc debian/clean
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..007fd642e997a5f484b12d74c5093696631cafa3
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -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 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c1dd9705526a2bce2f95aa23b988e33228f6db5c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,451 @@@
++Source: pyside2
++Section: python
++Priority: optional
++Maintainer: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
++Uploaders: Kurt Kremitzki <kkremitzki@debian.org>
++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.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..88f22cc22300aec45f9f99cbfd09a10b04898ea9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -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 <rulfzid@gmail.com>
++           2010-2013 Riverbank Computing Limited.
++         2010 Hans-Peter Jansen <hpj@urpla.net>
++         2010 velociraptor Genjix <aphidia@hotmail.com>
++         2009 Darryl Wallace, 2009 <wallacdj@gmail.com>
++License: BSD-3-clause
++
++Files: sources/patchelf/*
++Copyright: 2004-2009 Eelco Dolstra <e.dolstra@tudelft.nl>
++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 <doko@debian.org>
++           2002-2005 Roberto Raggi <roberto@kdevelop.org>
++           2011 Thomas Perl <m@thp.io>
++         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 <detlev@die-offenbachs.de>
++           1992-2006 Trolltech AS. All rights reserved.
++License: GPL-2
++
++Files: debian/*
++Copyright: 2018 Sophie Brun <sophie@freexian.com>
++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 <https://www.gnu.org/licenses/>
++ .
++ 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 <http://www.gnu.org/licenses/>
++ .
++ 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 <http://www.gnu.org/licenses/>
++ .
++ 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 <http://www.gnu.org/licenses/>
++ .
++ 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 <http://www.gnu.org/licenses/>
++ .
++ 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"
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..3eb64ff8b6a3e733c5298c95b6208e20b6b309ee
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..cd81eb81ac440ecb0610683e01e090e75af2f620
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..770586595d8cc8383bc95c8344a2eb1f53c149e5
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b2dd32ad346838ea19f637106f4c0fe14c139529
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..1bc2122542adfa648a0966d0e0498cce8402a3c9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8018cec1f14ad0358030af341d4b339ba1271a5c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2e3dc190b6573d1165eb5dff7bf0d799d95439c5
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,37 @@@
++From: Dmitry Shachnev <mitya57@debian.org>
++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)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8fb529ade12afe95eeda989a84209781a50f680c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,24 @@@
++From: Christian Tismer <tismer@stackless.com>
++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 <Friedemann.Kleint@qt.io>
++(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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b40d6aa29c240c4d7147b6798b944a1db674cdde
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,27 @@@
++From: =?utf-8?q?Cristi=C3=A1n_Maureira-Fredes?=
++ <Cristian.Maureira-Fredes@qt.io>
++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 <Friedemann.Kleint@qt.io>
++(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.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..4d0343f90a57d6a2575321c1ec7af186d64a1928
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,27 @@@
++From: =?utf-8?q?Cristi=C3=A1n_Maureira-Fredes?=
++ <cristian.maureira-fredes@qt.io>
++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 <tismer@stackless.com>
++(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.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d62b339171f01fa40afc09e3f776a50179a605ed
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,63 @@@
++From: Christian Tismer <tismer@stackless.com>
++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 <qt_ci_bot@qt-project.org>
++Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
++(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)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..0eadc1189b7463a09a0e94a32f83dc68df49bb44
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,38 @@@
++From: Christian Tismer <tismer@stackless.com>
++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 <adrian.herrmann@qt.io>
++Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
++(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;
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..98315dd3c9885209f783977e634b26c97ac34ad9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,44 @@@
++From: Christian Tismer <tismer@stackless.com>
++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 <cristian.maureira-fredes@qt.io>
++Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
++(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;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..fd303c270c07358ed3fb0b62b98f7ebae4489fff
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,32 @@@
++From: Friedemann Kleint <Friedemann.Kleint@qt.io>
++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()
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..6f3fb3bb8e3d66f10a96d3bcc951964bb7eb0c53
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,297 @@@
++From: Christian Tismer <tismer@stackless.com>
++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 <Friedemann.Kleint@qt.io>
++(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 *>(PyObject_New(PySideSignalInstance, PySideSignalInstanceTypeF())));
++             instanceInitialize(signalInstance.cast<PySideSignalInstance *>(), key, reinterpret_cast<PySideSignal *>(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 <static type>.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<PyTypeObject *>(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<PyTypeObject *>(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.'''
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..91948d6c16a5e3065e714a14c6cf4dd8d414dbe2
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,22 @@@
++From: Dmitry Shachnev <mitya57@debian.org>
++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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..58c5e678d6d86c493a3527ad3969bb5d7e88ba7c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,55 @@@
++From: Sophie Brun <sophie@freexian.com>
++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]
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..941e661bc4f353fb3acbb93d21067c5a8117527e
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,22 @@@
++From: Sophie Brun <sophie@freexian.com>
++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;
++ }
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..4a43c934777c8cbf41f329f67bb2f0efd068ea3c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..304cff91a86d8e9e7b7b6ab69dda78c68db71df4
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,88 @@@
++From: Friedemann Kleint <Friedemann.Kleint@qt.io>
++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 <tismer@stackless.com>
++Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
++---
++ .../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<T>=QList<T>") 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<X>" 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));
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b07cc33526f7667a84eaa3e3be10e6d5f2e342c5
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,108 @@@
++From: Friedemann Kleint <Friedemann.Kleint@qt.io>
++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 <tismer@stackless.com>
++(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<TypeOne> TypeOneClass;
++     const ComplexTypeEntry* oneType = one->typeEntry();
++     const ComplexTypeEntry* baseType = base->typeEntry();
++     QCOMPARE(oneType->baseContainerType(), baseType);
++-    QCOMPARE(one->baseClassNames(), QStringList(QLatin1String("BaseTemplateClass<TypeOne>")));
+++    QCOMPARE(one->baseClassNames(), QStringList(QLatin1String("NSpace::BaseTemplateClass<NSpace::TypeOne>")));
++ 
++     QVERIFY(one->hasTemplateBaseClassInstantiations());
++     AbstractMetaTypeList instantiations = one->templateBaseClassInstantiations();
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..62de5a1531ee0b91ee19c65f8406fb6a733178da
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,92 @@@
++From: Friedemann Kleint <Friedemann.Kleint@qt.io>
++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 <tismer@stackless.com>
++(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<CodeSnip>;
++ using DocModificationList = QVector<DocModification>;
++ using FieldModificationList = QVector<FieldModification>;
++ using FunctionModificationList = QVector<FunctionModification>;
+++using TypeEntryCPtr = const TypeEntry *;
++ using TypeEntries = QVector<const TypeEntry *>;
++ 
++ #endif // TYPESYSTEM_TYPEDEFS_H
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..f5b1fc0da31c59619cfff586e4cb7543bbbd116c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,178 @@@
++From: Friedemann Kleint <Friedemann.Kleint@qt.io>
++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 <tismer@stackless.com>
++(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;
++     };
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..142641173639afe24150c67481db76a7c154e7db
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,101 @@@
++From: Friedemann Kleint <Friedemann.Kleint@qt.io>
++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 <tismer@stackless.com>
++(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<CXCursor, ClassModelItem>;
++-    using CursorTypedefHash = QHash<CXCursor, TypeDefModelItem>;
++     using TypeInfoHash = QHash<CXType, TypeInfo>;
++ 
++     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 <class Item>
++-    void qualifyTypeDef(const CXCursor &typeRefCursor, const QSharedPointer<Item> &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<QString, TemplateTypeAliasModelItem> 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<ConversionFlag> ConversionFlags;
++-// class QTextCodec {
++-//      enum ConversionFlag {};
++-//      typedef QFlags<ConversionFlag> ConversionFlags;
++-//      struct ConverterState {
++-//          explicit ConverterState(ConversionFlags);
++-//                                  ^^ qualify to QTextCodec::ConversionFlags
++-//          ConversionFlags m_flags;
++-//                          ^^ ditto
++-
++-template <class Item> // ArgumentModelItem, VariableModelItem
++-void BuilderPrivate::qualifyTypeDef(const CXCursor &typeRefCursor, const QSharedPointer<Item> &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())
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..db9791a981594604812d60e1d0315bc86d599f5a
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,96 @@@
++From: Friedemann Kleint <Friedemann.Kleint@qt.io>
++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 <tismer@stackless.com>
++---
++ 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);
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b0be6fa263178736a46dec55401a62541a12d6b0
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,62 @@@
++From: Friedemann Kleint <Friedemann.Kleint@qt.io>
++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<void>)
++- 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 <tismer@stackless.com>
++(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();
++         }
++     }
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..642cb20f5d81dca3b88a349c3a9bc96aab8fa732
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,27 @@@
++From: Dmitry Shachnev <mitya57@debian.org>
++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)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2f4958ba26d30a56182af9a54075a488a90490b3
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,25 @@@
++Description: Update import of PyQt5 private sip module and remove Python 2/PyQt4 setapi calls
++Author: Kurt Kremitzki <kkremitzki@debian.org>
++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())
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..bb4b1fe11b42fb08b424ca245a67c3e2ed9c0002
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py3.*/bin/pyside2-* usr/bin
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ca1b931fcb4ac89a7b122fff0794d60c1a972155
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++pyside3_install/py3*/share/man/man1/pyside2-*
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2ada6e79f23f759ac088a8fac0b22c3c202f0334
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,3 @@@
++README.md
++README.pyside2.md
++README.shiboken2.md
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e39721e20f0708703dc6d9b607634636d625e9b2
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++examples/*
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ed9eae0ab0b0636deaf502ab61859a90c65a7500
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtConcurrent.*.so usr/lib/python3/dist-packages/PySide2
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..18bfbc7b019ee0ac88f18b10208e3eddeeb654dc
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtCore.*.so usr/lib/python3/dist-packages/PySide2
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..9c8d25c3cc323174d71603bc57a3229d12d306c9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtGui.*.so usr/lib/python3/dist-packages/PySide2
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8012c75bd057251e3f0c040efcdce2f7ec20236c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtHelp.*.so usr/lib/python3/dist-packages/PySide2
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e100d1e354f23493437fec69ddd7011c18d35554
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtMultimedia.*.so usr/lib/python3/dist-packages/PySide2
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..11420f9456d93c1a68f3e8d3ef9019a48487422a
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtMultimediaWidgets.*.so usr/lib/python3/dist-packages/PySide2
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..cddff5988c7481f894d8e4e052534bd29b91799c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtNetwork.*.so usr/lib/python3/dist-packages/PySide2
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..736e241d85954e854c34587d71d2b425c27cdfde
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtOpenGL.*.so usr/lib/python3/dist-packages/PySide2
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..9b444f7c1cd7220b564450d0fc139d05b39e1a7e
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtOpenGLFunctions.*.so usr/lib/python3/dist-packages/PySide2
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..72eb6593aa263701d6160028f7ce199e0816d839
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtPrintSupport.*.so usr/lib/python3/dist-packages/PySide2
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8116b2dc086fff71b6f4397f2f588a50735524f1
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtQml.*.so usr/lib/python3/dist-packages/PySide2
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d2045b1bb543363060e2620a8c8ea87f0bf31cac
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtQuick.*.so usr/lib/python3/dist-packages/PySide2
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..b50b3e486b7e21968fa23e5360ce33b3a800b6d7
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtSql.*.so usr/lib/python3/dist-packages/PySide2
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..522de6cf4e5101b720b218d79a65dd49d585ef55
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtSvg.*.so usr/lib/python3/dist-packages/PySide2
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..bc16f74f09fbf5e7cd3e2332abd5cf32fa78bd9d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtTest.*.so usr/lib/python3/dist-packages/PySide2
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..9bbb6db448e4d31333c669f09a8399ebed9a1089
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtUiTools.*.so usr/lib/python3/dist-packages/PySide2
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..97ab7cfd49266d1ed1babd58c84c6a41a3e4ebda
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtWebChannel.*.so usr/lib/python3/dist-packages/PySide2
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..4430a237841d4e2d0c340133d45c067456e0703a
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtWebEngine.*.so usr/lib/python3/dist-packages/PySide2
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..efe85a235f3a73cb8c0c71bf87397539781668d5
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtWebEngineCore.*.so usr/lib/python3/dist-packages/PySide2
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..3dbc143ac393bab693850d2e0106c49513eb6bd1
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtWebEngineWidgets.*.so usr/lib/python3/dist-packages/PySide2
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..54f3e1bf11088d3a76ef28388bd00b8e38f10f76
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtWebSockets.*.so usr/lib/python3/dist-packages/PySide2
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ff9a2ce712c9738d2e4dc6dcc0ea3c00ebb1612c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtWidgets.*.so usr/lib/python3/dist-packages/PySide2
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..714f2b48a8f3bf014cfbd5cff04763317397b829
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py*-relwithdebinfo/lib/python3*/site-packages/PySide2/QtXml.*.so usr/lib/python3/dist-packages/PySide2
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..a4b464dbb4974f2d6f821f76c091bc73a64ab9a4
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -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 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..f928389d5957b8ade1272d8469e646d4d6b75226
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..9e334a23d18214a35eda1e0e243d4a264319fbd2
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..bc427a514c3b25eb5783ce465624fa3121cb1220
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_build/py3*-relwithdebinfo/shiboken2/doc/html
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..335f3c4a8dff22c0fa517b353e7708736f612445
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++pyside3_install/py3*-relwithdebinfo/bin/shiboken2 usr/bin
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..163aaf8d82b6c54f23c45f32895dbdfdcc27b047
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++3.0 (quilt)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..cb61fa5267b6ad8b3bbc2a612754b79dae466292
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++extend-diff-ignore = "^[^/]*[.]egg-info/"
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..0db5537ad99d149781a04412e71d9a18ee246553
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c3a41403d2a07d934fb3b911b00f8fbc61bc1ffd
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d74a4c9ec4a4905f665f9b7b7ba7d34f797a2620
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -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 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..9fe24da8b8ba1a4fa8ce442e256f6d6a4d6325a5
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -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