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