summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIonen Wolkens <ionen@gentoo.org>2022-10-03 19:45:53 -0400
committerIonen Wolkens <ionen@gentoo.org>2022-10-03 21:32:18 -0400
commit105b1a86c2142f6e8c6128b845ae294bdd07821d (patch)
treec648bbd9fe448061c28c79c11946fa596c595951
parentRevert "toolchain.eclass: allow fixincludes for >= GCC 13" (diff)
downloadgentoo-105b1a86c2142f6e8c6128b845ae294bdd07821d.tar.gz
gentoo-105b1a86c2142f6e8c6128b845ae294bdd07821d.tar.bz2
gentoo-105b1a86c2142f6e8c6128b845ae294bdd07821d.zip
dev-python/PyQt6: add 6.4.0
qt-6.4.0 is only in the ::qt overlay the moment, but this works just fine with 6.3.2 that I can see. Adding but may be better to wait to match 6.x as a precaution in the future, notably confuses 1 qutebrowser test but it has no real consequence. Eitherway, given it's masked not too woried about this and want to get some testing out of these things to know effects of mismatch. PyQt6-6.4.0 adds support for QtTextToSpeech and QtPdf but neither can be enabled at the moment. - pdf: from qtwebengine:6 but is currently disabled in its ebuild - speech: not available in <qt-6.4.0 and qtspeech:6 is not packaged in the qt overlay either yet, skips the need to bump QT_PV to 6.4:6 here for now Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
-rw-r--r--dev-python/PyQt6/Manifest1
-rw-r--r--dev-python/PyQt6/PyQt6-6.4.0.ebuild149
2 files changed, 150 insertions, 0 deletions
diff --git a/dev-python/PyQt6/Manifest b/dev-python/PyQt6/Manifest
index 631567942685..fb24f9ce6d20 100644
--- a/dev-python/PyQt6/Manifest
+++ b/dev-python/PyQt6/Manifest
@@ -1 +1,2 @@
DIST PyQt6-6.3.1.tar.gz 1015220 BLAKE2B e225f2da11eec482ab8e00f886a858cec4a2c8add764f5e54bf603959394aad7f12d91b92c1ba6ab98d1b25903d4404e6667232258a87c52c95a2abdae9ccd2d SHA512 94319cd0983eb3f9bb0f1acbc620a1631a37f82e2fcffb9d0e58437fb1c120640be1e2a0a09e98e03f6c7082a2d94e9eabceefa6b07bae354f77bda02ba92d58
+DIST PyQt6-6.4.0.tar.gz 1024037 BLAKE2B a55d2e33160b6bb713b5e32e6b3a3df942f373ce9c9697cad548325c35ee7ee73a57e93ebc8780480086b02d651fa848258f11f85bea0e54c61c8a0f99039c3d SHA512 836696cc708e140ff497fd915fac147265c58e5d44d54d7dcd1908bad54ed793b4c2c4f20b487d13c7a5f7eb6b2c47d7ab822d8ffc875657de7fd0f88ee6c53b
diff --git a/dev-python/PyQt6/PyQt6-6.4.0.ebuild b/dev-python/PyQt6/PyQt6-6.4.0.ebuild
new file mode 100644
index 000000000000..dc1177248853
--- /dev/null
+++ b/dev-python/PyQt6/PyQt6-6.4.0.ebuild
@@ -0,0 +1,149 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=sip
+PYTHON_COMPAT=( python3_{8..11} )
+inherit distutils-r1 flag-o-matic multiprocessing qmake-utils
+
+QT_PV="6.3:6" # minimum tested qt version
+
+DESCRIPTION="Python bindings for the Qt framework"
+HOMEPAGE="https://www.riverbankcomputing.com/software/pyqt/"
+SRC_URI="mirror://pypi/${P::1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+# currently keeping defaults in sync with qtbase (no extra deps), but trying
+# to stay minimal'ish given each builds relatively slowly (subject to change,
+# perhaps more or less depending on consumers and if qtbase is ever split)
+IUSE="
+ +dbus debug qml designer examples gles2-only +gui help multimedia
+ +network opengl positioning printsupport quick quick3d serialport
+ +sql +ssl svg testlib webchannel websockets +widgets +xml"
+# see `grep -r "%Import " sip` and `grep qmake_QT project.py`
+REQUIRED_USE="
+ designer? ( gui widgets )
+ help? ( gui widgets )
+ multimedia? ( gui network )
+ opengl? ( gui )
+ printsupport? ( gui widgets )
+ qml? ( network )
+ quick3d? ( gui qml )
+ quick? ( gui qml )
+ sql? ( widgets )
+ svg? ( gui )
+ testlib? ( gui widgets )
+ webchannel? ( network )
+ websockets? ( network )
+ widgets? ( gui )"
+
+# note: xml(+) for now given qtbase-6.3.1-r0 is missing IUSE=xml with a TODO
+DEPEND="
+ >=dev-qt/qtbase-${QT_PV}[dbus?,gles2-only=,gui?,network?,opengl?,sql?,ssl=,widgets?,xml(+)?]
+ dbus? (
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ sys-apps/dbus
+ )
+ designer? ( >=dev-qt/qttools-${QT_PV}[designer] )
+ help? ( >=dev-qt/qttools-${QT_PV}[assistant] )
+ multimedia? ( >=dev-qt/qtmultimedia-${QT_PV} )
+ positioning? ( >=dev-qt/qtpositioning-${QT_PV} )
+ qml? ( >=dev-qt/qtdeclarative-${QT_PV} )
+ quick3d? ( >=dev-qt/qtquick3d-${QT_PV} )
+ serialport? ( >=dev-qt/qtserialport-${QT_PV} )
+ svg? ( >=dev-qt/qtsvg-${QT_PV} )
+ webchannel? ( >=dev-qt/qtwebchannel-${QT_PV} )
+ websockets? ( >=dev-qt/qtwebsockets-${QT_PV} )"
+RDEPEND="
+ ${DEPEND}
+ >=dev-python/PyQt6-sip-13.4[${PYTHON_USEDEP}]"
+BDEPEND="
+ >=dev-python/PyQt-builder-1.11[${PYTHON_USEDEP}]
+ >=dev-qt/qtbase-${QT_PV}
+ sys-devel/gcc
+ dbus? ( virtual/pkgconfig )"
+
+src_prepare() {
+ default
+
+ # hack: qmake wants g++ (not clang), try to respect ${CHOST} #726112
+ mkdir "${T}"/cxx || die
+ ln -s "$(type -P ${CHOST}-g++ || type -P g++ || die)" "${T}"/cxx/g++ || die
+ PATH=${T}/cxx:${PATH}
+}
+
+src_configure() {
+ append-cxxflags -std=c++17 # for clang and old gcc that default to <17
+
+ pyqt-use_enable() {
+ local state=$(usex ${1} --enable= --disable=)
+ shift
+ echo ${*/#/${state}}
+ }
+
+ # workaround until bug 863395 has something to offer
+ local qmake6=$(qt5_get_bindir)/qmake
+ qmake6=${qmake6//qt5/qt6}
+
+ DISTUTILS_ARGS=(
+ --jobs=$(makeopts_jobs)
+ --qmake="${qmake6}"
+ --qmake-setting="$(qt5_get_qmake_args)"
+ --verbose
+ --confirm-license
+
+ # TODO: enable/restrict more as qt6 packages/USE get added
+ --disable=QAxContainer
+ --disable=QtBluetooth
+ --enable=QtCore
+ $(pyqt-use_enable dbus QtDBus)
+ $(pyqt-use_enable designer QtDesigner)
+ $(pyqt-use_enable help QtHelp)
+ $(pyqt-use_enable gui QtGui)
+ #--disable=QtLocation # force-disabled in project.py
+ $(pyqt-use_enable multimedia QtMultimedia \
+ $(usev widgets QtMultimediaWidgets))
+ $(pyqt-use_enable network QtNetwork)
+ --disable=QtNfc
+ $(pyqt-use_enable opengl QtOpenGL \
+ $(usev widgets QtOpenGLWidgets))
+ --disable=QtPdf #+QtPdfWidgets (QtPdf is disabled in qtwebengine:6)
+ $(pyqt-use_enable positioning QtPositioning)
+ $(pyqt-use_enable printsupport QtPrintSupport)
+ $(pyqt-use_enable qml QtQml)
+ $(pyqt-use_enable quick QtQuick \
+ $(usev widgets QtQuickWidgets))
+ $(pyqt-use_enable quick3d QtQuick3D)
+ --disable=QtRemoteObjects
+ --disable=QtSensors
+ $(pyqt-use_enable serialport QtSerialPort)
+ $(pyqt-use_enable sql QtSql)
+ $(pyqt-use_enable svg QtSvg \
+ $(usev widgets QtSvgWidgets))
+ $(pyqt-use_enable testlib QtTest)
+ --disable=QtTextToSpeech
+ $(pyqt-use_enable webchannel QtWebChannel)
+ $(pyqt-use_enable websockets QtWebSockets)
+ $(pyqt-use_enable widgets QtWidgets)
+ $(pyqt-use_enable xml QtXml)
+
+ $(usev debug '--debug --qml-debug --tracing')
+
+ $(usev !dbus --no-dbus-python)
+ # TODO?: plugins not in wheels by upstream, see project.py#L215
+ # (if needed by something, will need to be added to python_install)
+ $(usev !designer --no-designer-plugin)
+ $(usev !qml --no-qml-plugin)
+
+ $(usev !gles2-only --disabled-feature=PyQt_OpenGL_ES2)
+ $(usev !ssl --disabled-feature=PyQt_SSL)
+ )
+}
+
+python_install_all() {
+ einstalldocs
+ use examples && dodoc -r examples
+}