diff options
-rw-r--r-- | libre/qtcreator/PKGBUILD | 44 | ||||
-rw-r--r-- | libre/qtcreator/qtcreator-clang-plugins.patch | 44 | ||||
-rw-r--r-- | libre/qtcreator/qtcreator-clazy-1.5.patch | 45 | ||||
-rw-r--r-- | libre/qtcreator/qtcreator-mime-database.patch | 77 | ||||
-rw-r--r-- | libre/qtcreator/qtcreator-preload-plugins.patch | 21 |
5 files changed, 173 insertions, 58 deletions
diff --git a/libre/qtcreator/PKGBUILD b/libre/qtcreator/PKGBUILD index 65747045a..c5d4d9ccc 100644 --- a/libre/qtcreator/PKGBUILD +++ b/libre/qtcreator/PKGBUILD @@ -13,18 +13,19 @@ pkgname=qtcreator -pkgver=4.8.2 -_clangver=8.0.0 +pkgver=4.9.2 +_clangver=8.0.1 pkgrel=1 -pkgrel+=.parabola3 +pkgrel+=.parabola1 pkgdesc='Lightweight, cross-platform integrated development environment' pkgdesc+=', without nonfree qt5-webengine support' arch=(x86_64) arch+=(i686 armv7h) url='https://www.qt.io' license=(LGPL) -depends=(qt5-tools qt5-quickcontrols qt5-quickcontrols2 clang=$_clangver qbs clazy) -makedepends=(git mesa llvm python) +depends=(qt5-tools qt5-quickcontrols qt5-quickcontrols2 \ + clang=$_clangver qbs clazy syntax-highlighting desktop-file-utils) +makedepends=(llvm python patchelf) options=(docs) optdepends=('qt5-doc: integrated Qt documentation' 'qt5-examples: welcome page examples' @@ -35,13 +36,18 @@ optdepends=('qt5-doc: integrated Qt documentation' 'git: git support' 'mercurial: mercurial support' 'bzr: bazaar support' - 'valgrind: analyze support') + 'valgrind: analyze support' + 'perf: performer analyzer') source=("https://download.qt.io/official_releases/qtcreator/${pkgver%.*}/$pkgver/qt-creator-opensource-src-$pkgver.tar.xz" - qtcreator-clang-plugins.patch) + qtcreator-clazy-1.5.patch + qtcreator-preload-plugins.patch + qtcreator-mime-database.patch) source+=('libre.patch') -sha256sums=('a8257daf39f6025c8523285dc73fd6b66645f3ff071e112b484325966eee0c92' - '34ea74698ddff9925e06bff6b4c995bf93488d1104e8cc517bcfdd621effb428' - 'b44b9217770573b16e7bea873b0a0fb1b9f6f59502686eb6136d78bebc671ddb') +sha256sums=('b7e0c797e7704c6c22eb35351946c0a758502fd082f6beaee043166e1739d3d7' + '1f6998fea92b9a157f42cca783839ce95f70ccc667027078b7881cbb253838f0' + '150c444e76ec969fc8765774b648984037829623300d0ce9d41a915b2afa792d' + '8d64b5c28535dcaab910f32e82b04b425253015ca70f379cbe5e9693526a852a') +sha256sums+=('b44b9217770573b16e7bea873b0a0fb1b9f6f59502686eb6136d78bebc671ddb') prepare() { mkdir -p build @@ -49,12 +55,16 @@ prepare() { cd qt-creator-opensource-src-$pkgver # fix hardcoded libexec path sed -e 's|libexec\/qtcreator|lib\/qtcreator|g' -i qtcreator.pri + sed -e 's|libexec|lib|g' -i src/tools/tools.pro # use system qbs rm -r src/shared/qbs - # Load analyzer plugins on demand, since upstream clang doesn't link to all plugins + # Adapt to clazy 1.5 plugin rename + patch -p1 -i ../qtcreator-clazy-1.5.patch + # Preload analyzer plugins, 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 - patch -p1 -i ../qtcreator-clang-plugins.patch + patch -p1 -i ../qtcreator-preload-plugins.patch + patch -p1 -i ../qtcreator-mime-database.patch # Use system shared-mime-info # remove qt5-webengine support patch -Np1 -i "$srcdir"/libre.patch @@ -64,8 +74,11 @@ prepare() { build() { cd build - qmake LLVM_INSTALL_DIR=/usr QBS_INSTALL_DIR=/usr CONFIG+=journald QMAKE_CFLAGS_ISYSTEM=-I \ - DEFINES+=QBS_ENABLE_PROJECT_FILE_UPDATES "$srcdir"/qt-creator-opensource-src-$pkgver/qtcreator.pro + qmake LLVM_INSTALL_DIR=/usr QBS_INSTALL_DIR=/usr \ + KSYNTAXHIGHLIGHTING_LIB_DIR=/usr/lib KSYNTAXHIGHLIGHTING_INCLUDE_DIR=/usr/include/KF5/KSyntaxHighlighting \ + CONFIG+=journald QMAKE_CFLAGS_ISYSTEM=-I \ + DEFINES+=QBS_ENABLE_PROJECT_FILE_UPDATES \ + "$srcdir"/qt-creator-opensource-src-$pkgver/qtcreator.pro make make docs } @@ -77,4 +90,7 @@ package() { make INSTALL_ROOT="$pkgdir/usr/" install_docs install -Dm644 "$srcdir"/qt-creator-opensource-src-$pkgver/LICENSE.GPL3-EXCEPT "$pkgdir"/usr/share/licenses/qtcreator/LICENSE.GPL3-EXCEPT + + # Link clazy plugin explicitely + patchelf --add-needed ClazyPlugin.so "$pkgdir"/usr/lib/qtcreator/clangbackend } diff --git a/libre/qtcreator/qtcreator-clang-plugins.patch b/libre/qtcreator/qtcreator-clang-plugins.patch deleted file mode 100644 index 5dc5b567a..000000000 --- a/libre/qtcreator/qtcreator-clang-plugins.patch +++ /dev/null @@ -1,44 +0,0 @@ -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,7 +540,8 @@ private: - if (checks.isEmpty()) - return; - -- addXclangArg("-add-plugin", "clang-lazy"); -+ addXclangArg("-load", "ClazyPlugin.so"); -+ addXclangArg("-add-plugin", "clazy"); - addXclangArg("-plugin-arg-clang-lazy", "enable-all-fixits"); - addXclangArg("-plugin-arg-clang-lazy", "no-autowrite-fixits"); - addXclangArg("-plugin-arg-clang-lazy", checks); -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,7 +93,8 @@ QStringList ClangTidyClazyRunner::constructCommandLineArguments(const QStringLis - - const QString clazyChecks = m_diagnosticConfig.clazyChecks(); - if (!clazyChecks.isEmpty()) { -- addXclangArg(arguments, QString("-add-plugin"), QString("clang-lazy")); -+ addXclangArg(arguments, QString("-load"), QString("ClazyPlugin.so")); -+ addXclangArg(arguments, QString("-add-plugin"), QString("clazy")); - addXclangArg(arguments, QString("-plugin-arg-clang-lazy"), QString("enable-all-fixits")); - addXclangArg(arguments, QString("-plugin-arg-clang-lazy"), QString("no-autowrite-fixits")); - addXclangArg(arguments, QString("-plugin-arg-clang-lazy"), m_diagnosticConfig.clazyChecks()); diff --git a/libre/qtcreator/qtcreator-clazy-1.5.patch b/libre/qtcreator/qtcreator-clazy-1.5.patch new file mode 100644 index 000000000..ce9d2cc0e --- /dev/null +++ b/libre/qtcreator/qtcreator-clazy-1.5.patch @@ -0,0 +1,45 @@ +diff --git a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp +index 706c5101a3..dbfaeb8457 100644 +--- a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp ++++ b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp +@@ -527,14 +528,14 @@ private: + return; + + m_options.append(CppTools::XclangArgs({"-add-plugin", +- "clang-lazy", +- "-plugin-arg-clang-lazy", ++ "clazy", ++ "-plugin-arg-clazy", + "enable-all-fixits", +- "-plugin-arg-clang-lazy", ++ "-plugin-arg-clazy", + "no-autowrite-fixits", +- "-plugin-arg-clang-lazy", ++ "-plugin-arg-clazy", + checks, +- "-plugin-arg-clang-lazy", ++ "-plugin-arg-clazy", + "ignore-included-files"})); + } + +diff --git a/src/plugins/clangtools/clangtidyclazyrunner.cpp b/src/plugins/clangtools/clangtidyclazyrunner.cpp +index a580704243..7a8740a5cc 100644 +--- a/src/plugins/clangtools/clangtidyclazyrunner.cpp ++++ b/src/plugins/clangtools/clangtidyclazyrunner.cpp +@@ -86,12 +87,12 @@ QStringList ClangTidyClazyRunner::constructCommandLineArguments(const QStringLis + const QString clazyChecks = m_diagnosticConfig.clazyChecks(); + if (!clazyChecks.isEmpty()) { + arguments << XclangArgs({"-add-plugin", +- "clang-lazy", +- "-plugin-arg-clang-lazy", ++ "clazy", ++ "-plugin-arg-clazy", + "enable-all-fixits", +- "-plugin-arg-clang-lazy", ++ "-plugin-arg-clazy", + "no-autowrite-fixits", +- "-plugin-arg-clang-lazy", ++ "-plugin-arg-clazy", + m_diagnosticConfig.clazyChecks()}); + } + diff --git a/libre/qtcreator/qtcreator-mime-database.patch b/libre/qtcreator/qtcreator-mime-database.patch new file mode 100644 index 000000000..65ce334f6 --- /dev/null +++ b/libre/qtcreator/qtcreator-mime-database.patch @@ -0,0 +1,77 @@ +From e7ef1ad0ba526dd2fc47602e4d45d62adbdbe5db Mon Sep 17 00:00:00 2001 +From: Thiago Macieira <thiago.macieira@intel.com> +Date: Fri, 28 Jun 2019 22:46:20 -0700 +Subject: [PATCH] Re-fix QtCore resource path changing and prepare for Qt 5.13 + +Commit 9cf8ab3b3d44ac50a1f8d4893d8f70b8aedb18b0 added the #ifdef, but +that of course only works if you don't upgrade Qt compared to what Qt +Creator was compiled with. Instead, attempt both paths and only do that +if the system copy is not found. + +Searching the system copy is required to address Qt 5.13's configure +option -no-mimetype-database (used by Linux distributions because the +system copy is always present). + +This code will still need work to deal with Qt 5.14 changes. + +Task-number: QTCREATORBUG-19600 +Task-number: QTCREATORBUG-22636 +Change-Id: I6aed4df6a12e43c3ac8efffd15ac952a6e9d4770 +--- + +diff --git a/src/libs/utils/mimetypes/mimeprovider.cpp b/src/libs/utils/mimetypes/mimeprovider.cpp +index d444aa8..ce94215 100644 +--- a/src/libs/utils/mimetypes/mimeprovider.cpp ++++ b/src/libs/utils/mimetypes/mimeprovider.cpp +@@ -784,32 +784,25 @@ + { + if (!m_loaded /*|| shouldCheck()*/) { + m_loaded = true; +-// bool fdoXmlFound = false; +- QStringList allFiles; ++ QStringList allFiles = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, ++ QStringLiteral("mime/packages/freedesktop.org.xml"), ++ QStandardPaths::LocateFile); + +-// const QStringList packageDirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QLatin1String("mime/packages"), QStandardPaths::LocateDirectory); +-// //qDebug() << "packageDirs=" << packageDirs; +-// for (const QString &packageDir : packageDirs) { +-// QDir dir(packageDir); +-// const QStringList files = dir.entryList(QDir::Files | QDir::NoDotAndDotDot); +-// //qDebug() << static_cast<const void *>(this) << packageDir << files; +-// if (!fdoXmlFound) +-// fdoXmlFound = files.contains(QLatin1String("freedesktop.org.xml")); +-// QStringList::const_iterator endIt(files.constEnd()); +-// for (QStringList::const_iterator it(files.constBegin()); it != endIt; ++it) { +-// allFiles.append(packageDir + QLatin1Char('/') + *it); +-// } +-// } +- +-// if (!fdoXmlFound) { +-// // We could instead install the file as part of installing Qt? +-#if (QT_VERSION >= QT_VERSION_CHECK(5, 11, 0)) +- const char freedesktopOrgXml[] = ":/qt-project.org/qmime/packages/freedesktop.org.xml"; +-#else +- const char freedesktopOrgXml[] = ":/qt-project.org/qmime/freedesktop.org.xml"; +-#endif +- allFiles.prepend(QLatin1String(freedesktopOrgXml)); +-// } ++ if (allFiles.isEmpty()) { ++ // System freedsktop.org.xml file not found, try to use the one in QtCore. ++ // This is private API and has changed in the past: ++ // - Qt 5.11 added "package" subdir in 7a5644d6481a3c1a7416772998ca4e60c977bfbd ++ // - Qt 5.13 added an option to not bundle it at all ++ const QString fdoXml5_11 = QStringLiteral(":/qt-project.org/qmime/packages/freedesktop.org.xml"); ++ const QString fdoXmlPre5_11 = QStringLiteral(":/qt-project.org/qmime/freedesktop.org.xml"); ++ if (QFile::exists(fdoXml5_11)) ++ allFiles << fdoXml5_11; ++ else if (QFile::exists(fdoXmlPre5_11)) ++ allFiles << fdoXmlPre5_11; ++ else ++ qFatal("Utils::MimeXMLProvider: could not find the system freedesktop.org.xml file " ++ "and QtCore does not have an accessible copy."); ++ } + + m_nameMimeTypeMap.clear(); + m_aliases.clear(); + diff --git a/libre/qtcreator/qtcreator-preload-plugins.patch b/libre/qtcreator/qtcreator-preload-plugins.patch new file mode 100644 index 000000000..f4772dd05 --- /dev/null +++ b/libre/qtcreator/qtcreator-preload-plugins.patch @@ -0,0 +1,21 @@ +diff --git a/src/plugins/clangtools/clangtidyclazyrunner.cpp b/src/plugins/clangtools/clangtidyclazyrunner.cpp +index a580704243..7a8740a5cc 100644 +--- a/src/plugins/clangtools/clangtidyclazyrunner.cpp ++++ b/src/plugins/clangtools/clangtidyclazyrunner.cpp +@@ -76,6 +76,7 @@ QStringList ClangTidyClazyRunner::constructCommandLineArguments(const QStringLis + + const ClangDiagnosticConfig::TidyMode tidyMode = m_diagnosticConfig.clangTidyMode(); + if (tidyMode != ClangDiagnosticConfig::TidyMode::Disabled) { ++ arguments << XclangArgs({"-load", "libclangTidyPlugin.so"}); + arguments << XclangArgs({"-add-plugin", "clang-tidy"}); + if (tidyMode != ClangDiagnosticConfig::TidyMode::File) { + const QString tidyChecks = m_diagnosticConfig.clangTidyChecks(); +@@ -85,7 +86,7 @@ QStringList ClangTidyClazyRunner::constructCommandLineArguments(const QStringLis + + const QString clazyChecks = m_diagnosticConfig.clazyChecks(); + if (!clazyChecks.isEmpty()) { +- arguments << XclangArgs({"-add-plugin", ++ arguments << XclangArgs({"-load", "ClazyPlugin.so", "-add-plugin", + "clazy", + "-plugin-arg-clazy", + "enable-all-fixits", |