From 10c6abe29800e2bb9ceaaca1bfcafe4022546536 Mon Sep 17 00:00:00 2001 From: Olivier van der Toorn Date: Fri, 3 Jul 2026 09:45:00 +0200 Subject: [PATCH] Add dev-qt from an older version of the gentoo repo Qt5 has been removed, we restore it since we still use it. --- dev-qt/metadata.xml | 20 ++ dev-qt/qtconcurrent/Manifest | 5 + dev-qt/qtconcurrent/metadata.xml | 17 ++ .../qtconcurrent/qtconcurrent-5.15.18.ebuild | 23 +++ dev-qt/qtcore/Manifest | 6 + dev-qt/qtcore/Manifest.bak | 5 + dev-qt/qtcore/metadata.xml | 20 ++ dev-qt/qtcore/qtcore-5.15.18.ebuild | 165 ++++++++++++++++ dev-qt/qtdbus/Manifest | 5 + dev-qt/qtdbus/metadata.xml | 17 ++ dev-qt/qtdbus/qtdbus-5.15.18.ebuild | 45 +++++ dev-qt/qtdeclarative/Manifest | 6 + ...14.2-QQuickItemView-fix-maxXY-extent.patch | 42 ++++ ...qtdeclarative-5.15.18-CVE-2025-12385.patch | 91 +++++++++ dev-qt/qtdeclarative/metadata.xml | 26 +++ .../qtdeclarative-5.15.18-r1.ebuild | 69 +++++++ dev-qt/qtgraphicaleffects/Manifest | 3 + dev-qt/qtgraphicaleffects/metadata.xml | 17 ++ .../qtgraphicaleffects-5.15.18.ebuild | 22 +++ dev-qt/qtgui/Manifest | 5 + dev-qt/qtgui/metadata.xml | 28 +++ dev-qt/qtgui/qtgui-5.15.18-r1.ebuild | 184 ++++++++++++++++++ dev-qt/qtnetwork/Manifest | 5 + dev-qt/qtnetwork/metadata.xml | 22 +++ dev-qt/qtnetwork/qtnetwork-5.15.18.ebuild | 62 ++++++ dev-qt/qtplugininfo/metadata.xml | 17 ++ dev-qt/qtquickcontrols/Manifest | 3 + dev-qt/qtquickcontrols/metadata.xml | 20 ++ .../qtquickcontrols-5.15.18.ebuild | 33 ++++ dev-qt/qtquickcontrols2/Manifest | 4 + dev-qt/qtquickcontrols2/metadata.xml | 20 ++ .../qtquickcontrols2-5.15.18.ebuild | 32 +++ dev-qt/qtshadertools/metadata.xml | 18 ++ dev-qt/qtsql/Manifest | 5 + dev-qt/qtsql/metadata.xml | 17 ++ dev-qt/qtsql/qtsql-5.15.18.ebuild | 59 ++++++ dev-qt/qttest/Manifest | 5 + dev-qt/qttest/metadata.xml | 17 ++ dev-qt/qttest/qttest-5.15.18.ebuild | 33 ++++ dev-qt/qtwayland/Manifest | 4 + dev-qt/qtwayland/metadata.xml | 24 +++ dev-qt/qtwayland/qtwayland-5.15.18.ebuild | 55 ++++++ dev-qt/qtwebsockets/Manifest | 4 + dev-qt/qtwebsockets/metadata.xml | 21 ++ .../qtwebsockets/qtwebsockets-5.15.18.ebuild | 29 +++ dev-qt/qtwidgets/Manifest | 5 + dev-qt/qtwidgets/metadata.xml | 20 ++ dev-qt/qtwidgets/qtwidgets-5.15.18.ebuild | 63 ++++++ dev-qt/qtxml/Manifest | 6 + .../files/qtxml-5.15.16-CVE-2025-30348.patch | 156 +++++++++++++++ dev-qt/qtxml/metadata.xml | 17 ++ dev-qt/qtxml/qtxml-5.15.18.ebuild | 29 +++ 52 files changed, 1626 insertions(+) create mode 100644 dev-qt/metadata.xml create mode 100644 dev-qt/qtconcurrent/Manifest create mode 100644 dev-qt/qtconcurrent/metadata.xml create mode 100644 dev-qt/qtconcurrent/qtconcurrent-5.15.18.ebuild create mode 100644 dev-qt/qtcore/Manifest create mode 100644 dev-qt/qtcore/Manifest.bak create mode 100644 dev-qt/qtcore/metadata.xml create mode 100644 dev-qt/qtcore/qtcore-5.15.18.ebuild create mode 100644 dev-qt/qtdbus/Manifest create mode 100644 dev-qt/qtdbus/metadata.xml create mode 100644 dev-qt/qtdbus/qtdbus-5.15.18.ebuild create mode 100644 dev-qt/qtdeclarative/Manifest create mode 100644 dev-qt/qtdeclarative/files/qtdeclarative-5.14.2-QQuickItemView-fix-maxXY-extent.patch create mode 100644 dev-qt/qtdeclarative/files/qtdeclarative-5.15.18-CVE-2025-12385.patch create mode 100644 dev-qt/qtdeclarative/metadata.xml create mode 100644 dev-qt/qtdeclarative/qtdeclarative-5.15.18-r1.ebuild create mode 100644 dev-qt/qtgraphicaleffects/Manifest create mode 100644 dev-qt/qtgraphicaleffects/metadata.xml create mode 100644 dev-qt/qtgraphicaleffects/qtgraphicaleffects-5.15.18.ebuild create mode 100644 dev-qt/qtgui/Manifest create mode 100644 dev-qt/qtgui/metadata.xml create mode 100644 dev-qt/qtgui/qtgui-5.15.18-r1.ebuild create mode 100644 dev-qt/qtnetwork/Manifest create mode 100644 dev-qt/qtnetwork/metadata.xml create mode 100644 dev-qt/qtnetwork/qtnetwork-5.15.18.ebuild create mode 100644 dev-qt/qtplugininfo/metadata.xml create mode 100644 dev-qt/qtquickcontrols/Manifest create mode 100644 dev-qt/qtquickcontrols/metadata.xml create mode 100644 dev-qt/qtquickcontrols/qtquickcontrols-5.15.18.ebuild create mode 100644 dev-qt/qtquickcontrols2/Manifest create mode 100644 dev-qt/qtquickcontrols2/metadata.xml create mode 100644 dev-qt/qtquickcontrols2/qtquickcontrols2-5.15.18.ebuild create mode 100644 dev-qt/qtshadertools/metadata.xml create mode 100644 dev-qt/qtsql/Manifest create mode 100644 dev-qt/qtsql/metadata.xml create mode 100644 dev-qt/qtsql/qtsql-5.15.18.ebuild create mode 100644 dev-qt/qttest/Manifest create mode 100644 dev-qt/qttest/metadata.xml create mode 100644 dev-qt/qttest/qttest-5.15.18.ebuild create mode 100644 dev-qt/qtwayland/Manifest create mode 100644 dev-qt/qtwayland/metadata.xml create mode 100644 dev-qt/qtwayland/qtwayland-5.15.18.ebuild create mode 100644 dev-qt/qtwebsockets/Manifest create mode 100644 dev-qt/qtwebsockets/metadata.xml create mode 100644 dev-qt/qtwebsockets/qtwebsockets-5.15.18.ebuild create mode 100644 dev-qt/qtwidgets/Manifest create mode 100644 dev-qt/qtwidgets/metadata.xml create mode 100644 dev-qt/qtwidgets/qtwidgets-5.15.18.ebuild create mode 100644 dev-qt/qtxml/Manifest create mode 100644 dev-qt/qtxml/files/qtxml-5.15.16-CVE-2025-30348.patch create mode 100644 dev-qt/qtxml/metadata.xml create mode 100644 dev-qt/qtxml/qtxml-5.15.18.ebuild 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 + + + Disable syscalls not available on Linux kernels older than 4.11 + + + 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 + + + Build the LocalStorage import for QtQuick (requires QtSql) + Enable QtNetwork support + Enable OpenGL support + Build the qmlls tool using dev-qt/qtlanguageserver + Enable QtSQL support + Enable QtWidgets support + + + https://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 + + + Build the EGL Full Screen/Single Surface platform plugin + Enable support for input devices via evdev + Build the IBus input method plugin + Enable support for input devices via dev-libs/libinput + Enable Linux framebuffer support for embedded devices + Enable support for touchscreen devices via x11-libs/tslib + Build plugin to receive touch events over the TUIO protocol + Provide dev-qt/qtwayland to ensure Qt applications can be run as Wayland clients + Build the XCB platform plugin and enable X11 integration + + + https://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 + + + Enable support for GSSAPI (virtual/krb5) + Use net-libs/libproxy for automatic + HTTP/SOCKS proxy configuration + + + 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 + + + Enable QtWidgets support + + + 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 + + + Enable QtWidgets support + + + 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 + + + Enable support for the wayland compositor / server APIs + Build the GNOME-like decoration plugin (loaded by default with GNOME) + Build QML/QtQuick bindings and imports + Enable support for Vulkan-based server buffer integration + + + 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 + + + Build QML bindings + + + 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 + + + Build the GTK platform theme plugin + + + 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("&#x") + 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("&#x") + QString::number(codepoint, 16) + QLatin1Char(';')); +- retval.replace(i, 1, replacement); +- i += replacement.length(); +- len += replacement.length() - 1; ++ const QByteArray replacement = "&#x" + 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 +)