commit:     d79f30e45438c5ff4ab6bcea46966c24d155817a
Author:     Bernd Waibel <waebbl-gentoo <AT> posteo <DOT> net>
AuthorDate: Fri Oct 28 07:21:39 2022 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Mon Nov  7 10:18:19 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d79f30e4

dev-python/pyside6: add 6.4.0

- add charts and network-auth modules
- add templates for httpserver, pdf{,widgets} and spatialaudio modules
- adjust some required use and outdated dependencies

Signed-off-by: Bernd Waibel <waebbl-gentoo <AT> posteo.net>
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>

 dev-python/pyside6/Manifest             |   1 +
 dev-python/pyside6/metadata.xml         |   2 +
 dev-python/pyside6/pyside6-6.4.0.ebuild | 223 ++++++++++++++++++++++++++++++++
 3 files changed, 226 insertions(+)

diff --git a/dev-python/pyside6/Manifest b/dev-python/pyside6/Manifest
index d775a81b0c8a..0e0ec12a5299 100644
--- a/dev-python/pyside6/Manifest
+++ b/dev-python/pyside6/Manifest
@@ -1 +1,2 @@
 DIST pyside-setup-opensource-src-6.3.2.tar.xz 7853068 BLAKE2B 
5b39e2f98bca0155d3f6617be206b759b628d0126fd30d76d67352c5c78a385938ce61a3c42b75343b9fde708e9f66617122c687ea9ecffca9cd0ab3af91a2ff
 SHA512 
8d25d20b64ac7874e9b7866f101b6bfd7b6fe1fffa602fec6113e1fdaa11608f14a58c2ae1d87b45ee3eac6a07bd55e66dbbd222727cfe6860d8f444bc2b1ff0
+DIST pyside-setup-opensource-src-6.4.0.tar.xz 8551772 BLAKE2B 
180d9f2182b8df04394677bbcb0765764d9de1f34064fc688a3ccae8ec37174b4a01fa70c80d98c7ca7fe6b45239225bd801c552d332e2c6fc4a3726535e72e9
 SHA512 
0517408f110830b888f04777c60b29479831604877da13c5a41a710888ebe53064f06d9b7b61d5c6e6a483ac5ee1639a63bb7f9844301df53e3e9ca8eafcf9e9

diff --git a/dev-python/pyside6/metadata.xml b/dev-python/pyside6/metadata.xml
index 7ae8b44a69d4..ae61fd0e0866 100644
--- a/dev-python/pyside6/metadata.xml
+++ b/dev-python/pyside6/metadata.xml
@@ -10,6 +10,7 @@
                <name>Bernd Waibel</name>
        </maintainer>
        <use>
+               <flag name="charts">Build QtCharts module</flag>
                <flag name="concurrent">Build QtConcurrent module</flag>
                <flag name="designer">Build QtDesigner and QtUiTools 
modules</flag>
                <flag name="gles2-only">Build QtGui "QOpenGL*" classes</flag>
@@ -17,6 +18,7 @@
                <flag name="help">Build QtHelp module</flag>
                <flag name="multimedia">Build QtMultimedia and 
QtMultimediaWidgets modules</flag>
                <flag name="network">Build QtNetwork module</flag>
+               <flag name="network-auth">Build QtNetworkAuth module</flag>
                <flag name="positioning">Build QtPositioning module</flag>
                <flag name="printsupport">Build QtPrintSupport module</flag>
                <flag name="qml">Build QtQml module</flag>

