git: d31d645ee43d - main - PyQt: Update to latest versions

From: Jason E. Hale <jhale_at_FreeBSD.org>
Date: Sat, 19 Oct 2024 07:38:52 UTC
The branch main has been updated by jhale:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d31d645ee43d6ac3734c4d795562d4c18a809dda

commit d31d645ee43d6ac3734c4d795562d4c18a809dda
Author:     Jason E. Hale <jhale@FreeBSD.org>
AuthorDate: 2024-10-19 06:35:03 +0000
Commit:     Jason E. Hale <jhale@FreeBSD.org>
CommitDate: 2024-10-19 06:35:03 +0000

    PyQt: Update to latest versions
    
    PyQt5:
    - devel/py-qt5-pyqt: Update to 5.15.11
    - graphics/py-qt5-3d: Add port
    - net/py-qt5-networkauth: Update to 5.15.6
    - www/py-qt5-webengine: Update to 5.15.7
    - x11-toolkits/py-qt5-chart: Update to 5.15.7
    - x11-toolkits/py-qt5-datavis3d: Add port
    
    PyQt6:
    - devel/py-qt6-pyqt: Update to 6.7.1
    
    Build tools:
    - devel/sip: Update to 6.8.6
    - devel/py-qt5-sip: Update to 12.15.0
    - devel/py-qt6-sip: Update to 13.8.0
    - devel/py-qtbuilder: Update to 1.16.4
    
    The build tools are now all licensed BSD2CLAUSE and have been converted
    to PEP517.
---
 Mk/Uses/pyqt.mk                                    |  62 ++---
 devel/py-qt5-pyqt/Makefile                         |  23 +-
 devel/py-qt5-pyqt/distinfo                         |   6 +-
 devel/py-qt5-sip/Makefile                          |  25 +-
 devel/py-qt5-sip/distinfo                          |   6 +-
 devel/py-qt5-sip/files/LICENSE                     |  48 ----
 devel/py-qt6-pyqt/Makefile                         |  13 +-
 devel/py-qt6-pyqt/distinfo                         |   6 +-
 devel/py-qt6-sip/Makefile                          |  23 +-
 devel/py-qt6-sip/distinfo                          |   6 +-
 devel/py-qt6-sip/files/LICENSE                     |  48 ----
 devel/py-qtbuilder/Makefile                        |  18 +-
 devel/py-qtbuilder/distinfo                        |   6 +-
 devel/py-qtbuilder/files/patch-pyproject.toml      |  16 ++
 devel/py-sip/Makefile                              |  19 +-
 devel/py-sip/distinfo                              |   6 +-
 devel/py-sip/files/patch-pyproject.toml            |  16 ++
 devel/py-sip/files/patch-sipbuild_project.py       |   4 +-
 graphics/Makefile                                  |   1 +
 graphics/py-qt5-3d/Makefile                        |  29 +++
 graphics/py-qt5-3d/distinfo                        |   3 +
 graphics/py-qt5-3d/pkg-descr                       |   2 +
 graphics/py-qt5-3d/pkg-plist                       | 251 +++++++++++++++++++++
 graphics/py-qt6-3d/Makefile                        |   9 +-
 net/py-qt5-networkauth/Makefile                    |  25 +-
 net/py-qt5-networkauth/distinfo                    |   6 +-
 net/py-qt5-networkauth/pkg-plist                   |   6 +-
 net/py-qt6-networkauth/Makefile                    |   9 +-
 www/py-qt5-webengine/Makefile                      |  17 +-
 www/py-qt5-webengine/distinfo                      |   6 +-
 www/py-qt6-webengine/Makefile                      |   9 +-
 x11-toolkits/Makefile                              |   1 +
 x11-toolkits/py-qt5-chart/Makefile                 |  18 +-
 x11-toolkits/py-qt5-chart/distinfo                 |   6 +-
 x11-toolkits/py-qt5-chart/files/patch-configure.py |  15 --
 x11-toolkits/py-qt5-datavis3d/Makefile             |  29 +++
 x11-toolkits/py-qt5-datavis3d/distinfo             |   3 +
 x11-toolkits/py-qt5-datavis3d/pkg-descr            |   2 +
 x11-toolkits/py-qt5-datavis3d/pkg-plist            |  46 ++++
 x11-toolkits/py-qt6-chart/Makefile                 |   9 +-
 x11-toolkits/py-qt6-datavis3d/Makefile             |   9 +-
 41 files changed, 563 insertions(+), 299 deletions(-)

diff --git a/Mk/Uses/pyqt.mk b/Mk/Uses/pyqt.mk
index 1383c2417c5a..cc733d94d6a6 100644
--- a/Mk/Uses/pyqt.mk
+++ b/Mk/Uses/pyqt.mk
@@ -1,15 +1,16 @@
 # Handle PyQt related ports
 #
 # Feature:	pyqt
-# Usage:	USES=pyqt:ARGS
-# Valid ARGS:	5, 6
+# Usage:	USES=pyqt:<version>[,dist]
+# Versions:	5, 6
+# Internal use ARGS:	dist
+#    This port is part of PyQt5/6 itself. Variables and
+#    targets are then set assuming a certain tarball and
+#    port layout.
 #
 # MAINTAINER:	kde@FreeBSD.org
 #
-# Internal Port variables for PyQt ports:
-# PYQT_DIST	- This port is part of PyQt5/6 itself. Variables and
-#		targets are then set assuming a certain tarball and
-#		port layout.
+# Port variables for PyQt ports:
 # USE_PYQT	- List of PyQt components to depend on
 #		* foo:build    only build depend
 #		* foo:run      only run depend
@@ -46,6 +47,10 @@ IGNORE?=	USES=pyqt needs a version number (valid values: ${_PYQT_SUPPORTED})
 _PYQT_VERSION=	0
 .  endif
 
+.  if ${pyqt_ARGS:Mdist}
+_PYQT_DIST=	yes
+.  endif
+
 PYQT_MAINTAINER=	kde@FreeBSD.org
 
 MASTER_SITE_RIVERBANK=	https://www.riverbankcomputing.com/static/Downloads/%SUBDIR%/
