summaryrefslogtreecommitdiff
path: root/dev-qt
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-01-08 11:28:34 +0000
committerV3n3RiX <venerix@redcorelinux.org>2021-01-08 11:28:34 +0000
commit24fd814c326e282c4321965c31f341dad77e270d (patch)
tree033d63b33c21a3209964ab56005bb9bdd523630d /dev-qt
parent129160ec854dca4c3fedb5bcfbcb56930371da0f (diff)
gentoo resync : 08.01.2021
Diffstat (limited to 'dev-qt')
-rw-r--r--dev-qt/Manifest.gzbin10341 -> 10346 bytes
-rw-r--r--dev-qt/qtcore/Manifest4
-rw-r--r--dev-qt/qtcore/files/qtcore-5.15.2-fix-UB-in-QDateTime.patch88
-rw-r--r--dev-qt/qtcore/files/qtcore-5.15.2-fix-alloc-mem-of-QByteArray.patch54
-rw-r--r--dev-qt/qtcore/qtcore-5.15.2-r2.ebuild (renamed from dev-qt/qtcore/qtcore-5.15.2.ebuild)4
-rw-r--r--dev-qt/qtgui/Manifest3
-rw-r--r--dev-qt/qtgui/files/qtgui-5.15.2-bogus-xcb-util-dep.patch72
-rw-r--r--dev-qt/qtgui/qtgui-5.15.2-r1.ebuild (renamed from dev-qt/qtgui/qtgui-5.15.2.ebuild)3
-rw-r--r--dev-qt/qtlocation/Manifest4
-rw-r--r--dev-qt/qtlocation/files/qtlocation-5.15.2-qsg-render-thread-crash-1.patch66
-rw-r--r--dev-qt/qtlocation/files/qtlocation-5.15.2-qsg-render-thread-crash-2.patch115
-rw-r--r--dev-qt/qtlocation/qtlocation-5.15.2-r1.ebuild (renamed from dev-qt/qtlocation/qtlocation-5.15.2.ebuild)5
-rw-r--r--dev-qt/qtnetwork/Manifest3
-rw-r--r--dev-qt/qtnetwork/files/qtnetwork-5.15.2-QNetworkAccessManager-memleak.patch41
-rw-r--r--dev-qt/qtnetwork/qtnetwork-5.15.2-r1.ebuild (renamed from dev-qt/qtnetwork/qtnetwork-5.15.2.ebuild)7
-rw-r--r--dev-qt/qtwayland/Manifest3
-rw-r--r--dev-qt/qtwayland/files/qtwayland-5.15.2-qtwaylandscanner-avoid-dangling-pointers.patch35
-rw-r--r--dev-qt/qtwayland/qtwayland-5.15.2-r1.ebuild (renamed from dev-qt/qtwayland/qtwayland-5.15.2.ebuild)4
-rw-r--r--dev-qt/qtwebengine/Manifest3
-rw-r--r--dev-qt/qtwebengine/files/qtwebengine-5.15.2-icu-68-v8-runtime-fix.patch170
-rw-r--r--dev-qt/qtwebengine/qtwebengine-5.15.2.ebuild3
21 files changed, 674 insertions, 13 deletions
diff --git a/dev-qt/Manifest.gz b/dev-qt/Manifest.gz
index e350d0338be6..29f00045a453 100644
--- a/dev-qt/Manifest.gz
+++ b/dev-qt/Manifest.gz
Binary files differ
diff --git a/dev-qt/qtcore/Manifest b/dev-qt/qtcore/Manifest
index 6cda18c59ec0..8f4125f7d560 100644
--- a/dev-qt/qtcore/Manifest
+++ b/dev-qt/qtcore/Manifest
@@ -1,8 +1,10 @@
AUX qtcore-5.14.1-cmake-macro-backward-compat.patch 2555 BLAKE2B 5fe2b70232722416cb85ecce8a0742b57503c520482aa0386042f43d4cf20926a874b9a92f90c656cfe0bf93883c286b6b08c0ad2568f3a6746c776dcf208995 SHA512 c7ba0bfa6d462504ba9421abfb7f502265fd8c6bd7469326612925cd7b7667daba3350f714aa5a516aa83e5352ec6d18fc02af9ebf5494af10a4b6f8f7c47d5b
AUX qtcore-5.15.1-timezone-1.patch 9484 BLAKE2B aa36362fcc6ea1ab144e97dfa1e023e4fbad64f8702e817ee2431ac271aefd637609d14a265c2d6e58bedbdb3f635b4b979c9bf1463a29370ae05bb2610e131b SHA512 1edfe267827225279b0ecad60a5a350b825ed9bd84574d0e5470e71bac75668c0655aa0db2f001e26e331f85e0cf0a68412ba5a9541581bf39a0e954313672b2
AUX qtcore-5.15.1-timezone-2.patch 1933 BLAKE2B 479f82c90d2132291bc298491d61d7144e08a6db8b36d7d1a89f368c894e41902ae964aaa2819010c485dc5aedd937f2dd00b4efa99d3393d11368e0ea258481 SHA512 c978ffadf15629ab562a53cc24d31e33f4df861962b927ea37061747cb74a7b677d7ae3a617b526c4f48085fe73ebb89fbf5a44748433426dd74e5691a238097
+AUX qtcore-5.15.2-fix-UB-in-QDateTime.patch 3707 BLAKE2B 7b1ed1b539d04e299b3148acf85d69c014a8a76882a682910b323117e176c68dab8b48de12c0a5c885508dd6d97a4ae9da4a27162323ba743d25f9a83319b367 SHA512 62beec1be070ff6136f1b52c1789e31f877bf728ca12c54c90de6302f6c35008d0d9e939f99a92465ca14ee977faed507b2acdea553d8904eb201aed41a97805
+AUX qtcore-5.15.2-fix-alloc-mem-of-QByteArray.patch 1944 BLAKE2B 71f3a02d89e3604cec0f021fe28bddc0ab43e242742d0f5af17a46bbfdc444f7d3244fe995195ef0c1c9119313a472bd7e64a6fd02986f7cb6cb544553fbd36d SHA512 6f9f57eb2b374b56576fe0046518810e07482aae1a74f45c9692ffbd797ad1653aedfcd896d89909ade4572564164e92698de64da9f98ce876952c2c96b15aa3
DIST qtbase-everywhere-src-5.15.1.tar.xz 50153132 BLAKE2B 5a8cbbf8d44c7affc8ee43db04bd024bb529e0707b1feee2c7ae439cdf1331b1cf3e89b84c6a6f5bab3ec34025fbd634a8f4d259bd64ece172f288500e5b59e6 SHA512 40b687c046b25a6717834ffe2616ee4f373d75214ec1c7e3a26502cd0cde9f0a872eaee99f06c54c7a3625ae85df5cdd3a3b54a160e8e37c7cfeb5800d026fe4
DIST qtbase-everywhere-src-5.15.2.tar.xz 50179672 BLAKE2B 0e4bdaab43cf59664bde89f87ea260c39acc2ef866d8629d41d9c326cab0ab68bcd943c86a472ae74bc9fb0b7ad50795ccb66275bb6b77d1fcf0a38b5662cb42 SHA512 a549bfaf867d746ff744ab224eb65ac1bdcdac7e8457dfa379941b2b225a90442fcfc1e1175b9afb1f169468f8130b7ab917c67be67156520a4bfb5c92d304f9
EBUILD qtcore-5.15.1-r1.ebuild 2329 BLAKE2B 334f653646aa77c793cfb5de180980e1d2e8d7fde149256de83c944fff0498fb6f323b623bbe1af0028a5a4dfa872c4907c779396b8afce34ba810addd840d60 SHA512 15a004f1ffafe87d13b1bc309b193239891a785e640ee5042262a35b780efdd7ba6ab9201cd346c05f8b46323771174188160f33025a17e61bd22ab1e7f6a643
-EBUILD qtcore-5.15.2.ebuild 2293 BLAKE2B ceb633d3f4e3de49d530b507c6f9f6a50ca7b1a33ca4febcb45e604817fbc4007f61ea59ad0c3fc2234780d234cc26b3a2597fc78bfbfd9104354b8d169492a6 SHA512 dcad7b7c421e270277ff595cd66407a93c0dd126b96597dd1eda5dafe87b2616dd7562591208efae9858c8f54f50f2dae4f0ee0c84e91d88e26e0bd4c94b8d44
+EBUILD qtcore-5.15.2-r2.ebuild 2421 BLAKE2B 97ab233d49d73f948a1d3253b0db404420c6180b2c31009a9da16c2fa2884ba493b1c7606e39b8ed2a72e4bcc93e2303c2e2c1e12e27beb9dd781a6cdf305777 SHA512 018c8e842bb9d44c02c1662e88520a710133a35581a9aa9ce89ceedc1ad8088a4a4638d8afbbafdfb21381d59e69040f71c53818bf0915160a9c7fbb7c97a43b
MISC metadata.xml 832 BLAKE2B 20f3ca80bc8aea1203ca8c3f34314fb599151eed5639cb9ba6cee97b70a04152ce8c06a4bf1f41058515a3a9d32242bcdf84b6fc75b68b7183951f7c9747396d SHA512 ea1c7dfef8c3afeda436a1de09ee2002441b7d13b3aa40bda02324668f3664fceafcf276f87c897e83f49e246e9fb3ffcefa95098ccb2f5a8b503779686e1b3e
diff --git a/dev-qt/qtcore/files/qtcore-5.15.2-fix-UB-in-QDateTime.patch b/dev-qt/qtcore/files/qtcore-5.15.2-fix-UB-in-QDateTime.patch
new file mode 100644
index 000000000000..b131b7af3657
--- /dev/null
+++ b/dev-qt/qtcore/files/qtcore-5.15.2-fix-UB-in-QDateTime.patch
@@ -0,0 +1,88 @@
+From d2c0fc2b5f1c07c1e0acb1c0127578066b6f9b8e Mon Sep 17 00:00:00 2001
+From: Edward Welbourne <edward.welbourne@qt.io>
+Date: Tue, 24 Nov 2020 12:45:11 +0100
+Subject: [PATCH] Bounds-check time-zone offsets when parsing
+
+Parsing of time-zone offsets should check the offset string conforms
+to the expected format and has valid values in its fields. The
+QDateTime parser, fromOffsetString(), neglected the bounds check on
+hours; the QTzTimeZonePrivate parser, parsePosixTime(), neglected all
+upper bounds checks, only checking against negative valus.
+
+Drive-by - refined phrasing of a comment.
+
+Fixes: QTBUG-88656
+Change-Id: If04cdbe65064108eaa87c42310527783ad21b4c0
+Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
+(cherry picked from commit 380d97e1bd15e753907c378a070bdf7f1c1cf06e)
+Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
+---
+ src/corelib/time/qdatetime.cpp | 2 +-
+ src/corelib/time/qtimezoneprivate_tz.cpp | 27 ++++++++++++++++-----------
+ 2 files changed, 17 insertions(+), 12 deletions(-)
+
+diff --git a/src/corelib/time/qdatetime.cpp b/src/corelib/time/qdatetime.cpp
+index e824787880c..a2816e87f4a 100644
+--- a/src/corelib/time/qdatetime.cpp
++++ b/src/corelib/time/qdatetime.cpp
+@@ -240,7 +240,7 @@ static int fromOffsetString(QStringView offsetString, bool *valid) noexcept
+ const QStringView hhRef = time.left(qMin(hhLen, time.size()));
+ bool ok = false;
+ const int hour = C.toInt(hhRef, &ok);
+- if (!ok)
++ if (!ok || hour > 23) // More generous than QTimeZone::MaxUtcOffsetSecs
+ return 0;
+
+ const QStringView mmRef = time.mid(qMin(mmIndex, time.size()));
+diff --git a/src/corelib/time/qtimezoneprivate_tz.cpp b/src/corelib/time/qtimezoneprivate_tz.cpp
+index b816b4ecff2..adc590878d7 100644
+--- a/src/corelib/time/qtimezoneprivate_tz.cpp
++++ b/src/corelib/time/qtimezoneprivate_tz.cpp
+@@ -394,29 +394,34 @@ static int parsePosixTime(const char *begin, const char *end)
+ // Format "hh[:mm[:ss]]"
+ int hour, min = 0, sec = 0;
+
+- // Note that the calls to qstrtoll do *not* check the end pointer, which
+- // means they proceed until they find a non-digit. We check that we're
+- // still in range at the end, but we may have read from past end. It's the
+- // caller's responsibility to ensure that begin is part of a
+- // null-terminated string.
++ // Note that the calls to qstrtoll do *not* check against the end pointer,
++ // which means they proceed until they find a non-digit. We check that we're
++ // still in range at the end, but we may have read past end. It's the
++ // caller's responsibility to ensure that begin is part of a null-terminated
++ // string.
+
++ const int maxHour = QTimeZone::MaxUtcOffsetSecs / 3600;
+ bool ok = false;
+- hour = qstrtoll(begin, &begin, 10, &ok);
+- if (!ok || hour < 0)
++ const char *cut = begin;
++ hour = qstrtoll(begin, &cut, 10, &ok);
++ if (!ok || hour < 0 || hour > maxHour || cut > begin + 2)
+ return INT_MIN;
++ begin = cut;
+ if (begin < end && *begin == ':') {
+ // minutes
+ ++begin;
+- min = qstrtoll(begin, &begin, 10, &ok);
+- if (!ok || min < 0)
++ min = qstrtoll(begin, &cut, 10, &ok);
++ if (!ok || min < 0 || min > 59 || cut > begin + 2)
+ return INT_MIN;
+
++ begin = cut;
+ if (begin < end && *begin == ':') {
+ // seconds
+ ++begin;
+- sec = qstrtoll(begin, &begin, 10, &ok);
+- if (!ok || sec < 0)
++ sec = qstrtoll(begin, &cut, 10, &ok);
++ if (!ok || sec < 0 || sec > 59 || cut > begin + 2)
+ return INT_MIN;
++ begin = cut;
+ }
+ }
+
+--
+2.16.3
diff --git a/dev-qt/qtcore/files/qtcore-5.15.2-fix-alloc-mem-of-QByteArray.patch b/dev-qt/qtcore/files/qtcore-5.15.2-fix-alloc-mem-of-QByteArray.patch
new file mode 100644
index 000000000000..892d89d2948c
--- /dev/null
+++ b/dev-qt/qtcore/files/qtcore-5.15.2-fix-alloc-mem-of-QByteArray.patch
@@ -0,0 +1,54 @@
+From 6485b6d45ad165cf976138cf8ab683c42515e794 Mon Sep 17 00:00:00 2001
+From: Kai Koehne <kai.koehne@qt.io>
+Date: Tue, 13 Oct 2020 15:47:31 +0200
+Subject: [PATCH] Fix allocated memory of QByteArray returned by
+ QIODevice::readLine
+
+If the maxSize argument is 0 (the default), QIODevice::readLine will
+allocate a QByteArray with the size of the next chunk of data, which
+may be quite large. Before returning, it then resizes the byte array
+to the actual size that was read.
+
+But since change 6b884d2aa129, QByteArray::resize() does no
+longer shrink the capacity. This means that the returned QByteArray
+keeps it's maximum size as allocated memory. This can lead to
+excessive memory consumption, especially if the returned QByteArray's
+are stored for further processing in the client code.
+
+Fix this by explicitly calling QByteArray::squeeze() before returning.
+
+[ChangeLog][QtCore][QIODevice] Fixes a regression in Qt 5.15 causing
+QByteArray's that are returned by QIODevice::readLine() to
+consume large amounts of memory.
+
+Fixes: QTBUG-87010
+Change-Id: I1f95fc4098849e900680fc945238bfeda881022c
+Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
+(cherry picked from commit 263b29eedb223dec1ecaee193302070af87a1852,
+limited squeeze() call if bytes are actually read to preserve retVal.isNull()
+behavior in 5.15)
+---
+ src/corelib/io/qiodevice.cpp | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/corelib/io/qiodevice.cpp b/src/corelib/io/qiodevice.cpp
+index cc1d1102522..0f11c2e805c 100644
+--- a/src/corelib/io/qiodevice.cpp
++++ b/src/corelib/io/qiodevice.cpp
+@@ -1480,10 +1480,12 @@ QByteArray QIODevice::readLine(qint64 maxSize)
+ } else
+ readBytes = readLine(result.data(), result.size());
+
+- if (readBytes <= 0)
++ if (readBytes <= 0) {
+ result.clear();
+- else
++ } else {
+ result.resize(readBytes);
++ result.squeeze();
++ }
+
+ return result;
+ }
+--
+2.16.3
diff --git a/dev-qt/qtcore/qtcore-5.15.2.ebuild b/dev-qt/qtcore/qtcore-5.15.2-r2.ebuild
index 930bd912dbd9..3fce1aceac5d 100644
--- a/dev-qt/qtcore/qtcore-5.15.2.ebuild
+++ b/dev-qt/qtcore/qtcore-5.15.2-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -48,6 +48,8 @@ QT5_GENTOO_PRIVATE_CONFIG=(
PATCHES=(
"${FILESDIR}"/${PN}-5.14.1-cmake-macro-backward-compat.patch # bug 703306
"${FILESDIR}"/${PN}-5.15.1-timezone-{1,2}.patch # bug 737914
+ "${FILESDIR}"/${P}-fix-UB-in-QDateTime.patch # QTBUG-88656
+ "${FILESDIR}"/${P}-fix-alloc-mem-of-QByteArray.patch # QTBUG-87010
)
pkg_pretend() {
diff --git a/dev-qt/qtgui/Manifest b/dev-qt/qtgui/Manifest
index 1e25fb7cbd48..2d5f3dbaf57b 100644
--- a/dev-qt/qtgui/Manifest
+++ b/dev-qt/qtgui/Manifest
@@ -1,8 +1,9 @@
AUX qt-5.12-gcc-avx2.patch 1038 BLAKE2B cb54308c8ef4df9efaa8727ba292b7e959ae069237f8dbc6c7432556c4697f0263dca098f348b0afe94cc93359f929c564c8201a60d585b5907b6bd497369e24 SHA512 0eb51d41996bf42bc896eef53d2e335777c6c6f56fe027581f8b636a57759c98b3f08a5330c9fdeb0054aaa1955024140b161fd19c6457cc66fe68414b1cd8ff
AUX qtgui-5.14.1-cmake-macro-backward-compat.patch 2555 BLAKE2B 5fe2b70232722416cb85ecce8a0742b57503c520482aa0386042f43d4cf20926a874b9a92f90c656cfe0bf93883c286b6b08c0ad2568f3a6746c776dcf208995 SHA512 c7ba0bfa6d462504ba9421abfb7f502265fd8c6bd7469326612925cd7b7667daba3350f714aa5a516aa83e5352ec6d18fc02af9ebf5494af10a4b6f8f7c47d5b
AUX qtgui-5.15.1-emit-qscreen-geometrychanged-when-dpi-changes.patch 3517 BLAKE2B 5f65f37420688f9c467ae9a1190cd8774edce8aaa4a4272c173d11bd801f698a667459dae8289f36529e414d36013d40b1e82752a09ee2ad8d28bf0a648bec68 SHA512 46acde292a9654f92ad603d0d0083517c8187708131166292c950f8acc73702762e0dc8a037937c6f902598636cdf320f645f2c0ebc546d095df7bd89419f9be
+AUX qtgui-5.15.2-bogus-xcb-util-dep.patch 2685 BLAKE2B d281ae95f88f853cf902438680c73b1660aa0e4df384c1b5b96fcf63d5ccef8f97acda57a077ec1bdf20fef64eca7be8bc1e329f90fd4d59e40b746c394725b4 SHA512 b4a7c65cdca80ec3ea9ee17db2bc07b69cee5da82b11ab6ae32cb7e05b6288e3d3ec8a82d91887e86a96286bea2c5918796131c71c5c5a076577dedd4b82189a
DIST qtbase-everywhere-src-5.15.1.tar.xz 50153132 BLAKE2B 5a8cbbf8d44c7affc8ee43db04bd024bb529e0707b1feee2c7ae439cdf1331b1cf3e89b84c6a6f5bab3ec34025fbd634a8f4d259bd64ece172f288500e5b59e6 SHA512 40b687c046b25a6717834ffe2616ee4f373d75214ec1c7e3a26502cd0cde9f0a872eaee99f06c54c7a3625ae85df5cdd3a3b54a160e8e37c7cfeb5800d026fe4
DIST qtbase-everywhere-src-5.15.2.tar.xz 50179672 BLAKE2B 0e4bdaab43cf59664bde89f87ea260c39acc2ef866d8629d41d9c326cab0ab68bcd943c86a472ae74bc9fb0b7ad50795ccb66275bb6b77d1fcf0a38b5662cb42 SHA512 a549bfaf867d746ff744ab224eb65ac1bdcdac7e8457dfa379941b2b225a90442fcfc1e1175b9afb1f169468f8130b7ab917c67be67156520a4bfb5c92d304f9
EBUILD qtgui-5.15.1-r1.ebuild 4064 BLAKE2B 0d3a6a6be5b202b2005e15d24073d848d4c9754870dbf5e64bc691ab1b8a36b0151f2247a861be53379b9e1483b727d60a75eac7bd953fc486445044655eb777 SHA512 91455d767974c80878e34d2f53a2a45d88499dabbb69bf2365da8d31b963991bba5c32db96c11b357ecf6ec1a1115f1c109a4d08530941b43a4325e03aaa72e4
-EBUILD qtgui-5.15.2.ebuild 4042 BLAKE2B 768ebd3def06f8a30e94e51e52a1c94e2e714d5294588bf0bc1f0adf0841a2399722485393abe819990edbb2a1ba4002846de561532a6d50e5e66ec9fc0221d9 SHA512 ed2af0143d90479a7c4ab5bbd6d482cc1454be2d645187058f29d251981fe29379d0243731e09aba5ae2b74434e5166260f2f7c8a5eea264c0a3c6ef4806c670
+EBUILD qtgui-5.15.2-r1.ebuild 4114 BLAKE2B 34f7db15a20323fe99e8ffbf512bdffecc3ab03d13e5c54ef76cb45493940e9f56db5dcf2e92484337c89f8e8a56ee99eca5d8ad670b1d5e9a4a552f01582edd SHA512 b05953b6bbe5dc43c7bedd22a5041157c2d6df66a7048110447f19f74a59619e9ca2b3c3c5943f4953b241c5c287e88717252d546cf56e5704163be78a801041
MISC metadata.xml 1302 BLAKE2B 898227fe66d379fb08154a190b9eec68d98e452cf412ee56ccb9a879511d27ab44cdac45174c5fd674e080a7cf782ee64ea0eeb515d5bcee52491b685c01fd98 SHA512 5d0bd8b7c3cefa4d01005473022fee1ee49e845f56c003480edd09bf68ed07ff406160e26232d7febe21cdd5b10de0ec480d1d89d977d546756e437185204e2c
diff --git a/dev-qt/qtgui/files/qtgui-5.15.2-bogus-xcb-util-dep.patch b/dev-qt/qtgui/files/qtgui-5.15.2-bogus-xcb-util-dep.patch
new file mode 100644
index 000000000000..b7f65483fb1b
--- /dev/null
+++ b/dev-qt/qtgui/files/qtgui-5.15.2-bogus-xcb-util-dep.patch
@@ -0,0 +1,72 @@
+From 61b07d75f96d4dfb07b485b2a9bd7aed099df987 Mon Sep 17 00:00:00 2001
+From: Liang Qi <liang.qi@qt.io>
+Date: Tue, 1 Dec 2020 08:43:28 +0100
+Subject: [PATCH] Revert "xcb: add xcb-util dependency for xcb-image"
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf8
+Content-Transfer-Encoding: 8bit
+
+This reverts commit adc42bebcac764ca8de78578e3a4ac39b621bd09.
+
+adc42beb is wrong, the bug is for static build of qt with static
+xcb. It adds the explicit dependency of xcb-util 0.3.9, which is
+not available on Debian yet.
+
+Task-number: QTBUG-86287
+Fixes: QTBUG-88688
+Change-Id: Iffc821f49bdfcad3f2556951d3677c35a7682266
+Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
+Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
+(adapted from commit 92a57e0b016f811876ec1d62328ca8edfe452a3a)
+---
+ src/gui/configure.json | 14 ++------------
+ 1 file changed, 2 insertions(+), 12 deletions(-)
+
+diff --git a/src/gui/configure.json b/src/gui/configure.json
+index c8c4864eca6..1f08795c57b 100644
+--- a/src/gui/configure.json
++++ b/src/gui/configure.json
+@@ -601,15 +601,6 @@
+ ],
+ "use": "xcb"
+ },
+- "xcb_util": {
+- "label": "XCB Util >= 0.3.9",
+- "headers": "xcb/xcb_util.h",
+- "sources": [
+- { "type": "pkgConfig", "args": "xcb-util >= 0.3.9" },
+- "-lxcb-util"
+- ],
+- "use": "xcb"
+- },
+ "xcb_image": {
+ "label": "XCB Image >= 0.3.9",
+ "headers": "xcb/xcb_image.h",
+@@ -617,7 +608,7 @@
+ { "type": "pkgConfig", "args": "xcb-image >= 0.3.9" },
+ "-lxcb-image"
+ ],
+- "use": "xcb_shm xcb_util xcb"
++ "use": "xcb_shm xcb"
+ },
+ "xcb_keysyms": {
+ "label": "XCB Keysyms >= 0.3.9",
+@@ -1065,7 +1056,6 @@
+ "tail": "#undef explicit",
+ "include": [
+ "xcb/xcb.h",
+- "xcb/xcb_util.h",
+ "xcb/xcb_image.h",
+ "xcb/xcb_keysyms.h",
+ "xcb/randr.h",
+@@ -1097,7 +1087,7 @@
+ "xcb_xkb_get_kbd_by_name_replies_key_names_value_list_sizeof(nullptr, 0, 0, 0, 0, 0, 0, 0, 0);"
+ ]
+ },
+- "use": "xcb_icccm xcb_util xcb_image xcb_keysyms xcb_randr xcb_render xcb_renderutil xcb_shape xcb_shm xcb_sync xcb_xfixes xcb_xinerama xcb_xkb xcb"
++ "use": "xcb_icccm xcb_image xcb_keysyms xcb_randr xcb_render xcb_renderutil xcb_shape xcb_shm xcb_sync xcb_xfixes xcb_xinerama xcb_xkb xcb"
+ },
+ "x11prefix": {
+ "label": "X11 prefix",
+--
+2.16.3
diff --git a/dev-qt/qtgui/qtgui-5.15.2.ebuild b/dev-qt/qtgui/qtgui-5.15.2-r1.ebuild
index 2e272cfbc2f2..13063686d1cc 100644
--- a/dev-qt/qtgui/qtgui-5.15.2.ebuild
+++ b/dev-qt/qtgui/qtgui-5.15.2-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -134,6 +134,7 @@ QT5_GENTOO_PRIVATE_CONFIG=(
PATCHES=(
"${FILESDIR}/qt-5.12-gcc-avx2.patch" # bug 672946
"${FILESDIR}/${PN}-5.14.1-cmake-macro-backward-compat.patch" # bug 703306
+ "${FILESDIR}/${P}-bogus-xcb-util-dep.patch" # QTBUG-86287, QTBUG-88688
)
src_prepare() {
diff --git a/dev-qt/qtlocation/Manifest b/dev-qt/qtlocation/Manifest
index 49f98420ed72..6fcda8c483b8 100644
--- a/dev-qt/qtlocation/Manifest
+++ b/dev-qt/qtlocation/Manifest
@@ -1,5 +1,7 @@
+AUX qtlocation-5.15.2-qsg-render-thread-crash-1.patch 2445 BLAKE2B 17e043da1710ee64979310b1b37ed1364d9688c62e4a61b68b0f5cb92b0a19b7f00266a571fdfbe164c2d7cd7e9d2aa89424a67af4276b0a9f07a541003399ee SHA512 45124a3607a69d01f63cff705d1ce19e5e996f2b0aa39dc23bb65337c77889775e2d885a39e6fdded7604c4018cbfd3bb3a74b2d46c889f6917dd5aa0b6e753f
+AUX qtlocation-5.15.2-qsg-render-thread-crash-2.patch 5154 BLAKE2B f93fab080a63bbdd3e0fc78667291d4201ca1f93668185adf73f2fd918df02e210cdc367b006dea0275b8f38c1a34372efe796ec3bf11f161f62b421d4a6ec87 SHA512 344660f52eb13981832cbc384beafce79627e0d4c7d54920ec04a302915848a0e069d483f9f6a2005beaba40bf5e540822ecbc96542fccb9fa29f399cc02d3fd
DIST qtlocation-everywhere-src-5.15.1.tar.xz 6553252 BLAKE2B 493ea55065f03f05db7c65c22f53b96a62b3912a62f3385d393650a96b156e5a5d76dfe5ed3df8eee5ce379c9bbf36a62b6f088dab0519bd14355a7ba956a279 SHA512 b79383b60107bc4d8fcc9b4a087db57597d0b928248806fef9dfeaa8ce3347ce96b388cbce1a7bcaf3287d380f7c269c44e8ec25966112c041aa298313854106
DIST qtlocation-everywhere-src-5.15.2.tar.xz 6556764 BLAKE2B a322f35ece266fff6428da9090f02c0d5749a4750ff0655ef09695f147d88d667b5917335e44d0f8721cc56f425c171fb11d0f34342aff005327518e9c1d6db8 SHA512 6192922506b3ea354e85431df83c19d7cc9aebb17549c6a1de48f625bf8365ff3db3161080dde254a5fb9199d99c3c5dc8e1533429150be55df96ddb7d6ce16f
EBUILD qtlocation-5.15.1.ebuild 1087 BLAKE2B 92b7aa503e1da750e4cff065776abe307d1c21e20b84632278399c9a797ddc67ca03f37fa1beec60ba067963988c01a92a87786ca0c767d974799ef2f012e36b SHA512 b61600143e58eb713433a1293ce6f16ee54d51263e7472df94548ecc3a851fb04cd17082f56ca74538d9529bfcecc13c0abe2dd6e61c4412a8289565ded3df7d
-EBUILD qtlocation-5.15.2.ebuild 1091 BLAKE2B 8e0032857e92c0d94afc73f4a89c94b3832920840b23f48b5f6af730e5134f8e26736bdcd8ea2eab943908169d618392fb22381affae0d6495548b2702408100 SHA512 c0b1507d3967a523533a437ba45276624d0c68aa23c4ad55b0c25539f5877fa6c474b41cfbef958bd43cb991d98b26ca6cd0e2cd5c4523224906f21365c8c234
+EBUILD qtlocation-5.15.2-r1.ebuild 1174 BLAKE2B 412882022ea635d1f970c8e517663bf42aa414968dca05afec4240153792f549c39a582ce22681a9d5f056dda75c7e83275a908f98cb975d2d36cecd47bb6e83 SHA512 2277071646ac319978430802fe3d0db8d9bcdb3e87f2e0baf87aafaa05d330dce60eabf18fba719a3feea0757f3867272bd62a7bd91b8cf0b15b38ff7af8ae18
MISC metadata.xml 481 BLAKE2B 210b94f2e7cdb09b2e07ec4a931ea47d5aed734be52e9dcb132ae174fc0707ebd82feff52e44490c7133274c4dd31b0898f9fa54ce700b635b6a45c2cbf2b5c6 SHA512 bc22732d392630b21ba3895b22a3b1835fe639f930bad0ebab511757df89ebbb30530f0c482ff0a7eb24c7ba844f0b2448040dc5252ac98b0ac01423f236829f
diff --git a/dev-qt/qtlocation/files/qtlocation-5.15.2-qsg-render-thread-crash-1.patch b/dev-qt/qtlocation/files/qtlocation-5.15.2-qsg-render-thread-crash-1.patch
new file mode 100644
index 000000000000..d4cd0188d1a1
--- /dev/null
+++ b/dev-qt/qtlocation/files/qtlocation-5.15.2-qsg-render-thread-crash-1.patch
@@ -0,0 +1,66 @@
+From 4fe9e0ed027134a833b2243597a2ccd00987b559 Mon Sep 17 00:00:00 2001
+From: Piotr Mikolajczyk <piotr.mikolajczyk@qt.io>
+Date: Tue, 29 Sep 2020 10:41:23 +0200
+Subject: [PATCH] Fix crash when showing Map QML comp. for 2nd+ time
+
+Crash caused by storing pointer to a node that could be deleted elsewhere
+
+Fixes: QTBUG-85260
+Change-Id: I871123322fac84b8bf91e9bab8ecad08e75c2854
+Reviewed-by: Paolo Angelelli <paolo.angelelli.qt@gmail.com>
+---
+ src/location/labs/qsg/qgeomapobjectqsgsupport.cpp | 29 ++++++++++++++++++++++-
+ 1 file changed, 28 insertions(+), 1 deletion(-)
+
+diff --git a/src/location/labs/qsg/qgeomapobjectqsgsupport.cpp b/src/location/labs/qsg/qgeomapobjectqsgsupport.cpp
+index 0e1df8f6c..cd1801305 100644
+--- a/src/location/labs/qsg/qgeomapobjectqsgsupport.cpp
++++ b/src/location/labs/qsg/qgeomapobjectqsgsupport.cpp
+@@ -48,7 +48,32 @@ static int findMapObject(QGeoMapObject *o, const QList<MapObject> &list)
+ }
+ return -1;
+ }
++namespace {
++bool findNodeInStructure(QSGNode *root, QSGNode *item)
++{
++ if (root == nullptr || item == nullptr)
++ return false;
++ if (root == item)
++ return true;
++ auto currentChild = root->firstChild();
++ // First check the direct child nodes and if not found let's dive deeper
++ bool bFound = (item == currentChild);
++
++ while (!bFound && currentChild) {
++ currentChild = currentChild->nextSibling();
++ bFound = (item == currentChild);
++ }
+
++ if (!bFound) {
++ currentChild = root->firstChild();
++ while (!bFound && currentChild) {
++ bFound = findNodeInStructure(currentChild, item);
++ currentChild = currentChild->nextSibling();
++ }
++ }
++ return bFound;
++}
++}
+ bool QGeoMapObjectQSGSupport::createMapObjectImplementation(QGeoMapObject *obj, QGeoMapPrivate *d)
+ {
+ QExplicitlySharedDataPointer<QGeoMapObjectPrivate> pimpl =
+@@ -157,9 +182,11 @@ void QGeoMapObjectQSGSupport::updateMapObjects(QSGNode *root, QQuickWindow *wind
+ {
+ if (!root)
+ return;
++ if (!findNodeInStructure(root, m_mapObjectsRootNode))
++ m_mapObjectsRootNode = nullptr;
+ if (!m_mapObjectsRootNode) {
+ m_mapObjectsRootNode = new QDeclarativePolygonMapItemPrivateOpenGL::RootNode();
+- root->appendChildNode(m_mapObjectsRootNode);
++ root->appendChildNode(m_mapObjectsRootNode); // PASSING OWNERSHIP!
+ }
+
+ m_mapObjectsRootNode->removeAllChildNodes();
+--
+2.16.3
diff --git a/dev-qt/qtlocation/files/qtlocation-5.15.2-qsg-render-thread-crash-2.patch b/dev-qt/qtlocation/files/qtlocation-5.15.2-qsg-render-thread-crash-2.patch
new file mode 100644
index 000000000000..4bd70b99abbf
--- /dev/null
+++ b/dev-qt/qtlocation/files/qtlocation-5.15.2-qsg-render-thread-crash-2.patch
@@ -0,0 +1,115 @@
+From 861e372b6ad81570d4f496e42fb25a6699b72f2f Mon Sep 17 00:00:00 2001
+From: Piotr Mikolajczyk <piotr.mikolajczyk@qt.io>
+Date: Tue, 3 Nov 2020 11:43:22 +0100
+Subject: [PATCH] Simpler fix to crashing Qml Map appearing 2nd+ time
+
+Previous solution did not take advantage of the QSGNode::OwnedByParent
+flag. Setting this flag to false allows to use parent() property
+to determine if the node has been removed from node tree.
+This amends 4fe9e0ed027134a833b2243597a2ccd00987b559
+
+Fixes: QTBUG-85260
+Change-Id: I705848483d7dc2639dffffa0ff66c682b3fffca0
+Reviewed-by: Andy Shaw <andy.shaw@qt.io>
+---
+ src/location/labs/qsg/qgeomapobjectqsgsupport.cpp | 40 +++++------------------
+ src/location/labs/qsg/qgeomapobjectqsgsupport_p.h | 3 +-
+ 2 files changed, 11 insertions(+), 32 deletions(-)
+
+diff --git a/src/location/labs/qsg/qgeomapobjectqsgsupport.cpp b/src/location/labs/qsg/qgeomapobjectqsgsupport.cpp
+index cd1801305..a978573d6 100644
+--- a/src/location/labs/qsg/qgeomapobjectqsgsupport.cpp
++++ b/src/location/labs/qsg/qgeomapobjectqsgsupport.cpp
+@@ -48,32 +48,7 @@ static int findMapObject(QGeoMapObject *o, const QList<MapObject> &list)
+ }
+ return -1;
+ }
+-namespace {
+-bool findNodeInStructure(QSGNode *root, QSGNode *item)
+-{
+- if (root == nullptr || item == nullptr)
+- return false;
+- if (root == item)
+- return true;
+- auto currentChild = root->firstChild();
+- // First check the direct child nodes and if not found let's dive deeper
+- bool bFound = (item == currentChild);
+-
+- while (!bFound && currentChild) {
+- currentChild = currentChild->nextSibling();
+- bFound = (item == currentChild);
+- }
+
+- if (!bFound) {
+- currentChild = root->firstChild();
+- while (!bFound && currentChild) {
+- bFound = findNodeInStructure(currentChild, item);
+- currentChild = currentChild->nextSibling();
+- }
+- }
+- return bFound;
+-}
+-}
+ bool QGeoMapObjectQSGSupport::createMapObjectImplementation(QGeoMapObject *obj, QGeoMapPrivate *d)
+ {
+ QExplicitlySharedDataPointer<QGeoMapObjectPrivate> pimpl =
+@@ -182,11 +157,14 @@ void QGeoMapObjectQSGSupport::updateMapObjects(QSGNode *root, QQuickWindow *wind
+ {
+ if (!root)
+ return;
+- if (!findNodeInStructure(root, m_mapObjectsRootNode))
+- m_mapObjectsRootNode = nullptr;
++
++ if (m_mapObjectsRootNode && m_mapObjectsRootNode->parent())
++ root->appendChildNode(m_mapObjectsRootNode.get());
++
+ if (!m_mapObjectsRootNode) {
+- m_mapObjectsRootNode = new QDeclarativePolygonMapItemPrivateOpenGL::RootNode();
+- root->appendChildNode(m_mapObjectsRootNode); // PASSING OWNERSHIP!
++ m_mapObjectsRootNode = std::make_unique<QDeclarativePolygonMapItemPrivateOpenGL::RootNode>();
++ root->appendChildNode(m_mapObjectsRootNode.get());
++ m_mapObjectsRootNode->setFlag(QSGNode::OwnedByParent, false);
+ }
+
+ m_mapObjectsRootNode->removeAllChildNodes();
+@@ -211,7 +189,7 @@ void QGeoMapObjectQSGSupport::updateMapObjects(QSGNode *root, QQuickWindow *wind
+ MapObject &mo = m_mapObjects[i];
+ QQSGMapObject *sgo = mo.sgObject;
+ QSGNode *oldNode = mo.qsgNode;
+- mo.qsgNode = sgo->updateMapObjectNode(oldNode, &mo.visibleNode, m_mapObjectsRootNode, window);
++ mo.qsgNode = sgo->updateMapObjectNode(oldNode, &mo.visibleNode, m_mapObjectsRootNode.get(), window);
+ if (Q_UNLIKELY(!mo.qsgNode)) {
+ qWarning() << "updateMapObjectNode for "<<mo.object->type() << " returned NULL";
+ } else if (mo.visibleNode && (mo.visibleNode->visible() != mo.object->visible())) {
+@@ -227,7 +205,7 @@ void QGeoMapObjectQSGSupport::updateMapObjects(QSGNode *root, QQuickWindow *wind
+ QQSGMapObject *sgo = mo.sgObject;
+ QSGNode *oldNode = mo.qsgNode;
+ sgo->updateGeometry(); // or subtree will be blocked
+- mo.qsgNode = sgo->updateMapObjectNode(oldNode, &mo.visibleNode, m_mapObjectsRootNode, window);
++ mo.qsgNode = sgo->updateMapObjectNode(oldNode, &mo.visibleNode, m_mapObjectsRootNode.get(), window);
+ if (mo.qsgNode) {
+ if (mo.visibleNode && (mo.visibleNode->visible() != mo.object->visible())) {
+ mo.visibleNode->setVisible(mo.object->visible());
+diff --git a/src/location/labs/qsg/qgeomapobjectqsgsupport_p.h b/src/location/labs/qsg/qgeomapobjectqsgsupport_p.h
+index 1ec966fa9..cbbc09691 100644
+--- a/src/location/labs/qsg/qgeomapobjectqsgsupport_p.h
++++ b/src/location/labs/qsg/qgeomapobjectqsgsupport_p.h
+@@ -59,6 +59,7 @@
+ #include <QtLocation/private/qdeclarativepolylinemapitem_p.h>
+ #include <QtLocation/private/qdeclarativepolygonmapitem_p_p.h>
+ #include <QtCore/qpointer.h>
++#include <memory>
+
+ QT_BEGIN_NAMESPACE
+ struct Q_LOCATION_PRIVATE_EXPORT MapObject {
+@@ -85,7 +86,7 @@ public:
+ QList<MapObject> m_pendingMapObjects;
+ QList<MapObject> m_removedMapObjects;
+ QGeoMap *m_map = nullptr;
+- QDeclarativePolygonMapItemPrivateOpenGL::RootNode *m_mapObjectsRootNode = nullptr;
++ std::unique_ptr<QDeclarativePolygonMapItemPrivateOpenGL::RootNode> m_mapObjectsRootNode;
+ };
+
+ QT_END_NAMESPACE
+--
+2.16.3
diff --git a/dev-qt/qtlocation/qtlocation-5.15.2.ebuild b/dev-qt/qtlocation/qtlocation-5.15.2-r1.ebuild
index 0772e510f28e..7799c0163e0e 100644
--- a/dev-qt/qtlocation/qtlocation-5.15.2.ebuild
+++ b/dev-qt/qtlocation/qtlocation-5.15.2-r1.ebuild
@@ -1,7 +1,8 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
+
inherit qt5-build
DESCRIPTION="Location (places, maps, navigation) library for the Qt5 framework"
@@ -37,6 +38,8 @@ QT5_TARGET_SUBDIRS=(
src/plugins/geoservices
)
+PATCHES=( "${FILESDIR}"/${P}-qsg-render-thread-crash-{1,2}.patch ) # QTBUG-85260
+
src_configure() {
# src/plugins/geoservices requires files that are only generated when
# qmake is run in the root directory. Bug 633776.
diff --git a/dev-qt/qtnetwork/Manifest b/dev-qt/qtnetwork/Manifest
index bf49334f5d4b..6affa1ae69e1 100644
--- a/dev-qt/qtnetwork/Manifest
+++ b/dev-qt/qtnetwork/Manifest
@@ -1,7 +1,8 @@
AUX qtnetwork-5.15.1-libressl.patch 16941 BLAKE2B 07b54a11d57609066cc245f2850dc955aa3ca3c8c5d7ea132dfcec72250b43b3e12b72b8b919bf522d3e32f9d8f2452f34b94fde6174d6fb9776bbd1328d1820 SHA512 300f6d5af014daecee0bcdd16aa896b7efebbe6eb06e6d4f5c2d59f370527edf8783da8449a4c87fca617ce2e4d305ea68c5f68854b618d257fb31a1f1aa701f
+AUX qtnetwork-5.15.2-QNetworkAccessManager-memleak.patch 2104 BLAKE2B 2fdeae57b0751f68273e79edb602b90c96d9a3287dec43c1fb3cf1e3b5cf17ae1570e62bc59b330748938cd1ca2b9326062ee61415114d1f08211235dcdae7a6 SHA512 880cab4279a663e4709f93aedf875f2fd3c17dcfd45fe57aa9b75887fbee981b13ff899d9223a37186f2c93493823ca36d4128500f2943b7ca67e409e6523ed3
AUX qtnetwork-5.15.2-libressl.patch 17869 BLAKE2B 663ce12ef626325e97d59c63ab66fc1233fe020b390e4e8917480b1dffd73df60717bf1bbc2e716a86e3bb96a3f56660283b962c904e990c80a8fd1e174be8cd SHA512 55d2c40f2660e22c9bc944d52fc88bc7a1fb4a09b0f831d7954055b17e496e0011084bd766054b848320cf42955b1fcb932a79bb2aa3ac858a7c0854d6a9dd04
DIST qtbase-everywhere-src-5.15.1.tar.xz 50153132 BLAKE2B 5a8cbbf8d44c7affc8ee43db04bd024bb529e0707b1feee2c7ae439cdf1331b1cf3e89b84c6a6f5bab3ec34025fbd634a8f4d259bd64ece172f288500e5b59e6 SHA512 40b687c046b25a6717834ffe2616ee4f373d75214ec1c7e3a26502cd0cde9f0a872eaee99f06c54c7a3625ae85df5cdd3a3b54a160e8e37c7cfeb5800d026fe4
DIST qtbase-everywhere-src-5.15.2.tar.xz 50179672 BLAKE2B 0e4bdaab43cf59664bde89f87ea260c39acc2ef866d8629d41d9c326cab0ab68bcd943c86a472ae74bc9fb0b7ad50795ccb66275bb6b77d1fcf0a38b5662cb42 SHA512 a549bfaf867d746ff744ab224eb65ac1bdcdac7e8457dfa379941b2b225a90442fcfc1e1175b9afb1f169468f8130b7ab917c67be67156520a4bfb5c92d304f9
EBUILD qtnetwork-5.15.1-r1.ebuild 1544 BLAKE2B 2129568d3b48d17e4a950c73f74c692427b470d9fd15c7be9e5c960fed8b276ebaf4ede53a22c7b2069a1ebb3b9986a8ba5dafdd4ec050a9c4282c5436de4989 SHA512 fb09f7261484d5786ba13e4a02b9678cb14906cbe5b8c2c23fcc3b5493714f7d969d52fdb09359dc12c2bb0950868eb2400c02b51f4538b38e9e5b8a6c6bfb3e
-EBUILD qtnetwork-5.15.2.ebuild 1762 BLAKE2B 5db4ad6b82be24417ecb0f895f4a393eb84d0c84a3e9c495db2606b5909e16542ad9075459dfee2dea930d1be82a165b3a1d5f56f7cd56e8845af80a2bf518d1 SHA512 d367bf77f56fdf48c6ef4334036e8373f1ab185267910a547fdfb6f81df405632558cb386b8e0c9e5f3ffd7137cd80f2d81473c5921a25c0c459bbb005938d28
+EBUILD qtnetwork-5.15.2-r1.ebuild 1833 BLAKE2B ff8c286a2eafe8f0182a250e32cfa746c49050fd1dc39f24c1b7476a04d4fe472514c3b4a4d1cdf1efd2cf2291d24bc0b2a6f3339043017eb2ffd0501efda9f7 SHA512 9be50e61c71196da3c1371fa94f1cde3eb338212c1cbfa4afd105b3f0f447057ba33c186644473c4d2f22d149de72f07eff4c170e17f493f02524242f11e03c8
MISC metadata.xml 957 BLAKE2B 5c888322d402a3f037e194bd13001ff3a7e449fe423b8b4661c4b1365263a63e105be92ab0bd6a99ae79e7e8062c65e52e9e04763f9c15c50cb28c1215a06b0d SHA512 aa07869c984c4c2d7653820213b94fa4db247e4e30f0efad8df64c09b2578cd2143ab81890584521e1f561953312abb36d8e049dabd42893fecefea4182f176a
diff --git a/dev-qt/qtnetwork/files/qtnetwork-5.15.2-QNetworkAccessManager-memleak.patch b/dev-qt/qtnetwork/files/qtnetwork-5.15.2-QNetworkAccessManager-memleak.patch
new file mode 100644
index 000000000000..be2c1f6e1a04
--- /dev/null
+++ b/dev-qt/qtnetwork/files/qtnetwork-5.15.2-QNetworkAccessManager-memleak.patch
@@ -0,0 +1,41 @@
+From 0807f16eb407eaf8a5b34b67602d0a97778d945d Mon Sep 17 00:00:00 2001
+From: =?utf8?q?M=C3=A5rten=20Nordheim?= <marten.nordheim@qt.io>
+Date: Fri, 6 Nov 2020 12:51:42 +0100
+Subject: [PATCH] QNAM: Work around QObject finicky orphan cleanup details
+
+Details described in a comment.
+
+Task-number: QTBUG-88063
+Change-Id: I763ecfedf518de97615e04a8eaae0fe1fd784f52
+Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
+(cherry picked from commit 1c6d6cbb62c5e93cbcad2d740c3b0ed01095618c)
+Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
+---
+ src/network/access/qnetworkreplyhttpimpl.cpp | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/src/network/access/qnetworkreplyhttpimpl.cpp b/src/network/access/qnetworkreplyhttpimpl.cpp
+index 21916f53f15..727c1a0316d 100644
+--- a/src/network/access/qnetworkreplyhttpimpl.cpp
++++ b/src/network/access/qnetworkreplyhttpimpl.cpp
+@@ -808,7 +808,17 @@ void QNetworkReplyHttpImplPrivate::postRequest(const QNetworkRequest &newHttpReq
+
+ // For the synchronous HTTP, this is the normal way the delegate gets deleted
+ // For the asynchronous HTTP this is a safety measure, the delegate deletes itself when HTTP is finished
+- QObject::connect(thread, SIGNAL(finished()), delegate, SLOT(deleteLater()));
++ QMetaObject::Connection threadFinishedConnection =
++ QObject::connect(thread, SIGNAL(finished()), delegate, SLOT(deleteLater()));
++
++ // QTBUG-88063: When 'delegate' is deleted the connection will be added to 'thread''s orphaned
++ // connections list. This orphaned list will be cleaned up next time 'thread' emits a signal,
++ // unfortunately that's the finished signal. It leads to a soft-leak so we do this to disconnect
++ // it on deletion so that it cleans up the orphan immediately.
++ QObject::connect(delegate, &QObject::destroyed, delegate, [threadFinishedConnection]() {
++ if (bool(threadFinishedConnection))
++ QObject::disconnect(threadFinishedConnection);
++ });
+
+ // Set the properties it needs
+ delegate->httpRequest = httpRequest;
+--
+2.16.3
diff --git a/dev-qt/qtnetwork/qtnetwork-5.15.2.ebuild b/dev-qt/qtnetwork/qtnetwork-5.15.2-r1.ebuild
index b18029d135ff..9d366649d1c5 100644
--- a/dev-qt/qtnetwork/qtnetwork-5.15.2.ebuild
+++ b/dev-qt/qtnetwork/qtnetwork-5.15.2-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -48,7 +48,10 @@ QT5_GENTOO_PRIVATE_CONFIG=(
:network
)
-PATCHES=( "${FILESDIR}"/${PN}-5.15.2-libressl.patch ) # Bug 562050, not upstreamable
+PATCHES=(
+ "${FILESDIR}"/${P}-QNetworkAccessManager-memleak.patch # QTBUG-88063
+ "${FILESDIR}"/${PN}-5.15.2-libressl.patch # Bug 562050, not upstreamable
+)
pkg_setup() {
use connman && QT5_TARGET_SUBDIRS+=(src/plugins/bearer/connman)
diff --git a/dev-qt/qtwayland/Manifest b/dev-qt/qtwayland/Manifest
index e2c1acdd3bbf..4855e9da498d 100644
--- a/dev-qt/qtwayland/Manifest
+++ b/dev-qt/qtwayland/Manifest
@@ -1,5 +1,6 @@
+AUX qtwayland-5.15.2-qtwaylandscanner-avoid-dangling-pointers.patch 1650 BLAKE2B 37091d2be8194d023af6463130879d6d4649f802539d77b897bca222bfae13761f82213118d41d8dbaef91b63c05ca4ab140cd071e749baf78852287ff522508 SHA512 5a4f287731231fe11e755648aff54bc99f25e3d4bc274eac94511497af9d2d0e287760d52a5f103554e505450ad304f378a5f53ebde9bbf742c8bbc2beab1f09
DIST qtwayland-everywhere-src-5.15.1.tar.xz 563508 BLAKE2B 507e8612a35c6439fab0637edfcae95d712daf19c0a8b97110b57b8a8ffd70374addc3ef19f210eedc9493d84ec441f18bd0fd5a25af5394fde40ee55573eb09 SHA512 d6619f35b3ab163372a0d49a2221c487d5936b6d9ebeb92a7fd41521c424d550eea7c5c584e07f15bde1ec5ece1bd5774845eb9956ce793e546197ffdb28d594
DIST qtwayland-everywhere-src-5.15.2.tar.xz 564884 BLAKE2B 472effd3e9f3fd5470e0449703a52d45f2fd823770880b5ad15d8bf99196eee5d8511ca2bc9e23df6e27c933551d1853928ba79b4b1e5fa6e53334c54c04a463 SHA512 e8657ed676873da7b949e6a1605d025918a03336af9c68f32741945ec3c71a604def55bb00737ba4d97b91c00d0e2df1a83cdcedcf5795c6b2a1ef2caa21c91c
EBUILD qtwayland-5.15.1.ebuild 830 BLAKE2B c4c4d0bdf3f694158e36f4f4d5ddf6190efb5c45a7aa4d8d65f12ddeb0adc777d8a01cdb667b9f08f4ab72dd9c6d0038ee5bced396ac90b16013af28369cfb6c SHA512 378a00c2d6ce25b4abbfb08bbaddb1361c0d79090239ff6de2408aaceb27cb8268f991c29f69b7de9db44ebfea166813ac996cc0339f2b2e4cd2ec5097af0d50
-EBUILD qtwayland-5.15.2.ebuild 836 BLAKE2B 1a24a6ae4ffcd8a3e87b43dc21f6e465b0c83a4dc00d24cb2bf76f0124d29cd2caecb1d367d3d10eeed6cad9f44db4b520d3a25ed226bad783c607c99ddf28e2 SHA512 3a1eae3e8b807816c5ea20a8afd3db7906d39f0ff7906c352598c405cb458dda8c7c9c67e3bd0890eb0276f87d4133a651f1bb2ef569acd1fa9c81259b440c57
+EBUILD qtwayland-5.15.2-r1.ebuild 915 BLAKE2B 102487107553b7f135dd77db39f269e479a114b2558a67107fd9bdac1649d8aa8809d73f6b561dd0b210bdfd9d13857942fd9ec7e412d3b70baace7b8ffdc032 SHA512 53d1fa0053f1d4c2b04657e8ac505a48627a641ded2a5572e2af8125e440ea2bff7e7aceb9e5f450305fe7f6f61ed043701bfb867cdd75a7efe8a0d3152a436d
MISC metadata.xml 583 BLAKE2B 2f04d6e39831120e7a38de5172b26f29bdb19e4677588595e5281000b14dc5ebcc0984fde5e99330807f8c400b7abb3c0cfbdaa7f131c815d60680259532cd3a SHA512 3b76305c692c7e9b2f0d82862ced25a4a306fc23611f7c22dfed3b19d55072373cca7bf2d4e6bfc14276986082cebfe19e7637c780acde1f421bb1baaf95f27a
diff --git a/dev-qt/qtwayland/files/qtwayland-5.15.2-qtwaylandscanner-avoid-dangling-pointers.patch b/dev-qt/qtwayland/files/qtwayland-5.15.2-qtwaylandscanner-avoid-dangling-pointers.patch
new file mode 100644
index 000000000000..0799cb1a2023
--- /dev/null
+++ b/dev-qt/qtwayland/files/qtwayland-5.15.2-qtwaylandscanner-avoid-dangling-pointers.patch
@@ -0,0 +1,35 @@
+From 735164b5c2a2637a8d53a8803a2401e4ef477ff0 Mon Sep 17 00:00:00 2001
+From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
+Date: Fri, 30 Oct 2020 16:55:30 +0200
+Subject: [PATCH] Scanner: Avoid accessing dangling pointers in destroy_func()
+
+Usually, the object associated with the resource gets destroyed in the
+destroy_resource() function.
+
+Therefore, we need to double-check that the object is still alive before
+trying to reset its m_resource.
+
+Pick-to: 5.15
+Change-Id: I26408228f58919db17eb29584a1cbd4a9427d25c
+Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
+---
+ src/qtwaylandscanner/qtwaylandscanner.cpp | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/qtwaylandscanner/qtwaylandscanner.cpp b/src/qtwaylandscanner/qtwaylandscanner.cpp
+index 1a1f8bf16..450ef519d 100644
+--- a/src/qtwaylandscanner/qtwaylandscanner.cpp
++++ b/src/qtwaylandscanner/qtwaylandscanner.cpp
+@@ -814,7 +814,9 @@ bool Scanner::process()
+ printf(" if (Q_LIKELY(that)) {\n");
+ printf(" that->m_resource_map.remove(resource->client(), resource);\n");
+ printf(" that->%s_destroy_resource(resource);\n", interfaceNameStripped);
+- printf(" if (that->m_resource == resource)\n");
++ printf("\n");
++ printf(" that = resource->%s_object;\n", interfaceNameStripped);
++ printf(" if (that && that->m_resource == resource)\n");
+ printf(" that->m_resource = nullptr;\n");
+ printf(" }\n");
+ printf(" delete resource;\n");
+--
+2.16.3
diff --git a/dev-qt/qtwayland/qtwayland-5.15.2.ebuild b/dev-qt/qtwayland/qtwayland-5.15.2-r1.ebuild
index e292407158a9..ea32d4ffc9c8 100644
--- a/dev-qt/qtwayland/qtwayland-5.15.2.ebuild
+++ b/dev-qt/qtwayland/qtwayland-5.15.2-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -28,6 +28,8 @@ DEPEND="
"
RDEPEND="${DEPEND}"
+PATCHES=( "${FILESDIR}"/${P}-qtwaylandscanner-avoid-dangling-pointers.patch )
+
src_configure() {
local myqmakeargs=(
--
diff --git a/dev-qt/qtwebengine/Manifest b/dev-qt/qtwebengine/Manifest
index 342cdb894374..157182746c92 100644
--- a/dev-qt/qtwebengine/Manifest
+++ b/dev-qt/qtwebengine/Manifest
@@ -1,10 +1,11 @@
AUX qtwebengine-5.15.0-disable-fatal-warnings.patch 414 BLAKE2B 531523ee8c85d6ac51637b3bfd4fbcd56476e1231103c0db62b7c27ace4d5e070becb97beb74526806101c138669adc81a00eefe319ff96582df4743ecabcef8 SHA512 4e3ae727f2738bcc011c9fdd27593d9689206573ff7f17a51fd78d3aa25d427b899af78c098c278f6e7ab4ce88bf415e7382a8a635dd880448a75e6756abc680
AUX qtwebengine-5.15.1-icu-68.patch 11095 BLAKE2B e493a91a340a18a485eae80e65e74086ec708b72cc8aea4dcb9deebd3722128c7c5e68a9eef7c405912112d6fc29e187df9c8b9a95c5ab0827dc21beba072c1e SHA512 2f3ea6491575faa9af290392ddb5e03687819c424556def82c70a7a4b7bb2e4e099293aab347790035bcf40391789caaea4af7db9cf6733f64f26fdba51288e4
+AUX qtwebengine-5.15.2-icu-68-v8-runtime-fix.patch 6264 BLAKE2B 18a5bc35ddf7fc120dde8adcb0bd3f450f2422695dec698ad65f133e51018bc0e84bbcf8e3c85c6003dca114a11083903e05ea7348316b4aa90d415f1fd539c1 SHA512 e505c98cb777fb353529810e59acb0976403924a18ad8336d0ff4cf76df024e54f354efbac35322f0cf135d38a7340bc26e9a709435bf0f96d21344d8fecaa99
AUX qtwebengine-5.15.2-icu-68.patch 15373 BLAKE2B 3b7ef4b096f8a593e711c74c64a0a770c0a2bd0fc3af0a2bc4b28fd9999358b06affce062ececf0b0c6f5092a4f6cb243ecc3decd00eb3f69292ad6393bf1bca SHA512 159c1553702b505a1e59ff18b3ac0340c7e0534a98b45ef2a70ab645d10bbb569c47bccb9d5a58d0f413b86abf29f9706af0ff5800029617a0575d6a759edbc3
DIST qtwebengine-5.15.0-ppc64.tar.xz 48156 BLAKE2B 6901b04ca869e6980e7f624000dd292fad2b514d8b1853d2796a11fa0e1b1c3a80f284cc1e3c242133b6886bb56329430229645af1ad8cac927371e3941b9fab SHA512 c2613a8d889bb9d7184a65ab6127c8329a945386f23cb860219b8e161d0a43683fa66f69d8d1441f5920fa370fda7c4629865fa452be9ab8a8b1515e5f93504b
DIST qtwebengine-5.15.2-ppc64.tar.xz 43868 BLAKE2B 97a2db64c688cc3ce178a6f00c29d3408221302c992bf0df31edd5c11f7cd978b92d9222201644991fca4fc0824b19d994a71c472732dbbdda3729bdd04a67f3 SHA512 835e7da4670cd823a1674052d64971bfd98d54edb6c5df8e9d09aa8103d496a4c16f0eb9d47c46db466e1c640e3326d4e43b284161129d648bfe693a902ec9cc
DIST qtwebengine-everywhere-src-5.15.1.tar.xz 278488056 BLAKE2B f369e435510644b36a7305a1a2b907f09f533f995c0c1a367a801cb9f277f66914f4511f20926ed4c865e9e5ec921c12d4406191706d263320a861250cebb3a0 SHA512 651520fcf89681b06c57f1992223f06ecbe3750a88ffae7a94a339503957e09d327ee1ae7e4bce88bfb09131b3b9c9abfc44f7bccb9c50d286181eaf306991a4
DIST qtwebengine-everywhere-src-5.15.2.tar.xz 280142544 BLAKE2B cf84a07292e69b5746d6575d65295b5bf4e054d448361f26e63cbe20ddd0773f60893e656d74b3b8c191e2829e09398a65896c8d96d3a7ef210ac1f21cd90e63 SHA512 de64c30819f5e2f8620c853ff22b2f9717641477aef4432a552a72d1d67ed62ed61572afee6de3f2c9f32dee28f4f786ffd63fc465aa42c0ae1e87ea28341756
EBUILD qtwebengine-5.15.1.ebuild 4699 BLAKE2B e9f480e98756f802987a7befeb2aafa0651416786586f6d6f4cf130e5bf02e3df894db02d599b86f5bd5aec55262632ec9873c59bd4e7977b441bec44c6a7ef0 SHA512 0ee21b4ca87663c14a7e1f3804c972a0374de3089df265235bad839bec234d476c102173bfb1889f2acf21d49407c5eb47e8fe3c15d7b7558a850490fc4261df
-EBUILD qtwebengine-5.15.2.ebuild 5227 BLAKE2B 94cf7fe699a1fcc61b29379574318635e06ec86b15884addfd86e6a583432caa48b4a0695316e93201b0e4441249f9ec87f227595efe3546afbed817de5291fb SHA512 76afdc713f3835e0336fb79ffbbf9dd98f73ee11dfab9d0c219a835f864a0e40337fea49db307cf69d81ca20cc22ae5b2f0e4168582919de69abf69b0d07a627
+EBUILD qtwebengine-5.15.2.ebuild 5275 BLAKE2B 3c985d98f4d1738e965bc967c38fa0789212cf5cf7b744b883897eec2b64fdc965f566c53de3687326f66529db709e90176daec7cdc80ca5e8a9711833cde6f3 SHA512 63c970db218efa5693ed8fcd20103a553812803959db7eeaea931e67a08245d2425d766d2ab8d6d6c212493c9379344cd10edf719561827b6a6a2af9ffac7ed1
MISC metadata.xml 1269 BLAKE2B f95392929bcecbce9334108e3446d631e2a91d1aceb0fa6347496d2d0eeaff8cff55e08b7c3bb39fb8b51667988a6cc2b8e500143f2ebe0d78e6985a6f7af3c1 SHA512 7949854cf55f26750ded6787ce295762af7fd16600f8b251b25e1c9dd4d643338ed4c3b2a8a3405a2c427ed8b5a9ad13a8566a640161768d4dbf6db7e54811a3
diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.2-icu-68-v8-runtime-fix.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.2-icu-68-v8-runtime-fix.patch
new file mode 100644
index 000000000000..7d6401759a78
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.2-icu-68-v8-runtime-fix.patch
@@ -0,0 +1,170 @@
+From b0a7f5691113534c2cf771f2dd3cece5e93bc7d4 Mon Sep 17 00:00:00 2001
+From: Frank Tang <ftang@chromium.org>
+Date: Tue, 03 Nov 2020 23:20:37 -0800
+Subject: [PATCH] Update to ICU68-1
+
+ICU68-1 change the output skeleton format. So we need to change
+resolvedOptions code for 68 migration.
+
+Chromium roll
+https://chromium-review.googlesource.com/c/chromium/src/+/2474093
+
+Bug: v8:10945
+Change-Id: I3b2c7fbe8abb22df8fa51287c498ca3245b8c55b
+Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2477431
+Commit-Queue: Frank Tang <ftang@chromium.org>
+Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
+Reviewed-by: Shu-yu Guo <syg@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#70972}
+
+(ported to work with <ICU-68.1 and rebased to qtwebengine)
+---
+
+diff --git a/src/3rdparty/chromium/v8/src/objects/js-number-format.cc b/src/3rdparty/chromium/v8/src/objects/js-number-format.cc
+index 6f3d97a619..83cf021fb1 100644
+--- a/src/3rdparty/chromium/v8/src/objects/js-number-format.cc
++++ b/src/3rdparty/chromium/v8/src/objects/js-number-format.cc
+@@ -390,17 +390,20 @@ Handle<String> CurrencySignString(Isolate* isolate,
+ Handle<String> UnitDisplayString(Isolate* isolate,
+ const icu::UnicodeString& skeleton) {
+ // Ex: skeleton as
+- // "measure-unit/length-meter .### rounding-mode-half-up unit-width-full-name"
++ // <ICU-68.1: "measure-unit/length-meter .### rounding-mode-half-up unit-width-full-name".
++ // >=ICU-68.1: "unit/length-meter .### rounding-mode-half-up unit-width-full-name"
+ if (skeleton.indexOf("unit-width-full-name") >= 0) {
+ return ReadOnlyRoots(isolate).long_string_handle();
+ }
+ // Ex: skeleton as
+- // "measure-unit/length-meter .### rounding-mode-half-up unit-width-narrow".
++ // <ICU-68.1: "measure-unit/length-meter .### rounding-mode-half-up unit-width-narrow".
++ // >=ICU-68.1: "unit/length-meter .### rounding-mode-half-up unit-width-narrow".
+ if (skeleton.indexOf("unit-width-narrow") >= 0) {
+ return ReadOnlyRoots(isolate).narrow_string_handle();
+ }
+ // Ex: skeleton as
+- // "measure-unit/length-foot .### rounding-mode-half-up"
++ // <ICU-68.1: "measure-unit/length-foot .### rounding-mode-half-up"
++ // >=ICU-68.1: "unit/length-foot .### rounding-mode-half-up"
+ return ReadOnlyRoots(isolate).short_string_handle();
+ }
+
+@@ -423,7 +426,8 @@ Notation NotationFromSkeleton(const icu::UnicodeString& skeleton) {
+ return Notation::COMPACT;
+ }
+ // Ex: skeleton as
+- // "measure-unit/length-foot .### rounding-mode-half-up"
++ // <ICU-68.1: "measure-unit/length-foot .### rounding-mode-half-up"
++ // >=ICU-68.1: "unit/length-foot .### rounding-mode-half-up"
+ return Notation::STANDARD;
+ }
+
+@@ -563,14 +567,23 @@ namespace {
+
+ // Ex: percent .### rounding-mode-half-up
+ // Special case for "percent"
+-// Ex: "measure-unit/length-kilometer per-measure-unit/duration-hour .###
+-// rounding-mode-half-up" should return "kilometer-per-unit".
+-// Ex: "measure-unit/duration-year .### rounding-mode-half-up" should return
+-// "year".
++// <ICU-68.1:
++// Ex: "measure-unit/length-kilometer per-measure-unit/duration-hour .###
++// rounding-mode-half-up" should return "kilometer-per-unit".
++// Ex: "measure-unit/duration-year .### rounding-mode-half-up" should return
++// >=ICU-68.1:
++// Ex: "unit/milliliter-per-acre .### rounding-mode-half-up"
++// should return "milliliter-per-acre".
++// Ex: "unit/year .### rounding-mode-half-up" should return
++// "year".
+ std::string UnitFromSkeleton(const icu::UnicodeString& skeleton) {
+ std::string str;
+ str = skeleton.toUTF8String<std::string>(str);
++#if U_ICU_VERSION_MAJOR_NUM < 68
+ std::string search("measure-unit/");
++#else
++ std::string search("unit/");
++#endif
+ size_t begin = str.find(search);
+ if (begin == str.npos) {
+ // Special case for "percent".
+@@ -579,20 +592,41 @@ std::string UnitFromSkeleton(const icu::UnicodeString& skeleton) {
+ }
+ return "";
+ }
++#if U_ICU_VERSION_MAJOR_NUM < 68
+ // Skip the type (ex: "length").
+ // "measure-unit/length-kilometer per-measure-unit/duration-hour"
+ // b
+ begin = str.find("-", begin + search.size());
++#else
++ // Ex:
++ // "unit/acre .### rounding-mode-half-up"
++ // b
++ // Ex:
++ // "unit/milliliter-per-acre .### rounding-mode-half-up"
++ // b
++ begin += search.size();
++#endif
+ if (begin == str.npos) {
+ return "";
+ }
++#if U_ICU_VERSION_MAJOR_NUM < 68
+ begin++; // Skip the '-'.
++#endif
+ // Find the end of the subtype.
+ size_t end = str.find(" ", begin);
+- // "measure-unit/length-kilometer per-measure-unit/duration-hour"
+- // b e
++ // <ICU-68.1:
++ // "measure-unit/length-kilometer per-measure-unit/duration-hour"
++ // b e
++ // >=ICU-68.1:
++ // Ex:
++ // "unit/acre .### rounding-mode-half-up"
++ // b e
++ // Ex:
++ // "unit/milliliter-per-acre .### rounding-mode-half-up"
++ // b e
+ if (end == str.npos) {
+ end = str.size();
++#if U_ICU_VERSION_MAJOR_NUM < 68
+ return str.substr(begin, end - begin);
+ }
+ // "measure-unit/length-kilometer per-measure-unit/duration-hour"
+@@ -626,18 +660,37 @@ std::string UnitFromSkeleton(const icu::UnicodeString& skeleton) {
+ // "measure-unit/length-kilometer per-measure-unit/duration-hour"
+ // [result ] b e
+ return result + "-per-" + str.substr(begin, end - begin);
++#else
++ }
++ return str.substr(begin, end - begin);
++#endif
+ }
+
+ Style StyleFromSkeleton(const icu::UnicodeString& skeleton) {
+ if (skeleton.indexOf("currency/") >= 0) {
+ return Style::CURRENCY;
+ }
++#if U_ICU_VERSION_MAJOR_NUM < 68
+ if (skeleton.indexOf("measure-unit/") >= 0) {
++#else
++ if (skeleton.indexOf("unit/") >= 0) {
++#endif
+ return Style::UNIT;
+ }
++#if U_ICU_VERSION_MAJOR_NUM < 68
+ if (skeleton.indexOf("percent ") >= 0) {
+ return Style::PERCENT;
+ }
++#else
++ if (skeleton.indexOf("percent") >= 0) {
++ // percent precision-integer rounding-mode-half-up scale/100
++ if (skeleton.indexOf("scale/100") >= 0) {
++ return Style::PERCENT;
++ } else {
++ return Style::UNIT;
++ }
++ }
++#endif
+ return Style::DECIMAL;
+ }
+
diff --git a/dev-qt/qtwebengine/qtwebengine-5.15.2.ebuild b/dev-qt/qtwebengine/qtwebengine-5.15.2.ebuild
index ae2669805a14..b0f613093dd3 100644
--- a/dev-qt/qtwebengine/qtwebengine-5.15.2.ebuild
+++ b/dev-qt/qtwebengine/qtwebengine-5.15.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -84,6 +84,7 @@ DEPEND="${RDEPEND}
PATCHES=(
"${FILESDIR}/${PN}-5.15.0-disable-fatal-warnings.patch" # bug 695446
"${FILESDIR}/${P}-icu-68.patch" # bug 751997, QTBUG-88116
+ "${FILESDIR}/${P}-icu-68-v8-runtime-fix.patch"
)
src_prepare() {