Add dev-qt from an older version of the gentoo repo

Qt5 has been removed, we restore it since we still use it.
This commit is contained in:
2026-07-03 09:45:00 +02:00
parent 2247967dd3
commit 692df50613
319 changed files with 15302 additions and 0 deletions

View File

@ -0,0 +1,4 @@
DIST qtdeclarative-5.15.18-gentoo-kde-1.tar.xz 19304 BLAKE2B ec246d080eeeeeedb3d358c322faf8392cd106ffb6a0cda2ccbe1fd3776e7fdd2d76c8d8cd56e954b8fa11b466a6b6592e6134a8ba771b1433ba74c9fa0e00cd SHA512 f7636a405a0602b476bc4034382b275c14e3e7d166314042c7ea6bfb79f30aba7c79b540c4ec2352bb2e7fbed51b5bab52ddbf6458a579c9ba4fa2d6aad30a55
DIST qtdeclarative-everywhere-opensource-src-5.15.18.tar.xz 21588352 BLAKE2B 9daf4a86e39db46d12350cc2e17cba1d23c8777a5c3193a76bd66c68ff252c94d616717a4b13cebe25707a6acd42084a1a02d372862d0b0f7418373b267be94b SHA512 73c45c47b5074b6bc1127abb1b3cf1cd751deeb80c2f9c86a675c7323fecf20bd83363fad95803bc72cf494ae4679c1f38a02387363f266c093c707e700c9ea2
DIST qtdeclarative-everywhere-src-6.10.3.tar.xz 38084496 BLAKE2B acefeb2f998001cd811d4ca62799cb44ed57e743a1198f58fe4d84f920b438496e45bf2cd71d08da83cf566bde09c4b2c284fb655bbcc607fd1c29d4c1c9a809 SHA512 187a525b73595e7c4d89c98be657df4f480114957649813aa9ecd3fba23f56f20c8804f2ab507d83a5fb6120a2c6c36751fe5c80f43f9feb6c3479a733fb6684
DIST qtdeclarative-everywhere-src-6.11.1.tar.xz 38744644 BLAKE2B ea428a3930276dbf4db912f905aa885971de13f4b35034b6819c93af938d1d36d6b0cc13c3e54c1cd7bb8c375e4744bdd98af1ea9105ced5ad982e6aa550357a SHA512 91d657a33b3bf8fc79f1116561f125b3905b590e94504dcb3e4feead71f209b35b42a9da783d4568f756b22fd7a0e9802e1a9039553d400fe33417562776a1d6

View File

@ -0,0 +1,42 @@
From cc5387ad22ca503d167fd66e2429107d45b937af Mon Sep 17 00:00:00 2001
From: David Redondo <qt@david-redondo.de>
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

View File

