[arch-commits] Commit in qtcreator/trunk (PKGBUILD qtcreator-mime-database.patch)

Antonio Rojas arojas at archlinux.org
Sat Jun 29 14:20:19 UTC 2019


    Date: Saturday, June 29, 2019 @ 14:20:19
  Author: arojas
Revision: 357060

Use system mimetype database

Added:
  qtcreator/trunk/qtcreator-mime-database.patch
Modified:
  qtcreator/trunk/PKGBUILD

-------------------------------+
 PKGBUILD                      |    9 +++-
 qtcreator-mime-database.patch |   77 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 83 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2019-06-29 14:18:59 UTC (rev 357059)
+++ PKGBUILD	2019-06-29 14:20:19 UTC (rev 357060)
@@ -9,7 +9,7 @@
 pkgname=qtcreator
 pkgver=4.9.2
 _clangver=8.0.0
-pkgrel=1
+pkgrel=2
 pkgdesc='Lightweight, cross-platform integrated development environment'
 arch=(x86_64)
 url='https://www.qt.io'
@@ -30,10 +30,12 @@
             'perf: performer analyzer')
 source=("https://download.qt.io/official_releases/qtcreator/${pkgver%.*}/$pkgver/qt-creator-opensource-src-$pkgver.tar.xz"
         qtcreator-clazy-1.5.patch
-        qtcreator-preload-plugins.patch)
+        qtcreator-preload-plugins.patch
+        qtcreator-mime-database.patch)
 sha256sums=('b7e0c797e7704c6c22eb35351946c0a758502fd082f6beaee043166e1739d3d7'
             '1f6998fea92b9a157f42cca783839ce95f70ccc667027078b7881cbb253838f0'
-            '150c444e76ec969fc8765774b648984037829623300d0ce9d41a915b2afa792d')
+            '150c444e76ec969fc8765774b648984037829623300d0ce9d41a915b2afa792d'
+            '8d64b5c28535dcaab910f32e82b04b425253015ca70f379cbe5e9693526a852a')
 
 prepare() {
   mkdir -p build
@@ -50,6 +52,7 @@
   # see http://code.qt.io/cgit/clang/clang.git/commit/?id=7f349701d3ea0c47be3a43e265699dddd3fd55cf
   # and https://bugs.archlinux.org/task/59492
   patch -p1 -i ../qtcreator-preload-plugins.patch
+  patch -p1 -i ../qtcreator-mime-database.patch # Use system shared-mime-info
 }
 
 build() {

Added: qtcreator-mime-database.patch
===================================================================
--- qtcreator-mime-database.patch	                        (rev 0)
+++ qtcreator-mime-database.patch	2019-06-29 14:20:19 UTC (rev 357060)
@@ -0,0 +1,77 @@
+From e7ef1ad0ba526dd2fc47602e4d45d62adbdbe5db Mon Sep 17 00:00:00 2001
+From: Thiago Macieira <thiago.macieira at 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();
+



More information about the arch-commits mailing list