diff --git a/autotests/data/testpackagesdep/metadata.json b/autotests/data/testpackagesdep/metadata.json --- a/autotests/data/testpackagesdep/metadata.json +++ b/autotests/data/testpackagesdep/metadata.json @@ -11,6 +11,6 @@ "Name": "Test Packages with Dependencies", "ServiceTypes": [ "KPackage/Generic" ] }, - "X-KPackage-Dependencies": [ "mock://validdep" ], + "X-KPackage-Dependencies": [ "mock://validdep", "mock://validdep2" ], "X-Plasma-MainScript": "ui/main.qml" } diff --git a/autotests/mockdepresolver/main.cpp b/autotests/mockdepresolver/main.cpp --- a/autotests/mockdepresolver/main.cpp +++ b/autotests/mockdepresolver/main.cpp @@ -44,7 +44,7 @@ return 1; } - if (componentName == QStringLiteral("validdep")) { + if (componentName.startsWith(QLatin1String("validdep"))) { qWarning() << "asked to install valid dep, success!"; return 0; } diff --git a/src/kpackage/CMakeLists.txt b/src/kpackage/CMakeLists.txt --- a/src/kpackage/CMakeLists.txt +++ b/src/kpackage/CMakeLists.txt @@ -5,6 +5,7 @@ # them, the build fails). set(CMAKE_AUTOMOC_RELAXED_MODE ON) +set(CMAKE_AUTORCC ON) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config-package.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-package.h) @@ -22,6 +23,7 @@ private/packagejobthread.cpp private/versionparser.cpp version.cpp + kpackage.qrc ) diff --git a/src/kpackage/kpackage.qrc b/src/kpackage/kpackage.qrc new file mode 100644 --- /dev/null +++ b/src/kpackage/kpackage.qrc @@ -0,0 +1,6 @@ + + +../kpackage/data/servicetypes/kpackage-generic.desktop + + + diff --git a/src/kpackage/package.cpp b/src/kpackage/package.cpp --- a/src/kpackage/package.cpp +++ b/src/kpackage/package.cpp @@ -940,22 +940,20 @@ void PackagePrivate::createPackageMetadata(const QString &path) { - static QString kpackageGenericService = QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral("kservicetypes5/kpackage-generic.desktop")); delete metadata; const bool isDir = QFileInfo(path).isDir(); if (isDir && QFile::exists(path + "/metadata.json")) { metadata = new KPluginMetaData(path + "/metadata.json"); } else if (isDir && QFile::exists(path + "/metadata.desktop")) { - Q_ASSERT(!kpackageGenericService.isEmpty()); - auto md = KPluginMetaData::fromDesktopFile(path + "/metadata.desktop", {kpackageGenericService}); + auto md = KPluginMetaData::fromDesktopFile(path + "/metadata.desktop", {QStringLiteral(":/kservicetypes5/kpackage-generic.desktop")}); metadata = new KPluginMetaData(md); } else { if (isDir) { qWarning() << "No metadata file in the package, expected it at:" << path; } else if (path.endsWith(".desktop")) { - auto md = KPluginMetaData::fromDesktopFile(path, {kpackageGenericService}); + auto md = KPluginMetaData::fromDesktopFile(path, {QStringLiteral(":/kservicetypes5/kpackage-generic.desktop")}); metadata = new KPluginMetaData(md); } else { metadata = new KPluginMetaData(path); diff --git a/src/kpackage/private/packagejobthread.cpp b/src/kpackage/private/packagejobthread.cpp --- a/src/kpackage/private/packagejobthread.cpp +++ b/src/kpackage/private/packagejobthread.cpp @@ -294,8 +294,7 @@ if (!entries.isEmpty()) { const QString metadataFilePath = entries.first().filePath(); if (metadataFilePath.endsWith(QLatin1String(".desktop"))) { - static QString kpackageGenericService = QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral("kservicetypes5/kpackage-generic.desktop")); - meta = KPluginMetaData::fromDesktopFile(metadataFilePath, {kpackageGenericService}); + meta = KPluginMetaData::fromDesktopFile(metadataFilePath, {QStringLiteral(":/kservicetypes5/kpackage-generic.desktop")}); } else { QFile f(metadataFilePath); if(!f.open(QIODevice::ReadOnly)){