@ -0,0 +1,91 @@
From f78bc0b2c6884fd730bf34a931870d67936cf01d Mon Sep 17 00:00:00 2001
From: Albert Astals Cid <aacid@kde.org>
Date: Sun, 7 Dec 2025 11:44:35 +0100
Subject: [PATCH] Increase robustness of <img> tag in Text component
For Text.StyledText, there was no protection against <img> 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 <eirik.aavitsland@qt.io>
(cherry picked from commit 4aaf9bf21f7cc69d73066785e254b664fcc82025)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(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 <qmath.h>
#include "qquickstyledtext_p.h"
#include <QQmlContext>
+#include <QtGui/private/qoutlinemapper_p.h>
+
+#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 <img>";
} 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 <img>";
} else if (attr.first == QLatin1String("align")) {
if (attr.second.toString() == QLatin1String("top")) {
image->align = QQuickStyledTextImgTag::Top;
--
2.52.0

View File

@ -0,0 +1,22 @@
https://bugs.gentoo.org/973374
https://codereview.qt-project.org/c/qt%2Fqtdeclarative/+/733089
--- a/src/qml/qml/qqmltypecompiler.cpp
+++ b/src/qml/qml/qqmltypecompiler.cpp
@@ -919,12 +919,11 @@
// Apply the ordering in the IR
obj->setFirstAlias(ordered[0]);
- if (ordered[0] == defaultPropertyAlias)
- obj->indexOfDefaultPropertyOrAlias = 0;
- for (qsizetype i = 0, end = ordered.size() - 1; i < end; ++i) {
+ for (qsizetype i = 0, end = ordered.size() - 1; i < end; ++i)
ordered[i]->next = ordered[i + 1];
- if (ordered[i] == defaultPropertyAlias)
- obj->indexOfDefaultPropertyOrAlias = i;
- }
ordered.last()->next = nullptr;
+ if (defaultPropertyAlias) {
+ auto it = std::find(ordered.constBegin(), ordered.constEnd(), defaultPropertyAlias);
+ obj->indexOfDefaultPropertyOrAlias = std::distance(ordered.constBegin(), it);
+ }
return true;

View File

@ -0,0 +1,17 @@
https://codereview.qt-project.org/c/qt/qtdeclarative/+/723105
--- a/src/qmlcompiler/qqmlsa.cpp
+++ b/src/qmlcompiler/qqmlsa.cpp
@@ -1379,5 +1379,5 @@
QQmlJSScopesById::MostLikelyCallback<QQmlJSScope::ConstPtr> result;
PassManagerPrivate::visitor(*d->m_manager)->addressableScopes().possibleScopes(
- id.toString(), QQmlJSScope::scope(context), Default, result);
+ id.toString(), QQmlJSScope::scope(context), QQmlJSScopesByIdOption::Default, result);
return QQmlJSScope::createQQmlSAElement(result.result);
}
@@ -1391,5 +1391,5 @@
QQmlJSScopesById::MostLikelyCallback<QString> result;
PassManagerPrivate::visitor(*d->m_manager)->addressableScopes().possibleIds(
- QQmlJSScope::scope(element), QQmlJSScope::scope(context), Default, result);
+ QQmlJSScope::scope(element), QQmlJSScope::scope(context), QQmlJSScopesByIdOption::Default, result);
return result.result;
}

View File