@@ -61,7 +66,9 @@ MASTER_SITES_SIP=		PYPI/source/s/sip
 # Qt 5 components
 MASTER_SITES_PYQT5SIP=		PYPI/source/P/PyQt5-sip
 MASTER_SITES_PYQT5=		PYPI/source/P/PyQt5
+MASTER_SITES_PYQT53D=		PYPI/source/P/PyQt3D
 MASTER_SITES_PYQT5CHART=	PYPI/source/P/PyQtChart
+MASTER_SITES_PYQT5DATAVIS3D=	PYPI/source/P/PyQtDataVisualization
 MASTER_SITES_PYQT5NETWORKAUTH=	PYPI/source/P/PyQtNetworkAuth
 MASTER_SITES_PYQT5WEBENGINE=	PYPI/source/P/PyQtWebEngine
 
@@ -99,22 +106,22 @@ MASTER_SITES_PYQTWEBENGINE=	${MASTER_SITES_PYQT${_PYQT_VERSION}WEBENGINE}
 # below, should have a suitable epoch appended to the version.
 
 # Qt version-agnostic components
-# PyQt-builder >= 1.16.0 requires setuptools >= 64
-# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=270358
-PYQTBUILDER_VERSION=		1.15.4
+PYQTBUILDER_VERSION=		1.16.4
 QSCI2_VERSION=			2.14.1
-SIP_VERSION=			6.8.3	# ,1
+SIP_VERSION=			6.8.6	# ,1
 
 # Qt 5 components
-PYQT5SIP_VERSION=		12.13.0
-PYQT5_VERSION=			5.15.10
-PYQT5CHART_VERSION=		5.15.6
-PYQT5NETWORKAUTH_VERSION=	5.15.5
-PYQT5WEBENGINE_VERSION=		5.15.6
+PYQT5SIP_VERSION=		12.15.0
+PYQT5_VERSION=			5.15.11
+PYQT53D_VERSION=		5.15.7
+PYQT5CHART_VERSION=		5.15.7
+PYQT5DATAVIS3D_VERSION=		5.15.6
+PYQT5NETWORKAUTH_VERSION=	5.15.6
+PYQT5WEBENGINE_VERSION=		5.15.7
 
 # Qt 6 components
-PYQT6SIP_VERSION=		13.6.0
-PYQT6_VERSION=			6.7.0
+PYQT6SIP_VERSION=		13.8.0
+PYQT6_VERSION=			6.7.1
 PYQT63D_VERSION=		6.7.0
 PYQT6CHART_VERSION=		6.7.0
 PYQT6DATAVIS3D_VERSION=		6.7.0
@@ -122,13 +129,15 @@ PYQT6NETWORKAUTH_VERSION=	6.7.0
 PYQT6WEBENGINE_VERSION=		6.7.0
 
 # Qt version-agnostic components
-#PYQTBUILDER_DISTNAME=		pyqt_builder-${PYQTBUILDER_VERSION}
+PYQTBUILDER_DISTNAME=		pyqt_builder-${PYQTBUILDER_VERSION}
 QSCI2_DISTNAME=			QScintilla_src-${QSCI2_VERSION}
 
 # Qt 5 components
 PYQT5SIP_DISTNAME=		PyQt5_sip-${PYQT5SIP_VERSION}
 PYQT5_DISTNAME=			PyQt5-${PYQT5_VERSION}
+PYQT53D_DISTNAME=		PyQt3D-${PYQT53D_VERSION}
 PYQT5CHART_DISTNAME=		PyQtChart-${PYQT5CHART_VERSION}
+PYQT5DATAVIS3D_DISTNAME=	PyQtDataVisualization-${PYQT5DATAVIS3D_VERSION}
 PYQT5NETWORKAUTH_DISTNAME=	PyQtNetworkAuth-${PYQT5NETWORKAUTH_VERSION}
 PYQT5WEBENGINE_DISTNAME=	PyQtWebEngine-${PYQT5WEBENGINE_VERSION}
 
@@ -148,11 +157,12 @@ PYQT5_LICENSE=		GPLv3
 PYQT6_LICENSE=		GPLv3
 
 _USE_PYQT_ALL=		pyqt5 pyqt6 3d chart datavis3d networkauth webengine
-_USE_SIP_ALL=		sip pysip
+_USE_SIP_ALL=		pysip sip
 _USE_QSCINTILLA=	qscintilla2
 _USE_PYQTBUILDER=	qtbuilder
 
 # Unversioned variables for the rest of the file
+PYQTSIP_VERSION=		${PYQT${_PYQT_VERSION}SIP_VERSION}
 PYQT_VERSION=			${PYQT${_PYQT_VERSION}_VERSION}
 PYQT3D_VERSION=			${PYQT${_PYQT_VERSION}3D_VERSION}
 PYQTCHART_VERSION=		${PYQT${_PYQT_VERSION}CHART_VERSION}
@@ -160,10 +170,7 @@ PYQTDATAVIS3D_VERSION=		${PYQT${_PYQT_VERSION}DATAVIS3D_VERSION}
 PYQTNETWORKAUTH_VERSION=	${PYQT${_PYQT_VERSION}NETWORKAUTH_VERSION}
 PYQTWEBENGINE_VERSION=		${PYQT${_PYQT_VERSION}WEBENGINE_VERSION}
 
-PYQT_RELNAME=			py-qt${_PYQT_VERSION}
-PYQT_PY_RELNAME=		${PYTHON_PKGNAMEPREFIX}qt${_PYQT_VERSION}
-PYQT_MASTERSITES=		${MASTER_SITES_PYQT${_PYQT_VERSION}}
-
+PYQTSIP_DISTNAME=		${PYQT${_PYQT_VERSION}SIP_DISTNAME}
 PYQT_DISTNAME=			${PYQT${_PYQT_VERSION}_DISTNAME}
 PYQT3D_DISTNAME=		${PYQT${_PYQT_VERSION}3D_DISTNAME}
 PYQTCHART_DISTNAME=		${PYQT${_PYQT_VERSION}CHART_DISTNAME}
@@ -174,9 +181,12 @@ PYQTWEBENGINE_DISTNAME=		${PYQT${_PYQT_VERSION}WEBENGINE_DISTNAME}
 PYQT_DISTINFO_FILE=		${PYQT${_PYQT_VERSION}_DISTINFO_FILE}
 PYQT_LICENSE=			${PYQT${_PYQT_VERSION}_LICENSE}
 
