summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libre/qtcreator/PKGBUILD44
-rw-r--r--libre/qtcreator/qtcreator-clang-plugins.patch44
-rw-r--r--libre/qtcreator/qtcreator-clazy-1.5.patch45
-rw-r--r--libre/qtcreator/qtcreator-mime-database.patch77
-rw-r--r--libre/qtcreator/qtcreator-preload-plugins.patch21
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",