diff --git a/src/backend/corebackend.cpp b/src/backend/corebackend.cpp index 295a631..a8bf28e 100644 --- a/src/backend/corebackend.cpp +++ b/src/backend/corebackend.cpp @@ -14,6 +14,8 @@ #include "util/globallog.h" #include +#include +#include struct CoreBackendPrivate { @@ -29,6 +31,20 @@ CoreBackend::~CoreBackend() { } +bool CoreBackend::isPolkitInstalledCorrectly() { + // Assume PACKAGE_DATA_DIR is /usr/share, this is defined on polkit on buildtime so this might be wrong. + // This is a warning, not a hard failure, so it does not matter much. + QFileInfo fInfo(QStringLiteral("/usr/share/polkit-1/actions/org.kde.kpmcore.externalcommand.policy")); + + // TODO: Port kpm to qCDebug, currently everything is debug. + if (!fInfo.exists()) { + qDebug() << "Installation might be wrong, we can't locate `org.kde.kpmcore.externalcommand.policy` on the polkit actions folder."; + qDebug() << "Please check if your Installation is on a different prefix and copy it to /usr/share/polkit-1/actions"; + qDebug() << "That's specified for your distro. Since this is distro specific, you need to look at your distribution documentation."; + } + return fInfo.exists(); +} + void CoreBackend::emitProgress(int i) { Q_EMIT progress(i); diff --git a/src/backend/corebackend.h b/src/backend/corebackend.h index c828a1b..ec28e73 100644 --- a/src/backend/corebackend.h +++ b/src/backend/corebackend.h @@ -170,6 +170,8 @@ public: */ virtual void emitScanProgress(const QString& deviceNode, int i); + static bool isPolkitInstalledCorrectly(); + protected: static void setPartitionTableForDevice(Device& d, PartitionTable* p); static void setPartitionTableMaxPrimaries(PartitionTable& p, qint32 max_primaries);