diff --git a/dev-python/pyside6/pyside6-6.4.0.ebuild 
b/dev-python/pyside6/pyside6-6.4.0.ebuild
new file mode 100644
index 000000000000..d1d803dcf7e3
--- /dev/null
+++ b/dev-python/pyside6/pyside6-6.4.0.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# TODO: Add PyPy once officially supported. See also:
+#     https://bugreports.qt.io/browse/PYSIDE-535
+PYTHON_COMPAT=( python3_{8..11} )
+
+inherit cmake python-r1 virtualx
+
+# TODO: Add conditional support for "QtRemoteObjects" via a new "remoteobjects"
+# USE flag after an external "dev-qt/qtremoteobjects" package has been created.
+# TODO: Add conditional support for apidoc generation via a new "doc" USE flag.
+# Note that doing so requires the Qt source tree, sphinx, and graphviz. Once
+# ready, pass the ${QT_SRC_DIR} variable to cmake to enable this support.
+# TODO: Disable GLES support if the "gles2-only" USE flag is disabled. Note
+# that the "PySide6/QtGui/CMakeLists.txt" and
+# "PySide6/QtOpenGLFunctions/CMakeLists.txt" files test for GLES support by
+# testing whether the "Qt5::Gui" list property defined by
+# "/usr/lib64/cmake/Qt5Gui/Qt5GuiConfig.cmake" at "dev-qt/qtgui" installation
+# time contains the substring "opengles2". Since cmake does not permit
+# properties to be overridden from the command line, these files must instead
+# be conditionally patched to avoid these tests. An issue should be filed with
+# upstream requesting a CLI-settable variable to control this.
+
+MY_P=pyside-setup-opensource-src-${PV}
+
+DESCRIPTION="Python bindings for the Qt framework"
+HOMEPAGE="https://wiki.qt.io/PySide6";
+SRC_URI="https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-${PV}-src/${MY_P}.tar.xz";
+S="${WORKDIR}/${MY_P}/sources/pyside6"
+
+# See "sources/pyside6/PySide6/licensecomment.txt" for licensing details.
+# Shall we allow essential modules to be disabled? They are:
+# (core), gui, widgets, printsupport, sql, network, testlib, concurrent,
+# x11extras (for X)
+LICENSE="|| ( GPL-2 GPL-3+ LGPL-3 )"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="
+       +dbus charts +concurrent designer gles2-only +gui help multimedia
+       +network network-auth +opengl positioning +printsupport qml quick
+       quick3d serialport +sql svg test +testlib webchannel webengine
+       websockets +widgets +xml
+"
+
+# Manually reextract these requirements on version bumps by running the
+# following one-liner from within "${S}":
+#     $ grep 'set.*_deps' PySide6/Qt*/CMakeLists.txt
+# Note that the "designer" USE flag corresponds to the "Qt6UiTools" module.
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+       charts? ( gui widgets )
+       designer? ( widgets )
+       gles2-only? ( gui )
+       gui? ( dbus opengl )
+       help? ( network sql widgets )
+       multimedia? ( gui network )
+       network-auth? ( network )
+       opengl? ( gui )
+       printsupport? ( widgets )
+       qml? ( network )
+       quick? ( gui network opengl qml )
+       quick3d? ( gui network opengl qml quick )
+       sql? ( widgets )
+       svg? ( gui )
+       testlib? ( widgets )
+       webchannel? ( qml )
+       webengine? ( network gui printsupport quick webchannel )
+       websockets? ( network )
+       widgets? ( gui )
+"
+
+# Tests fail pretty bad and I'm not fixing them right now
+RESTRICT="test"
+
+# Minimal supported version of Qt.
+QT_PV="$(ver_cut 1-2):6"
+
+RDEPEND="${PYTHON_DEPS}
+       >=dev-python/shiboken6-${PV}[${PYTHON_USEDEP}]
+       
>=dev-qt/qtbase-${QT_PV}[concurrent?,dbus?,gles2-only=,network?,opengl?,sql?,widgets?,xml?]
+       charts? ( >=dev-qt/qtcharts-${QT_PV} )
+       designer? ( >=dev-qt/qttools-${QT_PV}[designer] )
+       gui? (
+               >=dev-qt/qtbase-${QT_PV}[gui,jpeg]
+               x11-libs/libxkbcommon
+       )
+       help? ( >=dev-qt/qttools-${QT_PV}[assistant] )
+       multimedia? ( 
>=dev-qt/qtmultimedia-${QT_PV}[qml(+)?,gles2-only(-)=,widgets(+)?] )
+       network-auth? ( >=dev-qt/qtnetworkauth-${QT_PV} )
+       positioning? ( >=dev-qt/qtpositioning-${QT_PV} )
+       printsupport? ( >=dev-qt/qtbase-${QT_PV}[gui,widgets] )
+       qml? ( >=dev-qt/qtdeclarative-${QT_PV}[widgets?] )
+       quick3d? ( >=dev-qt/qtquick3d-${QT_PV} )
+       serialport? ( >=dev-qt/qtserialport-${QT_PV} )
+       svg? ( >=dev-qt/qtsvg-${QT_PV} )
+       testlib? ( >=dev-qt/qtbase-${QT_PV}[gui] )
+       webchannel? ( >=dev-qt/qtwebchannel-${QT_PV} )
+       webengine? ( >=dev-qt/qtwebengine-${QT_PV}[widgets?] )
+       websockets? ( >=dev-qt/qtwebsockets-${QT_PV} )
+"
+DEPEND="${RDEPEND}
+       test? ( >=dev-qt/qtbase-${QT_PV}[gui] )
+"
+# testlib is toggled by the gui flag on qtbase
+
+PATCHES=(
+       "${FILESDIR}/${PN}-6.3.1-no-strip.patch"
+       "${FILESDIR}/${PN}-6.3.1-fix-designer-plugin-install-location.patch"
+)
+
+src_configure() {
+       # See collect_module_if_found macros in PySideHelpers.cmake
+       local mycmakeargs=(
+               -DBUILD_TESTS=$(usex test)
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt63DAnimation=yes
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt63DCore=yes
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt63DExtras=yes
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt63DInput=yes
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt63DLogic=yes
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt63DRender=yes
+               #-DCMAKE_DISABLE_FIND_PACKAGE_Qt6AxContainer=yes
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Bluetooth=yes
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Charts=$(usex !charts)
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Concurrent=$(usex !concurrent)
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6DataVisualization=yes
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6DBus=$(usex !dbus)
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Designer=$(usex !designer)
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Gui=$(usex !gui)
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Help=$(usex !help)
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6HttpServer=yes
+               #-DCMAKE_DISABLE_FIND_PACKAGE_Qt6Location=yes
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Multimedia=$(usex !multimedia)
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6MultimediaWidgets=$(usex 
!multimedia yes $(usex !widgets))
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6NetworkAuth=$(usex 
!network-auth)
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Network=$(usex !network)
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Nfc=yes
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6OpenGL=$(usex !opengl)
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6OpenGLWidgets=$(usex !opengl 
yes $(usex !widgets))
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Pdf=yes
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6PdfWidgets=yes
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Positioning=$(usex !positioning)
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6PrintSupport=$(usex 
!printsupport)
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Qml=$(usex !qml)
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Quick3D=$(usex !quick3d)
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Quick=$(usex !quick)
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6QuickControls2=yes
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6QuickWidgets=$(usex !quick yes 
$(usex !widgets))
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6RemoteObjects=yes
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Scxml=yes
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Sensors=yes
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6SerialPort=$(usex !serialport)
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6SpatialAudio=yes
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Sql=$(usex !sql)
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6StateMachine=yes
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Svg=$(usex !svg)
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6SvgWidgets=$(usex !svg yes 
$(usex !widgets))
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Test=$(usex !testlib)
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6TextToSpeech=yes
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6UiTools=$(usex !designer)
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6WebChannel=$(usex !webchannel)
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6WebEngineCore=$(usex !webengine)
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6WebEngineQuick=$(usex 
!webengine yes $(usex !quick))
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6WebEngineWidgets=$(usex 
!webengine yes $(usex !widgets))
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6WebSockets=$(usex !websockets)
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Widgets=$(usex !widgets)
+               #-DCMAKE_DISABLE_FIND_PACKAGE_Qt6WinExtras=yes
+               -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Xml=$(usex !xml)
+               # try to avoid pre-stripping
+               -DQFP_NO_OVERRIDE_OPTIMIZATION_FLAGS=yes
+               -DQFP_NO_STRIP=yes
+
+       )
+
+       pyside6_configure() {
+               local mycmakeargs=(
+                       "${mycmakeargs[@]}"
+                       -DPYTHON_CONFIG_SUFFIX="-${EPYTHON}"
+                       -DPYTHON_EXECUTABLE="${PYTHON}"
+                       -DPYTHON_SITE_PACKAGES="$(python_get_sitedir)"
+                       -DSHIBOKEN_PYTHON_SHARED_LIBRARY_SUFFIX="-${EPYTHON}"
+               )
+               cmake_src_configure
+       }
+       python_foreach_impl pyside6_configure
+}
+
+src_compile() {
+       python_foreach_impl cmake_src_compile
+}
+
+src_test() {
+       local -x PYTHONDONTWRITEBYTECODE
+       python_foreach_impl virtx cmake_src_test
+}
+
+src_install() {
+       pyside6_install() {
+               cmake_src_install
+               python_optimize
+
+               # Uniquify the shiboken6 pkgconfig dependency in the PySide6 
pkgconfig
+               # file for the current Python target. See also:
+               #     https://github.com/leycec/raiagent/issues/73
+               sed -i -e 's~^Requires: shiboken6$~&-'${EPYTHON}'~' \
+                       "${ED}/usr/$(get_libdir)"/pkgconfig/${PN}.pc || die
+
+               # Uniquify the PySide6 pkgconfig file for the current Python 
target,
+               # preserving an unversioned "pyside6.pc" file arbitrarily 
associated
+               # with the last Python target. (See the previously linked 
issue.)
+               cp "${ED}/usr/$(get_libdir)"/pkgconfig/${PN}{,-${EPYTHON}}.pc 
|| die
+       }
+       python_foreach_impl pyside6_install
+
+       # CMakeLists.txt installs a "PySide6Targets-gentoo.cmake" file forcing
+       # downstream consumers (e.g., pyside6-tools) to target one
+       # "libpyside6-*.so" library linked to one Python interpreter. See also:
+       #     https://bugreports.qt.io/browse/PYSIDE-1053
+       #     https://github.com/leycec/raiagent/issues/74
+       sed -i -e 
's~pyside6-python[[:digit:]]\+\.[[:digit:]]\+~pyside6${PYTHON_CONFIG_SUFFIX}~g' 
\
+               
"${ED}/usr/$(get_libdir)/cmake/PySide6-${PV}/PySide6Targets-${CMAKE_BUILD_TYPE,,}.cmake"
 || die
+}

Reply via email to