diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2021-01-08 11:28:34 +0000 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2021-01-08 11:28:34 +0000 |
commit | 24fd814c326e282c4321965c31f341dad77e270d (patch) | |
tree | 033d63b33c21a3209964ab56005bb9bdd523630d /dev-qt | |
parent | 129160ec854dca4c3fedb5bcfbcb56930371da0f (diff) |
gentoo resync : 08.01.2021
Diffstat (limited to 'dev-qt')
21 files changed, 674 insertions, 13 deletions
diff --git a/dev-qt/Manifest.gz b/dev-qt/Manifest.gz Binary files differindex e350d0338be6..29f00045a453 100644 --- a/dev-qt/Manifest.gz +++ b/dev-qt/Manifest.gz 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() { |