public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Ionen Wolkens" <ionen@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-python/pyqt6/
Date: Fri, 07 Feb 2025 03:29:14 +0000 (UTC)	[thread overview]
Message-ID: <1738898839.ad446519179f91d2ba2314ead5e858046a048272.ionen@gentoo> (raw)

commit:     ad446519179f91d2ba2314ead5e858046a048272
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Thu Feb  6 15:54:20 2025 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Fri Feb  7 03:27:19 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ad446519

dev-python/pyqt6: add 6.8.1

Newly supports QtStateMachine bindings with IUSE=scxml. Considered
IUSE=statemachine instead, but scxml matches both the Qt module name
and pyside's IUSE.

Version also properly fixes build with 6.8.2, so can drop the patch.

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 dev-python/pyqt6/Manifest           |   1 +
 dev-python/pyqt6/metadata.xml       |   1 +
 dev-python/pyqt6/pyqt6-6.8.1.ebuild | 190 ++++++++++++++++++++++++++++++++++++
 3 files changed, 192 insertions(+)

diff --git a/dev-python/pyqt6/Manifest b/dev-python/pyqt6/Manifest
index 5184766b8d02..bc205191abcc 100644
--- a/dev-python/pyqt6/Manifest
+++ b/dev-python/pyqt6/Manifest
@@ -1 +1,2 @@
 DIST PyQt6-6.8.0.tar.gz 1061357 BLAKE2B da944a8ec6c5632cb24d56b5a268521cbf3ae17d307ec5aba292bf5f25e33cb2e92fef28c1bcc506c4e5ea60c9e2f714bfd2a95aefe2cc40726b4ec9fccb36cb SHA512 da57be66ede5fe1355ab1fd95e436c139e0d1dffc75f23f3933c20623d62fc9b9fad573d876e90d066588d2dc2f01e83771a0f05fe3b668fbb69a889ddfbcc15
+DIST pyqt6-6.8.1.tar.gz 1064723 BLAKE2B 99ac44fe250b6ff7a1762df5d668b69ad424dc1b563147be7ba94ce7f00729c29ce17be4cd7c39b276549199b66d877dec69e9eeb6b394ed42f944f9155825fa SHA512 87727369168fde6e3edc488f96dd13d537f026e207e4b4ab1c95d09bf85859512a117dfc801249e0891425a6b5579830724e4145f370e2ef9909788f56eb4df6

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
+}


             reply	other threads:[~2025-02-07  3:29 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-07  3:29 Ionen Wolkens [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-03-17  2:22 [gentoo-commits] repo/gentoo:master commit in: dev-python/pyqt6/ Ionen Wolkens
2024-12-16  8:42 Ionen Wolkens
2024-12-12 22:36 Ionen Wolkens
2024-12-06  5:10 Ionen Wolkens
2024-11-25  7:46 Ionen Wolkens
2024-11-25  7:46 Ionen Wolkens
2024-11-22 20:00 [gentoo-commits] repo/gentoo:master commit in: dev-python/PyQt6/ Michał Górny
2024-11-13 10:04 Ionen Wolkens
2024-09-20 11:01 Arthur Zamarin
2024-09-18  6:36 Arthur Zamarin
2024-09-12 13:45 Sam James
2024-09-05  1:23 Sam James
2024-09-03 12:31 Ionen Wolkens
2024-09-02  6:16 Sam James
2024-08-31  2:42 Ionen Wolkens
2024-08-12 18:21 Arthur Zamarin
2024-08-08 10:05 Sam James
2024-07-24  9:03 Ionen Wolkens
2024-07-19 14:39 Ionen Wolkens
2024-06-29 12:29 Jakov Smolić
2024-06-28 18:05 Sam James
2024-06-28 18:05 Sam James
2024-06-28 14:45 Ionen Wolkens
2024-05-13  0:46 Sam James
2024-04-27 10:11 Ionen Wolkens
2024-04-26 11:31 Ionen Wolkens
2023-12-25 15:49 Ionen Wolkens
2023-12-22 22:40 Mart Raudsepp
2023-12-19 20:58 Ionen Wolkens
2023-12-17 18:29 Arthur Zamarin
2023-12-16 12:06 Ionen Wolkens
2023-12-04 16:08 Ionen Wolkens
2023-11-15 17:20 Arthur Zamarin
2023-11-05 15:49 Ionen Wolkens
2023-11-05 13:52 Ionen Wolkens
2023-10-30 14:47 Ionen Wolkens
2023-10-18 13:03 Ionen Wolkens
2023-10-14 14:48 Ionen Wolkens
2023-09-28 13:07 Ionen Wolkens
2023-09-28 13:07 Ionen Wolkens
2023-09-28 13:07 Ionen Wolkens
2023-09-15  6:08 Ionen Wolkens
2023-09-05 13:05 Ionen Wolkens
2023-09-05 13:05 Ionen Wolkens
2023-08-06  4:32 Ionen Wolkens
2023-07-25  0:10 Ionen Wolkens
2023-06-17  4:49 Ionen Wolkens
2023-06-17  4:49 Ionen Wolkens
2023-06-13 13:20 Ionen Wolkens
2023-06-03  5:21 Ionen Wolkens
2023-05-11 17:01 Ionen Wolkens
2023-04-23  1:21 Ionen Wolkens
2023-04-22  8:04 Ionen Wolkens
2023-04-22  6:53 Ionen Wolkens
2023-04-22  6:53 Ionen Wolkens
2023-04-19 20:07 Ionen Wolkens
2023-04-19 20:07 Ionen Wolkens
2023-04-16  9:02 Ionen Wolkens
2023-02-13 15:59 Ionen Wolkens
2023-02-13 11:46 Ionen Wolkens
2023-02-06 17:45 Ionen Wolkens
2023-01-30 19:11 Ionen Wolkens
2023-01-28 15:56 Ionen Wolkens
2022-10-28 20:53 Ionen Wolkens
2022-10-28 20:47 Ionen Wolkens
2022-10-20 13:34 Ionen Wolkens
2022-10-04  1:33 Ionen Wolkens
2022-08-03 18:58 Ionen Wolkens
2022-08-03 16:05 Ionen Wolkens
2022-08-03 13:51 Ionen Wolkens
2022-08-03  0:22 Ionen Wolkens

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1738898839.ad446519179f91d2ba2314ead5e858046a048272.ionen@gentoo \
    --to=ionen@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox