From 8e4eee87b9e4a4989bc55f95fc858f4dc7f850da Mon Sep 17 00:00:00 2001 From: Olivier van der Toorn Date: Fri, 3 Jul 2026 09:40:07 +0200 Subject: [PATCH] Backport qt5 packages Backport qt5 packages since they are removed from the main gentoo repos. --- dev-qt/qtconcurrent/Manifest | 3 + dev-qt/qtconcurrent/metadata.xml | 17 ++ .../qtconcurrent/qtconcurrent-5.15.18.ebuild | 23 +++ dev-qt/qtcore/Manifest | 3 + dev-qt/qtcore/metadata.xml | 20 ++ dev-qt/qtcore/qtcore-5.15.18.ebuild | 165 ++++++++++++++++ dev-qt/qtdbus/Manifest | 3 + dev-qt/qtdbus/metadata.xml | 17 ++ dev-qt/qtdbus/qtdbus-5.15.18.ebuild | 45 +++++ dev-qt/qtdeclarative/Manifest | 4 + ...14.2-QQuickItemView-fix-maxXY-extent.patch | 42 ++++ ...qtdeclarative-5.15.18-CVE-2025-12385.patch | 91 +++++++++ .../qtdeclarative-6.10.3-QTBUG-144701.patch | 22 +++ .../qtdeclarative-6.10.3-unity-build.patch | 17 ++ .../qtdeclarative-6.11.1-QTBUG-146869.patch | 73 +++++++ dev-qt/qtdeclarative/metadata.xml | 26 +++ .../qtdeclarative-5.15.18-r1.ebuild | 69 +++++++ .../qtdeclarative-6.10.3-r1.ebuild | 65 +++++++ .../qtdeclarative-6.11.1-r1.ebuild | 64 ++++++ .../qtdeclarative-6.11.9999.ebuild | 60 ++++++ .../qtdeclarative-6.12.9999.ebuild | 60 ++++++ .../qtdeclarative/qtdeclarative-6.9999.ebuild | 60 ++++++ dev-qt/qtgui/Manifest | 3 + dev-qt/qtgui/metadata.xml | 28 +++ dev-qt/qtgui/qtgui-5.15.18-r1.ebuild | 184 ++++++++++++++++++ dev-qt/qtnetwork/Manifest | 3 + dev-qt/qtnetwork/metadata.xml | 22 +++ dev-qt/qtnetwork/qtnetwork-5.15.18.ebuild | 62 ++++++ dev-qt/qtquickcontrols/Manifest | 1 + dev-qt/qtquickcontrols/metadata.xml | 20 ++ .../qtquickcontrols-5.15.18.ebuild | 33 ++++ dev-qt/qtquickcontrols2/Manifest | 2 + dev-qt/qtquickcontrols2/metadata.xml | 20 ++ .../qtquickcontrols2-5.15.18.ebuild | 32 +++ dev-qt/qtsql/Manifest | 3 + dev-qt/qtsql/metadata.xml | 17 ++ dev-qt/qtsql/qtsql-5.15.18.ebuild | 59 ++++++ dev-qt/qtwebsockets/Manifest | 2 + dev-qt/qtwebsockets/metadata.xml | 21 ++ .../qtwebsockets/qtwebsockets-6.10.3.ebuild | 28 +++ .../qtwebsockets/qtwebsockets-6.11.1.ebuild | 28 +++ .../qtwebsockets-6.11.9999.ebuild | 28 +++ .../qtwebsockets-6.12.9999.ebuild | 28 +++ .../qtwebsockets/qtwebsockets-6.9999.ebuild | 28 +++ dev-qt/qtwidgets/Manifest | 3 + dev-qt/qtwidgets/metadata.xml | 20 ++ dev-qt/qtwidgets/qtwidgets-5.15.18.ebuild | 63 ++++++ dev-qt/qtxml/Manifest | 3 + dev-qt/qtxml/metadata.xml | 17 ++ dev-qt/qtxml/qtxml-5.15.18.ebuild | 29 +++ 50 files changed, 1736 insertions(+) create mode 100644 dev-qt/qtconcurrent/Manifest create mode 100644 dev-qt/qtconcurrent/metadata.xml create mode 100644 dev-qt/qtconcurrent/qtconcurrent-5.15.18.ebuild create mode 100644 dev-qt/qtcore/Manifest create mode 100644 dev-qt/qtcore/metadata.xml create mode 100644 dev-qt/qtcore/qtcore-5.15.18.ebuild create mode 100644 dev-qt/qtdbus/Manifest create mode 100644 dev-qt/qtdbus/metadata.xml create mode 100644 dev-qt/qtdbus/qtdbus-5.15.18.ebuild create mode 100644 dev-qt/qtdeclarative/Manifest create mode 100644 dev-qt/qtdeclarative/files/qtdeclarative-5.14.2-QQuickItemView-fix-maxXY-extent.patch create mode 100644 dev-qt/qtdeclarative/files/qtdeclarative-5.15.18-CVE-2025-12385.patch create mode 100644 dev-qt/qtdeclarative/files/qtdeclarative-6.10.3-QTBUG-144701.patch create mode 100644 dev-qt/qtdeclarative/files/qtdeclarative-6.10.3-unity-build.patch create mode 100644 dev-qt/qtdeclarative/files/qtdeclarative-6.11.1-QTBUG-146869.patch create mode 100644 dev-qt/qtdeclarative/metadata.xml create mode 100644 dev-qt/qtdeclarative/qtdeclarative-5.15.18-r1.ebuild create mode 100644 dev-qt/qtdeclarative/qtdeclarative-6.10.3-r1.ebuild create mode 100644 dev-qt/qtdeclarative/qtdeclarative-6.11.1-r1.ebuild create mode 100644 dev-qt/qtdeclarative/qtdeclarative-6.11.9999.ebuild create mode 100644 dev-qt/qtdeclarative/qtdeclarative-6.12.9999.ebuild create mode 100644 dev-qt/qtdeclarative/qtdeclarative-6.9999.ebuild create mode 100644 dev-qt/qtgui/Manifest create mode 100644 dev-qt/qtgui/metadata.xml create mode 100644 dev-qt/qtgui/qtgui-5.15.18-r1.ebuild create mode 100644 dev-qt/qtnetwork/Manifest create mode 100644 dev-qt/qtnetwork/metadata.xml create mode 100644 dev-qt/qtnetwork/qtnetwork-5.15.18.ebuild create mode 100644 dev-qt/qtquickcontrols/Manifest create mode 100644 dev-qt/qtquickcontrols/metadata.xml create mode 100644 dev-qt/qtquickcontrols/qtquickcontrols-5.15.18.ebuild create mode 100644 dev-qt/qtquickcontrols2/Manifest create mode 100644 dev-qt/qtquickcontrols2/metadata.xml create mode 100644 dev-qt/qtquickcontrols2/qtquickcontrols2-5.15.18.ebuild create mode 100644 dev-qt/qtsql/Manifest create mode 100644 dev-qt/qtsql/metadata.xml create mode 100644 dev-qt/qtsql/qtsql-5.15.18.ebuild create mode 100644 dev-qt/qtwebsockets/Manifest create mode 100644 dev-qt/qtwebsockets/metadata.xml create mode 100644 dev-qt/qtwebsockets/qtwebsockets-6.10.3.ebuild create mode 100644 dev-qt/qtwebsockets/qtwebsockets-6.11.1.ebuild create mode 100644 dev-qt/qtwebsockets/qtwebsockets-6.11.9999.ebuild create mode 100644 dev-qt/qtwebsockets/qtwebsockets-6.12.9999.ebuild create mode 100644 dev-qt/qtwebsockets/qtwebsockets-6.9999.ebuild create mode 100644 dev-qt/qtwidgets/Manifest create mode 100644 dev-qt/qtwidgets/metadata.xml create mode 100644 dev-qt/qtwidgets/qtwidgets-5.15.18.ebuild create mode 100644 dev-qt/qtxml/Manifest create mode 100644 dev-qt/qtxml/metadata.xml create mode 100644 dev-qt/qtxml/qtxml-5.15.18.ebuild diff --git a/dev-qt/qtconcurrent/Manifest b/dev-qt/qtconcurrent/Manifest new file mode 100644 index 0000000..36e646e --- /dev/null +++ b/dev-qt/qtconcurrent/Manifest @@ -0,0 +1,3 @@ +DIST qtbase-5.15-gentoo-patchset-6.tar.xz 8288 BLAKE2B ad9695a528345dd3b8e9ce72b7bdfe8f744f16685a567bbc7862ba6c28e5a426260cb0b73e2573cb3a6f16f1785786898ffb44c90f5d75354b97e5756c7573db SHA512 97bc4d5375e1750a5578439ff320ee2e5e929df1dafe56b4e86f2de8ad26c91dc4002e45ad75d9f936347d49b9f54c0c42f8fc2cb7dfd4f54bf08a210b3bc720 +DIST qtbase-5.15.18-gentoo-kde-1.tar.xz 450532 BLAKE2B 172732fe6a2f7dd4718b224d8a8ba7b182ded24f74ee38545d20a17364757153b399cae82b40f425e72b2587ec432f024868078edfe95280242211a040ddd9f6 SHA512 e0257171cf723cb6208a06f28fc95fa07d1239ea9dd3daa79d362146aa53e008398c9e1d95443b84d6d71b835a3f010b957e748f3ec23b77a588d6b372fd0c47 +DIST qtbase-everywhere-opensource-src-5.15.18.tar.xz 51492796 BLAKE2B a02f13f2ae8d3994fe5e3fa5b3751cb2981c3203cc4f3859dd4398d6a62101772885acb0c7b1f830ba8e9fbdd64ecfdb2a6074bfedd1bd372b4fc9ceb747467d SHA512 d39c831e6f3ddcd6a50f103ff60a0700b451f137782249508b7447a80066e3e9259c9b5038e6077ccf8df06b6afefec232c3c4dd331d85765089c92571708206 diff --git a/dev-qt/qtconcurrent/metadata.xml b/dev-qt/qtconcurrent/metadata.xml new file mode 100644 index 0000000..3c434f4 --- /dev/null +++ b/dev-qt/qtconcurrent/metadata.xml @@ -0,0 +1,17 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + https://qt-project.atlassian.net/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtconcurrent/qtconcurrent-5.15.18.ebuild b/dev-qt/qtconcurrent/qtconcurrent-5.15.18.ebuild new file mode 100644 index 0000000..b69c0bf --- /dev/null +++ b/dev-qt/qtconcurrent/qtconcurrent-5.15.18.ebuild @@ -0,0 +1,23 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +QT5_MODULE="qtbase" +inherit qt5-build + +DESCRIPTION="Multi-threading concurrence support library for the Qt5 framework" + +IUSE="" + +DEPEND="=dev-qt/qtcore-${QT5_PV}*:5=" +RDEPEND="${DEPEND}" + +QT5_TARGET_SUBDIRS=( + src/concurrent +) diff --git a/dev-qt/qtcore/Manifest b/dev-qt/qtcore/Manifest new file mode 100644 index 0000000..36e646e --- /dev/null +++ b/dev-qt/qtcore/Manifest @@ -0,0 +1,3 @@ +DIST qtbase-5.15-gentoo-patchset-6.tar.xz 8288 BLAKE2B ad9695a528345dd3b8e9ce72b7bdfe8f744f16685a567bbc7862ba6c28e5a426260cb0b73e2573cb3a6f16f1785786898ffb44c90f5d75354b97e5756c7573db SHA512 97bc4d5375e1750a5578439ff320ee2e5e929df1dafe56b4e86f2de8ad26c91dc4002e45ad75d9f936347d49b9f54c0c42f8fc2cb7dfd4f54bf08a210b3bc720 +DIST qtbase-5.15.18-gentoo-kde-1.tar.xz 450532 BLAKE2B 172732fe6a2f7dd4718b224d8a8ba7b182ded24f74ee38545d20a17364757153b399cae82b40f425e72b2587ec432f024868078edfe95280242211a040ddd9f6 SHA512 e0257171cf723cb6208a06f28fc95fa07d1239ea9dd3daa79d362146aa53e008398c9e1d95443b84d6d71b835a3f010b957e748f3ec23b77a588d6b372fd0c47 +DIST qtbase-everywhere-opensource-src-5.15.18.tar.xz 51492796 BLAKE2B a02f13f2ae8d3994fe5e3fa5b3751cb2981c3203cc4f3859dd4398d6a62101772885acb0c7b1f830ba8e9fbdd64ecfdb2a6074bfedd1bd372b4fc9ceb747467d SHA512 d39c831e6f3ddcd6a50f103ff60a0700b451f137782249508b7447a80066e3e9259c9b5038e6077ccf8df06b6afefec232c3c4dd331d85765089c92571708206 diff --git a/dev-qt/qtcore/metadata.xml b/dev-qt/qtcore/metadata.xml new file mode 100644 index 0000000..baa3c87 --- /dev/null +++ b/dev-qt/qtcore/metadata.xml @@ -0,0 +1,20 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Disable syscalls not available on Linux kernels older than 4.11 + + + https://qt-project.atlassian.net/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtcore/qtcore-5.15.18.ebuild b/dev-qt/qtcore/qtcore-5.15.18.ebuild new file mode 100644 index 0000000..bd5f1b1 --- /dev/null +++ b/dev-qt/qtcore/qtcore-5.15.18.ebuild @@ -0,0 +1,165 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Looking for Qt 6? It is packaged differently to Qt 5 with different +# package names: https://wiki.gentoo.org/wiki/Project:Qt/Qt6_migration_notes + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +QT5_MODULE="qtbase" +inherit linux-info flag-o-matic toolchain-funcs qt5-build + +DESCRIPTION="Cross-platform application development framework" +SLOT=5/${QT5_PV} + +IUSE="icu old-kernel" + +DEPEND=" + dev-libs/double-conversion:= + dev-libs/glib:2 + dev-libs/libpcre2[pcre16,unicode] + virtual/zlib:= + icu? ( dev-libs/icu:= ) + !icu? ( virtual/libiconv ) +" +RDEPEND="${DEPEND} + != -O2, so we need + # to unset F_S first, then explicitly set 2, to negate any default + # and anything set by the user if they're choosing 3 (or if they've + # modified GCC to set 3). + # + # Refs: + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105078 + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105709 + # https://bugreports.qt.io/browse/QTBUG-103782 + # bug #847145 + if tc-enables-fortify-source ; then + # We can't unconditionally do this b/c we fortify needs + # some level of optimisation. + filter-flags -D_FORTIFY_SOURCE=3 + # (Qt doesn't seem to respect CPPFLAGS?) + append-flags -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 + fi + + qt5-build_src_prepare + + # workaround for a79a370c (...Annotate-QMutex-...patch) adding a header + qt5_syncqt_version +} + +src_configure() { + local myconf=( + $(qt_use icu) + $(qt_use !icu iconv) + ) + use old-kernel && myconf+=( + -no-feature-renameat2 # needs Linux 3.16, bug 669994 + -no-feature-getentropy # needs Linux 3.17, bug 669994 + -no-feature-statx # needs Linux 4.11, bug 672856 + ) + qt5-build_src_configure +} + +src_install() { + qt5-build_src_install + qt5_symlink_binary_to_path qmake 5 + + local flags=( + DBUS FREETYPE IMAGEFORMAT_JPEG IMAGEFORMAT_PNG + OPENGL OPENSSL SSL WIDGETS + ) + + for flag in ${flags[@]}; do + cat >> "${D}"/${QT5_HEADERDIR}/QtCore/qconfig.h <<- _EOF_ || die + + #if defined(QT_NO_${flag}) && defined(QT_${flag}) + # undef QT_NO_${flag} + #elif !defined(QT_NO_${flag}) && !defined(QT_${flag}) + # define QT_NO_${flag} + #endif + _EOF_ + done +} diff --git a/dev-qt/qtdbus/Manifest b/dev-qt/qtdbus/Manifest new file mode 100644 index 0000000..36e646e --- /dev/null +++ b/dev-qt/qtdbus/Manifest @@ -0,0 +1,3 @@ +DIST qtbase-5.15-gentoo-patchset-6.tar.xz 8288 BLAKE2B ad9695a528345dd3b8e9ce72b7bdfe8f744f16685a567bbc7862ba6c28e5a426260cb0b73e2573cb3a6f16f1785786898ffb44c90f5d75354b97e5756c7573db SHA512 97bc4d5375e1750a5578439ff320ee2e5e929df1dafe56b4e86f2de8ad26c91dc4002e45ad75d9f936347d49b9f54c0c42f8fc2cb7dfd4f54bf08a210b3bc720 +DIST qtbase-5.15.18-gentoo-kde-1.tar.xz 450532 BLAKE2B 172732fe6a2f7dd4718b224d8a8ba7b182ded24f74ee38545d20a17364757153b399cae82b40f425e72b2587ec432f024868078edfe95280242211a040ddd9f6 SHA512 e0257171cf723cb6208a06f28fc95fa07d1239ea9dd3daa79d362146aa53e008398c9e1d95443b84d6d71b835a3f010b957e748f3ec23b77a588d6b372fd0c47 +DIST qtbase-everywhere-opensource-src-5.15.18.tar.xz 51492796 BLAKE2B a02f13f2ae8d3994fe5e3fa5b3751cb2981c3203cc4f3859dd4398d6a62101772885acb0c7b1f830ba8e9fbdd64ecfdb2a6074bfedd1bd372b4fc9ceb747467d SHA512 d39c831e6f3ddcd6a50f103ff60a0700b451f137782249508b7447a80066e3e9259c9b5038e6077ccf8df06b6afefec232c3c4dd331d85765089c92571708206 diff --git a/dev-qt/qtdbus/metadata.xml b/dev-qt/qtdbus/metadata.xml new file mode 100644 index 0000000..3c434f4 --- /dev/null +++ b/dev-qt/qtdbus/metadata.xml @@ -0,0 +1,17 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + https://qt-project.atlassian.net/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtdbus/qtdbus-5.15.18.ebuild b/dev-qt/qtdbus/qtdbus-5.15.18.ebuild new file mode 100644 index 0000000..190512c --- /dev/null +++ b/dev-qt/qtdbus/qtdbus-5.15.18.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +QT5_MODULE="qtbase" +inherit qt5-build + +DESCRIPTION="Qt5 module for inter-process communication over the D-Bus protocol" + +IUSE="" + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}*:5= + sys-apps/dbus +" +RDEPEND="${DEPEND}" + +QT5_TARGET_SUBDIRS=( + src/dbus + src/tools/qdbusxml2cpp + src/tools/qdbuscpp2xml +) + +QT5_GENTOO_CONFIG=( + :dbus + :dbus-linked: +) + +QT5_GENTOO_PRIVATE_CONFIG=( + :dbus + :dbus-linked +) + +src_configure() { + local myconf=( + -dbus-linked + ) + qt5-build_src_configure +} diff --git a/dev-qt/qtdeclarative/Manifest b/dev-qt/qtdeclarative/Manifest new file mode 100644 index 0000000..f4eb538 --- /dev/null +++ b/dev-qt/qtdeclarative/Manifest @@ -0,0 +1,4 @@ +DIST qtdeclarative-5.15.18-gentoo-kde-1.tar.xz 19304 BLAKE2B ec246d080eeeeeedb3d358c322faf8392cd106ffb6a0cda2ccbe1fd3776e7fdd2d76c8d8cd56e954b8fa11b466a6b6592e6134a8ba771b1433ba74c9fa0e00cd SHA512 f7636a405a0602b476bc4034382b275c14e3e7d166314042c7ea6bfb79f30aba7c79b540c4ec2352bb2e7fbed51b5bab52ddbf6458a579c9ba4fa2d6aad30a55 +DIST qtdeclarative-everywhere-opensource-src-5.15.18.tar.xz 21588352 BLAKE2B 9daf4a86e39db46d12350cc2e17cba1d23c8777a5c3193a76bd66c68ff252c94d616717a4b13cebe25707a6acd42084a1a02d372862d0b0f7418373b267be94b SHA512 73c45c47b5074b6bc1127abb1b3cf1cd751deeb80c2f9c86a675c7323fecf20bd83363fad95803bc72cf494ae4679c1f38a02387363f266c093c707e700c9ea2 +DIST qtdeclarative-everywhere-src-6.10.3.tar.xz 38084496 BLAKE2B acefeb2f998001cd811d4ca62799cb44ed57e743a1198f58fe4d84f920b438496e45bf2cd71d08da83cf566bde09c4b2c284fb655bbcc607fd1c29d4c1c9a809 SHA512 187a525b73595e7c4d89c98be657df4f480114957649813aa9ecd3fba23f56f20c8804f2ab507d83a5fb6120a2c6c36751fe5c80f43f9feb6c3479a733fb6684 +DIST qtdeclarative-everywhere-src-6.11.1.tar.xz 38744644 BLAKE2B ea428a3930276dbf4db912f905aa885971de13f4b35034b6819c93af938d1d36d6b0cc13c3e54c1cd7bb8c375e4744bdd98af1ea9105ced5ad982e6aa550357a SHA512 91d657a33b3bf8fc79f1116561f125b3905b590e94504dcb3e4feead71f209b35b42a9da783d4568f756b22fd7a0e9802e1a9039553d400fe33417562776a1d6 diff --git a/dev-qt/qtdeclarative/files/qtdeclarative-5.14.2-QQuickItemView-fix-maxXY-extent.patch b/dev-qt/qtdeclarative/files/qtdeclarative-5.14.2-QQuickItemView-fix-maxXY-extent.patch new file mode 100644 index 0000000..c9ccb21 --- /dev/null +++ b/dev-qt/qtdeclarative/files/qtdeclarative-5.14.2-QQuickItemView-fix-maxXY-extent.patch @@ -0,0 +1,42 @@ +From cc5387ad22ca503d167fd66e2429107d45b937af Mon Sep 17 00:00:00 2001 +From: David Redondo +Date: Wed, 13 May 2020 11:04:23 +0200 +Subject: [PATCH] QQuickItemView: Fix max(X/Y)Extent() + +QQuickFlickable maxXExtent() and maxYExtent() return the amount of space +that is not shown when inside a ScrollView. QQuickItemView however just +returned width() if vertical and height() if horizontal. In these cases +just defer to the QQuickFlickable base implementation like minXExtent() +and minYExtent() already do. + +Fixes: QTBUG-83890 +Pick-to: 5.15 +Change-Id: I7f4060c2f46ae07611bedceca0d322c5f7f6affb +--- + src/quick/items/qquickitemview.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp +index 7fb392233e4..ab130ac6857 100644 +--- a/src/quick/items/qquickitemview.cpp ++++ b/src/quick/items/qquickitemview.cpp +@@ -1393,7 +1393,7 @@ qreal QQuickItemView::maxYExtent() const + { + Q_D(const QQuickItemView); + if (d->layoutOrientation() == Qt::Horizontal) +- return height(); ++ return QQuickFlickable::maxYExtent(); + + if (d->vData.maxExtentDirty) { + d->maxExtent = d->maxExtentForAxis(d->vData, false); +@@ -1421,7 +1421,7 @@ qreal QQuickItemView::maxXExtent() const + { + Q_D(const QQuickItemView); + if (d->layoutOrientation() == Qt::Vertical) +- return width(); ++ return QQuickFlickable::maxXExtent(); + + if (d->hData.maxExtentDirty) { + d->maxExtent = d->maxExtentForAxis(d->hData, true); +-- +2.16.3 diff --git a/dev-qt/qtdeclarative/files/qtdeclarative-5.15.18-CVE-2025-12385.patch b/dev-qt/qtdeclarative/files/qtdeclarative-5.15.18-CVE-2025-12385.patch new file mode 100644 index 0000000..5d9393b --- /dev/null +++ b/dev-qt/qtdeclarative/files/qtdeclarative-5.15.18-CVE-2025-12385.patch @@ -0,0 +1,91 @@ +From f78bc0b2c6884fd730bf34a931870d67936cf01d Mon Sep 17 00:00:00 2001 +From: Albert Astals Cid +Date: Sun, 7 Dec 2025 11:44:35 +0100 +Subject: [PATCH] Increase robustness of tag in Text component + +For Text.StyledText, there was no protection against tags +with very large widths or heights. This could cause an application +to spend a very long time processing a layout and sometimes crash +if the size was too large. + +We reuse the internal coord limit in QPainter as our maximum size +here, similar to what we do in Qt Svg for instance. + +For Text.RichText, there were no issues in release builds, but in +debug builds, you could trigger an overflow assert when rounding +the number if it exceeded INT_MAX. For this, we simply cap the +width and height at INT_MAX. + +Fixes: QTBUG-141515 +Pick-to: 5.15 +Change-Id: I4bcba16158f5f495a0de38963316effc4c46aae1 +Reviewed-by: Eirik Aavitsland +(cherry picked from commit 4aaf9bf21f7cc69d73066785e254b664fcc82025) +Reviewed-by: Qt Cherry-pick Bot +(cherry picked from commit 907c7ceb7b27586039262567273efd5ec79e6202) +(cherry picked from commit c4b74f27058b302a101befc2c1967f8c00b41be7) + +This is actually a manual patch based on +https://download.qt.io/official_releases/qt/6.5/CVE-2025-12385-qtdeclarative-6.5-0002.diff +--- + src/quick/items/qquicktextdocument.cpp | 4 ++-- + src/quick/util/qquickstyledtext.cpp | 19 +++++++++++++++++-- + 2 files changed, 19 insertions(+), 4 deletions(-) + +diff --git a/src/quick/items/qquicktextdocument.cpp b/src/quick/items/qquicktextdocument.cpp +index 021bbca0f6..67ed63d0de 100644 +--- a/src/quick/items/qquicktextdocument.cpp ++++ b/src/quick/items/qquicktextdocument.cpp +@@ -138,9 +138,9 @@ QSizeF QQuickTextDocumentWithImageResources::intrinsicSize( + if (format.isImageFormat()) { + QTextImageFormat imageFormat = format.toImageFormat(); + +- const int width = qRound(imageFormat.width()); ++ int width = qRound(qBound(qreal(INT_MIN), imageFormat.width(), qreal(INT_MAX))); + const bool hasWidth = imageFormat.hasProperty(QTextFormat::ImageWidth) && width > 0; +- const int height = qRound(imageFormat.height()); ++ const int height = qRound(qBound(qreal(INT_MIN), imageFormat.height(), qreal(INT_MAX))); + const bool hasHeight = imageFormat.hasProperty(QTextFormat::ImageHeight) && height > 0; + + QSizeF size(width, height); +diff --git a/src/quick/util/qquickstyledtext.cpp b/src/quick/util/qquickstyledtext.cpp +index a25af90414..120a2593d3 100644 +--- a/src/quick/util/qquickstyledtext.cpp ++++ b/src/quick/util/qquickstyledtext.cpp +@@ -45,6 +45,11 @@ + #include + #include "qquickstyledtext_p.h" + #include ++#include ++ ++#ifndef QQUICKSTYLEDPARSER_COORD_LIMIT ++# define QQUICKSTYLEDPARSER_COORD_LIMIT QT_RASTER_COORD_LIMIT ++#endif + + Q_LOGGING_CATEGORY(lcStyledText, "qt.quick.styledtext") + +@@ -694,9 +699,19 @@ void QQuickStyledTextPrivate::parseImageAttributes(const QChar *&ch, const QStri + if (attr.first == QLatin1String("src")) { + image->url = QUrl(attr.second.toString()); + } else if (attr.first == QLatin1String("width")) { +- image->size.setWidth(attr.second.toString().toInt()); ++ bool ok; ++ int v = attr.second.toString().toInt(&ok); ++ if (ok && v <= QQUICKSTYLEDPARSER_COORD_LIMIT) ++ image->size.setWidth(v); ++ else ++ qCWarning(lcStyledText) << "Invalid width provided for "; + } else if (attr.first == QLatin1String("height")) { +- image->size.setHeight(attr.second.toString().toInt()); ++ bool ok; ++ int v = attr.second.toString().toInt(&ok); ++ if (ok && v <= QQUICKSTYLEDPARSER_COORD_LIMIT) ++ image->size.setHeight(v); ++ else ++ qCWarning(lcStyledText) << "Invalid height provided for "; + } else if (attr.first == QLatin1String("align")) { + if (attr.second.toString() == QLatin1String("top")) { + image->align = QQuickStyledTextImgTag::Top; +-- +2.52.0 + diff --git a/dev-qt/qtdeclarative/files/qtdeclarative-6.10.3-QTBUG-144701.patch b/dev-qt/qtdeclarative/files/qtdeclarative-6.10.3-QTBUG-144701.patch new file mode 100644 index 0000000..c3ce88d --- /dev/null +++ b/dev-qt/qtdeclarative/files/qtdeclarative-6.10.3-QTBUG-144701.patch @@ -0,0 +1,22 @@ +https://bugs.gentoo.org/973374 +https://codereview.qt-project.org/c/qt%2Fqtdeclarative/+/733089 +--- a/src/qml/qml/qqmltypecompiler.cpp ++++ b/src/qml/qml/qqmltypecompiler.cpp +@@ -919,12 +919,11 @@ + // Apply the ordering in the IR + obj->setFirstAlias(ordered[0]); +- if (ordered[0] == defaultPropertyAlias) +- obj->indexOfDefaultPropertyOrAlias = 0; +- for (qsizetype i = 0, end = ordered.size() - 1; i < end; ++i) { ++ for (qsizetype i = 0, end = ordered.size() - 1; i < end; ++i) + ordered[i]->next = ordered[i + 1]; +- if (ordered[i] == defaultPropertyAlias) +- obj->indexOfDefaultPropertyOrAlias = i; +- } + ordered.last()->next = nullptr; ++ if (defaultPropertyAlias) { ++ auto it = std::find(ordered.constBegin(), ordered.constEnd(), defaultPropertyAlias); ++ obj->indexOfDefaultPropertyOrAlias = std::distance(ordered.constBegin(), it); ++ } + + return true; diff --git a/dev-qt/qtdeclarative/files/qtdeclarative-6.10.3-unity-build.patch b/dev-qt/qtdeclarative/files/qtdeclarative-6.10.3-unity-build.patch new file mode 100644 index 0000000..35eac52 --- /dev/null +++ b/dev-qt/qtdeclarative/files/qtdeclarative-6.10.3-unity-build.patch @@ -0,0 +1,17 @@ +https://codereview.qt-project.org/c/qt/qtdeclarative/+/723105 +--- a/src/qmlcompiler/qqmlsa.cpp ++++ b/src/qmlcompiler/qqmlsa.cpp +@@ -1379,5 +1379,5 @@ + QQmlJSScopesById::MostLikelyCallback result; + PassManagerPrivate::visitor(*d->m_manager)->addressableScopes().possibleScopes( +- id.toString(), QQmlJSScope::scope(context), Default, result); ++ id.toString(), QQmlJSScope::scope(context), QQmlJSScopesByIdOption::Default, result); + return QQmlJSScope::createQQmlSAElement(result.result); + } +@@ -1391,5 +1391,5 @@ + QQmlJSScopesById::MostLikelyCallback result; + PassManagerPrivate::visitor(*d->m_manager)->addressableScopes().possibleIds( +- QQmlJSScope::scope(element), QQmlJSScope::scope(context), Default, result); ++ QQmlJSScope::scope(element), QQmlJSScope::scope(context), QQmlJSScopesByIdOption::Default, result); + return result.result; + } diff --git a/dev-qt/qtdeclarative/files/qtdeclarative-6.11.1-QTBUG-146869.patch b/dev-qt/qtdeclarative/files/qtdeclarative-6.11.1-QTBUG-146869.patch new file mode 100644 index 0000000..695d66c --- /dev/null +++ b/dev-qt/qtdeclarative/files/qtdeclarative-6.11.1-QTBUG-146869.patch @@ -0,0 +1,73 @@ +https://mail.kde.org/pipermail/distributions/2026-May/001692.html +https://bugs.kde.org/show_bug.cgi?id=520252 +https://qt-project.atlassian.net/browse/QTBUG-146869 +--- a/src/qmlmodels/qqmltableinstancemodel.cpp ++++ b/src/qmlmodels/qqmltableinstancemodel.cpp +@@ -166,24 +166,19 @@ + Q_ASSERT(m_delegate); + +- QQmlDelegateModelItem *modelItem = resolveModelItem(index, QModelIndex()); +- if (!modelItem) +- return nullptr; ++ QModelIndex modelIndex; ++ if (const QAbstractItemModel *aim = abstractItemModel()) { ++ // A valid QModelIndex is needed for resolveModelItem() to match ++ // items in the release cache rather than just delegate type alone. ++ const int row = m_adaptorModel.rowAt(index); ++ const int column = m_adaptorModel.columnAt(index); ++ modelIndex = aim->index(row, column); ++ } ++ ++ if (QQmlDelegateModelItem *modelItem = resolveModelItem(index, modelIndex)) { ++ // Return the incubated object, or start an async incubation task and return nullptr for now ++ return incubateModelItemIfNeeded(modelItem, incubationMode); ++ } + +- // Return the incubated object, or start an async incubation task and return nullptr for now +- return incubateModelItemIfNeeded(modelItem, incubationMode); +-} +- +-QObject *QQmlTableInstanceModel::object(const QModelIndex &modelIndex, QQmlIncubator::IncubationMode incubationMode) +-{ +- Q_ASSERT(m_delegate); +- Q_ASSERT(m_adaptorModel.adaptsAim()); +- +- const int flatIndex = m_adaptorModel.indexAt(modelIndex.row(), modelIndex.column()); +- QQmlDelegateModelItem *modelItem = resolveModelItem(flatIndex, modelIndex); +- if (!modelItem) +- return nullptr; +- +- // Return the incubated object, or start an async incubation task and return nullptr for now +- return incubateModelItemIfNeeded(modelItem, incubationMode); ++ return nullptr; + } + +--- a/src/qmlmodels/qqmltableinstancemodel_p.h ++++ b/src/qmlmodels/qqmltableinstancemodel_p.h +@@ -87,5 +87,4 @@ + + QObject *object(int index, QQmlIncubator::IncubationMode incubationMode = QQmlIncubator::AsynchronousIfNested) override; +- QObject *object(const QModelIndex &index, QQmlIncubator::IncubationMode incubationMode = QQmlIncubator::AsynchronousIfNested); + QObject *incubateModelItemIfNeeded(QQmlDelegateModelItem *modelItem, QQmlIncubator::IncubationMode incubationMode); + void restoreFromReleasedItemsCache(QQmlDelegateModelItem *item, int newFlatIndex); +--- a/src/quick/items/qquicktableview.cpp ++++ b/src/quick/items/qquicktableview.cpp +@@ -2827,17 +2827,9 @@ + + bool ownItem = false; +- QObject* object = nullptr; +- const QAbstractItemModel *aim = model->abstractItemModel(); + const int modelRow = isTransposed ? logicalColumnIndex(cell.y()) : logicalRowIndex(cell.y()); + const int modelColumn = isTransposed ? logicalRowIndex(cell.x()) : logicalColumnIndex(cell.x()); + const int modelIndex = modelIndexAtCell(QPoint(modelColumn, modelRow)); + +- if (tableModel && aim) { +- // Prefer loading via QModelIndex so that QQmlTableInstanceModel can also +- // match recently released items by model index, not just by delegate type. +- object = tableModel->object(aim->index(modelRow, modelColumn), incubationMode); +- } else { +- object = model->object(modelIndex, incubationMode); +- } ++ QObject *object = model->object(modelIndex, incubationMode); + + if (!object) { diff --git a/dev-qt/qtdeclarative/metadata.xml b/dev-qt/qtdeclarative/metadata.xml new file mode 100644 index 0000000..345fbd2 --- /dev/null +++ b/dev-qt/qtdeclarative/metadata.xml @@ -0,0 +1,26 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Build the LocalStorage import for QtQuick (requires QtSql) + Enable QtNetwork support + Enable OpenGL support + Build the qmlls tool using dev-qt/qtlanguageserver + Enable QtSQL support + Enable QtWidgets support + + + https://qt-project.atlassian.net/ + https://doc.qt.io/ + qt/qtdeclarative + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtdeclarative/qtdeclarative-5.15.18-r1.ebuild b/dev-qt/qtdeclarative/qtdeclarative-5.15.18-r1.ebuild new file mode 100644 index 0000000..a7e398b --- /dev/null +++ b/dev-qt/qtdeclarative/qtdeclarative-5.15.18-r1.ebuild @@ -0,0 +1,69 @@ +# Copyright 2009-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +PYTHON_COMPAT=( python3_{11..14} ) +inherit flag-o-matic python-any-r1 qt5-build + +DESCRIPTION="The QML and Quick modules for the Qt5 framework" + +IUSE="cpu_flags_x86_sse2 gles2-only +jit localstorage vulkan +widgets" +REQUIRED_USE="jit? ( x86? ( cpu_flags_x86_sse2 ) )" + +# qtgui[gles2-only=] is needed because of bug 504322 +DEPEND=" + =dev-qt/qtcore-${QT5_PV}* + =dev-qt/qtgui-${QT5_PV}*:5=[gles2-only=,vulkan=] + =dev-qt/qtnetwork-${QT5_PV}* + =dev-qt/qttest-${QT5_PV}* + media-libs/libglvnd + localstorage? ( =dev-qt/qtsql-${QT5_PV}* ) + widgets? ( =dev-qt/qtwidgets-${QT5_PV}*[gles2-only=] ) +" +RDEPEND="${DEPEND}" +BDEPEND="${PYTHON_DEPS}" + +PATCHES=( + "${FILESDIR}/${PN}-5.14.2-QQuickItemView-fix-maxXY-extent.patch" # QTBUG-83890 + "${FILESDIR}/${P}-CVE-2025-12385.patch" # bug 966269, QTBUG-141515 +) + +src_prepare() { + qt_use_disable_mod localstorage sql \ + src/imports/imports.pro + + qt_use_disable_mod widgets widgets \ + src/src.pro \ + src/qmltest/qmltest.pro \ + tests/auto/auto.pro \ + tools/tools.pro \ + tools/qmlscene/qmlscene.pro \ + tools/qml/qml.pro + + qt5-build_src_prepare +} + +src_configure() { + replace-flags "-Os" "-O2" # bug 840861 + + local myqmakeargs=( + -- + -qml-debug + $(qt_use jit feature-qml-jit) + ) + qt5-build_src_configure +} + +src_install() { + qt5-build_src_install + qt5_symlink_binary_to_path qml 5 + qt5_symlink_binary_to_path qmleasing 5 + qt5_symlink_binary_to_path qmlpreview 5 + qt5_symlink_binary_to_path qmlscene 5 +} diff --git a/dev-qt/qtdeclarative/qtdeclarative-6.10.3-r1.ebuild b/dev-qt/qtdeclarative/qtdeclarative-6.10.3-r1.ebuild new file mode 100644 index 0000000..b34188a --- /dev/null +++ b/dev-qt/qtdeclarative/qtdeclarative-6.10.3-r1.ebuild @@ -0,0 +1,65 @@ +# Copyright 2021-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) +QT6_HAS_STATIC_LIBS=1 +# behaves very badly when qtdeclarative is not already installed, also +# other more minor issues (installs junk, sandbox/offscreen issues) +QT6_RESTRICT_TESTS=1 +inherit python-any-r1 qt6-build + +DESCRIPTION="Qt Declarative (Quick 2)" + +if [[ ${QT6_BUILD_TYPE} == release ]]; then + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +IUSE="accessibility +jit +network opengl qmlls +sql +ssl svg vulkan +widgets" + +RDEPEND=" + ~dev-qt/qtbase-${PV}:6[accessibility=,gui,network=,opengl=,sql?,ssl?,vulkan=,widgets=] + qmlls? ( ~dev-qt/qtlanguageserver-${PV}:6 ) + svg? ( ~dev-qt/qtsvg-${PV}:6 ) +" +DEPEND=" + ${RDEPEND} + vulkan? ( dev-util/vulkan-headers ) +" +BDEPEND=" + ${PYTHON_DEPS} + ~dev-qt/qtshadertools-${PV}:6 +" + +PATCHES=( + "${FILESDIR}"/${PN}-6.10.3-unity-build.patch + "${FILESDIR}"/${PN}-6.10.3-QTBUG-144701.patch +) + +src_configure() { + local mycmakeargs=( + $(cmake_use_find_package qmlls Qt6LanguageServerPrivate) + $(cmake_use_find_package sql Qt6Sql) + $(cmake_use_find_package svg Qt6Svg) + $(qt_feature jit qml_jit) + $(qt_feature network qml_network) + $(qt_feature ssl qml_ssl) + ) + + qt6-build_src_configure +} + +src_install() { + qt6-build_src_install + + if [[ ! -e ${D}${QT6_LIBDIR}/libQt6QuickControls2.so.6 ]]; then #940675 + eerror "${CATEGORY}/${PF} seems to have been improperly built and" + eerror "install was aborted to protect the system. Possibly(?) due" + eerror "to a rare portage ordering bug. If using portage, try:" + eerror " emerge -1 qtshadertools:6 qtdeclarative:6" + eerror "If that did not resolve the issue, please provide build.log" + eerror "on https://bugs.gentoo.org/940675" + die "aborting due to incomplete/broken build (see above)" + fi +} diff --git a/dev-qt/qtdeclarative/qtdeclarative-6.11.1-r1.ebuild b/dev-qt/qtdeclarative/qtdeclarative-6.11.1-r1.ebuild new file mode 100644 index 0000000..7c82745 --- /dev/null +++ b/dev-qt/qtdeclarative/qtdeclarative-6.11.1-r1.ebuild @@ -0,0 +1,64 @@ +# Copyright 2021-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..14} ) +QT6_HAS_STATIC_LIBS=1 +# behaves very badly when qtdeclarative is not already installed, also +# other more minor issues (installs junk, sandbox/offscreen issues) +QT6_RESTRICT_TESTS=1 +inherit python-any-r1 qt6-build + +DESCRIPTION="Qt Declarative (Quick 2)" + +if [[ ${QT6_BUILD_TYPE} == release ]]; then + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +IUSE="accessibility +jit +network opengl qmlls +sql +ssl svg vulkan +widgets" + +RDEPEND=" + ~dev-qt/qtbase-${PV}:6[accessibility=,gui,network=,opengl=,sql?,ssl?,vulkan=,widgets=] + qmlls? ( ~dev-qt/qtlanguageserver-${PV}:6 ) + svg? ( ~dev-qt/qtsvg-${PV}:6 ) +" +DEPEND=" + ${RDEPEND} + vulkan? ( dev-util/vulkan-headers ) +" +BDEPEND=" + ${PYTHON_DEPS} + ~dev-qt/qtshadertools-${PV}:6 +" + +PATCHES=( + "${FILESDIR}"/${PN}-6.11.1-QTBUG-146869.patch +) + +src_configure() { + local mycmakeargs=( + $(cmake_use_find_package qmlls Qt6LanguageServerPrivate) + $(cmake_use_find_package sql Qt6Sql) + $(cmake_use_find_package svg Qt6Svg) + $(qt_feature jit qml_jit) + $(qt_feature network qml_network) + $(qt_feature ssl qml_ssl) + ) + + qt6-build_src_configure +} + +src_install() { + qt6-build_src_install + + if [[ ! -e ${D}${QT6_LIBDIR}/libQt6QuickControls2.so.6 ]]; then #940675 + eerror "${CATEGORY}/${PF} seems to have been improperly built and" + eerror "install was aborted to protect the system. Possibly(?) due" + eerror "to a rare portage ordering bug. If using portage, try:" + eerror " emerge -1 qtshadertools:6 qtdeclarative:6" + eerror "If that did not resolve the issue, please provide build.log" + eerror "on https://bugs.gentoo.org/940675" + die "aborting due to incomplete/broken build (see above)" + fi +} diff --git a/dev-qt/qtdeclarative/qtdeclarative-6.11.9999.ebuild b/dev-qt/qtdeclarative/qtdeclarative-6.11.9999.ebuild new file mode 100644 index 0000000..eb34cbc --- /dev/null +++ b/dev-qt/qtdeclarative/qtdeclarative-6.11.9999.ebuild @@ -0,0 +1,60 @@ +# Copyright 2021-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) +QT6_HAS_STATIC_LIBS=1 +# behaves very badly when qtdeclarative is not already installed, also +# other more minor issues (installs junk, sandbox/offscreen issues) +QT6_RESTRICT_TESTS=1 +inherit python-any-r1 qt6-build + +DESCRIPTION="Qt Declarative (Quick 2)" + +if [[ ${QT6_BUILD_TYPE} == release ]]; then + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86" +fi + +IUSE="accessibility +jit +network opengl qmlls +sql +ssl svg vulkan +widgets" + +RDEPEND=" + ~dev-qt/qtbase-${PV}:6[accessibility=,gui,network=,opengl=,sql?,ssl?,vulkan=,widgets=] + qmlls? ( ~dev-qt/qtlanguageserver-${PV}:6 ) + svg? ( ~dev-qt/qtsvg-${PV}:6 ) +" +DEPEND=" + ${RDEPEND} + vulkan? ( dev-util/vulkan-headers ) +" +BDEPEND=" + ${PYTHON_DEPS} + ~dev-qt/qtshadertools-${PV}:6 +" + +src_configure() { + local mycmakeargs=( + $(cmake_use_find_package qmlls Qt6LanguageServerPrivate) + $(cmake_use_find_package sql Qt6Sql) + $(cmake_use_find_package svg Qt6Svg) + $(qt_feature jit qml_jit) + $(qt_feature network qml_network) + $(qt_feature ssl qml_ssl) + ) + + qt6-build_src_configure +} + +src_install() { + qt6-build_src_install + + if [[ ! -e ${D}${QT6_LIBDIR}/libQt6QuickControls2.so.6 ]]; then #940675 + eerror "${CATEGORY}/${PF} seems to have been improperly built and" + eerror "install was aborted to protect the system. Possibly(?) due" + eerror "to a rare portage ordering bug. If using portage, try:" + eerror " emerge -1 qtshadertools:6 qtdeclarative:6" + eerror "If that did not resolve the issue, please provide build.log" + eerror "on https://bugs.gentoo.org/940675" + die "aborting due to incomplete/broken build (see above)" + fi +} diff --git a/dev-qt/qtdeclarative/qtdeclarative-6.12.9999.ebuild b/dev-qt/qtdeclarative/qtdeclarative-6.12.9999.ebuild new file mode 100644 index 0000000..40fff60 --- /dev/null +++ b/dev-qt/qtdeclarative/qtdeclarative-6.12.9999.ebuild @@ -0,0 +1,60 @@ +# Copyright 2021-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) +QT6_HAS_STATIC_LIBS=1 +# behaves very badly when qtdeclarative is not already installed, also +# other more minor issues (installs junk, sandbox/offscreen issues) +QT6_RESTRICT_TESTS=1 +inherit python-any-r1 qt6-build + +DESCRIPTION="Qt Declarative (Quick 2)" + +if [[ ${QT6_BUILD_TYPE} == release ]]; then + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86" +fi + +IUSE="accessibility +jit +network opengl qmlls +sql +ssl svg vulkan +widgets" + +RDEPEND=" + ~dev-qt/qtbase-${PV}:6[accessibility=,gui,network=,opengl=,sql?,ssl?,vulkan=,widgets=] + qmlls? ( ~dev-qt/qtlanguageserver-${PV}:6 ) + svg? ( ~dev-qt/qtsvg-${PV}:6 ) +" +DEPEND=" + ${RDEPEND} + vulkan? ( dev-util/vulkan-headers ) +" +BDEPEND=" + ${PYTHON_DEPS} + ~dev-qt/qtshadertools-${PV}:6 +" + +src_configure() { + local mycmakeargs=( + $(cmake_use_find_package qmlls Qt6LanguageServerPrivate) + $(cmake_use_find_package sql Qt6Sql) + $(cmake_use_find_package svg Qt6Svg) + $(qt_feature jit qml_jit) + $(qt_feature network qml_network) + $(qt_feature ssl qml_ssl) + ) + + qt6-build_src_configure +} + +src_install() { + qt6-build_src_install + + if [[ ! -e ${D}${QT6_LIBDIR}/libQt6QuickControls2.so.6 ]]; then #940675 + eerror "${CATEGORY}/${PF} seems to have been improperly built and" + eerror "install was aborted to protect the system. Possibly(?) due" + eerror "to a rare portage ordering bug. If using portage, try:" + eerror " emerge -1 qtshadertools:6 qtdeclarative:6" + eerror "If that did not resolve the issue, please provide build.log" + eerror "on https://bugs.gentoo.org/940675" + die "aborting due to incomplete/broken build (see above)" + fi +} diff --git a/dev-qt/qtdeclarative/qtdeclarative-6.9999.ebuild b/dev-qt/qtdeclarative/qtdeclarative-6.9999.ebuild new file mode 100644 index 0000000..eb34cbc --- /dev/null +++ b/dev-qt/qtdeclarative/qtdeclarative-6.9999.ebuild @@ -0,0 +1,60 @@ +# Copyright 2021-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) +QT6_HAS_STATIC_LIBS=1 +# behaves very badly when qtdeclarative is not already installed, also +# other more minor issues (installs junk, sandbox/offscreen issues) +QT6_RESTRICT_TESTS=1 +inherit python-any-r1 qt6-build + +DESCRIPTION="Qt Declarative (Quick 2)" + +if [[ ${QT6_BUILD_TYPE} == release ]]; then + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86" +fi + +IUSE="accessibility +jit +network opengl qmlls +sql +ssl svg vulkan +widgets" + +RDEPEND=" + ~dev-qt/qtbase-${PV}:6[accessibility=,gui,network=,opengl=,sql?,ssl?,vulkan=,widgets=] + qmlls? ( ~dev-qt/qtlanguageserver-${PV}:6 ) + svg? ( ~dev-qt/qtsvg-${PV}:6 ) +" +DEPEND=" + ${RDEPEND} + vulkan? ( dev-util/vulkan-headers ) +" +BDEPEND=" + ${PYTHON_DEPS} + ~dev-qt/qtshadertools-${PV}:6 +" + +src_configure() { + local mycmakeargs=( + $(cmake_use_find_package qmlls Qt6LanguageServerPrivate) + $(cmake_use_find_package sql Qt6Sql) + $(cmake_use_find_package svg Qt6Svg) + $(qt_feature jit qml_jit) + $(qt_feature network qml_network) + $(qt_feature ssl qml_ssl) + ) + + qt6-build_src_configure +} + +src_install() { + qt6-build_src_install + + if [[ ! -e ${D}${QT6_LIBDIR}/libQt6QuickControls2.so.6 ]]; then #940675 + eerror "${CATEGORY}/${PF} seems to have been improperly built and" + eerror "install was aborted to protect the system. Possibly(?) due" + eerror "to a rare portage ordering bug. If using portage, try:" + eerror " emerge -1 qtshadertools:6 qtdeclarative:6" + eerror "If that did not resolve the issue, please provide build.log" + eerror "on https://bugs.gentoo.org/940675" + die "aborting due to incomplete/broken build (see above)" + fi +} diff --git a/dev-qt/qtgui/Manifest b/dev-qt/qtgui/Manifest new file mode 100644 index 0000000..36e646e --- /dev/null +++ b/dev-qt/qtgui/Manifest @@ -0,0 +1,3 @@ +DIST qtbase-5.15-gentoo-patchset-6.tar.xz 8288 BLAKE2B ad9695a528345dd3b8e9ce72b7bdfe8f744f16685a567bbc7862ba6c28e5a426260cb0b73e2573cb3a6f16f1785786898ffb44c90f5d75354b97e5756c7573db SHA512 97bc4d5375e1750a5578439ff320ee2e5e929df1dafe56b4e86f2de8ad26c91dc4002e45ad75d9f936347d49b9f54c0c42f8fc2cb7dfd4f54bf08a210b3bc720 +DIST qtbase-5.15.18-gentoo-kde-1.tar.xz 450532 BLAKE2B 172732fe6a2f7dd4718b224d8a8ba7b182ded24f74ee38545d20a17364757153b399cae82b40f425e72b2587ec432f024868078edfe95280242211a040ddd9f6 SHA512 e0257171cf723cb6208a06f28fc95fa07d1239ea9dd3daa79d362146aa53e008398c9e1d95443b84d6d71b835a3f010b957e748f3ec23b77a588d6b372fd0c47 +DIST qtbase-everywhere-opensource-src-5.15.18.tar.xz 51492796 BLAKE2B a02f13f2ae8d3994fe5e3fa5b3751cb2981c3203cc4f3859dd4398d6a62101772885acb0c7b1f830ba8e9fbdd64ecfdb2a6074bfedd1bd372b4fc9ceb747467d SHA512 d39c831e6f3ddcd6a50f103ff60a0700b451f137782249508b7447a80066e3e9259c9b5038e6077ccf8df06b6afefec232c3c4dd331d85765089c92571708206 diff --git a/dev-qt/qtgui/metadata.xml b/dev-qt/qtgui/metadata.xml new file mode 100644 index 0000000..fbc9562 --- /dev/null +++ b/dev-qt/qtgui/metadata.xml @@ -0,0 +1,28 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Build the EGL Full Screen/Single Surface platform plugin + Enable support for input devices via evdev + Build the IBus input method plugin + Enable support for input devices via dev-libs/libinput + Enable Linux framebuffer support for embedded devices + Enable support for touchscreen devices via x11-libs/tslib + Build plugin to receive touch events over the TUIO protocol + Provide dev-qt/qtwayland to ensure Qt applications can be run as Wayland clients + Build the XCB platform plugin and enable X11 integration + + + https://qt-project.atlassian.net/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtgui/qtgui-5.15.18-r1.ebuild b/dev-qt/qtgui/qtgui-5.15.18-r1.ebuild new file mode 100644 index 0000000..b1e90e3 --- /dev/null +++ b/dev-qt/qtgui/qtgui-5.15.18-r1.ebuild @@ -0,0 +1,184 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Looking for Qt 6? It is packaged differently to Qt 5 with different +# package names: https://wiki.gentoo.org/wiki/Project:Qt/Qt6_migration_notes + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +QT5_MODULE="qtbase" +inherit qt5-build + +DESCRIPTION="The GUI module and platform plugins for the Qt5 framework" + +SLOT=5/${QT5_PV} # bug 707658 +IUSE="accessibility dbus egl eglfs evdev gles2-only ibus jpeg +libinput + linuxfb +png tslib tuio +udev vnc vulkan wayland +X" +REQUIRED_USE=" + || ( eglfs linuxfb vnc wayland X ) + accessibility? ( dbus X ) + eglfs? ( egl ) + ibus? ( dbus ) + libinput? ( udev ) + X? ( gles2-only? ( egl ) ) +" + +RDEPEND=" + dev-libs/glib:2 + dev-libs/md4c + =dev-qt/qtcore-${QT5_PV}*:5= + dev-util/gtk-update-icon-cache + media-libs/fontconfig + media-libs/freetype:2 + media-libs/harfbuzz:= + virtual/zlib:= + accessibility? ( app-accessibility/at-spi2-core:2 ) + dbus? ( =dev-qt/qtdbus-${QT5_PV}* ) + eglfs? ( + media-libs/mesa[gbm(+)] + x11-libs/libdrm + ) + evdev? ( sys-libs/mtdev ) + jpeg? ( media-libs/libjpeg-turbo:= ) + gles2-only? ( media-libs/libglvnd ) + !gles2-only? ( media-libs/libglvnd[X] ) + libinput? ( + dev-libs/libinput:= + x11-libs/libxkbcommon + ) + png? ( media-libs/libpng:= ) + tslib? ( >=x11-libs/tslib-1.21 ) + tuio? ( =dev-qt/qtnetwork-${QT5_PV}* ) + udev? ( virtual/libudev:= ) + vnc? ( =dev-qt/qtnetwork-${QT5_PV}* ) + vulkan? ( dev-util/vulkan-headers ) + X? ( + x11-libs/libICE + x11-libs/libSM + x11-libs/libX11 + x11-libs/libxcb:= + x11-libs/libxkbcommon[X] + x11-libs/xcb-util-image + x11-libs/xcb-util-keysyms + x11-libs/xcb-util-renderutil + x11-libs/xcb-util-wm + ) +" +DEPEND="${RDEPEND} + evdev? ( sys-kernel/linux-headers ) + linuxfb? ( sys-kernel/linux-headers ) + udev? ( sys-kernel/linux-headers ) + X? ( x11-base/xorg-proto ) +" +PDEPEND=" + ibus? ( app-i18n/ibus ) + wayland? ( =dev-qt/qtwayland-${QT5_PV}* ) +" + +QT5_TARGET_SUBDIRS=( + src/tools/qvkgen + src/gui + src/openglextensions + src/platformheaders + src/platformsupport + src/plugins/generic + src/plugins/imageformats + src/plugins/platforms + src/plugins/platforminputcontexts +) + +QT5_GENTOO_CONFIG=( + accessibility:accessibility-atspi-bridge + egl:egl: + eglfs:eglfs: + eglfs:eglfs_egldevice: + eglfs:eglfs_gbm: + evdev:evdev: + evdev:mtdev: + :fontconfig: + :system-freetype:FREETYPE + !:no-freetype: + gles2-only::OPENGL_ES + gles2-only:opengles2:OPENGL_ES_2 + !:no-gui: + :system-harfbuzz: + !:no-harfbuzz: + jpeg:system-jpeg:IMAGEFORMAT_JPEG + !jpeg:no-jpeg: + libinput + libinput:xkbcommon: + :opengl + png:png: + png:system-png:IMAGEFORMAT_PNG + !png:no-png: + tslib:tslib: + udev:libudev: + vulkan:vulkan: + X:xcb: + X:xcb-glx: + X:xcb-plugin: + X:xcb-render: + X:xcb-sm: + X:xcb-xlib: + X:xcb-xinput: +) + +QT5_GENTOO_PRIVATE_CONFIG=( + :gui +) + +src_prepare() { + # don't add -O3 to CXXFLAGS, bug 549140 + sed -i -e '/CONFIG\s*+=/s/optimize_full//' src/gui/gui.pro || die + + # egl_x11 is activated when both egl and X are enabled + use egl && QT5_GENTOO_CONFIG+=(X:egl_x11:) || QT5_GENTOO_CONFIG+=(egl:egl_x11:) + + qt_use_disable_config dbus dbus \ + src/platformsupport/themes/genericunix/genericunix.pri + + qt_use_disable_config tuio tuiotouch src/plugins/generic/generic.pro + + qt_use_disable_mod ibus dbus \ + src/plugins/platforminputcontexts/platforminputcontexts.pro + + use vnc || sed -i -e '/SUBDIRS += vnc/d' \ + src/plugins/platforms/platforms.pro || die + + qt5-build_src_prepare +} + +src_configure() { + local myconf=( + $(qt_use accessibility feature-accessibility-atspi-bridge) + $(usev dbus -dbus-linked) + $(qt_use egl) + $(qt_use eglfs) + $(usev eglfs '-gbm -kms') + $(qt_use evdev) + $(qt_use evdev mtdev) + -fontconfig + -system-freetype + -gui + -system-harfbuzz + $(qt_use jpeg libjpeg system) + $(qt_use libinput) + $(qt_use linuxfb) + -opengl $(usex gles2-only es2 desktop) + $(qt_use png libpng system) + $(qt_use tslib) + $(qt_use udev libudev) + $(qt_use vulkan) + $(qt_use X xcb) + $(usev X '-xcb-xlib') + ) + if use libinput || use X; then + myconf+=( -xkbcommon ) + fi + qt5-build_src_configure +} diff --git a/dev-qt/qtnetwork/Manifest b/dev-qt/qtnetwork/Manifest new file mode 100644 index 0000000..36e646e --- /dev/null +++ b/dev-qt/qtnetwork/Manifest @@ -0,0 +1,3 @@ +DIST qtbase-5.15-gentoo-patchset-6.tar.xz 8288 BLAKE2B ad9695a528345dd3b8e9ce72b7bdfe8f744f16685a567bbc7862ba6c28e5a426260cb0b73e2573cb3a6f16f1785786898ffb44c90f5d75354b97e5756c7573db SHA512 97bc4d5375e1750a5578439ff320ee2e5e929df1dafe56b4e86f2de8ad26c91dc4002e45ad75d9f936347d49b9f54c0c42f8fc2cb7dfd4f54bf08a210b3bc720 +DIST qtbase-5.15.18-gentoo-kde-1.tar.xz 450532 BLAKE2B 172732fe6a2f7dd4718b224d8a8ba7b182ded24f74ee38545d20a17364757153b399cae82b40f425e72b2587ec432f024868078edfe95280242211a040ddd9f6 SHA512 e0257171cf723cb6208a06f28fc95fa07d1239ea9dd3daa79d362146aa53e008398c9e1d95443b84d6d71b835a3f010b957e748f3ec23b77a588d6b372fd0c47 +DIST qtbase-everywhere-opensource-src-5.15.18.tar.xz 51492796 BLAKE2B a02f13f2ae8d3994fe5e3fa5b3751cb2981c3203cc4f3859dd4398d6a62101772885acb0c7b1f830ba8e9fbdd64ecfdb2a6074bfedd1bd372b4fc9ceb747467d SHA512 d39c831e6f3ddcd6a50f103ff60a0700b451f137782249508b7447a80066e3e9259c9b5038e6077ccf8df06b6afefec232c3c4dd331d85765089c92571708206 diff --git a/dev-qt/qtnetwork/metadata.xml b/dev-qt/qtnetwork/metadata.xml new file mode 100644 index 0000000..4593458 --- /dev/null +++ b/dev-qt/qtnetwork/metadata.xml @@ -0,0 +1,22 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Enable support for GSSAPI (virtual/krb5) + Use net-libs/libproxy for automatic + HTTP/SOCKS proxy configuration + + + https://qt-project.atlassian.net/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtnetwork/qtnetwork-5.15.18.ebuild b/dev-qt/qtnetwork/qtnetwork-5.15.18.ebuild new file mode 100644 index 0000000..20540ef --- /dev/null +++ b/dev-qt/qtnetwork/qtnetwork-5.15.18.ebuild @@ -0,0 +1,62 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +QT5_MODULE="qtbase" +inherit qt5-build + +DESCRIPTION="Network abstraction library for the Qt5 framework" + +IUSE="gssapi libproxy sctp +ssl" + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}*:5= + virtual/zlib:= + gssapi? ( virtual/krb5 ) + libproxy? ( net-libs/libproxy ) + sctp? ( kernel_linux? ( net-misc/lksctp-tools ) ) + ssl? ( >=dev-libs/openssl-1.1.1:0= ) +" +RDEPEND="${DEPEND}" + +QT5_TARGET_SUBDIRS=( + src/network + src/plugins/bearer/generic +) + +QT5_GENTOO_CONFIG=( + libproxy:libproxy: + ssl::SSL + ssl::OPENSSL + ssl:openssl-linked:LINKED_OPENSSL +) + +QT5_GENTOO_PRIVATE_CONFIG=( + :network +) + +src_configure() { + local myconf=( + $(qt_use gssapi feature-gssapi) + $(qt_use libproxy) + $(qt_use sctp) + $(usev ssl -openssl-linked) + ) + qt5-build_src_configure +} + +src_install() { + qt5-build_src_install + + # workaround for bug 652650 + if use ssl; then + sed -e "/^#define QT_LINKED_OPENSSL/s/$/ true/" \ + -i "${D}${QT5_HEADERDIR}"/Gentoo/${PN}-qconfig.h || die + fi +} diff --git a/dev-qt/qtquickcontrols/Manifest b/dev-qt/qtquickcontrols/Manifest new file mode 100644 index 0000000..eb6e71b --- /dev/null +++ b/dev-qt/qtquickcontrols/Manifest @@ -0,0 +1 @@ +DIST qtquickcontrols-everywhere-opensource-src-5.15.18.tar.xz 5960964 BLAKE2B d380286f20257bacdf86a6aa97b8e935d9b5477bb25f54ddc97bbdf1adf208ab0ade48463dd9905b98eb2c99a05ef81b55fa452d75287235f58adef14cc16e80 SHA512 9bd2bcd119d162f8ef30b2e1f459776a66b504f5043809cc0846b7c4898ca464eb44f65d1c76d3857a12eef7126ec8a84f8ac3566b5c3200b65572a3ff9296f7 diff --git a/dev-qt/qtquickcontrols/metadata.xml b/dev-qt/qtquickcontrols/metadata.xml new file mode 100644 index 0000000..20e0464 --- /dev/null +++ b/dev-qt/qtquickcontrols/metadata.xml @@ -0,0 +1,20 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Enable QtWidgets support + + + https://qt-project.atlassian.net/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtquickcontrols/qtquickcontrols-5.15.18.ebuild b/dev-qt/qtquickcontrols/qtquickcontrols-5.15.18.ebuild new file mode 100644 index 0000000..30f0ec4 --- /dev/null +++ b/dev-qt/qtquickcontrols/qtquickcontrols-5.15.18.ebuild @@ -0,0 +1,33 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit qt5-build + +DESCRIPTION="Set of Qt Quick controls to create complete user interfaces (deprecated)" + +if [[ ${QT5_BUILD_TYPE} == release ]]; then + KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +IUSE="+widgets" + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}* + =dev-qt/qtdeclarative-${QT5_PV}* + =dev-qt/qtgui-${QT5_PV}* + widgets? ( =dev-qt/qtwidgets-${QT5_PV}* ) +" +RDEPEND="${DEPEND}" + +src_prepare() { + qt_use_disable_mod widgets widgets \ + src/src.pro \ + src/controls/Private/private.pri \ + tests/auto/activeFocusOnTab/activeFocusOnTab.pro \ + tests/auto/controls/controls.pro \ + tests/auto/testplugin/testplugin.pro + + qt5-build_src_prepare +} diff --git a/dev-qt/qtquickcontrols2/Manifest b/dev-qt/qtquickcontrols2/Manifest new file mode 100644 index 0000000..4e3cb3c --- /dev/null +++ b/dev-qt/qtquickcontrols2/Manifest @@ -0,0 +1,2 @@ +DIST qtquickcontrols2-5.15.18-gentoo-kde-1.tar.xz 6284 BLAKE2B 8a9aec66bb75cd45b4cc96162b6cd55a98f357938903d1544b72c9de120389f4c01314cc7c0e04cfcac5908c798695f9f50942ccf682e09d62dfff5c65a5ed86 SHA512 044d06524317aad9b234136a758cd0db0af514ba022a3cd7777544136579a7fcc52fe156cf1e9e11c5fdab7a980d78f088eb82f7a83ec3d660c760df7a580182 +DIST qtquickcontrols2-everywhere-opensource-src-5.15.18.tar.xz 8272372 BLAKE2B 414255b06745b2ec8f7aaaf18ba0971e31f28d8f8756c744b64a5e2faa03f3b62c22c3f06b794f11e940275204166ec1d3d269c73ef5bd8df6a0649485ba88a6 SHA512 29d0904c949b4970eae576d20f94b5c92f1fcb71056bb085b6ea8421c894aa265ae9a5cdbd6e21ac849f14385833ed2961a18dcc2c66ea6ed8a28feb51bd7375 diff --git a/dev-qt/qtquickcontrols2/metadata.xml b/dev-qt/qtquickcontrols2/metadata.xml new file mode 100644 index 0000000..20e0464 --- /dev/null +++ b/dev-qt/qtquickcontrols2/metadata.xml @@ -0,0 +1,20 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Enable QtWidgets support + + + https://qt-project.atlassian.net/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtquickcontrols2/qtquickcontrols2-5.15.18.ebuild b/dev-qt/qtquickcontrols2/qtquickcontrols2-5.15.18.ebuild new file mode 100644 index 0000000..f5240fd --- /dev/null +++ b/dev-qt/qtquickcontrols2/qtquickcontrols2-5.15.18.ebuild @@ -0,0 +1,32 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 ~arm arm64 ~loong ppc64 ~riscv x86" +fi + +inherit qt5-build + +DESCRIPTION="Set of next generation Qt Quick controls for the Qt5 framework" + +IUSE="widgets" + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}* + =dev-qt/qtdeclarative-${QT5_PV}* + =dev-qt/qtgui-${QT5_PV}* + widgets? ( =dev-qt/qtwidgets-${QT5_PV}* ) +" +RDEPEND="${DEPEND} + =dev-qt/qtgraphicaleffects-${QT5_PV}* +" + +src_prepare() { + qt_use_disable_mod widgets widgets \ + src/imports/platform/platform.pro + + qt5-build_src_prepare +} diff --git a/dev-qt/qtsql/Manifest b/dev-qt/qtsql/Manifest new file mode 100644 index 0000000..36e646e --- /dev/null +++ b/dev-qt/qtsql/Manifest @@ -0,0 +1,3 @@ +DIST qtbase-5.15-gentoo-patchset-6.tar.xz 8288 BLAKE2B ad9695a528345dd3b8e9ce72b7bdfe8f744f16685a567bbc7862ba6c28e5a426260cb0b73e2573cb3a6f16f1785786898ffb44c90f5d75354b97e5756c7573db SHA512 97bc4d5375e1750a5578439ff320ee2e5e929df1dafe56b4e86f2de8ad26c91dc4002e45ad75d9f936347d49b9f54c0c42f8fc2cb7dfd4f54bf08a210b3bc720 +DIST qtbase-5.15.18-gentoo-kde-1.tar.xz 450532 BLAKE2B 172732fe6a2f7dd4718b224d8a8ba7b182ded24f74ee38545d20a17364757153b399cae82b40f425e72b2587ec432f024868078edfe95280242211a040ddd9f6 SHA512 e0257171cf723cb6208a06f28fc95fa07d1239ea9dd3daa79d362146aa53e008398c9e1d95443b84d6d71b835a3f010b957e748f3ec23b77a588d6b372fd0c47 +DIST qtbase-everywhere-opensource-src-5.15.18.tar.xz 51492796 BLAKE2B a02f13f2ae8d3994fe5e3fa5b3751cb2981c3203cc4f3859dd4398d6a62101772885acb0c7b1f830ba8e9fbdd64ecfdb2a6074bfedd1bd372b4fc9ceb747467d SHA512 d39c831e6f3ddcd6a50f103ff60a0700b451f137782249508b7447a80066e3e9259c9b5038e6077ccf8df06b6afefec232c3c4dd331d85765089c92571708206 diff --git a/dev-qt/qtsql/metadata.xml b/dev-qt/qtsql/metadata.xml new file mode 100644 index 0000000..3c434f4 --- /dev/null +++ b/dev-qt/qtsql/metadata.xml @@ -0,0 +1,17 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + https://qt-project.atlassian.net/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtsql/qtsql-5.15.18.ebuild b/dev-qt/qtsql/qtsql-5.15.18.ebuild new file mode 100644 index 0000000..841a406 --- /dev/null +++ b/dev-qt/qtsql/qtsql-5.15.18.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Looking for Qt 6? It is packaged differently to Qt 5 with different +# package names: https://wiki.gentoo.org/wiki/Project:Qt/Qt6_migration_notes + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +QT5_MODULE="qtbase" +inherit qt5-build + +DESCRIPTION="SQL abstraction library for the Qt5 framework" + +SLOT=5/${QT5_PV} # bug 639140 +IUSE="freetds mysql oci8 odbc postgres +sqlite" +REQUIRED_USE=" + || ( freetds mysql oci8 odbc postgres sqlite ) +" + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}*:5= + freetds? ( dev-db/freetds ) + mysql? ( dev-db/mysql-connector-c:= ) + oci8? ( dev-db/oracle-instantclient:=[sdk] ) + odbc? ( dev-db/unixODBC ) + postgres? ( dev-db/postgresql:* ) + sqlite? ( dev-db/sqlite:3 ) +" +RDEPEND="${DEPEND}" + +QT5_TARGET_SUBDIRS=( + src/sql + src/plugins/sqldrivers +) + +QT5_GENTOO_PRIVATE_CONFIG=( + :sql +) + +src_configure() { + local myconf=( + $(qt_use freetds sql-tds plugin) + $(qt_use mysql sql-mysql plugin) + $(qt_use oci8 sql-oci plugin) + $(qt_use odbc sql-odbc plugin) + $(qt_use postgres sql-psql plugin) + $(qt_use sqlite sql-sqlite plugin) + $(usev sqlite -system-sqlite) + ) + + use oci8 && myconf+=("-I${ORACLE_HOME}/include" "-L${ORACLE_HOME}/$(get_libdir)") + + qt5-build_src_configure +} diff --git a/dev-qt/qtwebsockets/Manifest b/dev-qt/qtwebsockets/Manifest new file mode 100644 index 0000000..5cc2565 --- /dev/null +++ b/dev-qt/qtwebsockets/Manifest @@ -0,0 +1,2 @@ +DIST qtwebsockets-everywhere-src-6.10.3.tar.xz 447640 BLAKE2B 46544efcdeb266914c8933cadb95b4fb5cf6380b45d9810f4f57ce1c85f329da73be0b67245739fef6c95fcd8a9f15a00b1f64c3a988d7286dc06aaca3f41e97 SHA512 6e335c47b5d283d40f2a75f8b36a34524a9c7c18906007471cf12b8e4ea9a35fc7693aec1dc2c9c87921495806699ccab958d5ce6170ae1409de92bb643aad09 +DIST qtwebsockets-everywhere-src-6.11.1.tar.xz 452228 BLAKE2B 0bd24edf8f20a70be52fcbd3cc4672c02d33445abe8153388e2023f8846411879819d3b29848caa1cb3dfd69161ab447442d0d2b9a3f988ccdfefaeb9efa013a SHA512 f6189482219e20b40bf7e4ac9d188d5184a25ca65c3978f51d3298bfd557ef49448b6bd3984f6cbf0d94897613cfc9ae16c63cec5149a432808fabaf56bd914a diff --git a/dev-qt/qtwebsockets/metadata.xml b/dev-qt/qtwebsockets/metadata.xml new file mode 100644 index 0000000..341fcb2 --- /dev/null +++ b/dev-qt/qtwebsockets/metadata.xml @@ -0,0 +1,21 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Build QML bindings + + + https://qt-project.atlassian.net/ + https://doc.qt.io/ + qt/qtwebsockets + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtwebsockets/qtwebsockets-6.10.3.ebuild b/dev-qt/qtwebsockets/qtwebsockets-6.10.3.ebuild new file mode 100644 index 0000000..e241c72 --- /dev/null +++ b/dev-qt/qtwebsockets/qtwebsockets-6.10.3.ebuild @@ -0,0 +1,28 @@ +# Copyright 2021-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit qt6-build + +DESCRIPTION="Implementation of the WebSocket protocol for the Qt6 framework" + +if [[ ${QT6_BUILD_TYPE} == release ]]; then + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +IUSE="qml +ssl" + +RDEPEND=" + ~dev-qt/qtbase-${PV}:6[network,ssl=] + qml? ( ~dev-qt/qtdeclarative-${PV}:6 ) +" +DEPEND="${RDEPEND}" + +src_configure() { + local mycmakeargs=( + $(cmake_use_find_package qml Qt6Quick) + ) + + qt6-build_src_configure +} diff --git a/dev-qt/qtwebsockets/qtwebsockets-6.11.1.ebuild b/dev-qt/qtwebsockets/qtwebsockets-6.11.1.ebuild new file mode 100644 index 0000000..e241c72 --- /dev/null +++ b/dev-qt/qtwebsockets/qtwebsockets-6.11.1.ebuild @@ -0,0 +1,28 @@ +# Copyright 2021-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit qt6-build + +DESCRIPTION="Implementation of the WebSocket protocol for the Qt6 framework" + +if [[ ${QT6_BUILD_TYPE} == release ]]; then + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +IUSE="qml +ssl" + +RDEPEND=" + ~dev-qt/qtbase-${PV}:6[network,ssl=] + qml? ( ~dev-qt/qtdeclarative-${PV}:6 ) +" +DEPEND="${RDEPEND}" + +src_configure() { + local mycmakeargs=( + $(cmake_use_find_package qml Qt6Quick) + ) + + qt6-build_src_configure +} diff --git a/dev-qt/qtwebsockets/qtwebsockets-6.11.9999.ebuild b/dev-qt/qtwebsockets/qtwebsockets-6.11.9999.ebuild new file mode 100644 index 0000000..17a0961 --- /dev/null +++ b/dev-qt/qtwebsockets/qtwebsockets-6.11.9999.ebuild @@ -0,0 +1,28 @@ +# Copyright 2021-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit qt6-build + +DESCRIPTION="Implementation of the WebSocket protocol for the Qt6 framework" + +if [[ ${QT6_BUILD_TYPE} == release ]]; then + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86" +fi + +IUSE="qml +ssl" + +RDEPEND=" + ~dev-qt/qtbase-${PV}:6[network,ssl=] + qml? ( ~dev-qt/qtdeclarative-${PV}:6 ) +" +DEPEND="${RDEPEND}" + +src_configure() { + local mycmakeargs=( + $(cmake_use_find_package qml Qt6Quick) + ) + + qt6-build_src_configure +} diff --git a/dev-qt/qtwebsockets/qtwebsockets-6.12.9999.ebuild b/dev-qt/qtwebsockets/qtwebsockets-6.12.9999.ebuild new file mode 100644 index 0000000..51296a7 --- /dev/null +++ b/dev-qt/qtwebsockets/qtwebsockets-6.12.9999.ebuild @@ -0,0 +1,28 @@ +# Copyright 2021-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit qt6-build + +DESCRIPTION="Implementation of the WebSocket protocol for the Qt6 framework" + +if [[ ${QT6_BUILD_TYPE} == release ]]; then + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86" +fi + +IUSE="qml +ssl" + +RDEPEND=" + ~dev-qt/qtbase-${PV}:6[network,ssl=] + qml? ( ~dev-qt/qtdeclarative-${PV}:6 ) +" +DEPEND="${RDEPEND}" + +src_configure() { + local mycmakeargs=( + $(cmake_use_find_package qml Qt6Quick) + ) + + qt6-build_src_configure +} diff --git a/dev-qt/qtwebsockets/qtwebsockets-6.9999.ebuild b/dev-qt/qtwebsockets/qtwebsockets-6.9999.ebuild new file mode 100644 index 0000000..d7e808f --- /dev/null +++ b/dev-qt/qtwebsockets/qtwebsockets-6.9999.ebuild @@ -0,0 +1,28 @@ +# Copyright 2021-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit qt6-build + +DESCRIPTION="Implementation of the WebSocket protocol for the Qt6 framework" + +if [[ ${QT6_BUILD_TYPE} == release ]]; then + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86" +fi + +IUSE="qml +ssl" + +RDEPEND=" + ~dev-qt/qtbase-${PV}:6[network,ssl=] + qml? ( ~dev-qt/qtdeclarative-${PV}:6 ) +" +DEPEND="${RDEPEND}" + +src_configure() { + local mycmakeargs=( + $(cmake_use_find_package qml Qt6Quick) + ) + + qt6-build_src_configure +} diff --git a/dev-qt/qtwidgets/Manifest b/dev-qt/qtwidgets/Manifest new file mode 100644 index 0000000..36e646e --- /dev/null +++ b/dev-qt/qtwidgets/Manifest @@ -0,0 +1,3 @@ +DIST qtbase-5.15-gentoo-patchset-6.tar.xz 8288 BLAKE2B ad9695a528345dd3b8e9ce72b7bdfe8f744f16685a567bbc7862ba6c28e5a426260cb0b73e2573cb3a6f16f1785786898ffb44c90f5d75354b97e5756c7573db SHA512 97bc4d5375e1750a5578439ff320ee2e5e929df1dafe56b4e86f2de8ad26c91dc4002e45ad75d9f936347d49b9f54c0c42f8fc2cb7dfd4f54bf08a210b3bc720 +DIST qtbase-5.15.18-gentoo-kde-1.tar.xz 450532 BLAKE2B 172732fe6a2f7dd4718b224d8a8ba7b182ded24f74ee38545d20a17364757153b399cae82b40f425e72b2587ec432f024868078edfe95280242211a040ddd9f6 SHA512 e0257171cf723cb6208a06f28fc95fa07d1239ea9dd3daa79d362146aa53e008398c9e1d95443b84d6d71b835a3f010b957e748f3ec23b77a588d6b372fd0c47 +DIST qtbase-everywhere-opensource-src-5.15.18.tar.xz 51492796 BLAKE2B a02f13f2ae8d3994fe5e3fa5b3751cb2981c3203cc4f3859dd4398d6a62101772885acb0c7b1f830ba8e9fbdd64ecfdb2a6074bfedd1bd372b4fc9ceb747467d SHA512 d39c831e6f3ddcd6a50f103ff60a0700b451f137782249508b7447a80066e3e9259c9b5038e6077ccf8df06b6afefec232c3c4dd331d85765089c92571708206 diff --git a/dev-qt/qtwidgets/metadata.xml b/dev-qt/qtwidgets/metadata.xml new file mode 100644 index 0000000..7aaadae --- /dev/null +++ b/dev-qt/qtwidgets/metadata.xml @@ -0,0 +1,20 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Build the GTK platform theme plugin + + + https://qt-project.atlassian.net/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtwidgets/qtwidgets-5.15.18.ebuild b/dev-qt/qtwidgets/qtwidgets-5.15.18.ebuild new file mode 100644 index 0000000..1580665 --- /dev/null +++ b/dev-qt/qtwidgets/qtwidgets-5.15.18.ebuild @@ -0,0 +1,63 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +QT5_MODULE="qtbase" +inherit qt5-build + +DESCRIPTION="Set of components for creating classic desktop-style UIs for the Qt5 framework" + +# keep IUSE defaults in sync with qtgui +IUSE="dbus gles2-only gtk +png +X" +REQUIRED_USE="gtk? ( dbus )" + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}*:5= + =dev-qt/qtgui-${QT5_PV}*:5=[gles2-only=,png=,X?] + dbus? ( =dev-qt/qtdbus-${QT5_PV}* ) + gtk? ( + dev-libs/glib:2 + =dev-qt/qtgui-${QT5_PV}*:5=[dbus] + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/pango + ) +" +RDEPEND="${DEPEND}" + +QT5_TARGET_SUBDIRS=( + src/tools/uic + src/widgets + src/plugins/platformthemes +) + +QT5_GENTOO_CONFIG=( + dbus:xdgdesktopportal: + gtk:gtk3: + ::widgets + !:no-widgets: +) + +QT5_GENTOO_PRIVATE_CONFIG=( + :widgets +) + +src_configure() { + local myconf=( + -opengl $(usex gles2-only es2 desktop) + $(usev dbus -dbus-linked) + $(qt_use gtk) + -gui + $(qt_use png libpng system) + -widgets + $(qt_use X xcb) + $(usev X '-xcb-xlib -xkbcommon') + ) + qt5-build_src_configure +} diff --git a/dev-qt/qtxml/Manifest b/dev-qt/qtxml/Manifest new file mode 100644 index 0000000..36e646e --- /dev/null +++ b/dev-qt/qtxml/Manifest @@ -0,0 +1,3 @@ +DIST qtbase-5.15-gentoo-patchset-6.tar.xz 8288 BLAKE2B ad9695a528345dd3b8e9ce72b7bdfe8f744f16685a567bbc7862ba6c28e5a426260cb0b73e2573cb3a6f16f1785786898ffb44c90f5d75354b97e5756c7573db SHA512 97bc4d5375e1750a5578439ff320ee2e5e929df1dafe56b4e86f2de8ad26c91dc4002e45ad75d9f936347d49b9f54c0c42f8fc2cb7dfd4f54bf08a210b3bc720 +DIST qtbase-5.15.18-gentoo-kde-1.tar.xz 450532 BLAKE2B 172732fe6a2f7dd4718b224d8a8ba7b182ded24f74ee38545d20a17364757153b399cae82b40f425e72b2587ec432f024868078edfe95280242211a040ddd9f6 SHA512 e0257171cf723cb6208a06f28fc95fa07d1239ea9dd3daa79d362146aa53e008398c9e1d95443b84d6d71b835a3f010b957e748f3ec23b77a588d6b372fd0c47 +DIST qtbase-everywhere-opensource-src-5.15.18.tar.xz 51492796 BLAKE2B a02f13f2ae8d3994fe5e3fa5b3751cb2981c3203cc4f3859dd4398d6a62101772885acb0c7b1f830ba8e9fbdd64ecfdb2a6074bfedd1bd372b4fc9ceb747467d SHA512 d39c831e6f3ddcd6a50f103ff60a0700b451f137782249508b7447a80066e3e9259c9b5038e6077ccf8df06b6afefec232c3c4dd331d85765089c92571708206 diff --git a/dev-qt/qtxml/metadata.xml b/dev-qt/qtxml/metadata.xml new file mode 100644 index 0000000..3c434f4 --- /dev/null +++ b/dev-qt/qtxml/metadata.xml @@ -0,0 +1,17 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + https://qt-project.atlassian.net/ + https://doc.qt.io/ + + + + Must only be used by packages that are known to use private parts of the Qt API. + + + diff --git a/dev-qt/qtxml/qtxml-5.15.18.ebuild b/dev-qt/qtxml/qtxml-5.15.18.ebuild new file mode 100644 index 0000000..2c18001 --- /dev/null +++ b/dev-qt/qtxml/qtxml-5.15.18.ebuild @@ -0,0 +1,29 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=1 + KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86" +fi + +QT5_MODULE="qtbase" +inherit qt5-build + +DESCRIPTION="Implementation of SAX and DOM for the Qt5 framework" + +IUSE="" + +RDEPEND="=dev-qt/qtcore-${QT5_PV}*:5=" +DEPEND="${RDEPEND} + test? ( =dev-qt/qtnetwork-${QT5_PV}* ) +" + +QT5_TARGET_SUBDIRS=( + src/xml +) + +QT5_GENTOO_PRIVATE_CONFIG=( + :xml +)