+PYQT_RELNAME=			py-qt${_PYQT_VERSION}
+PYQT_PY_RELNAME=		${PYTHON_PKGNAMEPREFIX}qt${_PYQT_VERSION}
+
 # PATH (see note about epochs, above)
 py-sip_PATH=			${PYTHON_PKGNAMEPREFIX}sip>=${SIP_VERSION},1
-py-pysip_PATH=			${PYQT_PY_RELNAME}-sip>=${PYQTSIP_VERSION}
+py-pysip_PATH=			${PYTHON_PKGNAMEPREFIX}PyQt${_PYQT_VERSION}-sip>=${PYQTSIP_VERSION}
 py-qscintilla2_PATH=		${PYQT_PY_RELNAME}-qscintilla2>=${QSCI2_VERSION}
 py-qtbuilder_PATH=		${PYTHON_PKGNAMEPREFIX}PyQt-builder>=${PYQTBUILDER_VERSION}
 py-pyqt5_PATH=			${PYQT_PY_RELNAME}-pyqt>=${PYQT_VERSION}
@@ -230,7 +240,7 @@ PLIST_SUB+=	PYQT_APIDIR=${_APIDIR_REL} \
 		PYQT_QSCIVERSION=${QSCI2_VERSION} \
 		PYQT_PYQTVERSION=${PYQT_VERSION}
 
-.  if defined(PYQT_DIST)
+.  if defined(_PYQT_DIST)
 
 LICENSE?=	${PYQT_LICENSE}
 
@@ -265,7 +275,7 @@ do-install:
 	(cd ${WRKSRC} ; ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${MAKE} -C ./build install INSTALL_ROOT=${STAGEDIR} )
 .    endif  # !target(do-install)
 
-.  endif  # defined(PYQT_DIST)
+.  endif  # defined(_PYQT_DIST)
 
 # Set build, run and test depends -- we need to prefix them internally with "py-"
 # else we conflict with the ones defined in bsd.qt.mk with the same name
diff --git a/devel/py-qt5-pyqt/Makefile b/devel/py-qt5-pyqt/Makefile
index 3385d87109eb..1b0aeb04cc59 100644
--- a/devel/py-qt5-pyqt/Makefile
+++ b/devel/py-qt5-pyqt/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	pyqt
-PORTVERSION=	${PYQT_VERSION}
-PORTREVISION=	2
+DISTVERSION=	${PYQT_VERSION}
 CATEGORIES=	devel python
 MASTER_SITES=	${MASTER_SITES_PYQT}
 PKGNAMEPREFIX=	${PYQT_PY_RELNAME}-
@@ -10,20 +9,14 @@ MAINTAINER=	kde@FreeBSD.org
 COMMENT=	Python bindings for the Qt5 toolkit, QtCore module
 WWW=		https://riverbankcomputing.com/software/pyqt
 
-PYQT_DIST=	yes
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}dbus>1:devel/py-dbus@${PY_FLAVOR}
+LIB_DEPENDS=	libdbus-1.so:devel/dbus
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}dbus>1:devel/py-dbus@${PY_FLAVOR}
 
-LIB_DEPENDS=	libqscintilla2_qt5.so:devel/qscintilla2@qt5 \
-		libdbus-1.so:devel/dbus
-BUILD_DEPENDS=	${PY_SETUPTOOLS} \
-		${PYTHON_PKGNAMEPREFIX}dbus>1:devel/py-dbus@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}ply>0:devel/py-ply@${PY_FLAVOR}
-RUN_DEPENDS+=	${PYTHON_PKGNAMEPREFIX}dbus>1:devel/py-dbus@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}ply>0:devel/py-ply@${PY_FLAVOR}
-
-USES=		gl pkgconfig python pyqt:5 qt:5
+USES=		gl pkgconfig python pyqt:5,dist qt:5
 USE_GL=		gl
-USE_PYTHON=	concurrent flavors py3kplist
-USE_PYQT=	qtbuilder sip pysip
+USE_PYQT=	pysip qtbuilder:build sip:build
+USE_PYTHON=	concurrent flavors
 USE_QT=		connectivity core dbus declarative designer gui help imageformats location \
 		multimedia network opengl printsupport quick3d remoteobjects \
 		sensors serialport speech sql svg testlib webchannel websockets \
@@ -46,5 +39,7 @@ post-install:
 		${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/PyQt5
 	@${FIND} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/PyQt5 \
 		-name '*.so*' -exec ${STRIP_CMD} {} +
+	@${FIND} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/dbus/mainloop \
+		-name '*.so*' -exec ${STRIP_CMD} {} +
 
 .include <bsd.port.mk>
diff --git a/devel/py-qt5-pyqt/distinfo b/devel/py-qt5-pyqt/distinfo
index abb940c25e87..539d29b4fa37 100644
--- a/devel/py-qt5-pyqt/distinfo
+++ b/devel/py-qt5-pyqt/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1697315085
-SHA256 (PyQt5-5.15.10.tar.gz) = d46b7804b1b10a4ff91753f8113e5b5580d2b4462f3226288e2d84497334898a
-SIZE (PyQt5-5.15.10.tar.gz) = 3242654
+TIMESTAMP = 1729214257
+SHA256 (PyQt5-5.15.11.tar.gz) = fda45743ebb4a27b4b1a51c6d8ef455c4c1b5d610c90d2934c7802b5c1557c52
+SIZE (PyQt5-5.15.11.tar.gz) = 3216775
diff --git a/devel/py-qt5-sip/Makefile b/devel/py-qt5-sip/Makefile
index 1442426e2530..4b5df982318d 100644
--- a/devel/py-qt5-sip/Makefile
+++ b/devel/py-qt5-sip/Makefile
@@ -1,23 +1,22 @@
-PORTNAME=	sip
-PORTVERSION=	${PYQT5SIP_VERSION}
+PORTNAME=	PyQt5-sip
+DISTVERSION=	${PYQTSIP_VERSION}
 CATEGORIES=	devel python
 MASTER_SITES=	${MASTER_SITES_PYQT5SIP}
-PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}qt5-
-DISTNAME=	${PYQT5SIP_DISTNAME}
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+DISTNAME=	${PYQTSIP_DISTNAME}
 
 MAINTAINER=	kde@FreeBSD.org
 COMMENT=	Python to C and C++ bindings generator