@ -0,0 +1,73 @@
https://mail.kde.org/pipermail/distributions/2026-May/001692.html
https://bugs.kde.org/show_bug.cgi?id=520252
https://qt-project.atlassian.net/browse/QTBUG-146869
--- a/src/qmlmodels/qqmltableinstancemodel.cpp
+++ b/src/qmlmodels/qqmltableinstancemodel.cpp
@@ -166,24 +166,19 @@
Q_ASSERT(m_delegate);
- QQmlDelegateModelItem *modelItem = resolveModelItem(index, QModelIndex());
- if (!modelItem)
- return nullptr;
+ QModelIndex modelIndex;
+ if (const QAbstractItemModel *aim = abstractItemModel()) {
+ // A valid QModelIndex is needed for resolveModelItem() to match
+ // items in the release cache rather than just delegate type alone.
+ const int row = m_adaptorModel.rowAt(index);
+ const int column = m_adaptorModel.columnAt(index);
+ modelIndex = aim->index(row, column);
+ }
+
+ if (QQmlDelegateModelItem *modelItem = resolveModelItem(index, modelIndex)) {
+ // Return the incubated object, or start an async incubation task and return nullptr for now
+ return incubateModelItemIfNeeded(modelItem, incubationMode);
+ }
- // Return the incubated object, or start an async incubation task and return nullptr for now
- return incubateModelItemIfNeeded(modelItem, incubationMode);
-}
-
-QObject *QQmlTableInstanceModel::object(const QModelIndex &modelIndex, QQmlIncubator::IncubationMode incubationMode)
-{
- Q_ASSERT(m_delegate);
- Q_ASSERT(m_adaptorModel.adaptsAim());
-
- const int flatIndex = m_adaptorModel.indexAt(modelIndex.row(), modelIndex.column());
- QQmlDelegateModelItem *modelItem = resolveModelItem(flatIndex, modelIndex);
- if (!modelItem)
- return nullptr;
-
- // Return the incubated object, or start an async incubation task and return nullptr for now
- return incubateModelItemIfNeeded(modelItem, incubationMode);
+ return nullptr;
}
--- a/src/qmlmodels/qqmltableinstancemodel_p.h
+++ b/src/qmlmodels/qqmltableinstancemodel_p.h
@@ -87,5 +87,4 @@
QObject *object(int index, QQmlIncubator::IncubationMode incubationMode = QQmlIncubator::AsynchronousIfNested) override;
- QObject *object(const QModelIndex &index, QQmlIncubator::IncubationMode incubationMode = QQmlIncubator::AsynchronousIfNested);
QObject *incubateModelItemIfNeeded(QQmlDelegateModelItem *modelItem, QQmlIncubator::IncubationMode incubationMode);
void restoreFromReleasedItemsCache(QQmlDelegateModelItem *item, int newFlatIndex);
--- a/src/quick/items/qquicktableview.cpp
+++ b/src/quick/items/qquicktableview.cpp
@@ -2827,17 +2827,9 @@
bool ownItem = false;
- QObject* object = nullptr;
- const QAbstractItemModel *aim = model->abstractItemModel();
const int modelRow = isTransposed ? logicalColumnIndex(cell.y()) : logicalRowIndex(cell.y());
const int modelColumn = isTransposed ? logicalRowIndex(cell.x()) : logicalColumnIndex(cell.x());
const int modelIndex = modelIndexAtCell(QPoint(modelColumn, modelRow));
- if (tableModel && aim) {
- // Prefer loading via QModelIndex so that QQmlTableInstanceModel can also
- // match recently released items by model index, not just by delegate type.
- object = tableModel->object(aim->index(modelRow, modelColumn), incubationMode);
- } else {
- object = model->object(modelIndex, incubationMode);
- }
+ QObject *object = model->object(modelIndex, incubationMode);
if (!object) {

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>qt@gentoo.org</email>
<name>Gentoo Qt Project</name>
</maintainer>
<use>
<flag name="localstorage">Build the LocalStorage import for QtQuick (requires QtSql)</flag>
<flag name="network">Enable QtNetwork support</flag>
<flag name="opengl">Enable OpenGL support</flag>
<flag name="qmlls">Build the qmlls tool using <pkg>dev-qt/qtlanguageserver</pkg></flag>
<flag name="sql">Enable QtSQL support</flag>
<flag name="widgets">Enable QtWidgets support</flag>
</use>
<upstream>
<bugs-to>https://qt-project.atlassian.net/</bugs-to>
<doc>https://doc.qt.io/</doc>
<remote-id type="github">qt/qtdeclarative</remote-id>
</upstream>
<slots>
<subslots>
Must only be used by packages that are known to use private parts of the Qt API.
</subslots>
</slots>
</pkgmetadata>

View File

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

View File

@ -0,0 +1,65 @@
# Copyright 2021-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{11..14} )
QT6_HAS_STATIC_LIBS=1
# behaves very badly when qtdeclarative is not already installed, also
# other more minor issues (installs junk, sandbox/offscreen issues)
QT6_RESTRICT_TESTS=1
inherit python-any-r1 qt6-build
DESCRIPTION="Qt Declarative (Quick 2)"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86"
fi
IUSE="accessibility +jit +network opengl qmlls +sql +ssl svg vulkan +widgets"
RDEPEND="
~dev-qt/qtbase-${PV}:6[accessibility=,gui,network=,opengl=,sql?,ssl?,vulkan=,widgets=]
qmlls? ( ~dev-qt/qtlanguageserver-${PV}:6 )
svg? ( ~dev-qt/qtsvg-${PV}:6 )
"
DEPEND="
${RDEPEND}
vulkan? ( dev-util/vulkan-headers )
"
BDEPEND="
${PYTHON_DEPS}
~dev-qt/qtshadertools-${PV}:6
"
PATCHES=(
"${FILESDIR}"/${PN}-6.10.3-unity-build.patch
"${FILESDIR}"/${PN}-6.10.3-QTBUG-144701.patch
)
src_configure() {
local mycmakeargs=(
$(cmake_use_find_package qmlls Qt6LanguageServerPrivate)
$(cmake_use_find_package sql Qt6Sql)
$(cmake_use_find_package svg Qt6Svg)
$(qt_feature jit qml_jit)
$(qt_feature network qml_network)
$(qt_feature ssl qml_ssl)
)
qt6-build_src_configure
}
src_install() {
qt6-build_src_install
if [[ ! -e ${D}${QT6_LIBDIR}/libQt6QuickControls2.so.6 ]]; then #940675
eerror "${CATEGORY}/${PF} seems to have been improperly built and"
eerror "install was aborted to protect the system. Possibly(?) due"
eerror "to a rare portage ordering bug. If using portage, try:"
eerror " emerge -1 qtshadertools:6 qtdeclarative:6"
eerror "If that did not resolve the issue, please provide build.log"
eerror "on https://bugs.gentoo.org/940675"
die "aborting due to incomplete/broken build (see above)"
fi
}

View File

@ -0,0 +1,64 @@
# Copyright 2021-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{12..14} )
QT6_HAS_STATIC_LIBS=1
# behaves very badly when qtdeclarative is not already installed, also
# other more minor issues (installs junk, sandbox/offscreen issues)
QT6_RESTRICT_TESTS=1
inherit python-any-r1 qt6-build
DESCRIPTION="Qt Declarative (Quick 2)"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv x86"
fi
IUSE="accessibility +jit +network opengl qmlls +sql +ssl svg vulkan +widgets"
RDEPEND="
~dev-qt/qtbase-${PV}:6[accessibility=,gui,network=,opengl=,sql?,ssl?,vulkan=,widgets=]
qmlls? ( ~dev-qt/qtlanguageserver-${PV}:6 )
svg? ( ~dev-qt/qtsvg-${PV}:6 )
"
DEPEND="
${RDEPEND}
vulkan? ( dev-util/vulkan-headers )
"
BDEPEND="
${PYTHON_DEPS}
~dev-qt/qtshadertools-${PV}:6
"
PATCHES=(
"${FILESDIR}"/${PN}-6.11.1-QTBUG-146869.patch
)
src_configure() {
local mycmakeargs=(
$(cmake_use_find_package qmlls Qt6LanguageServerPrivate)
$(cmake_use_find_package sql Qt6Sql)
$(cmake_use_find_package svg Qt6Svg)
$(qt_feature jit qml_jit)
$(qt_feature network qml_network)
$(qt_feature ssl qml_ssl)
)
qt6-build_src_configure
}
src_install() {
qt6-build_src_install
if [[ ! -e ${D}${QT6_LIBDIR}/libQt6QuickControls2.so.6 ]]; then #940675
eerror "${CATEGORY}/${PF} seems to have been improperly built and"
eerror "install was aborted to protect the system. Possibly(?) due"
eerror "to a rare portage ordering bug. If using portage, try:"
eerror " emerge -1 qtshadertools:6 qtdeclarative:6"
eerror "If that did not resolve the issue, please provide build.log"
eerror "on https://bugs.gentoo.org/940675"
die "aborting due to incomplete/broken build (see above)"
fi
}

View File

@ -0,0 +1,60 @@
# Copyright 2021-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{11..14} )
QT6_HAS_STATIC_LIBS=1
# behaves very badly when qtdeclarative is not already installed, also
# other more minor issues (installs junk, sandbox/offscreen issues)
QT6_RESTRICT_TESTS=1
inherit python-any-r1 qt6-build
DESCRIPTION="Qt Declarative (Quick 2)"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86"
fi
IUSE="accessibility +jit +network opengl qmlls +sql +ssl svg vulkan +widgets"
RDEPEND="
~dev-qt/qtbase-${PV}:6[accessibility=,gui,network=,opengl=,sql?,ssl?,vulkan=,widgets=]
qmlls? ( ~dev-qt/qtlanguageserver-${PV}:6 )
svg? ( ~dev-qt/qtsvg-${PV}:6 )
"
DEPEND="
${RDEPEND}
vulkan? ( dev-util/vulkan-headers )
"
BDEPEND="
${PYTHON_DEPS}
~dev-qt/qtshadertools-${PV}:6
"
src_configure() {
local mycmakeargs=(
$(cmake_use_find_package qmlls Qt6LanguageServerPrivate)
$(cmake_use_find_package sql Qt6Sql)
$(cmake_use_find_package svg Qt6Svg)
$(qt_feature jit qml_jit)
$(qt_feature network qml_network)
$(qt_feature ssl qml_ssl)
)
qt6-build_src_configure
}
src_install() {
qt6-build_src_install
if [[ ! -e ${D}${QT6_LIBDIR}/libQt6QuickControls2.so.6 ]]; then #940675
eerror "${CATEGORY}/${PF} seems to have been improperly built and"
eerror "install was aborted to protect the system. Possibly(?) due"
eerror "to a rare portage ordering bug. If using portage, try:"
eerror " emerge -1 qtshadertools:6 qtdeclarative:6"
eerror "If that did not resolve the issue, please provide build.log"
eerror "on https://bugs.gentoo.org/940675"
die "aborting due to incomplete/broken build (see above)"
fi
}

View File

@ -0,0 +1,60 @@
# Copyright 2021-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{11..14} )
QT6_HAS_STATIC_LIBS=1
# behaves very badly when qtdeclarative is not already installed, also
# other more minor issues (installs junk, sandbox/offscreen issues)
QT6_RESTRICT_TESTS=1
inherit python-any-r1 qt6-build
DESCRIPTION="Qt Declarative (Quick 2)"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86"
fi
IUSE="accessibility +jit +network opengl qmlls +sql +ssl svg vulkan +widgets"
RDEPEND="
~dev-qt/qtbase-${PV}:6[accessibility=,gui,network=,opengl=,sql?,ssl?,vulkan=,widgets=]
qmlls? ( ~dev-qt/qtlanguageserver-${PV}:6 )
svg? ( ~dev-qt/qtsvg-${PV}:6 )
"
DEPEND="
${RDEPEND}
vulkan? ( dev-util/vulkan-headers )
"
BDEPEND="
${PYTHON_DEPS}
~dev-qt/qtshadertools-${PV}:6
"
src_configure() {
local mycmakeargs=(
$(cmake_use_find_package qmlls Qt6LanguageServerPrivate)
$(cmake_use_find_package sql Qt6Sql)
$(cmake_use_find_package svg Qt6Svg)
$(qt_feature jit qml_jit)
$(qt_feature network qml_network)
$(qt_feature ssl qml_ssl)
)
qt6-build_src_configure
}
src_install() {
qt6-build_src_install
if [[ ! -e ${D}${QT6_LIBDIR}/libQt6QuickControls2.so.6 ]]; then #940675
eerror "${CATEGORY}/${PF} seems to have been improperly built and"
eerror "install was aborted to protect the system. Possibly(?) due"
eerror "to a rare portage ordering bug. If using portage, try:"
eerror " emerge -1 qtshadertools:6 qtdeclarative:6"
eerror "If that did not resolve the issue, please provide build.log"
eerror "on https://bugs.gentoo.org/940675"
die "aborting due to incomplete/broken build (see above)"
fi
}

View File

@ -0,0 +1,60 @@
# Copyright 2021-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{11..14} )
QT6_HAS_STATIC_LIBS=1
# behaves very badly when qtdeclarative is not already installed, also
# other more minor issues (installs junk, sandbox/offscreen issues)
QT6_RESTRICT_TESTS=1
inherit python-any-r1 qt6-build
DESCRIPTION="Qt Declarative (Quick 2)"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86"
fi
IUSE="accessibility +jit +network opengl qmlls +sql +ssl svg vulkan +widgets"
RDEPEND="
~dev-qt/qtbase-${PV}:6[accessibility=,gui,network=,opengl=,sql?,ssl?,vulkan=,widgets=]
qmlls? ( ~dev-qt/qtlanguageserver-${PV}:6 )
svg? ( ~dev-qt/qtsvg-${PV}:6 )
"
DEPEND="
${RDEPEND}
vulkan? ( dev-util/vulkan-headers )
"
BDEPEND="
${PYTHON_DEPS}
~dev-qt/qtshadertools-${PV}:6
"
src_configure() {
local mycmakeargs=(
$(cmake_use_find_package qmlls Qt6LanguageServerPrivate)
$(cmake_use_find_package sql Qt6Sql)
$(cmake_use_find_package svg Qt6Svg)
$(qt_feature jit qml_jit)
$(qt_feature network qml_network)
$(qt_feature ssl qml_ssl)
)
qt6-build_src_configure
}
src_install() {
qt6-build_src_install
if [[ ! -e ${D}${QT6_LIBDIR}/libQt6QuickControls2.so.6 ]]; then #940675
eerror "${CATEGORY}/${PF} seems to have been improperly built and"
eerror "install was aborted to protect the system. Possibly(?) due"
eerror "to a rare portage ordering bug. If using portage, try:"
eerror " emerge -1 qtshadertools:6 qtdeclarative:6"
eerror "If that did not resolve the issue, please provide build.log"
eerror "on https://bugs.gentoo.org/940675"
die "aborting due to incomplete/broken build (see above)"
fi
}