From 9d88a917f22e0e5867005e677c33b927633d4358 Mon Sep 17 00:00:00 2001 From: Freemor Date: Thu, 4 Oct 2018 17:20:36 -0300 Subject: Update [qtcreator] to 4.7.1 and rebuild against clang 7.0.0 for x86_64 (i686/ARM not on clang 7.0.0 yet) --- libre/qtcreator/PKGBUILD | 30 ++++++++++++++----- libre/qtcreator/qtcreator-clang-plugins.patch | 40 +++++++++++++++++++++++++ libre/qtcreator/qtcreator-clang7.patch | 13 +++++++++ libre/qtcreator/qtcreatorbug-19367a.patch | 36 +++++++++++++++++++++++ libre/qtcreator/qtcreatorbug-19367b.patch | 42 +++++++++++++++++++++++++++ 5 files changed, 153 insertions(+), 8 deletions(-) create mode 100644 libre/qtcreator/qtcreator-clang-plugins.patch create mode 100644 libre/qtcreator/qtcreator-clang7.patch create mode 100644 libre/qtcreator/qtcreatorbug-19367a.patch create mode 100644 libre/qtcreator/qtcreatorbug-19367b.patch diff --git a/libre/qtcreator/PKGBUILD b/libre/qtcreator/PKGBUILD index 3b84da5b7..49f93c532 100644 --- a/libre/qtcreator/PKGBUILD +++ b/libre/qtcreator/PKGBUILD @@ -14,8 +14,8 @@ pkgname=qtcreator -pkgver=4.7.0 -_clangver=6.0.1 +pkgver=4.7.1 +_clangver=7.0.0 pkgrel=1 pkgrel+=.parabola1 pkgdesc='Lightweight, cross-platform integrated development environment' @@ -26,7 +26,7 @@ url='http://qt-project.org' license=(LGPL) depends=(qt5-tools qt5-quickcontrols qt5-quickcontrols2 clang=$_clangver qbs) -makedepends=(git mesa llvm) +makedepends=(git mesa llvm python) options=(docs) optdepends=('qt5-doc: integrated Qt documentation' 'qt5-examples: welcome page examples' @@ -38,15 +38,20 @@ optdepends=('qt5-doc: integrated Qt documentation' 'mercurial: mercurial support' 'bzr: bazaar support' 'valgrind: analyze support') - -source=("http://download.qt.io/official_releases/qtcreator/${pkgver%.*}/$pkgver/qt-creator-opensource-src-$pkgver.tar.xz") +source=("http://download.qt.io/official_releases/qtcreator/${pkgver%.*}/$pkgver/qt-creator-opensource-src-$pkgver.tar.xz" + qtcreator-clang-plugins.patch qtcreator-clang7.patch + qtcreatorbug-19367a.patch::"http://code.qt.io/cgit/qt-creator/qt-creator.git/patch/?id=807b0f78" + qtcreatorbug-19367b.patch::"http://code.qt.io/cgit/qt-creator/qt-creator.git/patch/?id=813c1685") source+=('0001-Fix-Allow-qt-creator-to-build-on-arm-aarch32-and-aar.patch' 'libre.patch') -sha256sums=('4b19870bf8d43665deac73a0522a1459d19f5b18b6f52030bb7fbc82d90b759b' +sha256sums=('c98254336953f637015f14b8b4ddb5e274454a5416fd20dd09747a6e50762565' + '6f19fc9d83964a5460d224b3d44ce580553847960181fe0364e2ce26e1efd2e6' + '88b78c8ebd72cdad8f59bba8172cc5d1f3f9577e2bb31d841d5cabdd76eba36c' + 'a7a00a390fb46f13d53055b1862dcd916deb595dbba20c2340662cab51e5a8c1' + '89a3fff5e398f11367ab060d910098c295968e909fcca3f35d30073cd80cbf03' '56e6876f41ee8909ee197f7ab5a2bb18ad5a7fe26ce490a48cdf062fa199ffc6' '53d119a70047c6b64d8227e65d402d308017cc1d99d8886421bf2da4f7407c80') - prepare() { mkdir -p build @@ -55,9 +60,18 @@ prepare() { # use system qbs rm -r qt-creator-opensource-src-${pkgver}/src/shared/qbs + # Load analyzer plugins on demand, since upstream clang doesn't link to all plugins + # see http://code.qt.io/cgit/clang/clang.git/commit/?id=7f349701d3ea0c47be3a43e265699dddd3fd55cf + # and https://bugs.archlinux.org/task/59492 + cd qt-creator-opensource-src-${pkgver} + patch -p1 -i "$srcdir"/qtcreator-clang-plugins.patch + # Don't use unreleased API when building against clang 7 + patch -p1 -i "$srcdir"/qtcreator-clang7.patch + # https://bugreports.qt.io/browse/QTCREATORBUG-19367 + patch -p1 -i "$srcdir"/qtcreatorbug-19367a.patch + patch -p1 -i "$srcdir"/qtcreatorbug-19367b.patch # remove qt5-webengine support - cd qt-creator-opensource-src-${pkgver} patch -Np1 -i "$srcdir"/libre.patch rm -rv src/plugins/help/webenginehelpviewer.{cpp,h} diff --git a/libre/qtcreator/qtcreator-clang-plugins.patch b/libre/qtcreator/qtcreator-clang-plugins.patch new file mode 100644 index 000000000..2585f29db --- /dev/null +++ b/libre/qtcreator/qtcreator-clang-plugins.patch @@ -0,0 +1,40 @@ +diff --git a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp +index 25054f14ec..b0e17c3260 100644 +--- a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp ++++ b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp +@@ -524,6 +524,7 @@ private: + if (tidyMode == Mode::Disabled) + return; + ++ addXclangArg("-load", "libclangTidyPlugin.so"); + addXclangArg("-add-plugin", "clang-tidy"); + + if (tidyMode == Mode::File) +@@ -539,6 +540,7 @@ private: + if (checks.isEmpty()) + return; + ++ addXclangArg("-load", "ClangLazy.so"); + addXclangArg("-add-plugin", "clang-lazy"); + addXclangArg("-plugin-arg-clang-lazy", "enable-all-fixits"); + addXclangArg("-plugin-arg-clang-lazy", "no-autowrite-fixits"); +diff --git a/src/plugins/clangtools/clangtidyclazyrunner.cpp b/src/plugins/clangtools/clangtidyclazyrunner.cpp +index d91724392e..75e1692f49 100644 +--- a/src/plugins/clangtools/clangtidyclazyrunner.cpp ++++ b/src/plugins/clangtools/clangtidyclazyrunner.cpp +@@ -83,6 +83,7 @@ QStringList ClangTidyClazyRunner::constructCommandLineArguments(const QStringLis + + const ClangDiagnosticConfig::TidyMode tidyMode = m_diagnosticConfig.clangTidyMode(); + if (tidyMode != ClangDiagnosticConfig::TidyMode::Disabled) { ++ addXclangArg(arguments, QString("-load"), QString("libclangTidyPlugin.so")); + addXclangArg(arguments, QString("-add-plugin"), QString("clang-tidy")); + if (tidyMode != ClangDiagnosticConfig::TidyMode::File) { + const QString tidyChecks = m_diagnosticConfig.clangTidyChecks(); +@@ -92,6 +93,7 @@ QStringList ClangTidyClazyRunner::constructCommandLineArguments(const QStringLis + + const QString clazyChecks = m_diagnosticConfig.clazyChecks(); + if (!clazyChecks.isEmpty()) { ++ addXclangArg(arguments, QString("-load"), QString("ClangLazy.so")); + addXclangArg(arguments, QString("-add-plugin"), QString("clang-lazy")); + addXclangArg(arguments, QString("-plugin-arg-clang-lazy"), QString("enable-all-fixits")); + addXclangArg(arguments, QString("-plugin-arg-clang-lazy"), QString("no-autowrite-fixits")); diff --git a/libre/qtcreator/qtcreator-clang7.patch b/libre/qtcreator/qtcreator-clang7.patch new file mode 100644 index 000000000..378b114b8 --- /dev/null +++ b/libre/qtcreator/qtcreator-clang7.patch @@ -0,0 +1,13 @@ +diff --git a/src/tools/clangbackend/source/clangbackend_global.h b/src/tools/clangbackend/source/clangbackend_global.h +index 658e2e8fb1..5c27224ae4 100644 +--- a/src/tools/clangbackend/source/clangbackend_global.h ++++ b/src/tools/clangbackend/source/clangbackend_global.h +@@ -52,7 +52,7 @@ enum class PreferredTranslationUnit + #endif + + // CLANG-UPGRADE-CHECK: Remove IS_SKIPWARNINGSFROMINCLUDEDFILES_SUPPORTED once we require clang >= 7.0 +-#if defined(CINDEX_VERSION_HAS_SKIPWARNINGSFROMINCLUDEDFILES_BACKPORTED) || CINDEX_VERSION_MINOR >= 46 ++#if defined(CINDEX_VERSION_HAS_SKIPWARNINGSFROMINCLUDEDFILES_BACKPORTED) + # define IS_SKIPWARNINGSFROMINCLUDEDFILES_SUPPORTED + #endif + diff --git a/libre/qtcreator/qtcreatorbug-19367a.patch b/libre/qtcreator/qtcreatorbug-19367a.patch new file mode 100644 index 000000000..397deda18 --- /dev/null +++ b/libre/qtcreator/qtcreatorbug-19367a.patch @@ -0,0 +1,36 @@ +From 807b0f78fc89409559ecc22229650a883def436d Mon Sep 17 00:00:00 2001 +From: Jonathan Liu +Date: Thu, 20 Sep 2018 13:46:05 +1000 +Subject: ProjectExplorer: Do not add too many newlines for remote processes + +Do not add newlines when remote process output gets flushed. + +Task-number: QTCREATORBUG-19367 +Change-Id: I9e878695279404d436264abd580884fb6a9e91ad +Reviewed-by: hjk +--- + src/plugins/projectexplorer/runconfiguration.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp +index 438d631c78..f2f5871a5a 100644 +--- a/src/plugins/projectexplorer/runconfiguration.cpp ++++ b/src/plugins/projectexplorer/runconfiguration.cpp +@@ -1659,12 +1659,12 @@ void SimpleTargetRunner::start() + + connect(&m_launcher, &ApplicationLauncher::remoteStderr, + this, [this](const QString &output) { +- appendMessage(output, Utils::StdErrFormatSameLine); ++ appendMessage(output, Utils::StdErrFormatSameLine, false); + }); + + connect(&m_launcher, &ApplicationLauncher::remoteStdout, + this, [this](const QString &output) { +- appendMessage(output, Utils::StdOutFormatSameLine); ++ appendMessage(output, Utils::StdOutFormatSameLine, false); + }); + + connect(&m_launcher, &ApplicationLauncher::finished, +-- +cgit v1.2.1 + diff --git a/libre/qtcreator/qtcreatorbug-19367b.patch b/libre/qtcreator/qtcreatorbug-19367b.patch new file mode 100644 index 000000000..7603877cd --- /dev/null +++ b/libre/qtcreator/qtcreatorbug-19367b.patch @@ -0,0 +1,42 @@ +From 813c16854df6be7fd1f1a8013d0b180f6248e5ab Mon Sep 17 00:00:00 2001 +From: Jonathan Liu +Date: Thu, 20 Sep 2018 13:48:58 +1000 +Subject: SshDeviceProcess: Don't emit readyRead signals if no data available + +Task-number: QTCREATORBUG-19367 +Change-Id: I477800b2e2060748c2b5f9fde3acc91d9f5ae176 +Reviewed-by: hjk +Reviewed-by: Ulf Hermann +--- + src/plugins/projectexplorer/devicesupport/sshdeviceprocess.cpp | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/src/plugins/projectexplorer/devicesupport/sshdeviceprocess.cpp b/src/plugins/projectexplorer/devicesupport/sshdeviceprocess.cpp +index b34e0ce805..3bb813d55d 100644 +--- a/src/plugins/projectexplorer/devicesupport/sshdeviceprocess.cpp ++++ b/src/plugins/projectexplorer/devicesupport/sshdeviceprocess.cpp +@@ -245,13 +245,19 @@ void SshDeviceProcess::handleProcessFinished(int exitStatus) + + void SshDeviceProcess::handleStdout() + { +- d->stdOut += d->process->readAllStandardOutput(); ++ QByteArray output = d->process->readAllStandardOutput(); ++ if (output.isEmpty()) ++ return; ++ d->stdOut += output; + emit readyReadStandardOutput(); + } + + void SshDeviceProcess::handleStderr() + { +- d->stdErr += d->process->readAllStandardError(); ++ QByteArray output = d->process->readAllStandardError(); ++ if (output.isEmpty()) ++ return; ++ d->stdErr += output; + emit readyReadStandardError(); + } + +-- +cgit v1.2.1 + -- cgit v1.2.3