diff -Naur kdelibs-4.6.0.ori/kdecore/services/kmimetyperepository.cpp kdelibs-4.6.0/kdecore/services/kmimetyperepository.cpp --- kdelibs-4.6.0.ori/kdecore/services/kmimetyperepository.cpp 2011-01-19 17:10:02.000000000 -0500 +++ kdelibs-4.6.0/kdecore/services/kmimetyperepository.cpp 2011-02-02 13:15:52.796666669 -0500 @@ -27,7 +27,6 @@ #include #include "kfoldermimetype.h" #include -#include extern int servicesDebugArea(); @@ -687,19 +686,17 @@ { m_mutex.lockForWrite(); if (m_sharedMimeInfoVersion == 0) { - QProcess smi; - const QString umd = KStandardDirs::findExe(QString::fromLatin1("update-mime-database")); - if (umd.isEmpty()) { - kWarning() << "update-mime-database not found!"; + QFile file (KStandardDirs::findExe(QString::fromLatin1("update-mime-database"))); + if (!file.open(QIODevice::ReadOnly)) { + kWarning() << "update-mime-database not found or not readable!"; m_sharedMimeInfoVersion = -1; } else { - smi.start(umd, QStringList() << QString::fromLatin1("-v")); - smi.waitForStarted(); - smi.waitForFinished(); - const QString out = QString::fromLocal8Bit(smi.readAllStandardError()); + const QString out = QString::fromLocal8Bit(file.readAll().replace('\0', "")); + file.close(); QRegExp versionRe(QString::fromLatin1("update-mime-database \\(shared-mime-info\\) (\\d+)\\.(\\d+)(\\.(\\d+))?")); if (versionRe.indexIn(out) > -1) { m_sharedMimeInfoVersion = KDE_MAKE_VERSION(versionRe.cap(1).toInt(), versionRe.cap(2).toInt(), versionRe.cap(4).toInt()); + kWarning() << "Version of update-mime-database:" << m_sharedMimeInfoVersion; } else { kWarning() << "Unexpected version scheme from update-mime-database -v: got" << out; m_sharedMimeInfoVersion = -1;