-WWW=		http://www.riverbankcomputing.co.uk/software/sip/
+WWW=		https://pypi.org/project/PyQt5-sip/
 
-LICENSE=		SIP GPLv2 GPLv3
-LICENSE_COMB=		multi
-LICENSE_GROUPS_SIP=	FSF GPL OSI
-LICENSE_NAME_SIP=	SIP License
-LICENSE_FILE_SIP=	${FILESDIR}/LICENSE
-LICENSE_PERMS_SIP=	dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
+LICENSE=	BSD2CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
 
-USES=		python pyqt:sip
-USE_PYTHON=	autoplist concurrent distutils flavors
+BUILD_DEPENDS=	${PY_SETUPTOOLS} \
+		${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
+
+USES=		python pyqt:5
+USE_PYTHON=	autoplist concurrent pep517
 USE_PYQT=	#
 
 .include <bsd.port.mk>
diff --git a/devel/py-qt5-sip/distinfo b/devel/py-qt5-sip/distinfo
index fe023aa9c89b..6d329e843fcf 100644
--- a/devel/py-qt5-sip/distinfo
+++ b/devel/py-qt5-sip/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1697314928
-SHA256 (PyQt5_sip-12.13.0.tar.gz) = 7f321daf84b9c9dbca61b80e1ef37bdaffc0e93312edae2cd7da25b953971d91
-SIZE (PyQt5_sip-12.13.0.tar.gz) = 123225
+TIMESTAMP = 1729208010
+SHA256 (PyQt5_sip-12.15.0.tar.gz) = d23fdfcf363b5cedd9d39f8a9c5710e7d52804f5b08a58e91c638b36eafcb702
+SIZE (PyQt5_sip-12.15.0.tar.gz) = 104024
diff --git a/devel/py-qt5-sip/files/LICENSE b/devel/py-qt5-sip/files/LICENSE
deleted file mode 100644
index 715675451dc2..000000000000
--- a/devel/py-qt5-sip/files/LICENSE
+++ /dev/null
@@ -1,48 +0,0 @@
-RIVERBANK COMPUTING LIMITED LICENSE AGREEMENT FOR SIP
-
-1. This LICENSE AGREEMENT is between Riverbank Computing Limited ("Riverbank"),
-and the Individual or Organization ("Licensee") accessing and otherwise using
-SIP software in source or binary form and its associated documentation.  SIP
-comprises a software tool for generating Python bindings for software C and C++
-libraries, and a Python extension module used at runtime by those generated
-bindings.
-
-2. Subject to the terms and conditions of this License Agreement, Riverbank
-hereby grants Licensee a nonexclusive, royalty-free, world-wide license to
-reproduce, analyze, test, perform and/or display publicly, prepare derivative
-works, distribute, and otherwise use SIP alone or in any derivative version,
-provided, however, that Riverbank's License Agreement and Riverbank's notice of
-copyright, e.g., "Copyright (c) 2015 Riverbank Computing Limited; All Rights
-Reserved" are retained in SIP alone or in any derivative version prepared by
-Licensee.
-
-3. In the event Licensee prepares a derivative work that is based on or
-incorporates SIP or any part thereof, and wants to make the derivative work
-available to others as provided herein, then Licensee hereby agrees to include
-in any such work a brief summary of the changes made to SIP.
-
-4. Licensee may not use SIP to generate Python bindings for any C or C++
-library for which bindings are already provided by Riverbank.
-
-5. Riverbank is making SIP available to Licensee on an "AS IS" basis.
-RIVERBANK MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED.  BY WAY
-OF EXAMPLE, BUT NOT LIMITATION, RIVERBANK MAKES NO AND DISCLAIMS ANY
-REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
-PURPOSE OR THAT THE USE OF SIP WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.
-
-6. RIVERBANK SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF SIP FOR ANY
-INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING,
-DISTRIBUTING, OR OTHERWISE USING SIP, OR ANY DERIVATIVE THEREOF, EVEN IF
-ADVISED OF THE POSSIBILITY THEREOF.
-
-7. This License Agreement will automatically terminate upon a material breach
-of its terms and conditions.
-
-8. Nothing in this License Agreement shall be deemed to create any relationship
-of agency, partnership, or joint venture between Riverbank and Licensee.  This
-License Agreement does not grant permission to use Riverbank trademarks or
-trade name in a trademark sense to endorse or promote products or services of
-Licensee, or any third party.
-
-9. By copying, installing or otherwise using SIP, Licensee agrees to be bound
-by the terms and conditions of this License Agreement.
diff --git a/devel/py-qt6-pyqt/Makefile b/devel/py-qt6-pyqt/Makefile
index d4e8db6e6194..e42e1e71b0c9 100644
--- a/devel/py-qt6-pyqt/Makefile
+++ b/devel/py-qt6-pyqt/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	pyqt
 DISTVERSION=	${PYQT_VERSION}
-PORTREVISION=	1
 CATEGORIES=	devel python
 MASTER_SITES=	${MASTER_SITES_PYQT}
 PKGNAMEPREFIX=	${PYQT_PY_RELNAME}-
@@ -10,18 +9,16 @@ MAINTAINER=	kde@FreeBSD.org
 COMMENT=	Python bindings for the Qt6 toolkit
 WWW=		https://riverbankcomputing.com/software/pyqt
 
-PYQT_DIST=	yes
+LICENSE=	${PYQT6_LICENSE}
 
-LIB_DEPENDS=	libdbus-1.so:devel/dbus \
-		libqscintilla2_qt6.so:devel/qscintilla2@qt6
-BUILD_DEPENDS=	${PY_SETUPTOOLS} \
-		${PYTHON_PKGNAMEPREFIX}dbus>1:devel/py-dbus@${PY_FLAVOR}
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}dbus>1:devel/py-dbus@${PY_FLAVOR}
+LIB_DEPENDS=	libdbus-1.so:devel/dbus
 RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}dbus>1:devel/py-dbus@${PY_FLAVOR}
 
