diff options
author | V3n3RiX <venerix@koprulu.sector> | 2025-02-08 00:11:30 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2025-02-08 00:11:30 +0000 |
commit | 8b3c41ecef8a1cdd270ce3aabcfdfb991839699c (patch) | |
tree | ece43c29d9163f887ef99c43aad6f2f568961231 /dev-python/pyqt6 | |
parent | 1b2360e7bab42e4045232887cb4f6c4a24ca3975 (diff) |
Diffstat (limited to 'dev-python/pyqt6')
-rw-r--r-- | dev-python/pyqt6/Manifest | 4 | ||||
-rw-r--r-- | dev-python/pyqt6/metadata.xml | 1 | ||||
-rw-r--r-- | dev-python/pyqt6/pyqt6-6.8.1.ebuild | 190 |
3 files changed, 194 insertions, 1 deletions
diff --git a/dev-python/pyqt6/Manifest b/dev-python/pyqt6/Manifest index 5c5e3a2f8bfe..59477f9cfdde 100644 --- a/dev-python/pyqt6/Manifest +++ b/dev-python/pyqt6/Manifest @@ -1,4 +1,6 @@ AUX pyqt6-6.8.0-qt682.patch 286 BLAKE2B 382975396a5e1ea4ba6250300f596486378bcae136af923fdef96f14a15412a68d1f6d54ba62e706fdc13e3f142b09c472006f7fe4965385b4d9ae3e417667de SHA512 0433171b27d66e220858871e64d4e89020b1f13bc5d33df745a670bb3c06da1b4fbdd712880a83551f767f11152bf464c46b71ed163107d42b8ca3965e562198 DIST PyQt6-6.8.0.tar.gz 1061357 BLAKE2B da944a8ec6c5632cb24d56b5a268521cbf3ae17d307ec5aba292bf5f25e33cb2e92fef28c1bcc506c4e5ea60c9e2f714bfd2a95aefe2cc40726b4ec9fccb36cb SHA512 da57be66ede5fe1355ab1fd95e436c139e0d1dffc75f23f3933c20623d62fc9b9fad573d876e90d066588d2dc2f01e83771a0f05fe3b668fbb69a889ddfbcc15 +DIST pyqt6-6.8.1.tar.gz 1064723 BLAKE2B 99ac44fe250b6ff7a1762df5d668b69ad424dc1b563147be7ba94ce7f00729c29ce17be4cd7c39b276549199b66d877dec69e9eeb6b394ed42f944f9155825fa SHA512 87727369168fde6e3edc488f96dd13d537f026e207e4b4ab1c95d09bf85859512a117dfc801249e0891425a6b5579830724e4145f370e2ef9909788f56eb4df6 EBUILD pyqt6-6.8.0.ebuild 5966 BLAKE2B 268bb16327be36ed5f8e9f8f01fdb5071845348ac8960d1410180c8025bd2ef176abf9468afab01563c4257011934605196f45cd92b36b55460339a6de06bb4b SHA512 cd5c43cebde064a78bb3c552a116a99666c85a744141a748af62ae6bc07cfd23091ca2d3b7463e7c5f89a38b79bc106347036a7b72daa098482a5a95c7d1ec69 -MISC metadata.xml 2473 BLAKE2B a86705641a5b20eda9edb08d129e98e848586ff3d6ddc5adfb52c26269d84cf1ebbbcc1cfd967b31403fb12f5a3fb021785c9f3651087240344fa0eb5e403082 SHA512 d985e7e96b9263072165fb323e4efdf1e04f6decace4ea52228ed822d0be730596e8e4e46627e8111574b0703e86f27c82d9a2ec72661edba5583d3e49efc1f4 +EBUILD pyqt6-6.8.1.ebuild 5989 BLAKE2B 19343151c2831dfb64aec1ac3157529168af3db1380cecd0bc98ffd0d10d3b9cd28127c28a21a0df617a0a4d8fe656b79980cd5c9d2431c88dfb94b8bd977d31 SHA512 1d88c57b3a02bb34f0b66118b0c1ff09291964c3a0c6aacede4af745b189a3dfbbc0dda0e6b7da7c6a29ad597bef09e4eecff708cc245a52c7bb24ac4c40ef8a +MISC metadata.xml 2539 BLAKE2B 3a9f0274ffd41a0debd982cfe5bf5eb68350521947840c80c1064354cd7d219f30f2b1b56e25855bcc7f415d8d0260c52833f450cc663df6f6226092b7ff456d SHA512 5cb15c64ffbccd347a5ca5211f48587bb491cd51f29cf6bb6173f697b73014e1d0e3975daec488cc82231fe663a262bd8462230d8fbab8a4d330e5829173c360 diff --git a/dev-python/pyqt6/metadata.xml b/dev-python/pyqt6/metadata.xml index 4672aed86173..a018da8b5489 100644 --- a/dev-python/pyqt6/metadata.xml +++ b/dev-python/pyqt6/metadata.xml @@ -22,6 +22,7 @@ <flag name="quick">Build bindings for the QtQuick module</flag> <flag name="quick3d">Build bindings for the QtQuick3D module</flag> <flag name="remoteobjects">Build bindings for the QtRemoteObjects module</flag> + <flag name="scxml">Build bindings for the QtSCXML module</flag> <flag name="sensors">Build bindings for the QtSensors module</flag> <flag name="serialport">Build bindings for the QtSerialPort module</flag> <flag name="spatialaudio">Build bindings for the QtSpatialAudio module</flag> diff --git a/dev-python/pyqt6/pyqt6-6.8.1.ebuild b/dev-python/pyqt6/pyqt6-6.8.1.ebuild new file mode 100644 index 000000000000..524c13d1af94 --- /dev/null +++ b/dev-python/pyqt6/pyqt6-6.8.1.ebuild @@ -0,0 +1,190 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=sip +PYTHON_COMPAT=( python3_{10..13} ) +inherit distutils-r1 flag-o-matic multiprocessing pypi qmake-utils + +# 'can' work with older Qt depending on features, but keeping it simple +QT_PV=$(ver_cut 1-2):6 + +DESCRIPTION="Python bindings for the Qt framework" +HOMEPAGE="https://www.riverbankcomputing.com/software/pyqt/" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86" +# defaults match what is provided with qtbase by default (except testlib), +# reduces the need to set flags but does increase build time a fair amount +IUSE=" + bluetooth +dbus debug designer examples gles2-only +gui help + multimedia +network nfc opengl pdfium positioning +printsupport + qml quick quick3d remoteobjects scxml serialport sensors + spatialaudio speech +sql +ssl svg testlib webchannel websockets + vulkan +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 ) + pdfium? ( gui ) + printsupport? ( gui widgets ) + qml? ( network ) + quick3d? ( gui qml ) + quick? ( gui qml ) + remoteobjects? ( network ) + scxml? ( gui ) + spatialaudio? ( multimedia ) + sql? ( widgets ) + svg? ( gui ) + testlib? ( gui widgets ) + vulkan? ( gui ) + webchannel? ( network ) + websockets? ( network ) + widgets? ( gui ) +" + +# may use qt private symbols wrt qtbase's := +# non-trivially broken with Qt6.8 wrt upper bound, waiting for PyQt6-6.8.0 +COMMON_DEPEND=" + >=dev-qt/qtbase-${QT_PV}=[dbus?,gles2-only=,gui?,network?,opengl?,sql?,ssl=,vulkan?,widgets?,xml?] + bluetooth? ( >=dev-qt/qtconnectivity-${QT_PV}[bluetooth] ) + 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} ) + nfc? ( >=dev-qt/qtconnectivity-${QT_PV}[nfc] ) + opengl? ( + gles2-only? ( media-libs/libglvnd ) + ) + pdfium? ( >=dev-qt/qtwebengine-${QT_PV}[pdfium,widgets?] ) + positioning? ( >=dev-qt/qtpositioning-${QT_PV} ) + qml? ( >=dev-qt/qtdeclarative-${QT_PV}[widgets?] ) + quick3d? ( >=dev-qt/qtquick3d-${QT_PV} ) + quick? ( >=dev-qt/qtdeclarative-${QT_PV}[opengl] ) + remoteobjects? ( >=dev-qt/qtremoteobjects-${QT_PV} ) + scxml? ( >=dev-qt/qtscxml-${QT_PV} ) + sensors? ( >=dev-qt/qtsensors-${QT_PV} ) + serialport? ( >=dev-qt/qtserialport-${QT_PV} ) + speech? ( + >=dev-qt/qtdeclarative-${QT_PV} + >=dev-qt/qtspeech-${QT_PV} + ) + svg? ( >=dev-qt/qtsvg-${QT_PV} ) + webchannel? ( >=dev-qt/qtwebchannel-${QT_PV} ) + websockets? ( >=dev-qt/qtwebsockets-${QT_PV} ) +" +RDEPEND=" + ${COMMON_DEPEND} + >=dev-python/pyqt6-sip-13.8[${PYTHON_USEDEP}] +" +DEPEND=" + ${COMMON_DEPEND} + vulkan? ( dev-util/vulkan-headers ) +" +BDEPEND=" + >=dev-python/pyqt-builder-1.17[${PYTHON_USEDEP}] + >=dev-python/sip-6.9[${PYTHON_USEDEP}] + >=dev-qt/qtbase-${QT_PV} + dbus? ( virtual/pkgconfig ) +" + +src_prepare() { + default + + # hack: PyQt-builder runs qmake without our arguments and calls g++ + # or clang++ depending on what qtbase was built with, not used for + # building but fails with -native-symlinks + mkdir "${T}"/cxx || die + local cxx + ! cxx=$(type -P "${CHOST}"-g++) || ln -s -- "${cxx}" "${T}"/cxx/g++ || die + ! cxx=$(type -P "${CHOST}"-clang++) || ln -s -- "${cxx}" "${T}"/cxx/clang++ || die + PATH=${T}/cxx:${PATH} +} + +python_configure_all() { + append-cxxflags -std=c++17 # for old gcc / clang that use <17 (bug #892331) + append-cxxflags ${CPPFLAGS} # respect CPPFLAGS notably for DISTUTILS_EXT=1 + + pyqt_use_enable() { + local state=$(usex ${1} --enable= --disable=) + shift + echo ${*/#/${state}} + } + + DISTUTILS_ARGS=( + --jobs="$(makeopts_jobs)" + --qmake="$(qt6_get_bindir)"/qmake + --qmake-setting="$(qt6_get_qmake_args)" + --verbose + --confirm-license + + --enable=QtCore + + $(pyqt_use_enable bluetooth QtBluetooth) + $(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) + $(pyqt_use_enable nfc QtNfc) + $(pyqt_use_enable opengl QtOpenGL \ + $(usev widgets QtOpenGLWidgets)) + $(pyqt_use_enable pdfium QtPdf \ + $(usev widgets QtPdfWidgets)) + $(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) + $(pyqt_use_enable remoteobjects QtRemoteObjects) + $(pyqt_use_enable scxml QtStateMachine) + $(pyqt_use_enable sensors QtSensors) + $(pyqt_use_enable serialport QtSerialPort) + $(pyqt_use_enable spatialaudio QtSpatialAudio) + $(pyqt_use_enable sql QtSql) + $(pyqt_use_enable svg QtSvg \ + $(usev widgets QtSvgWidgets)) + $(pyqt_use_enable testlib QtTest) + $(pyqt_use_enable speech 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) + # note: upstream currently intentionally skips installing these two + # plugins when using wheels w/ pep517 so, *if* something does need + # them, it will need to be handled manually + $(usev !designer --no-designer-plugin) + $(usev !qml --no-qml-plugin) + + $(usev !gles2-only --disabled-feature=PyQt_OpenGL_ES2) + $(usev !opengl --disabled-feature=PyQt_OpenGL) + $(usev !ssl --disabled-feature=PyQt_SSL) + $(usev !vulkan --disabled-feature=PyQt_Vulkan) + + # intended for Windows / Android or others + --disable=QAxContainer + --disabled-feature=PyQt_Permissions + ) +} + +python_install_all() { + einstalldocs + use examples && dodoc -r examples +} |