diff --git a/dev-qt/metadata.xml b/dev-qt/metadata.xml
new file mode 100644
index 0000000..5ea359f
--- /dev/null
+++ b/dev-qt/metadata.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ The dev-qt category contains packages for the Qt framework modules and
+ directly related libraries and development applications from the upstream
+ Qt Project. Do not add other packages to this category.
+
+
+ Die Kategorie dev-qt enthält Pakete für die Qt-Framework-Module
+ sowie direkt zugehörige Bibliotheken und Entwicklungsanwendungen
+ des Qt-Upstream-Projekts. Zu dieser Kategorie sollen keine anderen
+ Pakete hinzugefügt werden.
+
+
+ La categoría dev-qt contiene paquetes para los módulos del marco de trabajo
+ Qt y las librerías y aplicaciones de desarrollo directamente relacionadas
+ del proyecto Qt. No añadir otros paquetes a esta categoría.
+
+
diff --git a/dev-qt/qtconcurrent/Manifest b/dev-qt/qtconcurrent/Manifest
new file mode 100644
index 0000000..bb40b18
--- /dev/null
+++ b/dev-qt/qtconcurrent/Manifest
@@ -0,0 +1,5 @@
+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
+EBUILD qtconcurrent-5.15.18.ebuild 460 BLAKE2B 0d71351b14357bd93c19707127b48ca52fb99cec04f81fe7fa29cf9c3eda3f96309b71eddee24486fb0cbfcc64c731b44bd0dd9c4325c1cc495e5cad95b7793b SHA512 700b1e1a9c056719be9135c2e8762a5f998e6b73260a3f947b5f14b364086a3fe055ca4459802464461d585216dd8d53e317dccb5958dc90878574bde87a1c1e
+MISC metadata.xml 482 BLAKE2B 651a49dc4a07f5e5a9c21990868e666d98acdea7d7b0b2c0e4c98eafc3da72c803d380e4abda30f33250f7bbd7654df713833ccdddcb975cbad6f92e488f643b SHA512 192c670abd7da29645513bf1d9297d942efdc49f5cf170861e7689fda47f51daa47f10c7c81c3b045366e0259179c6839ff7747197c9d792e8d0fd1a5818973e
diff --git a/dev-qt/qtconcurrent/metadata.xml b/dev-qt/qtconcurrent/metadata.xml
new file mode 100644
index 0000000..ae8aa95
--- /dev/null
+++ b/dev-qt/qtconcurrent/metadata.xml
@@ -0,0 +1,17 @@
+
+
+
+
+ qt@gentoo.org
+ Gentoo Qt Project
+
+
+ https://bugreports.qt.io/
+ 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..d09da1b
--- /dev/null
+++ b/dev-qt/qtcore/Manifest
@@ -0,0 +1,6 @@
+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
+EBUILD qtcore-5.15.18.ebuild 4442 BLAKE2B 78a0242050819cb897991920838aa2f65f51702dee650021b81e232456bd5c8d33af5091ca9a5b2fde53c164533c7cf18ea3b5fe91ca3b88042f013512c8a4ca SHA512 e9567b248d57ffff2e639ccf12f693eb000e56e088cb254f594fafd1eba74df5a07650cc4d4f468c7bcd9863dc5be95aa517192fdf6386c53d3b1a5d886c4951
+MISC Manifest.bak 1630 BLAKE2B 361d3508002a3a1e699943867eb2e6196eecd366d1c8e423cff21bf44e0f81d008b6213e0ceaa73511b996aeb3f05c587cdb49cdd69bd703575051f188dbb723 SHA512 40252d167f733b1eb0900631ca4e3380f6c13206051e0081bda5a2a36a1f932cd4d57a482e273faf2d0e28a4a67a9dfd904d93342c8ae8a95683008a0f0d08a7
+MISC metadata.xml 594 BLAKE2B 0cefc88e620290c30db5f52e6804c43541617009ba05cc517a5c8b1c4039be9af9991e6e5b893577da3df52a83b70bd9f07a8061c518e9b52fdfdeb93a7df17f SHA512 73036ec739b85ea13025828f2526bce9d9fa6a3db3578925e4a4294be92a15dbe0f3af4db206690e3e786237312b3a23cb028a15abdd216e251db849a381a5be
diff --git a/dev-qt/qtcore/Manifest.bak b/dev-qt/qtcore/Manifest.bak
new file mode 100644
index 0000000..691fce5
--- /dev/null
+++ b/dev-qt/qtcore/Manifest.bak
@@ -0,0 +1,5 @@
+DIST qtbase-5.15-gentoo-patchset-6.tar.xz 8288 BLAKE2B ad9695a528345dd3b8e9ce72b7bdfe8f744f16685a567bbc7862ba6c28e5a426260cb0b73e2573cb3a6f16f1785786898ffb44c90f5d75354b97e5756c7573db SHA512 97bc4d5375e1750a5578439ff320ee2e5e929df1dafe56b4e86f2de8ad26c91dc4002e45ad75d9f936347d49b9f54c0c42f8fc2cb7dfd4f54bf08a210b3bc720
+DIST qtbase-5.15.16-gentoo-kde-1.tar.xz 319504 BLAKE2B 52675483f6be19a3efbddbe68335ee575852859137c51ca9e7cc219740a3529d270cb2af085eee8de1964c2171eab4f0c64b79c03f1bac453a4829748aff528d SHA512 0a38ce02b563f79364f3559fda4d4e13092ee79b820fb780db10e40af3bac158ee139e1a216f4de3c986eacbd933965e7ed8c261de7a65d487981887aed840dd
+DIST qtbase-5.15.17-gentoo-kde-1.tar.xz 314280 BLAKE2B a13b0589fab0f43be9b2ba6a669845572ee499363cbe2a8c0975eaf193101960f11efc96f3324d8662a458e41bea42e6d706b3f099f4cfbbea585cab8c3f3f55 SHA512 4b12db534e9fa5f24f597f4e760c8b70d5a41e732b588a9a53f95f4e849cb07a5c8a7f4c3fb690c8b98986a13b1c972b9aac15cfe43ef5b8ab26492b8987169a
+DIST qtbase-everywhere-opensource-src-5.15.16.tar.xz 51392072 BLAKE2B f7f83f18f91200350eff4d2d8d56769b537540290434a1c434d7c891b0b533d5a77000b5a670228a947d74c21f131f207b31aeb96f1f2ec867bbf608202c99b0 SHA512 190581c7df9763c2550466f884784d6f38817a087ab44fe57b99c1d1ac2ea3bae94ced8a6d0873a7999e523d63831d135cd7407812c8814ac4ef957840b7058e
+DIST qtbase-everywhere-opensource-src-5.15.17.tar.xz 51478524 BLAKE2B 1700126de93ecfc2efd128056a295b8fdd2293e2df41e4fefa3d6f61c250d1ae8502a483192ffa85bd1fbd8d086cfd26612c951fb822c19bd0ec3f1b49241968 SHA512 8be592e27279d1009b596535fee95cb6fa8a379e991db5b0f3fa24fcddde7433d2cdfe2cd3fc5fff3f8e112110c5d8fa60c9efd9254053ea08ded5c3f9b73571
diff --git a/dev-qt/qtcore/metadata.xml b/dev-qt/qtcore/metadata.xml
new file mode 100644
index 0000000..2bc45af
--- /dev/null
+++ b/dev-qt/qtcore/metadata.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ qt@gentoo.org
+ Gentoo Qt Project
+
+
+
+ https://bugreports.qt.io/
+ 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..cba53d4
--- /dev/null
+++ b/dev-qt/qtdbus/Manifest
@@ -0,0 +1,5 @@
+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
+EBUILD qtdbus-5.15.18.ebuild 698 BLAKE2B 9ead6dcd645a7422c8297ad57e3c3cb549ad3f9d22fbfa5dd7d9d925ef2f69bc591bbc132c140dee40d72d40e237cf2a418ebe2ea6638579202505187ca0e7d6 SHA512 a0de38144a48f109c12ecabecc9e09c33d287dfa0dde2400ab8b7a8c9086cd7a7e2be6bfd845cc667a491a57661104f57ac67afd8c804d63182e6e20f91163cb
+MISC metadata.xml 482 BLAKE2B 651a49dc4a07f5e5a9c21990868e666d98acdea7d7b0b2c0e4c98eafc3da72c803d380e4abda30f33250f7bbd7654df713833ccdddcb975cbad6f92e488f643b SHA512 192c670abd7da29645513bf1d9297d942efdc49f5cf170861e7689fda47f51daa47f10c7c81c3b045366e0259179c6839ff7747197c9d792e8d0fd1a5818973e
diff --git a/dev-qt/qtdbus/metadata.xml b/dev-qt/qtdbus/metadata.xml
new file mode 100644
index 0000000..ae8aa95
--- /dev/null
+++ b/dev-qt/qtdbus/metadata.xml
@@ -0,0 +1,17 @@
+
+
+
+
+ qt@gentoo.org
+ Gentoo Qt Project
+
+
+ https://bugreports.qt.io/
+ 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..3ab58b0
--- /dev/null
+++ b/dev-qt/qtdeclarative/Manifest
@@ -0,0 +1,6 @@
+AUX qtdeclarative-5.14.2-QQuickItemView-fix-maxXY-extent.patch 1566 BLAKE2B b6436c9be0a7de092635e1fc3999c3142fc3e916cbcc69f472691bbd559f611b4d5741f3627c47162a5ac86126382507add72a25a121235e856b1de802ee19be SHA512 dd5193f8d8a051238dabf63306cc77e3a5696fc12241c27f35cadfd30763ddfeb2af7d640849dcc7a810b7087173b8e9af17341ea1b68440906f2c2f1f96fee3
+AUX qtdeclarative-5.15.18-CVE-2025-12385.patch 4265 BLAKE2B fbe76a2dae5c8dc01bdd5453bad026d367fc18adc7d3a5c25af238d6562b069eba643eb3f68f8594bd62cd95a8e7cda4e53d006ac8d10812899a12cb0d812b3b SHA512 0bb3df9e215fcf8aa0b3eb016d0118dabb360446e5b080a0204fde55b1c880ab017f2085d934fbb9eae05fe1cd9bf4a4ef85cfa1f8ba75eb9fa52026a16c96cd
+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
+EBUILD qtdeclarative-5.15.18-r1.ebuild 1670 BLAKE2B 8a0b114fc36908c39acfa4d240df38f3707a56d761a2a546904fd3908e76eeda3e9884ac08f046ab711264f4883da54e1878ff82aa9ff66aab6033ea3151a5b5 SHA512 aca2e703c12551e68cdbe992dde667f8a38e85b66b929e57a614dac3563e2fd59b14f4fe200105d7e0ed4202f601bdc90827a9a526228188dce57bb33cd3aaa2
+MISC metadata.xml 945 BLAKE2B 8a5d26ab3274cb9ca8b7cf3dceddcd33d9690cd20194adc63b80cd5e13e11d222d48473232b4e2cb41cecf1f51b33df4458811b6fb622a41519f0f3f0223b578 SHA512 a4c587afdbb0320e0f23f47a3ae58e2f69e86a0f539bf613c275ab0be7b9490d33d9c9de35ace02d3cfef903f3e6c7caf492cfdfa53c989b2d56e6c7288f4552
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/metadata.xml b/dev-qt/qtdeclarative/metadata.xml
new file mode 100644
index 0000000..b6df94c
--- /dev/null
+++ b/dev-qt/qtdeclarative/metadata.xml
@@ -0,0 +1,26 @@
+
+
+
+
+ qt@gentoo.org
+ Gentoo Qt Project
+
+
+
+ https://bugreports.qt.io/
+ 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/qtgraphicaleffects/Manifest b/dev-qt/qtgraphicaleffects/Manifest
new file mode 100644
index 0000000..3d79fb6
--- /dev/null
+++ b/dev-qt/qtgraphicaleffects/Manifest
@@ -0,0 +1,3 @@
+DIST qtgraphicaleffects-everywhere-opensource-src-5.15.18.tar.xz 14021560 BLAKE2B 20c197be8ef578bc06bbf229daa0f62061f379728a064acf18d447e51df5f4e51d06d9a61f00ac7c39a582c906a1874576f8f3787595f7fe0cfb90a190e2d12e SHA512 6fff9181d8d0a4f55987e2b219d35adf4db28429206e4ec0572a03664c155aea046a08a1d820fbc5d27f9f3ec4c60768823959c5839766ab2768f64c440273da
+EBUILD qtgraphicaleffects-5.15.18.ebuild 473 BLAKE2B b3a02acf8de8e202f39fcb8a782b8769de159091cddedb5bf1a8a9387ac924593b823b6faab747ec19d49dea1291591333494d030c7f0b8b668a2dd59ee2b147 SHA512 799a821796fdfbc26e8f12df54ee799dd2eec3caa5e3b722e9ed8e2379f24cf5c51c545443024cf3aeb8b3f03e9b8a3b9794d3546aebd5fc53de87f41f076bcd
+MISC metadata.xml 482 BLAKE2B 651a49dc4a07f5e5a9c21990868e666d98acdea7d7b0b2c0e4c98eafc3da72c803d380e4abda30f33250f7bbd7654df713833ccdddcb975cbad6f92e488f643b SHA512 192c670abd7da29645513bf1d9297d942efdc49f5cf170861e7689fda47f51daa47f10c7c81c3b045366e0259179c6839ff7747197c9d792e8d0fd1a5818973e
diff --git a/dev-qt/qtgraphicaleffects/metadata.xml b/dev-qt/qtgraphicaleffects/metadata.xml
new file mode 100644
index 0000000..ae8aa95
--- /dev/null
+++ b/dev-qt/qtgraphicaleffects/metadata.xml
@@ -0,0 +1,17 @@
+
+
+
+
+ qt@gentoo.org
+ Gentoo Qt Project
+
+
+ https://bugreports.qt.io/
+ 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/qtgraphicaleffects/qtgraphicaleffects-5.15.18.ebuild b/dev-qt/qtgraphicaleffects/qtgraphicaleffects-5.15.18.ebuild
new file mode 100644
index 0000000..46119e1
--- /dev/null
+++ b/dev-qt/qtgraphicaleffects/qtgraphicaleffects-5.15.18.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VIRTUALX_REQUIRED="test"
+inherit qt5-build
+
+DESCRIPTION="Set of QML types for adding visual effects to user interfaces"
+
+if [[ ${QT5_BUILD_TYPE} == release ]]; then
+ KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86"
+fi
+
+IUSE=""
+
+RDEPEND="
+ =dev-qt/qtcore-${QT5_PV}*
+ =dev-qt/qtdeclarative-${QT5_PV}*
+ =dev-qt/qtgui-${QT5_PV}*
+"
+DEPEND="${RDEPEND}"
diff --git a/dev-qt/qtgui/Manifest b/dev-qt/qtgui/Manifest
new file mode 100644
index 0000000..4feb9a4
--- /dev/null
+++ b/dev-qt/qtgui/Manifest
@@ -0,0 +1,5 @@
+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
+EBUILD qtgui-5.15.18-r1.ebuild 4141 BLAKE2B 69d500e87c6ccdb77a4efb6a87a67b977ab2cf471682bca0bd0b3a63ab3d1dbbaf7d9a5b90739815515fa951242f060d24d864fb74c425a1bc71bf3985abb2b3 SHA512 007913d316a191d2f69b02493168f0a8050061fc4d279000d25bc699427b07d97f8be966795376674b06b6d6d9751a08f6665213c0b6e30d19e2fcde42dc52b7
+MISC metadata.xml 1283 BLAKE2B 2d4873f1b7011f5766810866933cd897a68a89d93183b93c19008b9b956aa10e882ebc061f0a86c81d68308bb267d28f324f2cddc52b55d94c4201a7b97ce889 SHA512 551b643e0dec5fcfd934029e36f35d8e14479e7d426dc74d4b48522c6e06d989ae70db7c4cd0a67594551916ec59036f3d1db91afa929e454614a947464ed19c
diff --git a/dev-qt/qtgui/metadata.xml b/dev-qt/qtgui/metadata.xml
new file mode 100644
index 0000000..55e237a
--- /dev/null
+++ b/dev-qt/qtgui/metadata.xml
@@ -0,0 +1,28 @@
+
+
+
+
+ qt@gentoo.org
+ Gentoo Qt Project
+
+
+
+ https://bugreports.qt.io/
+ 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..b3b02c2
--- /dev/null
+++ b/dev-qt/qtnetwork/Manifest
@@ -0,0 +1,5 @@
+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
+EBUILD qtnetwork-5.15.18.ebuild 1176 BLAKE2B 802eee24795265f02b13a4b44ebdd83d7abb4d1bb9a5ff9351102678dd47d2bcb0ff16649f1582943d1cdf12db301184eff407cfadbff3f03c4e3ce9276a0392 SHA512 fe26e1ec9724b6db5a14585bef7c38d1eb945a0cdcbaf0188420fc70a544fc34e3b99f6064397b85a831e0ed984f622df2a23fbe45a8b97f51e10fcc612956cf
+MISC metadata.xml 690 BLAKE2B 3e1cccd88cb778d868aa5aa650d9114a79eaf7b5961dc6222b2da3e5c7536a43c7481b6d56bb9176b36ed2560ccb0712635146872f370fdc1e319286133a1651 SHA512 e402ad3b586e305a6f7ee99f24edd505b1e76f7a957108fc252a4a1af8978ac113b9b1c56e4fb0bfb696bcf29a1295f52af6614924f0e3ae2d7f71810a3be707
diff --git a/dev-qt/qtnetwork/metadata.xml b/dev-qt/qtnetwork/metadata.xml
new file mode 100644
index 0000000..dfe9a54
--- /dev/null
+++ b/dev-qt/qtnetwork/metadata.xml
@@ -0,0 +1,22 @@
+
+
+
+
+ qt@gentoo.org
+ Gentoo Qt Project
+
+
+
+ https://bugreports.qt.io/
+ 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/qtplugininfo/metadata.xml b/dev-qt/qtplugininfo/metadata.xml
new file mode 100644
index 0000000..ae8aa95
--- /dev/null
+++ b/dev-qt/qtplugininfo/metadata.xml
@@ -0,0 +1,17 @@
+
+
+
+
+ qt@gentoo.org
+ Gentoo Qt Project
+
+
+ https://bugreports.qt.io/
+ 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/Manifest b/dev-qt/qtquickcontrols/Manifest
new file mode 100644
index 0000000..cd53f92
--- /dev/null
+++ b/dev-qt/qtquickcontrols/Manifest
@@ -0,0 +1,3 @@
+DIST qtquickcontrols-everywhere-opensource-src-5.15.18.tar.xz 5960964 BLAKE2B d380286f20257bacdf86a6aa97b8e935d9b5477bb25f54ddc97bbdf1adf208ab0ade48463dd9905b98eb2c99a05ef81b55fa452d75287235f58adef14cc16e80 SHA512 9bd2bcd119d162f8ef30b2e1f459776a66b504f5043809cc0846b7c4898ca464eb44f65d1c76d3857a12eef7126ec8a84f8ac3566b5c3200b65572a3ff9296f7
+EBUILD qtquickcontrols-5.15.18.ebuild 772 BLAKE2B 0975fb966853a24dd19081cc3cf4af8522200e21acebf880c9d8ea7db6dd4b1cee00c924d7b9aab95d75a3acf8636deeb92fdb4a95dc36316992be2a0ace275e SHA512 cdcada4e6a1f6b8d28506afe8656c27c89bb6b00c0ac4eba74681e4f0ac5ebc064d257d5d7236751a12b236598a89cb8c071f513503d0f6c1929b8291852c838
+MISC metadata.xml 552 BLAKE2B 8294b8e326a177905eb8b0510295d6b3cc97818c836b6b5d2940b78a5ecccc743c8818436fee3f3a61b2f984560c6fe6346d44e1e6b4fa27a7cf5a9a84f20dd4 SHA512 25f93b07946f9319e9762b9ba6c9adb5ca6348a71ebd5710c0f1690a75ca7f93af8967f323a9e11e7af04fd970a92fedf3ec30d962f85516c7b44f1ea749dbbf
diff --git a/dev-qt/qtquickcontrols/metadata.xml b/dev-qt/qtquickcontrols/metadata.xml
new file mode 100644
index 0000000..f426874
--- /dev/null
+++ b/dev-qt/qtquickcontrols/metadata.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ qt@gentoo.org
+ Gentoo Qt Project
+
+
+
+ https://bugreports.qt.io/
+ 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..6073f18
--- /dev/null
+++ b/dev-qt/qtquickcontrols2/Manifest
@@ -0,0 +1,4 @@
+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
+EBUILD qtquickcontrols2-5.15.18.ebuild 655 BLAKE2B 00edc152f1267317f27771fc48bf90c7cad2933ddf22694efab375d34e77a400d4e9f5fea2195f2cc65aa93a7b7240048236c1bb671d012d522140e24af4fa25 SHA512 ec730a423ea9f3900d76721b49e02b7b320ca45efbb11cf2f1a17ed5068218ba407548bf7fbea36d7fd9cd07bb5efdca743b481be83f1593c96b5ebc63f46952
+MISC metadata.xml 552 BLAKE2B 8294b8e326a177905eb8b0510295d6b3cc97818c836b6b5d2940b78a5ecccc743c8818436fee3f3a61b2f984560c6fe6346d44e1e6b4fa27a7cf5a9a84f20dd4 SHA512 25f93b07946f9319e9762b9ba6c9adb5ca6348a71ebd5710c0f1690a75ca7f93af8967f323a9e11e7af04fd970a92fedf3ec30d962f85516c7b44f1ea749dbbf
diff --git a/dev-qt/qtquickcontrols2/metadata.xml b/dev-qt/qtquickcontrols2/metadata.xml
new file mode 100644
index 0000000..f426874
--- /dev/null
+++ b/dev-qt/qtquickcontrols2/metadata.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ qt@gentoo.org
+ Gentoo Qt Project
+
+
+
+ https://bugreports.qt.io/
+ 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/qtshadertools/metadata.xml b/dev-qt/qtshadertools/metadata.xml
new file mode 100644
index 0000000..bb0aa35
--- /dev/null
+++ b/dev-qt/qtshadertools/metadata.xml
@@ -0,0 +1,18 @@
+
+
+
+
+ qt@gentoo.org
+ Gentoo Qt Project
+
+
+ https://bugreports.qt.io/
+ https://doc.qt.io/
+ qt/qtshadertools
+
+
+
+ Must only be used by packages that are known to use private parts of the Qt API.
+
+
+
diff --git a/dev-qt/qtsql/Manifest b/dev-qt/qtsql/Manifest
new file mode 100644
index 0000000..c8f4e8c
--- /dev/null
+++ b/dev-qt/qtsql/Manifest
@@ -0,0 +1,5 @@
+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
+EBUILD qtsql-5.15.18.ebuild 1401 BLAKE2B 98f1872d09465863d856eb067ff3822fbeda1af55107287db98b692554a67cda6546cb65f08c189d80843da1ceb40d21b20fdb97a41a08af46e386fbb6753d28 SHA512 e56e141f1688346c0773a243ce45085c08d624c825f77b7552d9a5010aed2891b4d2d963e03d622ebfd3a434014e6e7b2fb7a80b1d45c8623b06f326ef11d8f3
+MISC metadata.xml 482 BLAKE2B 651a49dc4a07f5e5a9c21990868e666d98acdea7d7b0b2c0e4c98eafc3da72c803d380e4abda30f33250f7bbd7654df713833ccdddcb975cbad6f92e488f643b SHA512 192c670abd7da29645513bf1d9297d942efdc49f5cf170861e7689fda47f51daa47f10c7c81c3b045366e0259179c6839ff7747197c9d792e8d0fd1a5818973e
diff --git a/dev-qt/qtsql/metadata.xml b/dev-qt/qtsql/metadata.xml
new file mode 100644
index 0000000..ae8aa95
--- /dev/null
+++ b/dev-qt/qtsql/metadata.xml
@@ -0,0 +1,17 @@
+
+
+
+
+ qt@gentoo.org
+ Gentoo Qt Project
+
+
+ https://bugreports.qt.io/
+ 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/qttest/Manifest b/dev-qt/qttest/Manifest
new file mode 100644
index 0000000..f3c069d
--- /dev/null
+++ b/dev-qt/qttest/Manifest
@@ -0,0 +1,5 @@
+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
+EBUILD qttest-5.15.18.ebuild 568 BLAKE2B b874576e281b5c6b42421078b76903587c51cd9ceaa0e7d3baf2017f608cc8d75ffe4e9c427e7c4b71c92912ab4f18b8995985ecef61c310a82fc070350c2779 SHA512 50b2d7cd13409edcb2b15c19a92a70e3ff9e8ccc873100585dfdf5d544fd0496b1938f8cb098ffe36ac4263c868fbfaf56b362ab447a001d10d0bd2f204d805b
+MISC metadata.xml 482 BLAKE2B 651a49dc4a07f5e5a9c21990868e666d98acdea7d7b0b2c0e4c98eafc3da72c803d380e4abda30f33250f7bbd7654df713833ccdddcb975cbad6f92e488f643b SHA512 192c670abd7da29645513bf1d9297d942efdc49f5cf170861e7689fda47f51daa47f10c7c81c3b045366e0259179c6839ff7747197c9d792e8d0fd1a5818973e
diff --git a/dev-qt/qttest/metadata.xml b/dev-qt/qttest/metadata.xml
new file mode 100644
index 0000000..ae8aa95
--- /dev/null
+++ b/dev-qt/qttest/metadata.xml
@@ -0,0 +1,17 @@
+
+
+
+
+ qt@gentoo.org
+ Gentoo Qt Project
+
+
+ https://bugreports.qt.io/
+ 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/qttest/qttest-5.15.18.ebuild b/dev-qt/qttest/qttest-5.15.18.ebuild
new file mode 100644
index 0000000..d7d9866
--- /dev/null
+++ b/dev-qt/qttest/qttest-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
+
+if [[ ${PV} != *9999* ]]; then
+ QT5_KDEPATCHSET_REV=1
+ KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86"
+fi
+
+QT5_MODULE="qtbase"
+VIRTUALX_REQUIRED="test"
+inherit qt5-build
+
+DESCRIPTION="Unit testing library for the Qt5 framework"
+
+IUSE=""
+
+RDEPEND="=dev-qt/qtcore-${QT5_PV}*:5="
+DEPEND="${RDEPEND}
+ test? (
+ =dev-qt/qtgui-${QT5_PV}*
+ =dev-qt/qtxml-${QT5_PV}*
+ )
+"
+
+QT5_TARGET_SUBDIRS=(
+ src/testlib
+)
+
+QT5_GENTOO_PRIVATE_CONFIG=(
+ :testlib
+)
diff --git a/dev-qt/qtwayland/Manifest b/dev-qt/qtwayland/Manifest
new file mode 100644
index 0000000..7a409a2
--- /dev/null
+++ b/dev-qt/qtwayland/Manifest
@@ -0,0 +1,4 @@
+DIST qtwayland-5.15.18-gentoo-kde-1.tar.xz 45732 BLAKE2B e9498684aad8205487a8beb6c6408851009b9eeb7ed8e5ae809f26bbb4e1ce5970bdabd0fc79562747b7af6acf5f77e0faea854a646e0039889c3ae7001afb8f SHA512 65851f53e2a534cb6aab8d547543a1864243a7dd07f8766cf68ba0bbfd2fca6e011f6b9a68beabf0f2b806eacd48adacf876f8ba571c7747dcfce6a5687bee7b
+DIST qtwayland-everywhere-opensource-src-5.15.18.tar.xz 547760 BLAKE2B e41148764c0926109a35ef62bdfd59b031c42ed245783400a139da872ee6a83f9e4480e357ebd7561c3eeacb4cac612e94d0817f4bbe5a66131fab3a5a3596d7 SHA512 9e0d07a4a91eb6dd1bde6b211bae2b64f2035a28176c277adb86ab5d3a281c7740930dc304db94990c1d2277ef54d17b934f99326413719626fb161b612c033f
+EBUILD qtwayland-5.15.18.ebuild 1355 BLAKE2B f0695c3fd47f83c913d9955644357c27c5c7baeb5f59e77bef39f69915d8d6d33cce27a2ce80c365e2ffd1b8d586c4aa7becdba36ea52514f2247662b234ef1d SHA512 ad8e8beecbd93c7f05848e9d24145df5019bb3b98f2dc74990a35b1badf55ef94b490c72cf2d727aa5c91577f4488e43ac4dcb28fcf0dbea120e943552ad4d1d
+MISC metadata.xml 888 BLAKE2B b893520d74518b0ea0d104d72545925ac37c818ef52d29a5551a2e3406ded90bc4f6c3d53b64868f2b39919cab783ed124af13f63704e7ee66c534c21dfdfb23 SHA512 9861bb9cf35100d7464d88f86614511522fc4cf7e2ef5d09b9ea95cdb168d61f645614104aacad24fcebc8ecfc2c98601b26f434059bffe169513fd097b12aec
diff --git a/dev-qt/qtwayland/metadata.xml b/dev-qt/qtwayland/metadata.xml
new file mode 100644
index 0000000..69ca9f6
--- /dev/null
+++ b/dev-qt/qtwayland/metadata.xml
@@ -0,0 +1,24 @@
+
+
+
+
+ qt@gentoo.org
+ Gentoo Qt Project
+
+
+
+ https://bugreports.qt.io/
+ https://doc.qt.io/
+ qt/qtwayland
+
+
+
+ Must only be used by packages that are known to use private parts of the Qt API.
+
+
+
diff --git a/dev-qt/qtwayland/qtwayland-5.15.18.ebuild b/dev-qt/qtwayland/qtwayland-5.15.18.ebuild
new file mode 100644
index 0000000..11b0b72
--- /dev/null
+++ b/dev-qt/qtwayland/qtwayland-5.15.18.ebuild
@@ -0,0 +1,55 @@
+# 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
+
+inherit qt5-build
+
+DESCRIPTION="Wayland platform plugin for Qt"
+
+SLOT=5/${QT5_PV} # bug 815646
+IUSE="compositor vulkan"
+
+RDEPEND="
+ dev-libs/wayland
+ =dev-qt/qtcore-${QT5_PV}*:5=
+ =dev-qt/qtgui-${QT5_PV}*:5=[egl,libinput,vulkan=]
+ media-libs/libglvnd
+ x11-libs/libxkbcommon
+ compositor? ( =dev-qt/qtdeclarative-${QT5_PV}*:5= )
+"
+DEPEND="${RDEPEND}
+ vulkan? ( dev-util/vulkan-headers )
+"
+BDEPEND="dev-util/wayland-scanner"
+
+src_configure() {
+ local myqmakeargs=(
+ --
+ -no-feature-xcomposite-egl
+ -no-feature-xcomposite-glx
+ $(qt_use compositor feature-wayland-server)
+ $(qt_use compositor feature-wayland-dmabuf-server-buffer)
+ $(qt_use compositor feature-wayland-drm-egl-server-buffer)
+ $(qt_use compositor feature-wayland-shm-emulation-server-buffer)
+ )
+
+ use compositor && myqmakeargs+=(
+ $(qt_use vulkan feature-wayland-vulkan-server-buffer)
+ )
+
+ qt5-build_src_configure
+}
+
+src_install() {
+ qt5-build_src_install
+ rm "${D}${QT5_BINDIR}"/qtwaylandscanner || die
+}
diff --git a/dev-qt/qtwebsockets/Manifest b/dev-qt/qtwebsockets/Manifest
new file mode 100644
index 0000000..9982504
--- /dev/null
+++ b/dev-qt/qtwebsockets/Manifest
@@ -0,0 +1,4 @@
+DIST qtwebsockets-5.15.18-gentoo-kde-1.tar.xz 1512 BLAKE2B ca68fa5d4525ae032603afe3443824dd18840074ba1738bdc063d0ef25f88bca3728baa787aadd887cccc0823b2fbcbd0f178c297d59003e5d7501379c585c78 SHA512 0fbcf7771b238716ce1712bbfd3b20ceecc5a2ed57fcde715b4c849588d50f34ab197c4d8a2dd53974fea0d433bbcd40fdd6a6af83df419cbd2d1fb61813a57c
+DIST qtwebsockets-everywhere-opensource-src-5.15.18.tar.xz 239240 BLAKE2B 590920e46bc0891eeefa6715392c114ae35156239bbf40c3bc64a40d855aa1ed05870a54a1c69bbb61a465ae3a117e6fe54c955c50833d02adb9f4e07ca2d8e8 SHA512 29b59fe6681030150b87d18a052f00f05ac17db17203279d794a8161783d739938e9ea659519f7b7c76f3d7e40009ea1797e255ae464a1cd641caa6c039d4777
+EBUILD qtwebsockets-5.15.18.ebuild 570 BLAKE2B 40d35d566bbedafbd4839f45555a10deaeb3e6f84bfa6a33cb30057a3f04cd779b8785ab5689465f0d800107d2d89383ffd7cdbd11605055a0cefa895c07ce53 SHA512 90125100dc853f70d92defe9b5298e6936acdf2555fc02bafc58e8105e15b7b2a7c20622c31f5aafbbfa93061a852c89f4a06f7753ab85e2af4489b9b6fb9582
+MISC metadata.xml 597 BLAKE2B 9cd42a9c56fb752ea155093f8f9222b8abecc3219bc770c4746ac45bb5b741b829688d8363b2c3580125ac43a31420522ba83949534a0c16aef7386bb46648b3 SHA512 55df60c57864187551629b4f6d83803d29154d4c685b50151e89ce9aae733a6cb3a0930c482cdad40b1880904f9c2c0ec21483ac7b801932086ba0186dfeb1de
diff --git a/dev-qt/qtwebsockets/metadata.xml b/dev-qt/qtwebsockets/metadata.xml
new file mode 100644
index 0000000..5e77c4d
--- /dev/null
+++ b/dev-qt/qtwebsockets/metadata.xml
@@ -0,0 +1,21 @@
+
+
+
+
+ qt@gentoo.org
+ Gentoo Qt Project
+
+
+
+ https://bugreports.qt.io/
+ 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-5.15.18.ebuild b/dev-qt/qtwebsockets/qtwebsockets-5.15.18.ebuild
new file mode 100644
index 0000000..21a162b
--- /dev/null
+++ b/dev-qt/qtwebsockets/qtwebsockets-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
+
+inherit qt5-build
+
+DESCRIPTION="Implementation of the WebSocket protocol for the Qt5 framework"
+
+IUSE="qml +ssl"
+
+DEPEND="
+ =dev-qt/qtcore-${QT5_PV}*
+ =dev-qt/qtnetwork-${QT5_PV}*[ssl=]
+ qml? ( =dev-qt/qtdeclarative-${QT5_PV}* )
+
+"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ qt_use_disable_mod qml quick src/src.pro
+
+ qt5-build_src_prepare
+}
diff --git a/dev-qt/qtwidgets/Manifest b/dev-qt/qtwidgets/Manifest
new file mode 100644
index 0000000..b264a05
--- /dev/null
+++ b/dev-qt/qtwidgets/Manifest
@@ -0,0 +1,5 @@
+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
+EBUILD qtwidgets-5.15.18.ebuild 1196 BLAKE2B d27a2e5133f0434f648499700fc434fcd4e1f8cc03341aea7a59d008ffebdf8dbc882ef0476f4e8a2ba505834206d96ab71f4e948c00e2ac81102f3a753bb954 SHA512 5d22723e4b7c7dea59533d5baafaded8a1f6eeb036d74c4a4cc82ebbded1147691e54af16ecf82ab66b2a43d4e260183e2dc0383076c7196982aab4991f5ab68
+MISC metadata.xml 559 BLAKE2B 3ea80a5e419db32987d68d7e5033fa75fa0ff22b31b0842fd7ead902172cbe83650b0bbdf8657a57e428726e7cdf114d9011bd16066c080bc5f6ecb3f691d42c SHA512 51172365a186fbca09651bfd751284960dda4036390af2afab9812a7ae3fabdd9d60a336dee3cfc5e3d133a0216bf77e29660b9cdee2f0bcd2ce43c27297bdb1
diff --git a/dev-qt/qtwidgets/metadata.xml b/dev-qt/qtwidgets/metadata.xml
new file mode 100644
index 0000000..cb9c6f8
--- /dev/null
+++ b/dev-qt/qtwidgets/metadata.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ qt@gentoo.org
+ Gentoo Qt Project
+
+
+
+ https://bugreports.qt.io/
+ 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..2f4004f
--- /dev/null
+++ b/dev-qt/qtxml/Manifest
@@ -0,0 +1,6 @@
+AUX qtxml-5.15.16-CVE-2025-30348.patch 6107 BLAKE2B 8ab8bc0dfd9adacfec736259cf88519f12eb9dfae815838b4cf2e73e20854885f724081488194768a958d4646b6fdadf6cfa9fd28b652bfb5108af729a430043 SHA512 a351976aca39e5b52a2acad8c8a59df49584b73e3d591b18c68125f2bb96debfdbb5954502c59043be03f21e062fcb0956f84e6680ab0f8cfa1e2d967c428b6d
+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
+EBUILD qtxml-5.15.18.ebuild 518 BLAKE2B e71204d5146384be83cf72d6135785e1c84262e5371ad8f05781756fb3e1adc79e4a9dcfa47617defbc79507c6234017cd50722ef844b66e7a88699130db805a SHA512 a48109b6d60b3457a9a4a4f2cfc17fedd525d394ace73f4d5763ecc7ac6ce8c305d5f527e753e62ed2de9bf7822ee774bae07724eefa268ab1c52bd0340536e7
+MISC metadata.xml 482 BLAKE2B 651a49dc4a07f5e5a9c21990868e666d98acdea7d7b0b2c0e4c98eafc3da72c803d380e4abda30f33250f7bbd7654df713833ccdddcb975cbad6f92e488f643b SHA512 192c670abd7da29645513bf1d9297d942efdc49f5cf170861e7689fda47f51daa47f10c7c81c3b045366e0259179c6839ff7747197c9d792e8d0fd1a5818973e
diff --git a/dev-qt/qtxml/files/qtxml-5.15.16-CVE-2025-30348.patch b/dev-qt/qtxml/files/qtxml-5.15.16-CVE-2025-30348.patch
new file mode 100644
index 0000000..bbc001a
--- /dev/null
+++ b/dev-qt/qtxml/files/qtxml-5.15.16-CVE-2025-30348.patch
@@ -0,0 +1,156 @@
+From 16918c1df3e709df2a97281e3825d94c84edb668 Mon Sep 17 00:00:00 2001
+From: Christian Ehrlicher
+Date: Tue, 06 Aug 2024 22:39:44 +0200
+Subject: [PATCH] XML/QDom: speedup encodeText()
+
+The code copied the whole string, then replaced parts inline, at
+the cost of relocating everything beyond, at each replacement.
+Instead, copy character by character (in chunks where possible)
+and append replacements as we skip what they replace.
+
+Manual conflict resolution for 6.5:
+- This is a manual cherry-pick. The original change was only
+ picked to 6.8, but the quadratic behavior is present in Qt 5, too.
+- Changed Task-number to Fixes: because this is the real fix;
+ the QString change, 315210de916d060c044c01e53ff249d676122b1b,
+ was unrelated to the original QTBUG-127549.
+
+Manual conflcit resolution for 5.15:
+- Kept/re-added QTextCodec::canEncode() check
+- Ported from Qt 6 to 5, to wit:
+ - qsizetype -> int
+ - QStringView::first/sliced(n) -> left/mid(n)
+ (these functions are clearly called in-range, so the widened
+ contract of the Qt 5 functions doesn't matter)
+- Ported from C++17- and C++14-isms to C++11:
+ - replaced polymorphic lambda with a normal one (this requires
+ rewriting the !canEncode() branch to use QByteArray/QLatin1String
+ instead of QString)
+- As a drive-by, corrected the indentation of the case labels to
+ horizontally align existing code (and follow Qt style)
+
+Fixes: QTBUG-127549
+Change-Id: I368482859ed0c4127f1eec2919183711b5488ada
+Reviewed-by: Edward Welbourne
+(cherry picked from commit 2ce08e3671b8d18b0284447e5908ce15e6e8f80f)
+Reviewed-by: Qt Cherry-pick Bot
+(cherry picked from commit 225e235cf966a44af23dbe9aaaa2fd20ab6430ee)
+Reviewed-by: Fabian Kosmale
+(cherry picked from commit 905a5bd421efff6a1d90b6140500d134d32ca745)
+---
+
+diff --git a/src/xml/dom/qdom.cpp b/src/xml/dom/qdom.cpp
+index 872221c..bf70477 100644
+--- a/src/xml/dom/qdom.cpp
++++ b/src/xml/dom/qdom.cpp
+@@ -3676,59 +3676,67 @@
+ const QTextCodec *const codec = s.codec();
+ Q_ASSERT(codec);
+ #endif
+- QString retval(str);
+- int len = retval.length();
+- int i = 0;
++ QString retval;
++ int start = 0;
++ auto appendToOutput = [&](int cur, QLatin1String replacement)
++ {
++ if (start < cur) {
++ retval.reserve(str.size() + replacement.size());
++ retval.append(QStringView(str).left(cur).mid(start));
++ }
++ // Skip over str[cur], replaced by replacement
++ start = cur + 1;
++ retval.append(replacement);
++ };
+
+- while (i < len) {
+- const QChar ati(retval.at(i));
+-
+- if (ati == QLatin1Char('<')) {
+- retval.replace(i, 1, QLatin1String("<"));
+- len += 3;
+- i += 4;
+- } else if (encodeQuotes && (ati == QLatin1Char('"'))) {
+- retval.replace(i, 1, QLatin1String("""));
+- len += 5;
+- i += 6;
+- } else if (ati == QLatin1Char('&')) {
+- retval.replace(i, 1, QLatin1String("&"));
+- len += 4;
+- i += 5;
+- } else if (ati == QLatin1Char('>') && i >= 2 && retval[i - 1] == QLatin1Char(']') && retval[i - 2] == QLatin1Char(']')) {
+- retval.replace(i, 1, QLatin1String(">"));
+- len += 3;
+- i += 4;
+- } else if (performAVN &&
+- (ati == QChar(0xA) ||
+- ati == QChar(0xD) ||
+- ati == QChar(0x9))) {
+- const QString replacement(QLatin1String("") + QString::number(ati.unicode(), 16) + QLatin1Char(';'));
+- retval.replace(i, 1, replacement);
+- i += replacement.length();
+- len += replacement.length() - 1;
+- } else if (encodeEOLs && ati == QChar(0xD)) {
+- retval.replace(i, 1, QLatin1String("
")); // Replace a single 0xD with a ref for 0xD
+- len += 4;
+- i += 5;
+- } else {
++ const int len = str.size();
++ for (int cur = 0; cur < len; ++cur) {
++ switch (const char16_t ati = str[cur].unicode()) {
++ case u'<':
++ appendToOutput(cur, QLatin1String("<"));
++ break;
++ case u'"':
++ if (encodeQuotes)
++ appendToOutput(cur, QLatin1String("""));
++ break;
++ case u'&':
++ appendToOutput(cur, QLatin1String("&"));
++ break;
++ case u'>':
++ if (cur >= 2 && str[cur - 1] == u']' && str[cur - 2] == u']')
++ appendToOutput(cur, QLatin1String(">"));
++ break;
++ case u'\r':
++ if (performAVN || encodeEOLs)
++ appendToOutput(cur, QLatin1String("
")); // \r == 0x0d
++ break;
++ case u'\n':
++ if (performAVN)
++ appendToOutput(cur, QLatin1String("
")); // \n == 0x0a
++ break;
++ case u'\t':
++ if (performAVN)
++ appendToOutput(cur, QLatin1String(" ")); // \t == 0x09
++ break;
++ default:
+ #if QT_CONFIG(textcodec)
+ if(codec->canEncode(ati))
+- ++i;
++ ; // continue
+ else
+ #endif
+ {
+ // We have to use a character reference to get it through.
+- const ushort codepoint(ati.unicode());
+- const QString replacement(QLatin1String("") + QString::number(codepoint, 16) + QLatin1Char(';'));
+- retval.replace(i, 1, replacement);
+- i += replacement.length();
+- len += replacement.length() - 1;
++ const QByteArray replacement = "" + QByteArray::number(uint{ati}, 16) + ';';
++ appendToOutput(cur, QLatin1String{replacement});
+ }
++ break;
+ }
+ }
+-
+- return retval;
++ if (start > 0) {
++ retval.append(QStringView(str).left(len).mid(start));
++ return retval;
++ }
++ return str;
+ }
+
+ void QDomAttrPrivate::save(QTextStream& s, int, int) const
diff --git a/dev-qt/qtxml/metadata.xml b/dev-qt/qtxml/metadata.xml
new file mode 100644
index 0000000..ae8aa95
--- /dev/null
+++ b/dev-qt/qtxml/metadata.xml
@@ -0,0 +1,17 @@
+
+
+
+
+ qt@gentoo.org
+ Gentoo Qt Project
+
+
+ https://bugreports.qt.io/
+ 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
+)