-USES=		gl pkgconfig python pyqt:6 qt:6
+USES=		gl pkgconfig pyqt:6,dist python qt:6
 USE_GL=		opengl
+USE_PYQT=	pysip qtbuilder:build sip:build
 USE_PYTHON=	concurrent flavors
-USE_PYQT=	pysip qtbuilder sip
 USE_QT=		base connectivity declarative imageformats multimedia \
 		pdf positioning quick3d remoteobjects sensors serialport \
 		shadertools speech svg tools translations webchannel \
diff --git a/devel/py-qt6-pyqt/distinfo b/devel/py-qt6-pyqt/distinfo
index d03553ac245f..302c3c02add5 100644
--- a/devel/py-qt6-pyqt/distinfo
+++ b/devel/py-qt6-pyqt/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1714270793
-SHA256 (PyQt6-6.7.0.tar.gz) = 3d31b2c59dc378ee26e16586d9469842483588142fc377280aad22aaf2fa6235
-SIZE (PyQt6-6.7.0.tar.gz) = 1050408
+TIMESTAMP = 1729210525
+SHA256 (PyQt6-6.7.1.tar.gz) = 3672a82ccd3a62e99ab200a13903421e2928e399fda25ced98d140313ad59cb9
+SIZE (PyQt6-6.7.1.tar.gz) = 1051212
diff --git a/devel/py-qt6-sip/Makefile b/devel/py-qt6-sip/Makefile
index 4f52293e68b7..6fbd8f8658ee 100644
--- a/devel/py-qt6-sip/Makefile
+++ b/devel/py-qt6-sip/Makefile
@@ -1,23 +1,22 @@
-PORTNAME=	sip
-PORTVERSION=	${PYQT6SIP_VERSION}
+PORTNAME=	PyQt6-sip
+DISTVERSION=	${PYQTSIP_VERSION}
 CATEGORIES=	devel python
 MASTER_SITES=	${MASTER_SITES_PYQT6SIP}
-PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}qt6-
-DISTNAME=	${PYQT6SIP_DISTNAME}
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+DISTNAME=	${PYQTSIP_DISTNAME}
 
 MAINTAINER=	kde@FreeBSD.org
 COMMENT=	Python to C and C++ bindings generator
-WWW=		http://www.riverbankcomputing.co.uk/software/sip/
+WWW=		https://pypi.org/project/PyQt6-sip/
 
