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:
6
dev-qt/qtdeclarative/Manifest
Normal file
6
dev-qt/qtdeclarative/Manifest
Normal file
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
|
||||
26
dev-qt/qtdeclarative/metadata.xml
Normal file
26
dev-qt/qtdeclarative/metadata.xml
Normal 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://bugreports.qt.io/</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>
|
||||
69
dev-qt/qtdeclarative/qtdeclarative-5.15.18-r1.ebuild
Normal file
69
dev-qt/qtdeclarative/qtdeclarative-5.15.18-r1.ebuild
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user