diff options
Diffstat (limited to 'dev-qt/qtcore')
-rw-r--r-- | dev-qt/qtcore/Manifest | 13 | ||||
-rw-r--r-- | dev-qt/qtcore/files/qtcore-5.12.3-CVE-2019-18281.patch | 98 | ||||
-rw-r--r-- | dev-qt/qtcore/files/qtcore-5.14.2-QLibrary-deadlock.patch | 106 | ||||
-rw-r--r-- | dev-qt/qtcore/metadata.xml | 1 | ||||
-rw-r--r-- | dev-qt/qtcore/qtcore-5.12.3-r2.ebuild | 90 | ||||
-rw-r--r-- | dev-qt/qtcore/qtcore-5.13.2-r2.ebuild | 2 | ||||
-rw-r--r-- | dev-qt/qtcore/qtcore-5.14.1-r1.ebuild | 2 | ||||
-rw-r--r-- | dev-qt/qtcore/qtcore-5.14.2.ebuild (renamed from dev-qt/qtcore/qtcore-5.13.2-r1.ebuild) | 27 |
8 files changed, 138 insertions, 201 deletions
diff --git a/dev-qt/qtcore/Manifest b/dev-qt/qtcore/Manifest index fea8e90a37dd..2d9c73d0ca71 100644 --- a/dev-qt/qtcore/Manifest +++ b/dev-qt/qtcore/Manifest @@ -1,12 +1,11 @@ -AUX qtcore-5.12.3-CVE-2019-18281.patch 4122 BLAKE2B 057663881e9427edc80a9fbfc97e0f026dff0722e23452d06f16f0ab9ad69af7470ea10dbbd4d076f248edab435a60a0fcc8282a38f963e316b3b262b5029628 SHA512 60b72443dab594e24167abf2dae6f46eb171a7cfbb0e114386ebdbbd8d14b935f33fe6bc086c50f4c8f94e942f88c4bb06dee6656644c619ea5fd23898303944 AUX qtcore-5.12.3-CVE-2020-0569.patch 1103 BLAKE2B e19236089dde2c6e15ef3f4c53e8cbcf8e68b09d0f61570adbb5e62a449c647e1d51c185735d2086ca336513d51eaf43d3c414eebaf9849cbe9ca3bba33a675c SHA512 721a16079acba96e784713b092543dc187b1c041889da745228b625ae727b602279ff882054929320cabc4228f47233e50fd63fcc75f543d8266f8fb0a043809 AUX qtcore-5.12.3-CVE-2020-0570.patch 2539 BLAKE2B 87282e51d64cf94cbc33eea6da901bef2135f0b25237dccb72c5f5f107f3270e5286fba15ba413d4e04d3cfa109934c97fea32f8295b727d38f047ffc85b28c7 SHA512 ed05b2efffc96dbd263dfb2714f45190b7bb61a17ff7395ec3d136c6fae2b460eb40a751df615d15394a7b22a989b3163cd1441b164554613aaac4de90cb873b AUX qtcore-5.14.1-cmake-macro-backward-compat.patch 2555 BLAKE2B 5fe2b70232722416cb85ecce8a0742b57503c520482aa0386042f43d4cf20926a874b9a92f90c656cfe0bf93883c286b6b08c0ad2568f3a6746c776dcf208995 SHA512 c7ba0bfa6d462504ba9421abfb7f502265fd8c6bd7469326612925cd7b7667daba3350f714aa5a516aa83e5352ec6d18fc02af9ebf5494af10a4b6f8f7c47d5b -DIST qtbase-everywhere-src-5.12.3.tar.xz 48382148 BLAKE2B 779c43a75403e0f21357a90228bbcc3f216495613f4f17a2f442c7aa93f277a79cc7addf5ae44e22964069580f4932cfd14ba4773aa0ab30405d5587577a545c SHA512 1dab927573eb22b1ae772de3a418f7d3999ea78d6e667a7f2494390dd1f0981ea93f4f892cb6e124ac18812c780ee71da3021b485c61eaf1ef2234a5c12b7fe2 +AUX qtcore-5.14.2-QLibrary-deadlock.patch 3966 BLAKE2B 79d589005de16dbbe87affa6ce2f9a499fe19f9f6687f85c9ce0d60f95706c22c6261dfab1e414cb6c6ca3f3f8d4ee1f33ad2a01f5ebee8356534d5330629822 SHA512 22d4994cb35869e8eadf158ba8a3f1ec3ca62291c93bfe8f94d6e8a89739bfc4cfc59dfb399be955ba6b00897288224c392d54fcbe24f8246d0f649c2ab22a6a DIST qtbase-everywhere-src-5.13.2.tar.xz 48735704 BLAKE2B 50b8d69212602427b76dce6efefb9195e91e4bf5a09b732e564b66a4e27cfaf193fd860139b2c4cc774b0b1132af1426b79e381fb42eafd506239096bd87837e SHA512 b00ad017cc95876698615fd6e41c6ade366146c1f7057e1925bc1b72918f091aa39aa6bf0ea450fc6cd4d8f9810b228770d981dcb6cbe8ad30abb2c42804a204 DIST qtbase-everywhere-src-5.14.1.tar.xz 49828188 BLAKE2B d5641df96a90ec4f3f85e47444c151b2090161330df9684703883865ddc84bed507295b67953c0a8cad9c104a10727ac9fb26d7f3ec4bf2052294c843f108491 SHA512 964777323d0e3f9d355218c3493bb3b61d2750d9cb5ba71fce72cae3cd362acce88e39360f1fac0011f1b74d529a23621a7281191c622cc034ce78a77afa296b -EBUILD qtcore-5.12.3-r2.ebuild 1755 BLAKE2B 53aeb4bf14488b8b109dd5010fd121366e78c233c57bcce087c9df5adf066d002509995e68a596162f923d36bb7b7512512d6e677a1d7413d9c9e904da449688 SHA512 81eefb280388cbdfe437c4956d6553cbd0b2f4bd718c4e2527b472dca65478d7139cafe67aede6a819d88a0f89687dfba983fc969354b99cb8dcaee884b70f44 -EBUILD qtcore-5.13.2-r1.ebuild 1659 BLAKE2B 48c8eaa36be4c1084d12b501e9e50397097eae45c62475a69d103686bb787f114e393135ecfcaa9a7475fe91412edd40bd84f6ed6312233e9a5cdde1f401f6f7 SHA512 59360b4a7671d52b0448e06db5a8935643626b5e03bfcae25f8071fa533feedc03ced5a7912f3a7b17616d51c2d5a53d4461c291ce6953b4d6f88453dee38a77 -EBUILD qtcore-5.13.2-r2.ebuild 1769 BLAKE2B 14506b5066ecd490754c23ab89077550d99eac584231ab3596e0be1bf7e56342342488c973635c448f671185fd7cd3ea5ed3a66b1cd1ff60fa1621f10149eab2 SHA512 6dd43452bd7a6540550a91aefadd43feeb3c732bfaae49832187be0a97ef0f4873aca256b8c823c75b83f0fcb5ed2397b8a9b739ee1dc2c292ea5b475c3c3891 -EBUILD qtcore-5.14.1-r1.ebuild 1716 BLAKE2B f7cbcb6d8b06dfb49b65a95901c0c47cc01dedce2a263f19f203fe94254becfd0dadf772d58c7f8297dff0b9216f3cfe685cc9be7908d6f14156bbfba9cc0b82 SHA512 8be645c3ab9d5cf4ba3391f611f1a1baa6cee2e28b5a3a6c2a6cdf5019beb5c4221595e8304b4cbaafe2b6fcdef84218026c66de421b7b8644ec5b45a7dd3a13 -MISC metadata.xml 565 BLAKE2B 3f18dd1accf6b8a781b5d2cc5c59440e31e8e7cd9210b53f19ea7c0f867be0ac3f109e823724e92be4a6b0a9a765869520e417f321a5ec53f6ee136a0b68592e SHA512 7d13e8697d2bca8b220e322b0c961d32e34d5e8fac70027c2eb8bdf2b4cd168f1d86f56e375d9bb78d3f06d1f489f66bcaa35a2074302a849a3af6e93fdfb666 +DIST qtbase-everywhere-src-5.14.2.tar.xz 49865752 BLAKE2B ed8eb18dfc79e9983248655eb62e8305ef8b79f96c7880c88533250fef8f0d187cf576082d41df08314711b4c007b94686486abd77bf9bc201336caa02ced300 SHA512 8c83e06d58b56e9f288e83d6c3dd4ad6cc9f1eb1a32c7b44fb912fda34ed7255766fd9fa60cd740ee001df7d6172f25df05f1f95e986c3e793fbcd9bf4f18de9 +EBUILD qtcore-5.13.2-r2.ebuild 1728 BLAKE2B 7e1130362b13811416afa3b8b3ec8a89c82a6bd290c33ccf08a6940183a20519f87bfaa09a9a4220ac9e6de6bb2e36e0bd2566b2e896ed903b23b178b08fec6c SHA512 c16abdfcecb671e0f6e95294bc7d804578821147a129083976e896f8d76e7701689fbd8c4f0dd0990f62c4fc4757ef6ee10597eec2ec79d192e916e2511c32cb +EBUILD qtcore-5.14.1-r1.ebuild 1711 BLAKE2B 00fa1e8969c3109494a67376892c7331ca0f5a33a806165bc1950f7d66d1a9e094863950427249be89bf0b65a5502c523c0c72c6db3a72080600349e4bd69d7f SHA512 04615c1b40db89986f207cdd61180f84012cbd2d551d0541c7812b5670c0b58a2d0f5337f7ee685ef2dd37ae70db5482fa9a477a7d8f7cd88808fbd989ec7fec +EBUILD qtcore-5.14.2.ebuild 2248 BLAKE2B 9e683aa79a045f1988b0c9893107bc9c8653103bc242454ba93a0ce30d98133a50a390669a72332a30f6f56a60ed8c48edfa8b2a7b6f2ba0c6e4f3531809df24 SHA512 6df482ba952c943a234660830e3f659bc1edbf26fed1117ee95cf051281c7019cf2c2cee0b411127ab0ff296ec92b6c43711c1ee6ca125b8460e5259716faa86 +MISC metadata.xml 662 BLAKE2B daf4dcfc7380ac0a25155b5a04125b4a4038ba7fd84fe8e98a9782a9cd7f886c608a21edc9b81a3af791eb22faa4a1bf1cd63f6a2f60a5b0f19d681b59313403 SHA512 571811795b3cd171751b1571ac9e601d5a0d78e56c6257546965496e94bf6a26eee6ad04972e5d01e4fbc92a248d325912f4e0bdd13e5adf3928892bb93b1d12 diff --git a/dev-qt/qtcore/files/qtcore-5.12.3-CVE-2019-18281.patch b/dev-qt/qtcore/files/qtcore-5.12.3-CVE-2019-18281.patch deleted file mode 100644 index 055794b51964..000000000000 --- a/dev-qt/qtcore/files/qtcore-5.12.3-CVE-2019-18281.patch +++ /dev/null @@ -1,98 +0,0 @@ -From 1232205e32464d90e871f39eb1e14fcf9b78a163 Mon Sep 17 00:00:00 2001 -From: Rainer Keller <Rainer.Keller@qt.io> -Date: Tue, 27 Aug 2019 14:44:48 +0200 -Subject: [PATCH] Fix crash when text contains too many directional chars - -In case a text to be layouted contains more than 128 directional characters -it causes the application to crash - -The function initScriptAnalysisAndIsolatePairs() collects information of -RTL/LTR chaaracters into vector "isolatePairs". The size of the vector is -capped to 128. Later the function generateDirectionalRuns() iterates -the text again and tries to access items from the previously capped vector -above the upper bound. - -Task-number: QTBUG-77819 -Change-Id: Ibb7bf12c12b1db22f43ff46236518da3fdeed26a -Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> ---- - src/gui/text/qtextengine.cpp | 15 +++++++-------- - tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp | 17 +++++++++++++++++ - 2 files changed, 24 insertions(+), 8 deletions(-) - -diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp -index 2da13289bfd..a7834587b1e 100644 ---- a/src/gui/text/qtextengine.cpp -+++ b/src/gui/text/qtextengine.cpp -@@ -399,6 +399,7 @@ struct QBidiAlgorithm { - analysis[i].bidiDirection = (level & 1) ? QChar::DirR : QChar::DirL; - runHasContent = true; - lastRunWithContent = -1; -+ ++isolatePairPosition; - } - int runBeforeIsolate = runs.size(); - ushort newLevel = isRtl ? ((stack.top().level + 1) | 1) : ((stack.top().level + 2) & ~1); -@@ -440,21 +441,19 @@ struct QBidiAlgorithm { - doEmbed(true, true, false); - break; - case QChar::DirLRI: -- Q_ASSERT(isolatePairs.at(isolatePairPosition).start == i); - doEmbed(false, false, true); -- ++isolatePairPosition; - break; - case QChar::DirRLI: -- Q_ASSERT(isolatePairs.at(isolatePairPosition).start == i); - doEmbed(true, false, true); -- ++isolatePairPosition; - break; - case QChar::DirFSI: { -- const auto &pair = isolatePairs.at(isolatePairPosition); -- Q_ASSERT(pair.start == i); -- bool isRtl = QStringView(text + pair.start + 1, pair.end - pair.start - 1).isRightToLeft(); -+ bool isRtl = false; -+ if (isolatePairPosition < isolatePairs.size()) { -+ const auto &pair = isolatePairs.at(isolatePairPosition); -+ Q_ASSERT(pair.start == i); -+ isRtl = QStringView(text + pair.start + 1, pair.end - pair.start - 1).isRightToLeft(); -+ } - doEmbed(isRtl, false, true); -- ++isolatePairPosition; - break; - } - -diff --git a/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp b/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp -index 9c477589f93..f0a32c2ed40 100644 ---- a/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp -+++ b/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp -@@ -138,6 +138,7 @@ private slots: - void noModificationOfInputString(); - void superscriptCrash_qtbug53911(); - void showLineAndParagraphSeparatorsCrash(); -+ void tooManyDirectionalCharctersCrash_qtbug77819(); - - private: - QFont testFont; -@@ -2309,5 +2310,21 @@ void tst_QTextLayout::nbspWithFormat() - QCOMPARE(layout.lineAt(1).textLength(), s2.length() + 1 + s3.length()); - } - -+void tst_QTextLayout::tooManyDirectionalCharctersCrash_qtbug77819() -+{ -+ QString data; -+ data += QString::fromUtf8("\xe2\x81\xa8"); // U+2068 FSI character -+ data += QString::fromUtf8("\xe2\x81\xa7"); // U+2067 RLI character -+ -+ // duplicating the text -+ for (int i = 0; i < 10; i++) -+ data += data; -+ -+ // Nothing to test. It must not crash in beginLayout(). -+ QTextLayout tl(data); -+ tl.beginLayout(); -+ tl.endLayout(); -+} -+ - QTEST_MAIN(tst_QTextLayout) - #include "tst_qtextlayout.moc" --- -2.16.3 diff --git a/dev-qt/qtcore/files/qtcore-5.14.2-QLibrary-deadlock.patch b/dev-qt/qtcore/files/qtcore-5.14.2-QLibrary-deadlock.patch new file mode 100644 index 000000000000..6a9c9921b7d0 --- /dev/null +++ b/dev-qt/qtcore/files/qtcore-5.14.2-QLibrary-deadlock.patch @@ -0,0 +1,106 @@ +From 276fa8383a7535765be7182883ef4aade17ce013 Mon Sep 17 00:00:00 2001 +From: Thiago Macieira <thiago.macieira@intel.com> +Date: Thu, 2 Apr 2020 12:08:41 -0300 +Subject: [PATCH] QLibrary: fix deadlock caused by fix to QTBUG-39642 + +Commit ae6f73e8566fa76470937aca737141183929a5ec inserted a mutex around +the entire load_sys(). We had reasoed that deadlocks would only occur if +the object creation in instance() recursed into its own instance(), +which was already a bug. But we had forgotten that dlopen()/ +LoadLibrary() executes initialization code from the module being loaded, +which could cause a recursion back into the same QPluginLoader or +QLibrary object. This recursion is benign because the module *is* loaded +and dlopen()/LoadLibrary() returns the same handle. + +[ChangeLog][QtCore][QLibrary and QPluginLoader] Fixed a deadlock that +would happen if the plugin or library being loaded has load-time +initialization code (C++ global variables) that recursed back into the +same QLibrary or QPluginLoader object. + +PS: QLibraryPrivate::loadPlugin() updates pluginState outside a mutex +lock, so pluginState should be made an atomic variable. Once that is +done, we'll only need locking the mutex to update errorString (no +locking before loading). + +Fixes: QTBUG-83207 +Task-number: QTBUG-39642 +Change-Id: Ibdc95e9af7bd456a94ecfffd160209304e5ab2eb +Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> +Reviewed-by: David Faure <david.faure@kdab.com> +--- + src/corelib/plugin/qlibrary.cpp | 2 -- + src/corelib/plugin/qlibrary_unix.cpp | 4 ++++ + src/corelib/plugin/qlibrary_win.cpp | 3 +++ + 3 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/src/corelib/plugin/qlibrary.cpp b/src/corelib/plugin/qlibrary.cpp +index ddb053c26fa..be9d92b2048 100644 +--- a/src/corelib/plugin/qlibrary.cpp ++++ b/src/corelib/plugin/qlibrary.cpp +@@ -576,9 +576,7 @@ bool QLibraryPrivate::load() + + Q_TRACE(QLibraryPrivate_load_entry, fileName); + +- mutex.lock(); + bool ret = load_sys(); +- mutex.unlock(); + if (qt_debug_component()) { + if (ret) { + qDebug() << "loaded library" << fileName; +diff --git a/src/corelib/plugin/qlibrary_unix.cpp b/src/corelib/plugin/qlibrary_unix.cpp +index 017aa97b66a..a5c72f81d96 100644 +--- a/src/corelib/plugin/qlibrary_unix.cpp ++++ b/src/corelib/plugin/qlibrary_unix.cpp +@@ -123,6 +123,7 @@ QStringList QLibraryPrivate::prefixes_sys() + + bool QLibraryPrivate::load_sys() + { ++ QMutexLocker locker(&mutex); + QString attempt; + QFileSystemEntry fsEntry(fileName); + +@@ -213,6 +214,7 @@ bool QLibraryPrivate::load_sys() + } + #endif + ++ locker.unlock(); + bool retry = true; + Handle hnd = nullptr; + for (int prefix = 0; retry && !hnd && prefix < prefixes.size(); prefix++) { +@@ -273,6 +275,8 @@ bool QLibraryPrivate::load_sys() + } + } + #endif ++ ++ locker.relock(); + if (!hnd) { + errorString = QLibrary::tr("Cannot load library %1: %2").arg(fileName, qdlerror()); + } +diff --git a/src/corelib/plugin/qlibrary_win.cpp b/src/corelib/plugin/qlibrary_win.cpp +index 000bf762763..ef58724be8e 100644 +--- a/src/corelib/plugin/qlibrary_win.cpp ++++ b/src/corelib/plugin/qlibrary_win.cpp +@@ -78,6 +78,7 @@ bool QLibraryPrivate::load_sys() + // fileName + // + // NB If it's a plugin we do not ever try the ".dll" extension ++ QMutexLocker locker(&mutex); + QStringList attempts; + + if (pluginState != IsAPlugin) +@@ -95,6 +96,7 @@ bool QLibraryPrivate::load_sys() + attempts.prepend(QDir::rootPath() + fileName); + #endif + ++ locker.unlock(); + Handle hnd = nullptr; + for (const QString &attempt : qAsConst(attempts)) { + #ifndef Q_OS_WINRT +@@ -115,6 +117,7 @@ bool QLibraryPrivate::load_sys() + #ifndef Q_OS_WINRT + SetErrorMode(oldmode); + #endif ++ locker.relock(); + if (!hnd) { + errorString = QLibrary::tr("Cannot load library %1: %2").arg( + QDir::toNativeSeparators(fileName), qt_error_string()); diff --git a/dev-qt/qtcore/metadata.xml b/dev-qt/qtcore/metadata.xml index c612265c6f79..8342d1e976f7 100644 --- a/dev-qt/qtcore/metadata.xml +++ b/dev-qt/qtcore/metadata.xml @@ -6,6 +6,7 @@ <name>Gentoo Qt Project</name> </maintainer> <use> + <flag name="old-kernel">Disable syscalls not available on Linux kernels older than 3.17</flag> <flag name="systemd">Enable native journald logging support</flag> </use> <upstream> diff --git a/dev-qt/qtcore/qtcore-5.12.3-r2.ebuild b/dev-qt/qtcore/qtcore-5.12.3-r2.ebuild deleted file mode 100644 index 853f70c37ab3..000000000000 --- a/dev-qt/qtcore/qtcore-5.12.3-r2.ebuild +++ /dev/null @@ -1,90 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -QT5_MODULE="qtbase" -inherit qt5-build - -DESCRIPTION="Cross-platform application development framework" - -if [[ ${QT5_BUILD_TYPE} == release ]]; then - KEYWORDS="x86" -fi - -IUSE="icu systemd" - -DEPEND=" - dev-libs/double-conversion:= - dev-libs/glib:2 - dev-libs/libpcre2[pcre16,unicode] - sys-libs/zlib:= - icu? ( dev-libs/icu:= ) - !icu? ( virtual/libiconv ) - systemd? ( sys-apps/systemd:= ) -" -RDEPEND="${DEPEND} - !<dev-qt/qtcore-4.8.7-r4:4 -" - -QT5_TARGET_SUBDIRS=( - src/tools/bootstrap - src/tools/moc - src/tools/rcc - src/tools/qfloat16-tables - src/corelib - src/tools/qlalr - doc -) - -QT5_GENTOO_PRIVATE_CONFIG=( - !:network - !:sql - !:testlib - !:xml -) - -PATCHES=( - "${FILESDIR}/${P}-CVE-2019-18281.patch" - "${FILESDIR}/${P}-CVE-2020-0569.patch" - "${FILESDIR}/${P}-CVE-2020-0570.patch" -) - -src_prepare() { - # don't add -O3 to CXXFLAGS, bug 549140 - sed -i -e '/CONFIG\s*+=/s/optimize_full//' src/corelib/corelib.pro || die - - # fix missing qt_version_tag symbol w/ LTO, bug 674382 - sed -i -e 's/^gcc:ltcg/gcc/' src/corelib/global/global.pri || die - - qt5-build_src_prepare -} - -src_configure() { - local myconf=( - -no-feature-statx # bug 672856 - $(qt_use icu) - $(qt_use !icu iconv) - $(qt_use systemd journald) - ) - qt5-build_src_configure -} - -src_install() { - qt5-build_src_install - - local flags=( - DBUS FREETYPE IMAGEFORMAT_JPEG IMAGEFORMAT_PNG - OPENGL OPENSSL SSL WIDGETS - ) - - for flag in ${flags[@]}; do - cat >> "${D%/}"/${QT5_HEADERDIR}/QtCore/qconfig.h <<- _EOF_ || die - - #if defined(QT_NO_${flag}) && defined(QT_${flag}) - # undef QT_NO_${flag} - #elif !defined(QT_NO_${flag}) && !defined(QT_${flag}) - # define QT_NO_${flag} - #endif - _EOF_ - done -} diff --git a/dev-qt/qtcore/qtcore-5.13.2-r2.ebuild b/dev-qt/qtcore/qtcore-5.13.2-r2.ebuild index dc47b0202776..97af29b9ec1d 100644 --- a/dev-qt/qtcore/qtcore-5.13.2-r2.ebuild +++ b/dev-qt/qtcore/qtcore-5.13.2-r2.ebuild @@ -8,7 +8,7 @@ inherit qt5-build DESCRIPTION="Cross-platform application development framework" if [[ ${QT5_BUILD_TYPE} == release ]]; then - KEYWORDS="amd64 arm ~arm64 ~hppa ppc ppc64 ~sparc ~x86" + KEYWORDS="arm" fi IUSE="icu systemd" diff --git a/dev-qt/qtcore/qtcore-5.14.1-r1.ebuild b/dev-qt/qtcore/qtcore-5.14.1-r1.ebuild index d96ec59bb319..56b38e6769cc 100644 --- a/dev-qt/qtcore/qtcore-5.14.1-r1.ebuild +++ b/dev-qt/qtcore/qtcore-5.14.1-r1.ebuild @@ -8,7 +8,7 @@ inherit qt5-build DESCRIPTION="Cross-platform application development framework" if [[ ${QT5_BUILD_TYPE} == release ]]; then - KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86" + KEYWORDS="amd64 ~arm arm64 ~hppa ppc ppc64 ~sparc x86" fi IUSE="icu systemd" diff --git a/dev-qt/qtcore/qtcore-5.13.2-r1.ebuild b/dev-qt/qtcore/qtcore-5.14.2.ebuild index 72100dc64690..e1f44b0b6e03 100644 --- a/dev-qt/qtcore/qtcore-5.13.2-r1.ebuild +++ b/dev-qt/qtcore/qtcore-5.14.2.ebuild @@ -2,16 +2,18 @@ # Distributed under the terms of the GNU General Public License v2 EAPI=7 + QT5_MODULE="qtbase" -inherit qt5-build +inherit linux-info qt5-build DESCRIPTION="Cross-platform application development framework" +SLOT=5/$(ver_cut 1-3) if [[ ${QT5_BUILD_TYPE} == release ]]; then - KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 ~sparc ~x86" + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86" fi -IUSE="icu systemd" +IUSE="icu old-kernel systemd" DEPEND=" dev-libs/double-conversion:= @@ -30,7 +32,6 @@ QT5_TARGET_SUBDIRS=( src/tools/bootstrap src/tools/moc src/tools/rcc - src/tools/qfloat16-tables src/corelib src/tools/qlalr doc @@ -43,6 +44,20 @@ QT5_GENTOO_PRIVATE_CONFIG=( !:xml ) +PATCHES=( + "${FILESDIR}/${PN}-5.14.1-cmake-macro-backward-compat.patch" # bug 703306 + "${FILESDIR}/${P}-QLibrary-deadlock.patch" # QTBUG-83207 +) + +pkg_pretend() { + use kernel_linux || return + get_running_version + if kernel_is -lt 3 17 && ! use old-kernel; then + ewarn "The running kernel is older than 3.17. USE=old-kernel is needed for" + ewarn "dev-qt/qtcore to function on this kernel properly. See Bug #669994." + fi +} + src_prepare() { # don't add -O3 to CXXFLAGS, bug 549140 sed -i -e '/CONFIG\s*+=/s/optimize_full//' src/corelib/corelib.pro || die @@ -60,6 +75,10 @@ src_configure() { $(qt_use !icu iconv) $(qt_use systemd journald) ) + use old-kernel && myconf+=( + -no-feature-renameat2 # needs Linux 3.16, bug 669994 + -no-feature-getentropy # needs Linux 3.17, bug 669994 + ) qt5-build_src_configure } |