-LICENSE=		SIP GPLv2 GPLv3
-LICENSE_COMB=		multi
-LICENSE_GROUPS_SIP=	FSF GPL OSI
-LICENSE_NAME_SIP=	SIP License
-LICENSE_FILE_SIP=	${FILESDIR}/LICENSE
-LICENSE_PERMS_SIP=	dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
+LICENSE=	BSD2CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	${PY_SETUPTOOLS} \
+		${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
 
 USES=		python pyqt:6
-USE_PYTHON=	autoplist concurrent distutils flavors py3kplist
+USE_PYTHON=	autoplist concurrent pep517
 USE_PYQT=	#
 
 .include <bsd.port.mk>
diff --git a/devel/py-qt6-sip/distinfo b/devel/py-qt6-sip/distinfo
index 746708f45d36..1e6d16ef8a0f 100644
--- a/devel/py-qt6-sip/distinfo
+++ b/devel/py-qt6-sip/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1697481464
-SHA256 (PyQt6_sip-13.6.0.tar.gz) = 2486e1588071943d4f6657ba09096dc9fffd2322ad2c30041e78ea3f037b5778
-SIZE (PyQt6_sip-13.6.0.tar.gz) = 111576
+TIMESTAMP = 1729208051
+SHA256 (PyQt6_sip-13.8.0.tar.gz) = 2f74cf3d6d9cab5152bd9f49d570b2dfb87553ebb5c4919abfde27f5b9fd69d4
+SIZE (PyQt6_sip-13.8.0.tar.gz) = 92264
diff --git a/devel/py-qt6-sip/files/LICENSE b/devel/py-qt6-sip/files/LICENSE
deleted file mode 100644
index 715675451dc2..000000000000
--- a/devel/py-qt6-sip/files/LICENSE
+++ /dev/null
@@ -1,48 +0,0 @@
-RIVERBANK COMPUTING LIMITED LICENSE AGREEMENT FOR SIP
-
-1. This LICENSE AGREEMENT is between Riverbank Computing Limited ("Riverbank"),
-and the Individual or Organization ("Licensee") accessing and otherwise using
-SIP software in source or binary form and its associated documentation.  SIP
-comprises a software tool for generating Python bindings for software C and C++
-libraries, and a Python extension module used at runtime by those generated
-bindings.
-
-2. Subject to the terms and conditions of this License Agreement, Riverbank
-hereby grants Licensee a nonexclusive, royalty-free, world-wide license to
-reproduce, analyze, test, perform and/or display publicly, prepare derivative
-works, distribute, and otherwise use SIP alone or in any derivative version,
-provided, however, that Riverbank's License Agreement and Riverbank's notice of
-copyright, e.g., "Copyright (c) 2015 Riverbank Computing Limited; All Rights
-Reserved" are retained in SIP alone or in any derivative version prepared by
-Licensee.
-
-3. In the event Licensee prepares a derivative work that is based on or
-incorporates SIP or any part thereof, and wants to make the derivative work
-available to others as provided herein, then Licensee hereby agrees to include
-in any such work a brief summary of the changes made to SIP.
-
-4. Licensee may not use SIP to generate Python bindings for any C or C++
-library for which bindings are already provided by Riverbank.
-
-5. Riverbank is making SIP available to Licensee on an "AS IS" basis.
-RIVERBANK MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED.  BY WAY
-OF EXAMPLE, BUT NOT LIMITATION, RIVERBANK MAKES NO AND DISCLAIMS ANY
-REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
-PURPOSE OR THAT THE USE OF SIP WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.
-
-6. RIVERBANK SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF SIP FOR ANY
-INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING,
-DISTRIBUTING, OR OTHERWISE USING SIP, OR ANY DERIVATIVE THEREOF, EVEN IF
-ADVISED OF THE POSSIBILITY THEREOF.
-
-7. This License Agreement will automatically terminate upon a material breach
-of its terms and conditions.
-
-8. Nothing in this License Agreement shall be deemed to create any relationship
-of agency, partnership, or joint venture between Riverbank and Licensee.  This
-License Agreement does not grant permission to use Riverbank trademarks or
-trade name in a trademark sense to endorse or promote products or services of
-Licensee, or any third party.
-
-9. By copying, installing or otherwise using SIP, Licensee agrees to be bound
-by the terms and conditions of this License Agreement.
diff --git a/devel/py-qtbuilder/Makefile b/devel/py-qtbuilder/Makefile
index b7c2a65a957c..cbb99818a7b5 100644
--- a/devel/py-qtbuilder/Makefile
+++ b/devel/py-qtbuilder/Makefile
@@ -3,26 +3,22 @@ PORTVERSION=	${PYQTBUILDER_VERSION}
 CATEGORIES=	devel python
 MASTER_SITES=	${MASTER_SITES_PYQTBUILDER}
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+DISTNAME=	${PYQTBUILDER_DISTNAME}
 
 MAINTAINER=	kde@FreeBSD.org
 COMMENT=	The PEP 517 compliant PyQt build system
-WWW=		https://www.riverbankcomputing.com/software/pyqt-builder/
+WWW=		https://github.com/Python-PyQt/PyQt-builder
 
-LICENSE=		SIP GPLv2 GPLv3
-LICENSE_COMB=		multi
-LICENSE_NAME_SIP=	SIP License
-LICENSE_GROUPS_SIP=	FSF GPL OSI
-LICENSE_PERMS_SIP=	dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
-LICENSE_FILE_SIP=	${WRKSRC}/LICENSE
-LICENSE_FILE_GPLv2=	${WRKSRC}/LICENSE-GPL2
-LICENSE_FILE_GPLv3=	${WRKSRC}/LICENSE-GPL3
+LICENSE=	BSD2CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
 
 BUILD_DEPENDS=	${PY_SETUPTOOLS} \
+		${PYTHON_PKGNAMEPREFIX}setuptools-scm>=8:devel/py-setuptools-scm@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
 
-USES=		python pyqt:5
+USES=		python pyqt:6
+USE_PYQT=	sip
 USE_PYTHON=	autoplist concurrent pep517
-USE_PYQT=	#
 
 NO_ARCH=	yes
 
diff --git a/devel/py-qtbuilder/distinfo b/devel/py-qtbuilder/distinfo
index 39c7b8e8cced..ca8cc7b31d22 100644
--- a/devel/py-qtbuilder/distinfo
+++ b/devel/py-qtbuilder/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1702419984
-SHA256 (PyQt-builder-1.15.4.tar.gz) = 39f8c75db17d9ce17cb6bbf3df1650b5cebc1ea4e5bd73843d21cc96612b2ae1
-SIZE (PyQt-builder-1.15.4.tar.gz) = 3766458
+TIMESTAMP = 1729155151
+SHA256 (pyqt_builder-1.16.4.tar.gz) = 4515e41ae379be2e54f88a89ecf47cd6e4cac43e862c4abfde18389c2666afdf
+SIZE (pyqt_builder-1.16.4.tar.gz) = 3672095
diff --git a/devel/py-qtbuilder/files/patch-pyproject.toml b/devel/py-qtbuilder/files/patch-pyproject.toml
new file mode 100644
index 000000000000..b20272d1fd1f
--- /dev/null
+++ b/devel/py-qtbuilder/files/patch-pyproject.toml
@@ -0,0 +1,16 @@
+Reduce setuptools requirement until [1] is resolved. Seems to work fine
+with 63.x.
+
+[1] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=270358
+
+--- pyproject.toml.orig	2024-04-20 11:55:50 UTC
++++ pyproject.toml
+@@ -1,7 +1,7 @@
+ # The project configuration for sip.
+ 
+ [build-system]
+-requires = ["setuptools>=64", "setuptools_scm>=8"]
++requires = ["setuptools>=63", "setuptools_scm>=8"]
+ build-backend = "setuptools.build_meta"
+ 
+ [tool.setuptools_scm]
diff --git a/devel/py-sip/Makefile b/devel/py-sip/Makefile
index c9144716f5fd..5596f8a478f4 100644
--- a/devel/py-sip/Makefile
+++ b/devel/py-sip/Makefile
@@ -7,22 +7,17 @@ PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
 
 MAINTAINER=	kde@FreeBSD.org
 COMMENT=	Python to C and C++ bindings generator
-WWW=		http://www.riverbankcomputing.co.uk/software/sip/
+WWW=		https://github.com/Python-SIP/sip
 
-LICENSE=		SIP GPLv2 GPLv3
-LICENSE_COMB=		multi
-LICENSE_NAME_SIP=	SIP License
-LICENSE_GROUPS_SIP=	FSF GPL OSI
-LICENSE_PERMS_SIP=	dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
-LICENSE_FILE_SIP=	${WRKSRC}/LICENSE
-LICENSE_FILE_GPLv2=	${WRKSRC}/LICENSE-GPL2
-LICENSE_FILE_GPLv3=	${WRKSRC}/LICENSE-GPL3
+LICENSE=	BSD2CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
 
 BUILD_DEPENDS=	${PY_SETUPTOOLS} \
+		${PYTHON_PKGNAMEPREFIX}setuptools-scm>=8:devel/py-setuptools-scm@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
-RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}packaging>0:devel/py-packaging@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}ply>0:devel/py-ply@${PY_FLAVOR} \
-		${PY_TOMLI}
+RUN_DEPENDS=	${PY_SETUPTOOLS} \
+		${PY_TOMLI} \
+		${PYTHON_PKGNAMEPREFIX}packaging>0:devel/py-packaging@${PY_FLAVOR}
 
 USES=		python pyqt:sip
 USE_PYTHON=	autoplist concurrent pep517
