plasma-5.27.10

This commit is contained in:
Rmys
2023-12-06 14:39:34 +03:00
parent e355ef755b
commit e831c8a738
3 changed files with 1 additions and 793 deletions
@@ -1,599 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 31460a6d5..89cee3182 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -31,7 +31,7 @@ find_package(KF5 ${KF5_MIN_VERSION} REQUIRED CoreAddons Config Crash DBusAddons
find_package(KF5Kirigami2 2.7.0)
find_package(packagekitqt5 1.0.1 CONFIG)
-find_package(AppStreamQt 0.15.3 CONFIG REQUIRED)
+find_package(AppStreamQt5 1.0 CONFIG REQUIRED)
find_package(KF5Attica 5.23 CONFIG)
find_package(KF5NewStuff 5.53 CONFIG)
@@ -85,7 +85,7 @@ set_package_properties(packagekitqt5 PROPERTIES
URL "https://www.freedesktop.org/software/PackageKit/"
PURPOSE "Required to build the PackageKit backend"
TYPE OPTIONAL)
-set_package_properties(AppStreamQt PROPERTIES
+set_package_properties(AppStreamQt5 PROPERTIES
DESCRIPTION "Library that lists Appstream resources"
URL "https://www.freedesktop.org"
PURPOSE "Required to build the PackageKit, Flatpak and Snap backends"
diff --git a/libdiscover/appstream/AppStreamUtils.cpp b/libdiscover/appstream/AppStreamUtils.cpp
index 94f030c9d..c2080c17a 100644
--- a/libdiscover/appstream/AppStreamUtils.cpp
+++ b/libdiscover/appstream/AppStreamUtils.cpp
@@ -7,11 +7,11 @@
#include "AppStreamUtils.h"
#include "utils.h"
-#include <AppStreamQt/pool.h>
-#include <AppStreamQt/release.h>
-#include <AppStreamQt/screenshot.h>
-#include <AppStreamQt/spdx.h>
-#include <AppStreamQt/version.h>
+#include <AppStreamQt5/pool.h>
+#include <AppStreamQt5/release.h>
+#include <AppStreamQt5/screenshot.h>
+#include <AppStreamQt5/spdx.h>
+#include <AppStreamQt5/version.h>
#include <Category/Category.h>
#include <KLocalizedString>
#include <QDebug>
@@ -35,10 +35,20 @@ QUrl AppStreamUtils::imageOfKind(const QList<AppStream::Image> &images, AppStrea
QString AppStreamUtils::changelogToHtml(const AppStream::Component &appdata)
{
- if (appdata.releases().isEmpty())
+#if ASQ_CHECK_VERSION(1, 0, 0)
+ const auto releases = appdata.releasesPlain();
+#else
+ const auto releases = appdata.releases();
+#endif
+ if (releases.isEmpty()) {
return {};
+ }
- const auto release = appdata.releases().constFirst();
+#if ASQ_CHECK_VERSION(1, 0, 0)
+ const auto release = releases.indexSafe(0).value();
+#else
+ const auto release = releases.constFirst();
+#endif
if (release.description().isEmpty())
return {};
@@ -49,7 +59,7 @@ QString AppStreamUtils::changelogToHtml(const AppStream::Component &appdata)
Screenshots AppStreamUtils::fetchScreenshots(const AppStream::Component &appdata)
{
- const auto appdataScreenshots = appdata.screenshots();
+ const auto appdataScreenshots = appdata.screenshotsAll();
Screenshots ret;
ret.reserve(appdataScreenshots.size());
for (const AppStream::Screenshot &s : appdataScreenshots) {
@@ -131,10 +141,10 @@ QString AppStreamUtils::versionString(const QString &version, const AppStream::C
if (version.isEmpty()) {
return {};
} else {
- if (appdata.releases().isEmpty())
+ if (appdata.releasesPlain().isEmpty())
return version;
- auto release = appdata.releases().constFirst();
+ auto release = appdata.releasesPlain().indexSafe(0).value();
if (release.timestamp().isValid() && version.startsWith(release.version())) {
QLocale l;
return i18n("%1, released on %2", version, l.toString(release.timestamp().date(), QLocale::ShortFormat));
@@ -256,7 +266,7 @@ QList<AppStream::Component> AppStreamUtils::componentsByCategories(AppStream::Po
{
QList<AppStream::Component> ret;
for (const auto &categoryName : cat->involvedCategories()) {
- ret += pool->componentsByCategories({categoryName});
+ ret += pool->componentsByCategories({categoryName}).toList();
}
kRemoveDuplicates(ret, kind);
return ret;
diff --git a/libdiscover/appstream/AppStreamUtils.h b/libdiscover/appstream/AppStreamUtils.h
index 383e55aa8..906bd327a 100644
--- a/libdiscover/appstream/AppStreamUtils.h
+++ b/libdiscover/appstream/AppStreamUtils.h
@@ -6,9 +6,9 @@
#pragma once
-#include <AppStreamQt/component.h>
-#include <AppStreamQt/image.h>
-#include <AppStreamQt/pool.h>
+#include <AppStreamQt5/component.h>
+#include <AppStreamQt5/image.h>
+#include <AppStreamQt5/pool.h>
#include <QColor>
#include <QList>
#include <QUrl>
diff --git a/libdiscover/backends/CMakeLists.txt b/libdiscover/backends/CMakeLists.txt
index bd3a03256..c2e0ec12d 100644
--- a/libdiscover/backends/CMakeLists.txt
+++ b/libdiscover/backends/CMakeLists.txt
@@ -8,11 +8,11 @@ function(add_unit_test name)
Qt::Test Qt::Core ${EXTRA_LIBS})
endfunction()
-if(KF5Attica_FOUND AND KF5NewStuff_FOUND AND AppStreamQt_FOUND)
+if(KF5Attica_FOUND AND KF5NewStuff_FOUND AND AppStreamQt5_FOUND)
add_subdirectory(KNSBackend)
endif()
-if(packagekitqt5_FOUND AND AppStreamQt_FOUND)
+if(packagekitqt5_FOUND AND AppStreamQt5_FOUND)
add_subdirectory(PackageKitBackend)
endif()
@@ -22,10 +22,10 @@ if(BUILD_DummyBackend)
endif()
option(BUILD_FlatpakBackend "Build Flatpak support" "ON")
-if(Flatpak_FOUND AND AppStreamQt_FOUND AND BUILD_FlatpakBackend)
+if(Flatpak_FOUND AND AppStreamQt5_FOUND AND BUILD_FlatpakBackend)
add_subdirectory(FlatpakBackend)
elseif(BUILD_FlatpakBackend)
- message(WARNING "BUILD_FlatpakBackend enabled but Flatpak=${Flatpak_FOUND} or AppStreamQt=${AppStreamQt_FOUND} not found")
+ message(WARNING "BUILD_FlatpakBackend enabled but Flatpak=${Flatpak_FOUND} or AppStreamQt=${AppStreamQt5_FOUND} not found")
endif()
find_package(Snapd)
@@ -41,7 +41,7 @@ if(BUILD_SteamOSBackend)
endif()
option(BUILD_SnapBackend "Build Snap support." "ON")
-if(BUILD_SnapBackend AND AppStreamQt_FOUND AND Snapd_FOUND)
+if(BUILD_SnapBackend AND AppStreamQt5_FOUND AND Snapd_FOUND)
add_subdirectory(SnapBackend)
endif()
diff --git a/libdiscover/backends/FlatpakBackend/CMakeLists.txt b/libdiscover/backends/FlatpakBackend/CMakeLists.txt
index eac5a3241..905f2ee7f 100644
--- a/libdiscover/backends/FlatpakBackend/CMakeLists.txt
+++ b/libdiscover/backends/FlatpakBackend/CMakeLists.txt
@@ -15,7 +15,7 @@ set(flatpak-backend_SRCS
add_library(flatpak-backend MODULE ${flatpak-backend_SRCS})
target_link_libraries(flatpak-backend Qt::Core Qt::Widgets Qt::Concurrent KF5::CoreAddons KF5::ConfigCore KF5::KIOGui Discover::Common AppStreamQt PkgConfig::Flatpak)
-if (AppStreamQt_VERSION VERSION_GREATER 0.14.6)
+if (AppStreamQt5_VERSION VERSION_GREATER 0.14.6)
target_compile_definitions(flatpak-backend PRIVATE -DAPPSTREAM_NEW_POOL_API)
endif()
diff --git a/libdiscover/backends/FlatpakBackend/FlatpakBackend.cpp b/libdiscover/backends/FlatpakBackend/FlatpakBackend.cpp
index 99488469b..2471bb8f0 100644
--- a/libdiscover/backends/FlatpakBackend/FlatpakBackend.cpp
+++ b/libdiscover/backends/FlatpakBackend/FlatpakBackend.cpp
@@ -20,12 +20,12 @@
#include <resources/StandardBackendUpdater.h>
#include <utils.h>
-#include <AppStreamQt/bundle.h>
-#include <AppStreamQt/icon.h>
-#include <AppStreamQt/metadata.h>
-#include <AppStreamQt/pool.h>
-#include <AppStreamQt/release.h>
-#include <AppStreamQt/version.h>
+#include <AppStreamQt5/bundle.h>
+#include <AppStreamQt5/icon.h>
+#include <AppStreamQt5/metadata.h>
+#include <AppStreamQt5/pool.h>
+#include <AppStreamQt5/release.h>
+#include <AppStreamQt5/version.h>
#include <KAboutData>
#include <KConfigGroup>
@@ -159,18 +159,19 @@ public:
QList<AppStream::Component> componentsByName(const QString &name)
{
- QList<AppStream::Component> comps = m_pool->componentsById(name);
- if (!comps.isEmpty())
- return comps;
+ auto comps = m_pool->componentsById(name);
+ if (!comps.isEmpty()) {
+ return comps.toList();
+ }
comps = m_pool->componentsByProvided(AppStream::Provided::KindId, name);
- return comps;
+ return comps.toList();
}
QList<AppStream::Component> componentsByFlatpakId(const QString &ref)
{
#if ASQ_CHECK_VERSION(0, 16, 0)
- QList<AppStream::Component> comps = m_pool->componentsByBundleId(AppStream::Bundle::KindFlatpak, ref, false);
+ QList<AppStream::Component> comps = m_pool->componentsByBundleId(AppStream::Bundle::KindFlatpak, ref, false).toList();
#else
QList<AppStream::Component> comps = m_pool->components();
comps = kFilter<QList<AppStream::Component>>(comps, [&ref](const AppStream::Component &component) {
@@ -181,7 +182,7 @@ public:
if (!comps.isEmpty())
return comps;
- comps = m_pool->componentsByProvided(AppStream::Provided::KindId, ref.section('/', 1, 1));
+ comps = m_pool->componentsByProvided(AppStream::Provided::KindId, ref.section('/', 1, 1)).toList();
return comps;
}
@@ -274,7 +275,11 @@ static std::optional<AppStream::Metadata> metadataFromBytes(GBytes *appstreamGz,
gconstpointer data = g_bytes_get_data(appstream, &len);
AppStream::Metadata metadata;
+#if ASQ_CHECK_VERSION(0, 16, 0)
+ metadata.setFormatStyle(AppStream::Metadata::FormatStyleCatalog);
+#else
metadata.setFormatStyle(AppStream::Metadata::FormatStyleCollection);
+#endif
AppStream::Metadata::MetadataError error = metadata.parse(QString::fromUtf8((char *)data, len), AppStream::Metadata::FormatKindXml);
if (error != AppStream::Metadata::MetadataErrorNoError) {
qWarning() << "Failed to parse appstream metadata: " << error;
@@ -479,7 +484,7 @@ FlatpakResource *FlatpakBackend::getAppForInstalledRef(FlatpakInstallation *inst
g_autoptr(GBytes) metadata = flatpak_installed_ref_load_appdata(ref, 0, 0);
if (metadata) {
auto meta = metadataFromBytes(metadata, m_cancellable);
- comps = meta->components();
+ comps = meta->components().toList();
}
}
@@ -626,7 +631,7 @@ void FlatpakBackend::addAppFromFlatpakBundle(const QUrl &url, ResultsStream *str
return;
}
- const QList<AppStream::Component> components = metadata->components();
+ const QList<AppStream::Component> components = metadata->components().toList();
if (components.size()) {
asComponent = components.first();
} else {
@@ -777,7 +782,11 @@ AppStream::Component fetchComponentFromRemote(const QSettings &settings, GCancel
AppStream::Pool pool;
#ifdef APPSTREAM_NEW_POOL_API
pool.setLoadStdDataLocations(false);
+#if ASQ_CHECK_VERSION(0, 16, 0)
+ pool.addExtraDataLocation(appstreamLocation, AppStream::Metadata::FormatStyleCatalog);
+#else
pool.addExtraDataLocation(appstreamLocation, AppStream::Metadata::FormatStyleCollection);
+#endif
#else
pool.clearMetadataLocations();
pool.addMetadataLocation(appstreamLocation);
@@ -795,7 +804,7 @@ AppStream::Component fetchComponentFromRemote(const QSettings &settings, GCancel
}
// TODO optimise, this lookup should happen in libappstream
- auto comps = pool.components();
+ auto comps = pool.components().toList();
comps = kFilter<QList<AppStream::Component>>(comps, [name, branch](const AppStream::Component &component) {
const QString id = component.bundle(AppStream::Bundle::KindFlatpak).id();
// app/app.getspace.Space/x86_64/stable
@@ -1079,7 +1088,11 @@ void FlatpakBackend::createPool(QSharedPointer<FlatpakSource> source)
#ifdef APPSTREAM_NEW_POOL_API
pool->setLoadStdDataLocations(false);
+#if ASQ_CHECK_VERSION(0, 16, 0)
+ pool->addExtraDataLocation(appstreamDirPath, AppStream::Metadata::FormatStyleCatalog);
+#else
pool->addExtraDataLocation(appstreamDirPath, AppStream::Metadata::FormatStyleCollection);
+#endif
#else
pool->clearMetadataLocations();
pool->addMetadataLocation(appstreamDirPath);
@@ -1558,11 +1571,11 @@ ResultsStream *FlatpakBackend::search(const AbstractResourcesBackend::Filters &f
for (const auto &source : qAsConst(m_flatpakSources)) {
QList<FlatpakResource *> resources;
if (source->m_pool) {
- const auto a = !filter.search.isEmpty() ? source->m_pool->search(filter.search)
+ const auto a = !filter.search.isEmpty() ? source->m_pool->search(filter.search).toList()
#if ASQ_CHECK_VERSION(0, 15, 6)
: filter.category ? AppStreamUtils::componentsByCategories(source->m_pool, filter.category, AppStream::Bundle::KindFlatpak)
#endif
- : source->m_pool->components();
+ : source->m_pool->components().toList();
resources = kTransform<QList<FlatpakResource *>>(a, [this, &source](const auto &comp) {
return resourceForComponent(comp, source);
});
diff --git a/libdiscover/backends/FlatpakBackend/FlatpakBackend.h b/libdiscover/backends/FlatpakBackend/FlatpakBackend.h
index 66188095a..878965bfc 100644
--- a/libdiscover/backends/FlatpakBackend/FlatpakBackend.h
+++ b/libdiscover/backends/FlatpakBackend/FlatpakBackend.h
@@ -14,7 +14,7 @@
#include <QVariantList>
#include <resources/AbstractResourcesBackend.h>
-#include <AppStreamQt/component.h>
+#include <AppStreamQt5/component.h>
#include "flatpak-helper.h"
diff --git a/libdiscover/backends/FlatpakBackend/FlatpakResource.cpp b/libdiscover/backends/FlatpakBackend/FlatpakResource.cpp
index 7ed905ead..1af8c9e3f 100644
--- a/libdiscover/backends/FlatpakBackend/FlatpakResource.cpp
+++ b/libdiscover/backends/FlatpakBackend/FlatpakResource.cpp
@@ -13,9 +13,11 @@
#include <Transaction/AddonList.h>
-#include <AppStreamQt/icon.h>
-#include <AppStreamQt/screenshot.h>
-#include <AppStreamQt/utils.h>
+#include <AppStreamQt5/developer.h>
+#include <AppStreamQt5/icon.h>
+#include <AppStreamQt5/screenshot.h>
+#include <AppStreamQt5/utils.h>
+#include <AppStreamQt5/version.h>
#include <appstream/AppStreamUtils.h>
#include <KConfigGroup>
@@ -24,7 +26,7 @@
#include <KIO/ApplicationLauncherJob>
#include <KLocalizedString>
-#include <AppStreamQt/release.h>
+#include <AppStreamQt5/release.h>
#include <QDebug>
#include <QDesktopServices>
#include <QDir>
@@ -113,7 +115,11 @@ QList<PackageState> FlatpakResource::addonsInformation()
QString FlatpakResource::availableVersion() const
{
if (m_availableVersion.isEmpty()) {
+#if ASQ_CHECK_VERSION(1, 0, 0)
+ const auto releases = m_appdata.releasesPlain().entries();
+#else
const auto releases = m_appdata.releases();
+#endif
if (!releases.isEmpty()) {
auto latestVersion = releases.constFirst().version();
for (const auto &release : releases) {
@@ -649,8 +655,13 @@ QUrl FlatpakResource::url() const
QDate FlatpakResource::releaseDate() const
{
- if (!m_appdata.releases().isEmpty()) {
- auto release = m_appdata.releases().constFirst();
+#if ASQ_CHECK_VERSION(1, 0, 0)
+ if (!m_appdata.releasesPlain().isEmpty()) {
+ auto release = m_appdata.releasesPlain().indexSafe(0).value();
+#else
+ if (const auto releases = m_appdata.releases(); !releases.isEmpty()) {
+ auto release = releases.constFirst();
+#endif
return release.timestamp().date();
}
@@ -673,7 +684,7 @@ QString FlatpakResource::sourceIcon() const
QString FlatpakResource::author() const
{
- QString name = m_appdata.developerName();
+ QString name = m_appdata.developer().name();
if (name.isEmpty()) {
name = m_appdata.projectGroup();
@@ -711,8 +722,13 @@ QString FlatpakResource::versionString()
if (ref) {
version = flatpak_installed_ref_get_appdata_version(ref);
}
+#if ASQ_CHECK_VERSION(1, 0, 0)
+ } else if (!m_appdata.releasesPlain().isEmpty()) {
+ const auto release = m_appdata.releasesPlain().indexSafe(0).value();
+#else
} else if (!m_appdata.releases().isEmpty()) {
- auto release = m_appdata.releases().constFirst();
+ const auto release = m_appdata.releases().constFirst();
+#endif
version = release.version();
} else {
version = m_id.branch;
diff --git a/libdiscover/backends/FlatpakBackend/FlatpakResource.h b/libdiscover/backends/FlatpakBackend/FlatpakResource.h
index 06e1b030a..648b6a5a7 100644
--- a/libdiscover/backends/FlatpakBackend/FlatpakResource.h
+++ b/libdiscover/backends/FlatpakBackend/FlatpakResource.h
@@ -12,7 +12,7 @@
#include "FlatpakPermission.h"
#include "flatpak-helper.h"
-#include <AppStreamQt/component.h>
+#include <AppStreamQt5/component.h>
#include <QAbstractItemModel>
#include <QPixmap>
diff --git a/libdiscover/backends/PackageKitBackend/AppPackageKitResource.cpp b/libdiscover/backends/PackageKitBackend/AppPackageKitResource.cpp
index 510266dfd..740127879 100644
--- a/libdiscover/backends/PackageKitBackend/AppPackageKitResource.cpp
+++ b/libdiscover/backends/PackageKitBackend/AppPackageKitResource.cpp
@@ -6,10 +6,12 @@
#include "AppPackageKitResource.h"
#include "utils.h"
-#include <AppStreamQt/icon.h>
-#include <AppStreamQt/image.h>
-#include <AppStreamQt/release.h>
-#include <AppStreamQt/screenshot.h>
+#include <AppStreamQt5/developer.h>
+#include <AppStreamQt5/icon.h>
+#include <AppStreamQt5/image.h>
+#include <AppStreamQt5/release.h>
+#include <AppStreamQt5/screenshot.h>
+#include <AppStreamQt5/version.h>
#include <KLocalizedString>
#include <KService>
#include <PackageKit/Daemon>
@@ -236,8 +238,13 @@ QString AppPackageKitResource::versionString()
QDate AppPackageKitResource::releaseDate() const
{
+#if ASQ_CHECK_VERSION(1, 0, 0)
+ if (!m_appdata.releasesPlain().isEmpty()) {
+ const auto release = m_appdata.releasesPlain().indexSafe(0).value();
+#else
if (!m_appdata.releases().isEmpty()) {
- auto release = m_appdata.releases().constFirst();
+ const auto release = m_appdata.releases().constFirst();
+#endif
return release.timestamp().date();
}
@@ -246,7 +253,7 @@ QDate AppPackageKitResource::releaseDate() const
QString AppPackageKitResource::author() const
{
- QString name = m_appdata.developerName();
+ QString name = m_appdata.developer().name();
if (name.isEmpty()) {
name = m_appdata.projectGroup();
diff --git a/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp b/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp
index 6902318a3..f713b9036 100644
--- a/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp
+++ b/libdiscover/backends/PackageKitBackend/PackageKitBackend.cpp
@@ -13,9 +13,10 @@
#include "PKTransaction.h"
#include "PackageKitSourcesBackend.h"
#include "PackageKitUpdater.h"
-#include <AppStreamQt/release.h>
-#include <AppStreamQt/utils.h>
-#include <AppStreamQt/version.h>
+#include <AppStreamQt5/release.h>
+#include <AppStreamQt5/systeminfo.h>
+#include <AppStreamQt5/utils.h>
+#include <AppStreamQt5/version.h>
#include <appstream/AppStreamIntegration.h>
#include <appstream/AppStreamUtils.h>
#include <appstream/OdrsReviewsBackend.h>
@@ -309,12 +310,16 @@ void PackageKitBackend::reloadPackageList()
}
acquireFetching(false);
- const QList<AppStream::Component> distroComponents = m_appdata->componentsById(AppStream::Utils::currentDistroComponentId());
+ const auto distroComponents = m_appdata->componentsById(AppStream::SystemInfo::currentDistroComponentId());
if (distroComponents.isEmpty()) {
- qWarning() << "no component found for" << AppStream::Utils::currentDistroComponentId();
+ qWarning() << "no component found for" << AppStream::SystemInfo::currentDistroComponentId();
}
- for (const AppStream::Component &dc : distroComponents) {
+ for (const auto list = distroComponents.toList(); const AppStream::Component &dc : list) {
+#if ASQ_CHECK_VERSION(1, 0, 0)
+ const auto releases = dc.releasesPlain().entries();
+#else
const auto releases = dc.releases();
+#endif
for (const auto &r : releases) {
int cmp = AppStream::Utils::vercmpSimple(r.version(), AppStreamIntegration::global()->osRelease()->versionId());
if (cmp == 0) {
@@ -552,7 +557,7 @@ QList<AppStream::Component> PackageKitBackend::componentsById(const QString &id)
if (comps.isEmpty()) {
comps = m_appdata->componentsByProvided(AppStream::Provided::KindId, id);
}
- return comps;
+ return comps.toList();
}
static const auto needsResolveFilter = [](AbstractResource *res) {
@@ -698,13 +703,15 @@ ResultsStream *PackageKitBackend::search(const AbstractResourcesBackend::Filters
if (!stream) {
return;
}
- const auto components = !filter.search.isEmpty() ? m_appdata->search(filter.search)
-#if ASQ_CHECK_VERSION(0, 15, 6)
- : filter.category ? AppStreamUtils::componentsByCategories(m_appdata.get(),
- filter.category,
- AppStream::Bundle::KindUnknown)
-#endif
- : m_appdata->components();
+ QList<AppStream::Component> components;
+ if (!filter.search.isEmpty()) {
+ components = m_appdata->search(filter.search).toList();
+ } else if (filter.category) {
+ components = AppStreamUtils::componentsByCategories(m_appdata.get(), filter.category, AppStream::Bundle::KindUnknown);
+ } else {
+ components = m_appdata->components().toList();
+ }
+
const QSet<QString> ids = kTransform<QSet<QString>>(components, [](const AppStream::Component &comp) {
return comp.id();
});
diff --git a/libdiscover/backends/PackageKitBackend/PackageKitBackend.h b/libdiscover/backends/PackageKitBackend/PackageKitBackend.h
index d9a5fd824..93899450b 100644
--- a/libdiscover/backends/PackageKitBackend/PackageKitBackend.h
+++ b/libdiscover/backends/PackageKitBackend/PackageKitBackend.h
@@ -7,7 +7,7 @@
#pragma once
#include "PackageKitResource.h"
-#include <AppStreamQt/pool.h>
+#include <AppStreamQt5/pool.h>
#include <PackageKit/Transaction>
#include <QFile>
#include <QPointer>
diff --git a/libdiscover/backends/PackageKitBackend/PackageKitResource.cpp b/libdiscover/backends/PackageKitBackend/PackageKitResource.cpp
index 8bdaec395..c7e2c0077 100644
--- a/libdiscover/backends/PackageKitBackend/PackageKitResource.cpp
+++ b/libdiscover/backends/PackageKitBackend/PackageKitResource.cpp
@@ -10,7 +10,7 @@
#include "PackageKitMessages.h"
#include "appstream/AppStreamUtils.h"
#include "config-paths.h"
-#include <AppStreamQt/spdx.h>
+#include <AppStreamQt5/spdx.h>
#include <KIO/ApplicationLauncherJob>
#include <KLocalizedString>
#include <KService>
diff --git a/libdiscover/backends/RpmOstreeBackend/RpmOstreeBackend.cpp b/libdiscover/backends/RpmOstreeBackend/RpmOstreeBackend.cpp
index 6e1528be4..eb06b6510 100644
--- a/libdiscover/backends/RpmOstreeBackend/RpmOstreeBackend.cpp
+++ b/libdiscover/backends/RpmOstreeBackend/RpmOstreeBackend.cpp
@@ -10,8 +10,8 @@
#include "Transaction/TransactionModel.h"
-#include <AppStreamQt/release.h>
-#include <AppStreamQt/utils.h>
+#include <AppStreamQt5/release.h>
+#include <AppStreamQt5/utils.h>
#include <Category/Category.h>
#include <KLocalizedString>
#include <appstream/AppStreamIntegration.h>
@@ -316,7 +316,7 @@ void RpmOstreeBackend::lookForNextMajorVersion()
}
// Look at releases to see if we have a new major version available.
- const QList<AppStream::Component> distroComponents = m_appdata->componentsById(distroId);
+ const auto distroComponents = m_appdata->componentsById(distroId);
if (distroComponents.isEmpty()) {
qWarning() << "rpm-ostree-backend: No component found for" << distroId;
return;
@@ -324,8 +324,12 @@ void RpmOstreeBackend::lookForNextMajorVersion()
QString currentVersion = AppStreamIntegration::global()->osRelease()->versionId();
QString nextVersion;
- for (const AppStream::Component &dc : distroComponents) {
+ for (const auto list = distroComponents.toList(); const AppStream::Component &dc : list) {
+#if ASQ_CHECK_VERSION(1, 0, 0)
+ const auto releases = dc.releasesPlain().entries();
+#else
const auto releases = dc.releases();
+#endif
for (const auto &r : releases) {
// Only look at stable releases unless development mode is enabled
if ((r.kind() != AppStream::Release::KindStable) && !m_developmentEnabled) {
diff --git a/libdiscover/backends/RpmOstreeBackend/RpmOstreeBackend.h b/libdiscover/backends/RpmOstreeBackend/RpmOstreeBackend.h
index 8ceed1af1..ea0a07c6f 100644
--- a/libdiscover/backends/RpmOstreeBackend/RpmOstreeBackend.h
+++ b/libdiscover/backends/RpmOstreeBackend/RpmOstreeBackend.h
@@ -14,7 +14,7 @@
#include <resources/AbstractResourcesBackend.h>
#include <resources/StandardBackendUpdater.h>
-#include <AppStreamQt/pool.h>
+#include <AppStreamQt5/pool.h>
#include <QTimer>
class DiscoverAction;
@@ -1,193 +0,0 @@
From dc67ef22f47b9e8b46d668b811982f33600f1aae Mon Sep 17 00:00:00 2001
From: Aleix Pol <aleixpol@kde.org>
Date: Wed, 10 Nov 2021 01:55:56 +0100
Subject: [PATCH] flatpak: Do not include the resource type in the
FlatpakResource::Id
Otherwise we couldn't make sure that idForInstalledRef() was coherent
with FlatpakResource::uniqueId().
In the end it's not a problem, it's not like we can have an app and
runtime with the same name.
(cherry picked from commit 614450b3ee9175fb16f068af505fb59ed27e6697)
---
.../FlatpakBackend/FlatpakBackend.cpp | 25 ++++++++-----------
.../FlatpakBackend/FlatpakResource.cpp | 12 ++++-----
.../backends/FlatpakBackend/FlatpakResource.h | 7 +++---
3 files changed, 19 insertions(+), 25 deletions(-)
diff --git a/libdiscover/backends/FlatpakBackend/FlatpakBackend.cpp b/libdiscover/backends/FlatpakBackend/FlatpakBackend.cpp
index 012817ef9..6727b0227 100644
--- a/libdiscover/backends/FlatpakBackend/FlatpakBackend.cpp
+++ b/libdiscover/backends/FlatpakBackend/FlatpakBackend.cpp
@@ -149,8 +149,7 @@ QDebug operator<<(QDebug debug, const FlatpakResource::Id &id)
QDebugStateSaver saver(debug);
debug.nospace() << "FlatpakResource::Id(";
debug.nospace() << "name:" << id.id << ',';
- debug.nospace() << "branch:" << id.branch << ',';
- debug.nospace() << "type:" << id.type;
+ debug.nospace() << "branch:" << id.branch;
debug.nospace() << ')';
return debug;
}
@@ -162,7 +161,6 @@ static FlatpakResource::Id idForRefString(const QStringView &ref)
auto parts = ref.split('/');
// app/app.getspace.Space/x86_64/stable
return {
- parts[0] == QLatin1String("app") ? FlatpakResource::DesktopApp : FlatpakResource::Runtime,
parts[1].toString(),
parts[3].toString(),
parts[2].toString(),
@@ -178,7 +176,7 @@ static FlatpakResource::Id idForInstalledRef(FlatpakInstalledRef *ref, const QSt
const QString arch = QString::fromUtf8(flatpak_ref_get_arch(FLATPAK_REF(ref)));
const QString branch = QString::fromUtf8(flatpak_ref_get_branch(FLATPAK_REF(ref)));
- return {appType, appId, branch, arch};
+ return {appId, branch, arch};
}
FlatpakBackend::FlatpakBackend(QObject *parent)
@@ -350,25 +348,20 @@ QString refToBundleId(FlatpakRef *ref)
FlatpakResource *FlatpakBackend::getAppForInstalledRef(FlatpakInstallation *installation, FlatpakInstalledRef *ref) const
{
- auto id = idForInstalledRef(ref, {});
- for (const auto &source : m_flatpakSources) {
- auto ret = source->m_resources.value(id);
+ const QString origin = QString::fromUtf8(flatpak_installed_ref_get_origin(ref));
+ auto source = findSource(installation, origin);
+ if (source) {
+ auto ret = source->m_resources.value(idForInstalledRef(ref, {}));
if (ret) {
return ret;
}
- }
- auto id2 = idForInstalledRef(ref, QStringLiteral(".desktop"));
- for (const auto &source : m_flatpakSources) {
- auto ret = source->m_resources.value(id2);
+ ret = source->m_resources.value(idForInstalledRef(ref, QStringLiteral(".desktop")));
if (ret) {
return ret;
}
}
const QLatin1String name(flatpak_ref_get_name(FLATPAK_REF(ref)));
-
- const QString origin = QString::fromUtf8(flatpak_installed_ref_get_origin(ref));
- auto source = findSource(installation, origin);
const QString pathExports = FlatpakResource::installationPath(installation) + QLatin1String("/exports/");
const QString pathApps = pathExports + QLatin1String("share/applications/");
AppStream::Component cid;
@@ -413,6 +406,8 @@ FlatpakResource *FlatpakBackend::getAppForInstalledRef(FlatpakInstallation *inst
resource->updateFromRef(FLATPAK_REF(ref));
resource->setState(AbstractResource::Installed);
source->addResource(resource);
+
+ Q_ASSERT(resource->uniqueId() == idForInstalledRef(ref, {}) || resource->uniqueId() == idForInstalledRef(ref, {".desktop"}));
return resource;
}
@@ -445,7 +440,7 @@ FlatpakResource *FlatpakBackend::getRuntimeForApp(FlatpakResource *resource) con
for (const auto &source : m_flatpakSources) {
for (auto it = source->m_resources.constBegin(), itEnd = source->m_resources.constEnd(); it != itEnd; ++it) {
const auto &id = it.key();
- if (id.type == FlatpakResource::Runtime && id.id == runtimeInfo.at(0) && id.branch == runtimeInfo.at(2)) {
+ if ((*it)->resourceType() == FlatpakResource::Runtime && id.id == runtimeInfo.at(0) && id.branch == runtimeInfo.at(2)) {
runtime = *it;
break;
}
diff --git a/libdiscover/backends/FlatpakBackend/FlatpakResource.cpp b/libdiscover/backends/FlatpakBackend/FlatpakResource.cpp
index 8f6b25575..7419dcee7 100644
--- a/libdiscover/backends/FlatpakBackend/FlatpakResource.cpp
+++ b/libdiscover/backends/FlatpakBackend/FlatpakResource.cpp
@@ -41,7 +41,7 @@ static QString iconCachePath(const AppStream::Icon &icon)
FlatpakResource::FlatpakResource(const AppStream::Component &component, FlatpakInstallation *installation, FlatpakBackend *parent)
: AbstractResource(parent)
, m_appdata(component)
- , m_id({FlatpakResource::DesktopApp, component.id(), QString(), QString()})
+ , m_id({component.id(), QString(), QString()})
, m_downloadSize(0)
, m_installedSize(0)
, m_propertyStates({{DownloadSize, NotKnownYet}, {InstalledSize, NotKnownYet}, {RequiredRuntime, NotKnownYet}})
@@ -122,7 +122,7 @@ QString FlatpakResource::branch() const
bool FlatpakResource::canExecute() const
{
- return (m_id.type == DesktopApp && (m_state == AbstractResource::Installed || m_state == AbstractResource::Upgradeable));
+ return (m_type == DesktopApp && (m_state == AbstractResource::Installed || m_state == AbstractResource::Upgradeable));
}
void FlatpakResource::updateFromRef(FlatpakRef *ref)
@@ -241,7 +241,7 @@ int FlatpakResource::installedSize() const
AbstractResource::Type FlatpakResource::type() const
{
- switch (m_id.type) {
+ switch (m_type) {
case FlatpakResource::Runtime:
return Technical;
case FlatpakResource::Extension:
@@ -381,12 +381,12 @@ AbstractResource::State FlatpakResource::state()
FlatpakResource::ResourceType FlatpakResource::resourceType() const
{
- return m_id.type;
+ return m_type;
}
QString FlatpakResource::typeAsString() const
{
- switch (m_id.type) {
+ switch (m_type) {
case FlatpakResource::Runtime:
case FlatpakResource::Extension:
return QLatin1String("runtime");
@@ -528,7 +528,7 @@ void FlatpakResource::setState(AbstractResource::State state)
void FlatpakResource::setType(FlatpakResource::ResourceType type)
{
- m_id.type = type;
+ m_type = type;
}
QString FlatpakResource::installationPath() const
diff --git a/libdiscover/backends/FlatpakBackend/FlatpakResource.h b/libdiscover/backends/FlatpakBackend/FlatpakResource.h
index 7cf0022d7..364857950 100644
--- a/libdiscover/backends/FlatpakBackend/FlatpakResource.h
+++ b/libdiscover/backends/FlatpakBackend/FlatpakResource.h
@@ -55,7 +55,6 @@ public:
Q_ENUM(FlatpakFileType)
struct Id {
- FlatpakResource::ResourceType type;
const QString id;
QString branch;
QString arch;
@@ -66,8 +65,7 @@ public:
bool operator==(const Id &other) const
{
return &other == this
- || (other.type == type //
- && other.id == id //
+ || (other.id == id //
&& other.branch == branch //
&& other.arch == arch //
);
@@ -183,11 +181,12 @@ private:
AbstractResource::State m_state;
FlatpakInstallation *const m_installation;
QString m_origin;
+ FlatpakResource::ResourceType m_type = DesktopApp;
};
inline uint qHash(const FlatpakResource::Id &key)
{
- return qHash(key.type) ^ qHash(key.id) ^ qHash(key.branch) ^ qHash(key.arch);
+ return qHash(key.id) ^ qHash(key.branch) ^ qHash(key.arch);
}
#endif // FLATPAKRESOURCE_H
--
GitLab
+1 -1
View File
@@ -48,7 +48,7 @@
<Dependency versionFrom="5.7.1">qt5-declarative-devel</Dependency>
</BuildDependencies>
<Patches>
<Patch level="1">appstream-1.0.patch</Patch>
<!-- <Patch level="1">appstream-1.0.patch</Patch> -->
</Patches>
</Source>