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:
5
dev-qt/qtxml/Manifest
Normal file
5
dev-qt/qtxml/Manifest
Normal file
@ -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
|
||||
156
dev-qt/qtxml/files/qtxml-5.15.16-CVE-2025-30348.patch
Normal file
156
dev-qt/qtxml/files/qtxml-5.15.16-CVE-2025-30348.patch
Normal file
@ -0,0 +1,156 @@
|
||||
From 16918c1df3e709df2a97281e3825d94c84edb668 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Ehrlicher <ch.ehrlicher@gmx.de>
|
||||
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 <edward.welbourne@qt.io>
|
||||
(cherry picked from commit 2ce08e3671b8d18b0284447e5908ce15e6e8f80f)
|
||||
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
||||
(cherry picked from commit 225e235cf966a44af23dbe9aaaa2fd20ab6430ee)
|
||||
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
||||
(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
|
||||
17
dev-qt/qtxml/metadata.xml
Normal file
17
dev-qt/qtxml/metadata.xml
Normal file
@ -0,0 +1,17 @@
|
||||
<?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>
|
||||
<upstream>
|
||||
<bugs-to>https://bugreports.qt.io/</bugs-to>
|
||||
<doc>https://doc.qt.io/</doc>
|
||||
</upstream>
|
||||
<slots>
|
||||
<subslots>
|
||||
Must only be used by packages that are known to use private parts of the Qt API.
|
||||
</subslots>
|
||||
</slots>
|
||||
</pkgmetadata>
|
||||
31
dev-qt/qtxml/qtxml-5.15.16-r1.ebuild
Normal file
31
dev-qt/qtxml/qtxml-5.15.16-r1.ebuild
Normal file
@ -0,0 +1,31 @@
|
||||
# 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
|
||||
)
|
||||
|
||||
PATCHES=( "${FILESDIR}/${P}-CVE-2025-30348.patch" )
|
||||
29
dev-qt/qtxml/qtxml-5.15.17.ebuild
Normal file
29
dev-qt/qtxml/qtxml-5.15.17.ebuild
Normal file
@ -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
|
||||
)
|
||||
29
dev-qt/qtxml/qtxml-5.15.18.ebuild
Normal file
29
dev-qt/qtxml/qtxml-5.15.18.ebuild
Normal file
@ -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
|
||||
)
|
||||
Reference in New Issue
Block a user