diff --git a/devel/py-sip/distinfo b/devel/py-sip/distinfo
index 849315c68951..4736fccef7a5 100644
--- a/devel/py-sip/distinfo
+++ b/devel/py-sip/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1707690734
-SHA256 (sip-6.8.3.tar.gz) = 888547b018bb24c36aded519e93d3e513d4c6aa0ba55b7cc1affbd45cf10762c
-SIZE (sip-6.8.3.tar.gz) = 987656
+TIMESTAMP = 1729152451
+SHA256 (sip-6.8.6.tar.gz) = 7fc959e48e6ec5d5af8bd026f69f5e24d08b3cb8abb342176f5ab8030cc07d7a
+SIZE (sip-6.8.6.tar.gz) = 420778
diff --git a/devel/py-sip/files/patch-pyproject.toml b/devel/py-sip/files/patch-pyproject.toml
new file mode 100644
index 000000000000..328cc1e6ef5a
--- /dev/null
+++ b/devel/py-sip/files/patch-pyproject.toml
@@ -0,0 +1,16 @@
+Reduce setuptools requirement until [1] is resolved. Seems to work fine
+with 63.x.
+
+[1] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=270358
+
+--- pyproject.toml.orig	2024-06-22 11:21:00 UTC
++++ pyproject.toml
+@@ -1,7 +1,7 @@
+ # The project configuration for sip.
+ 
+ [build-system]
+-requires = ["setuptools>=64", "setuptools_scm>=8"]
++requires = ["setuptools>=63", "setuptools_scm>=8"]
+ build-backend = "setuptools.build_meta"
+ 
+ [tool.setuptools_scm]
diff --git a/devel/py-sip/files/patch-sipbuild_project.py b/devel/py-sip/files/patch-sipbuild_project.py
index 766224e23c2b..8c2feb2c845e 100644
--- a/devel/py-sip/files/patch-sipbuild_project.py
+++ b/devel/py-sip/files/patch-sipbuild_project.py
@@ -1,6 +1,6 @@
---- sipbuild/project.py.orig	2023-11-30 12:14:32 UTC
+--- sipbuild/project.py.orig	2024-07-12 11:20:17 UTC
 +++ sipbuild/project.py
-@@ -387,9 +387,9 @@ class Project(AbstractProject, Configurable):
+@@ -408,9 +408,9 @@ class Project(AbstractProject, Configurable):
              generator=None, wheel_tag=None, generator_version=None):
          """ Return a sequence of command line arguments to invoke sip-distinfo.
          """
diff --git a/graphics/Makefile b/graphics/Makefile
index 146689d3a7a7..f819baa2cc88 100644
--- a/graphics/Makefile
+++ b/graphics/Makefile
@@ -979,6 +979,7 @@
     SUBDIR += py-pyzbar
     SUBDIR += py-qpageview
     SUBDIR += py-qrencode
+    SUBDIR += py-qt5-3d
     SUBDIR += py-qt6-3d
     SUBDIR += py-qudida
     SUBDIR += py-railroad-diagrams
