From 8512433ebe7803eb54828fb494c8e47d028dc83a Mon Sep 17 00:00:00 2001 From: Mario Limonciello Date: Sat, 27 Jun 2026 19:03:00 -0500 Subject: [PATCH] [PATCH] Fix compilation against fwupd 2.0 API Gbp-Pq: Name fwupd-2.0-compatibility-fixes --- libdiscover/backends/FwupdBackend/FwupdBackend.cpp | 7 ++++--- libdiscover/backends/FwupdBackend/FwupdResource.cpp | 7 ++++--- libdiscover/backends/FwupdBackend/FwupdResource.h | 6 ------ libdiscover/backends/FwupdBackend/FwupdSourcesBackend.cpp | 6 +++--- libdiscover/backends/FwupdBackend/FwupdTransaction.cpp | 6 +----- 5 files changed, 12 insertions(+), 20 deletions(-) diff --git a/libdiscover/backends/FwupdBackend/FwupdBackend.cpp b/libdiscover/backends/FwupdBackend/FwupdBackend.cpp index 408e02d..2e38c2b 100644 --- a/libdiscover/backends/FwupdBackend/FwupdBackend.cpp +++ b/libdiscover/backends/FwupdBackend/FwupdBackend.cpp @@ -198,7 +198,8 @@ FwupdResource *FwupdBackend::createApp(FwupdDevice *device) return nullptr; } - const QUrl update_uri(QString::fromUtf8(fwupd_release_get_uri(release))); + GPtrArray *locations = fwupd_release_get_locations(release); + const QUrl update_uri(locations && locations->len > 0 ? QString::fromUtf8((const gchar *)g_ptr_array_index(locations, 0)) : QString()); if (!update_uri.isValid()) { qWarning() << "Fwupd Error: No Update URI available for" << app->name() << "[" << app->id() << "]"; return nullptr; @@ -323,13 +324,13 @@ void FwupdBackend::setRemotes(GPtrArray *remotes) { for (uint i = 0; remotes && i < remotes->len; i++) { FwupdRemote *remote = (FwupdRemote *)g_ptr_array_index(remotes, i); - if (!fwupd_remote_get_enabled(remote)) + if (!fwupd_remote_has_flag(remote, FWUPD_REMOTE_FLAG_ENABLED)) continue; if (fwupd_remote_get_kind(remote) == FWUPD_REMOTE_KIND_LOCAL) continue; - fwupd_client_refresh_remote_async(client, remote, m_cancellable, fwupd_client_refresh_remote_cb, this); + fwupd_client_refresh_remote_async(client, remote, FWUPD_CLIENT_DOWNLOAD_FLAG_NONE, m_cancellable, fwupd_client_refresh_remote_cb, this); } } diff --git a/libdiscover/backends/FwupdBackend/FwupdResource.cpp b/libdiscover/backends/FwupdBackend/FwupdResource.cpp index c7fffec..3034812 100644 --- a/libdiscover/backends/FwupdBackend/FwupdResource.cpp +++ b/libdiscover/backends/FwupdBackend/FwupdResource.cpp @@ -161,13 +161,15 @@ void FwupdResource::setReleaseDetails(FwupdRelease *release) m_description = QString::fromUtf8((fwupd_release_get_description(release))); m_homepage = QUrl(QString::fromUtf8(fwupd_release_get_homepage(release))); m_license = QString::fromUtf8(fwupd_release_get_license(release)); - m_updateURI = QString::fromUtf8(fwupd_release_get_uri(release)); + GPtrArray *locations = fwupd_release_get_locations(release); + if (locations != nullptr && locations->len > 0) { + m_updateURI = QString::fromUtf8((const gchar *)g_ptr_array_index(locations, 0)); + } } void FwupdResource::setDeviceDetails(FwupdDevice *dev) { m_isLiveUpdatable = fwupd_device_has_flag(dev, FWUPD_DEVICE_FLAG_UPDATABLE); - m_isOnlyOffline = fwupd_device_has_flag(dev, FWUPD_DEVICE_FLAG_ONLY_OFFLINE); m_needsReboot = fwupd_device_has_flag(dev, FWUPD_DEVICE_FLAG_NEEDS_REBOOT); if (fwupd_device_get_name(dev)) { @@ -182,7 +184,6 @@ void FwupdResource::setDeviceDetails(FwupdDevice *dev) m_vendor = QString::fromUtf8(fwupd_device_get_vendor(dev)); m_releaseDate = QDateTime::fromSecsSinceEpoch(fwupd_device_get_created(dev)).date(); m_availableVersion = QString::fromUtf8(fwupd_device_get_version(dev)); - m_description = QString::fromUtf8((fwupd_device_get_description(dev))); if (fwupd_device_get_icons(dev)->len >= 1) m_iconName = QString::fromUtf8((const gchar *)g_ptr_array_index(fwupd_device_get_icons(dev), 0)); // Check whether given icon exists or not! diff --git a/libdiscover/backends/FwupdBackend/FwupdResource.h b/libdiscover/backends/FwupdBackend/FwupdResource.h index db25328..98dde62 100644 --- a/libdiscover/backends/FwupdBackend/FwupdResource.h +++ b/libdiscover/backends/FwupdBackend/FwupdResource.h @@ -102,11 +102,6 @@ public: return m_isDeviceLocked; } - bool isOnlyOffline() const - { - return m_isOnlyOffline; - } - bool isLiveUpdatable() const { return m_isLiveUpdatable; @@ -146,7 +141,6 @@ private: QString m_updateURI; bool m_isDeviceLocked = false; // True if device is locked! - bool m_isOnlyOffline = false; // True if only offline updates bool m_isLiveUpdatable = false; // True if device is live updatable bool m_needsReboot = false; // True if device needs Reboot QString m_origin; diff --git a/libdiscover/backends/FwupdBackend/FwupdSourcesBackend.cpp b/libdiscover/backends/FwupdBackend/FwupdSourcesBackend.cpp index 449c4bc..a9b4615 100644 --- a/libdiscover/backends/FwupdBackend/FwupdSourcesBackend.cpp +++ b/libdiscover/backends/FwupdBackend/FwupdSourcesBackend.cpp @@ -34,7 +34,7 @@ public: case Qt::CheckStateRole: { if (value == Qt::Checked) { m_backend->m_currentItem = item; - if (fwupd_remote_get_approval_required(remote)) { + if (fwupd_remote_has_flag(remote, FWUPD_REMOTE_FLAG_APPROVAL_REQUIRED)) { QString eulaText = i18n("The remote %1 require that you accept their license:\n %2", QString::fromUtf8(fwupd_remote_get_title(remote)), QString::fromUtf8(fwupd_remote_get_agreement(remote))); @@ -88,7 +88,7 @@ void FwupdSourcesBackend::populateSources() it->setData(id, AbstractSourcesBackend::IdRole); it->setData(QVariant(QString::fromUtf8(fwupd_remote_get_title(remote))), Qt::ToolTipRole); it->setCheckable(true); - it->setCheckState(fwupd_remote_get_enabled(remote) ? Qt::Checked : Qt::Unchecked); + it->setCheckState(fwupd_remote_has_flag(remote, FWUPD_REMOTE_FLAG_ENABLED) ? Qt::Checked : Qt::Unchecked); m_sources->appendRow(it); } } @@ -121,7 +121,7 @@ void FwupdSourcesBackend::cancel() { FwupdRemote *remote = fwupd_client_get_remote_by_id(backend->client, m_currentItem->data(AbstractSourcesBackend::IdRole).toString().toUtf8().constData(), nullptr, nullptr); - m_currentItem->setCheckState(fwupd_remote_get_enabled(remote) ? Qt::Checked : Qt::Unchecked); + m_currentItem->setCheckState(fwupd_remote_has_flag(remote, FWUPD_REMOTE_FLAG_ENABLED) ? Qt::Checked : Qt::Unchecked); m_currentItem = nullptr; } diff --git a/libdiscover/backends/FwupdBackend/FwupdTransaction.cpp b/libdiscover/backends/FwupdBackend/FwupdTransaction.cpp index cd7d6cb..9875bdd 100644 --- a/libdiscover/backends/FwupdBackend/FwupdTransaction.cpp +++ b/libdiscover/backends/FwupdBackend/FwupdTransaction.cpp @@ -82,10 +82,6 @@ void FwupdTransaction::fwupdInstall(const QString &file) FwupdInstallFlags install_flags = FWUPD_INSTALL_FLAG_NONE; g_autoptr(GError) error = nullptr; - /* only offline supported */ - if (m_app->isOnlyOffline()) - install_flags = static_cast(install_flags | FWUPD_INSTALL_FLAG_OFFLINE); - if (!fwupd_client_install(m_backend->client, m_app->deviceId().toUtf8().constData(), file.toUtf8().constData(), install_flags, nullptr, &error)) { m_backend->handleError(error); setStatus(DoneWithErrorStatus); @@ -110,7 +106,7 @@ void FwupdTransaction::cancel() void FwupdTransaction::finishTransaction() { - AbstractResource::State newState; + AbstractResource::State newState = AbstractResource::None; switch (role()) { case InstallRole: case ChangeAddonsRole: -- 2.30.2