diff --git a/graphics/py-qt5-3d/Makefile b/graphics/py-qt5-3d/Makefile
new file mode 100644
index 000000000000..7d96e83dcf68
--- /dev/null
+++ b/graphics/py-qt5-3d/Makefile
@@ -0,0 +1,29 @@
+PORTNAME=	3d
+DISTVERSION=	${PYQT3D_VERSION}
+CATEGORIES=	graphics devel python
+MASTER_SITES=	${MASTER_SITES_PYQT3D}
+PKGNAMEPREFIX=	${PYQT_PY_RELNAME}-
+DISTNAME=	${PYQT3D_DISTNAME}
+
+MAINTAINER=	kde@FreeBSD.org
+COMMENT=	Python bindings for the Qt5 toolkit, 3D module
+WWW=		https://www.riverbankcomputing.com/software/pyqt3d/
+
+LICENSE=	${PYQT5_LICENSE}
+
+USES=		gl pyqt:5,dist python qt:5
+USE_GL=		gl
+USE_PYQT=	pyqt5 qtbuilder:build sip:build
+USE_PYTHON=	concurrent flavors
+USE_QT=		3d core declarative gui widgets \
+		qmake:build
+
+PLIST_SUB=      PYQT3D_VERSION=${DISTVERSION} \
+		PYTHON_MAJOR_VER=${PYTHON_MAJOR_VER} \
+		PYTHON_MAJOR_VER_regex=[[:<:]]${PYTHON_MAJOR_VER}[[:>:]]
+
+post-install:
+	@${FIND} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/PyQt5 \
+		-name '*.so*' -exec ${STRIP_CMD} {} +
+
+.include <bsd.port.mk>
diff --git a/graphics/py-qt5-3d/distinfo b/graphics/py-qt5-3d/distinfo
new file mode 100644
index 000000000000..a47d039c3988
--- /dev/null
+++ b/graphics/py-qt5-3d/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1729216863
+SHA256 (PyQt3D-5.15.7.tar.gz) = ea783eb546c7dad2d5eaaf82ea5050dde45255a9842e0a1d7584881e9e25a951
+SIZE (PyQt3D-5.15.7.tar.gz) = 7478907
diff --git a/graphics/py-qt5-3d/pkg-descr b/graphics/py-qt5-3d/pkg-descr
new file mode 100644
index 000000000000..fe6144508818
--- /dev/null
+++ b/graphics/py-qt5-3d/pkg-descr
@@ -0,0 +1,2 @@
+PyQt5 is a set of Python bindings for Qt5 application framework.
+This package provides the extra Qt3D module.
diff --git a/graphics/py-qt5-3d/pkg-plist b/graphics/py-qt5-3d/pkg-plist
new file mode 100644
index 000000000000..fd938793109a
--- /dev/null
+++ b/graphics/py-qt5-3d/pkg-plist
@@ -0,0 +1,251 @@
+%%PYTHON_SITELIBDIR%%/PyQt3D-%%PYQT3D_VERSION%%.dist-info/INSTALLER
+%%PYTHON_SITELIBDIR%%/PyQt3D-%%PYQT3D_VERSION%%.dist-info/METADATA
+%%PYTHON_SITELIBDIR%%/PyQt3D-%%PYQT3D_VERSION%%.dist-info/RECORD
+%%PYTHON_SITELIBDIR%%/PyQt5/Qt3DAnimation.abi%%PYTHON_MAJOR_VER%%.so
+%%PYTHON_SITELIBDIR%%/PyQt5/Qt3DCore.abi%%PYTHON_MAJOR_VER%%.so
+%%PYTHON_SITELIBDIR%%/PyQt5/Qt3DExtras.abi%%PYTHON_MAJOR_VER%%.so
+%%PYTHON_SITELIBDIR%%/PyQt5/Qt3DInput.abi%%PYTHON_MAJOR_VER%%.so
+%%PYTHON_SITELIBDIR%%/PyQt5/Qt3DLogic.abi%%PYTHON_MAJOR_VER%%.so
+%%PYTHON_SITELIBDIR%%/PyQt5/Qt3DRender.abi%%PYTHON_MAJOR_VER%%.so
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/Qt3DAnimation.toml
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/Qt3DAnimationmod.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qabstractanimation.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qabstractanimationclip.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qabstractchannelmapping.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qabstractclipanimator.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qabstractclipblendnode.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qadditiveclipblend.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qanimationaspect.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qanimationclip.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qanimationclipdata.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qanimationcliploader.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qanimationcontroller.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qanimationgroup.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qblendedclipanimator.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qchannel.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qchannelcomponent.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qchannelmapper.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qchannelmapping.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qclipanimator.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qclipblendnodecreatedchange.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qclipblendvalue.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qclock.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qkeyframe.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qkeyframeanimation.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qlerpclipblend.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qmorphinganimation.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qmorphtarget.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qskeletonmapping.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DAnimation/qvertexblendanimation.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/Qt3DCore.toml
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/Qt3DCoremod.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qabstractaspect.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qabstractskeleton.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qarmature.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qaspectengine.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qbackendnode.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qcomponent.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qcomponentaddedchange.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qcomponentremovedchange.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qdynamicpropertyupdatedchange.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qentity.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qjoint.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qnode.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qnodecommand.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qnodecreatedchange.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qnodedestroyedchange.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qnodeid.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qpropertynodeaddedchange.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qpropertynoderemovedchange.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qpropertyupdatedchange.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qpropertyupdatedchangebase.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qpropertyvalueaddedchange.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qpropertyvalueaddedchangebase.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qpropertyvalueremovedchange.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qpropertyvalueremovedchangebase.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qscenechange.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qsharedpointer.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qskeleton.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qskeletonloader.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qstaticpropertyupdatedchangebase.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qstaticpropertyvalueaddedchangebase.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qstaticpropertyvalueremovedchangebase.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DCore/qtransform.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/Qt3DExtras.toml
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/Qt3DExtrasmod.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qabstractcameracontroller.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qabstractspritesheet.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qconegeometry.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qconemesh.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qcuboidgeometry.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qcuboidmesh.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qcylindergeometry.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qcylindermesh.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qdiffusemapmaterial.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qdiffusespecularmapmaterial.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qdiffusespecularmaterial.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qextrudedtextgeometry.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qextrudedtextmesh.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qfirstpersoncameracontroller.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qforwardrenderer.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qgoochmaterial.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qmetalroughmaterial.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qmorphphongmaterial.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qnormaldiffusemapalphamaterial.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qnormaldiffusemapmaterial.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qnormaldiffusespecularmapmaterial.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qorbitcameracontroller.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qpervertexcolormaterial.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qphongalphamaterial.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qphongmaterial.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qplanegeometry.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qplanemesh.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qskyboxentity.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qspheregeometry.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qspheremesh.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qspritegrid.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qspritesheet.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qspritesheetitem.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qt3dwindow.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qtext2dentity.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qtexturedmetalroughmaterial.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qtexturematerial.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qtorusgeometry.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DExtras/qtorusmesh.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DInput/Qt3DInput.toml
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DInput/Qt3DInputmod.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DInput/qabstractactioninput.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DInput/qabstractaxisinput.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DInput/qabstractphysicaldevice.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DInput/qaction.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DInput/qactioninput.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DInput/qanalogaxisinput.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DInput/qaxis.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DInput/qaxisaccumulator.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DInput/qaxissetting.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DInput/qbuttonaxisinput.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DInput/qinputaspect.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DInput/qinputchord.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DInput/qinputsequence.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DInput/qinputsettings.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DInput/qkeyboarddevice.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DInput/qkeyboardhandler.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DInput/qkeyevent.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DInput/qlogicaldevice.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DInput/qmousedevice.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DInput/qmouseevent.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DInput/qmousehandler.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DInput/qphysicaldevicecreatedchange.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DLogic/Qt3DLogic.toml
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DLogic/Qt3DLogicmod.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DLogic/qframeaction.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DLogic/qlogicaspect.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/Qt3DRender.toml
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/Qt3DRendermod.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qabstractfunctor.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qabstractlight.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qabstractraycaster.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qabstracttexture.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qabstracttextureimage.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qalphacoverage.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qalphatest.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qattribute.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qblendequation.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qblendequationarguments.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qblitframebuffer.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qbuffer.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qbufferdatagenerator.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qcamera.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qcameralens.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qcameraselector.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qclearbuffers.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qclipplane.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qcolormask.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qcomputecommand.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qcullface.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qdepthrange.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qdepthtest.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qdirectionallight.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qdispatchcompute.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qdithering.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qeffect.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qenvironmentlight.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qfilterkey.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qframegraphnode.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qfrontface.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qfrustumculling.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qgeometry.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qgeometryfactory.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qgeometryrenderer.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qgraphicsapifilter.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qlayer.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qlayerfilter.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qlevelofdetail.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qlevelofdetailboundingsphere.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qlevelofdetailswitch.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qlinewidth.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qmaterial.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qmemorybarrier.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qmesh.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qmultisampleantialiasing.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qnodepthmask.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qnodraw.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qnopicking.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qobjectpicker.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qpaintedtextureimage.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qparameter.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qpickevent.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qpickingsettings.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qpicklineevent.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qpickpointevent.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qpicktriangleevent.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qpointlight.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qpointsize.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qpolygonoffset.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qproximityfilter.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qrastermode.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qraycaster.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qraycasterhit.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qrenderaspect.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qrendercapabilities.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qrendercapture.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qrenderpass.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qrenderpassfilter.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qrendersettings.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qrenderstate.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qrenderstateset.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qrendersurfaceselector.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qrendertarget.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qrendertargetoutput.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qrendertargetselector.sip
+%%PYTHON_SITELIBDIR%%/PyQt5/bindings/Qt3DRender/qsceneloader.sip
*** 487 LINES SKIPPED ***