On 6/27/26 8:04 AM, Adrian Bunk wrote:
On Sat, Jun 27, 2026 at 07:49:12AM -0500, Mario Limonciello wrote:
...
So unfortunately I think this does mean a need for a rebuild and some
testing of of gnome-software, plasma-discover, and gnome-firmware to do the
upgrade.
They likely need fixes for building:
https://salsa.debian.org/qt-kde-team/kde/plasma-discover/-/commit/afca7536787af4d0f58d3aa22a9962c2265b58d5
https://salsa.debian.org/gnome-team/gnome-software/-/commit/bdfe5c691a1c3302cf61da0781b290c67f88ba6b
https://salsa.debian.org/gnome-team/gnome-firmware/-/commit/851182b25b8bd4f79d849337fa4b8cf11b47178d
cu
Adrian
Thanks Adrian for finding those.
I've got gnome-firmware building successfully, I'll attach the debdiff.
will follow up with the others later when I get them working.
diff -Nru gnome-firmware-43.2/debian/changelog
gnome-firmware-43.2/debian/changelog
--- gnome-firmware-43.2/debian/changelog 2023-02-15 16:52:29.000000000
-0600
+++ gnome-firmware-43.2/debian/changelog 2026-06-27 11:06:53.000000000
-0500
@@ -1,3 +1,11 @@
+gnome-firmware (43.2-1+deb12u1) bookworm; urgency=medium
+
+ * Backport patches from upstream for fwupd 2.x compat
+ * d/control:
+ - b/d on newer libfwupd
+
+ -- Mario Limonciello <[email protected]> Sat, 27 Jun 2026 11:06:53 -0500
+
gnome-firmware (43.2-1) unstable; urgency=medium
* New upstream release
diff -Nru gnome-firmware-43.2/debian/control gnome-firmware-43.2/debian/control
--- gnome-firmware-43.2/debian/control 2023-02-15 16:52:29.000000000 -0600
+++ gnome-firmware-43.2/debian/control 2026-06-27 11:06:53.000000000 -0500
@@ -15,7 +15,7 @@
dh-sequence-gnome,
help2man,
libadwaita-1-dev (>= 1.0.0),
- libfwupd-dev (>= 1.7.5),
+ libfwupd-dev (>= 2.0.20),
libglib2.0-dev,
libgtk-4-dev (>= 4.6),
libxmlb-dev (>= 0.1.7),
diff -Nru gnome-firmware-43.2/debian/control.in
gnome-firmware-43.2/debian/control.in
--- gnome-firmware-43.2/debian/control.in 2023-02-15 16:52:29.000000000
-0600
+++ gnome-firmware-43.2/debian/control.in 2026-06-27 11:06:53.000000000
-0500
@@ -11,7 +11,7 @@
dh-sequence-gnome,
help2man,
libadwaita-1-dev (>= 1.0.0),
- libfwupd-dev (>= 1.7.5),
+ libfwupd-dev (>= 2.0.20),
libglib2.0-dev,
libgtk-4-dev (>= 4.6),
libxmlb-dev (>= 0.1.7),
diff -Nru gnome-firmware-43.2/debian/patches/allow-fwupd-main-branch.patch
gnome-firmware-43.2/debian/patches/allow-fwupd-main-branch.patch
--- gnome-firmware-43.2/debian/patches/allow-fwupd-main-branch.patch
1969-12-31 18:00:00.000000000 -0600
+++ gnome-firmware-43.2/debian/patches/allow-fwupd-main-branch.patch
2026-06-27 11:04:26.000000000 -0500
@@ -0,0 +1,167 @@
+Description: Allow compiling with fwupd from the main branch
+ Many fwupd 2.0 API functions were removed or renamed, causing
+ compilation errors. Add #if FWUPD_CHECK_VERSION(2,0,0) conditional
+ compilation to support both fwupd 1.x and fwupd 2.x.
+Author: Richard Hughes <[email protected]>
+Origin:
https://salsa.debian.org/gnome-team/gnome-firmware/-/commit/851182b25b8bd4f79d849337fa4b8cf11b47178d
+Last-Update: 2026-06-27
+
+---
+Index: gnome-firmware-43.2/src/gfu-common.c
+===================================================================
+--- gnome-firmware-43.2.orig/src/gfu-common.c
++++ gnome-firmware-43.2/src/gfu-common.c
+@@ -362,26 +362,14 @@ gfu_common_device_flags_to_string(guint6
+ /* skip */
+ return NULL;
+ }
+- if (device_flag == FWUPD_DEVICE_FLAG_NO_AUTO_INSTANCE_IDS) {
+- /* skip */
+- return NULL;
+- }
+ if (device_flag == FWUPD_DEVICE_FLAG_NEEDS_ACTIVATION) {
+ /* TRANSLATORS: Device update needs to be separately activated
*/
+ return _("Device update needs activation");
+ }
+- if (device_flag == FWUPD_DEVICE_FLAG_ENSURE_SEMVER) {
+- /* skip */
+- return NULL;
+- }
+ if (device_flag == FWUPD_DEVICE_FLAG_HISTORICAL) {
+ /* skip */
+ return NULL;
+ }
+- if (device_flag == FWUPD_DEVICE_FLAG_ONLY_SUPPORTED) {
+- /* skip */
+- return NULL;
+- }
+ if (device_flag == FWUPD_DEVICE_FLAG_WILL_DISAPPEAR) {
+ /* TRANSLATORS: Device will not return after update completes */
+ return _("Device will not re-appear after update completes");
+@@ -523,12 +511,8 @@ gfu_common_device_icon_from_flag(FwupdDe
+ return "dialog-error-symbolic";
+ if (device_flag == FWUPD_DEVICE_FLAG_ANOTHER_WRITE_REQUIRED)
+ return "media-floppy-symbolic";
+- if (device_flag == FWUPD_DEVICE_FLAG_NO_AUTO_INSTANCE_IDS)
+- return "dialog-error-symbolic";
+ if (device_flag == FWUPD_DEVICE_FLAG_NEEDS_ACTIVATION)
+ return "emblem-important-symbolic";
+- if (device_flag == FWUPD_DEVICE_FLAG_ENSURE_SEMVER)
+- return "emblem-important-symbolic";
+ if (device_flag == FWUPD_DEVICE_FLAG_WILL_DISAPPEAR)
+ return "emblem-important-symbolic";
+ if (device_flag == FWUPD_DEVICE_FLAG_CAN_VERIFY)
+Index: gnome-firmware-43.2/src/gfu-main.c
+===================================================================
+--- gnome-firmware-43.2.orig/src/gfu-main.c
++++ gnome-firmware-43.2/src/gfu-main.c
+@@ -549,11 +549,25 @@ gfu_main_update_remotes_cb(GObject *sour
+ }
+ for (guint i = 0; i < remotes->len; i++) {
+ FwupdRemote *remote = g_ptr_array_index(remotes, i);
++#if FWUPD_CHECK_VERSION(2, 0, 0)
++ /* if another repository is turned on providing metadata */
+ g_debug("%s is %s",
+ fwupd_remote_get_id(remote),
+- fwupd_remote_get_enabled(remote) ? "enabled" :
"disabled");
+-
++ fwupd_remote_has_flag(remote,
FWUPD_REMOTE_FLAG_ENABLED) ? "enabled"
++ :
"disabled");
++ if (fwupd_remote_has_flag(remote, FWUPD_REMOTE_FLAG_ENABLED)) {
++ if (fwupd_remote_get_kind(remote) ==
FWUPD_REMOTE_KIND_DOWNLOAD)
++ enabled_any_download_remote = TRUE;
++ /* lvfs is present and disabled */
++ } else {
++ if (g_strcmp0(fwupd_remote_get_id(remote), "lvfs") == 0)
++ disabled_lvfs_remote = TRUE;
++ }
++#else
+ /* if another repository is turned on providing metadata */
++ g_debug("%s is %s",
++ fwupd_remote_get_id(remote),
++ fwupd_remote_get_enabled(remote) ? "enabled" :
"disabled");
+ if (fwupd_remote_get_enabled(remote)) {
+ if (fwupd_remote_get_kind(remote) ==
FWUPD_REMOTE_KIND_DOWNLOAD)
+ enabled_any_download_remote = TRUE;
+@@ -563,6 +577,7 @@ gfu_main_update_remotes_cb(GObject *sour
+ if (g_strcmp0(fwupd_remote_get_id(remote), "lvfs") == 0)
+ disabled_lvfs_remote = TRUE;
+ }
++#endif
+ }
+
+ w = GTK_WIDGET(gtk_builder_get_object(self->builder,
"infobar_enable_lvfs"));
+@@ -785,11 +800,20 @@ gfu_main_get_lvfs_remote_cb(GObject *sou
+ gfu_main_error_dialog(self, _("Failed to find LVFS"),
error->message);
+ return;
+ }
++#if FWUPD_CHECK_VERSION(2, 0, 0)
++ fwupd_client_refresh_remote_async(self->client,
++ remote,
++ FWUPD_CLIENT_DOWNLOAD_FLAG_NONE,
++ self->cancellable,
++ gfu_main_refresh_remote_cb,
++ self);
++#else
+ fwupd_client_refresh_remote_async(self->client,
+ remote,
+ self->cancellable,
+ gfu_main_refresh_remote_cb,
+ self);
++#endif
+ }
+
+ static void
+@@ -846,6 +870,19 @@ gfu_main_get_remotes_cb(GObject *source,
+ }
+ for (guint i = 0; i < remotes->len; i++) {
+ FwupdRemote *remote = g_ptr_array_index(remotes, i);
++#if FWUPD_CHECK_VERSION(2, 0, 0)
++ if (!fwupd_remote_has_flag(remote, FWUPD_REMOTE_FLAG_ENABLED))
++ continue;
++ if (fwupd_remote_get_kind(remote) != FWUPD_REMOTE_KIND_DOWNLOAD)
++ continue;
++ /* should this be a single async action? */
++ fwupd_client_refresh_remote_async(self->client,
++ remote,
++
FWUPD_CLIENT_DOWNLOAD_FLAG_NONE,
++ self->cancellable,
++ gfu_main_refresh_remote_cb,
++ self);
++#else
+ if (!fwupd_remote_get_enabled(remote))
+ continue;
+ if (fwupd_remote_get_kind(remote) != FWUPD_REMOTE_KIND_DOWNLOAD)
+@@ -856,6 +893,7 @@ gfu_main_get_remotes_cb(GObject *source,
+ self->cancellable,
+ gfu_main_refresh_remote_cb,
+ self);
++#endif
+ }
+ }
+
+@@ -1055,6 +1093,16 @@ static void
+ gfu_main_release_install(GfuMain *self)
+ {
+ /* begin installing, show loading animation */
++#if FWUPD_CHECK_VERSION(2, 0, 0)
++ fwupd_client_install_release_async(self->client,
++ self->device,
++ self->release,
++ self->flags |
FWUPD_INSTALL_FLAG_ALLOW_BRANCH_SWITCH,
++ FWUPD_CLIENT_DOWNLOAD_FLAG_NONE,
++ self->cancellable,
++ gfu_main_install_release_cb,
++ self);
++#else
+ fwupd_client_install_release2_async(self->client,
+ self->device,
+ self->release,
+@@ -1063,6 +1111,7 @@ gfu_main_release_install(GfuMain *self)
+ self->cancellable,
+ gfu_main_install_release_cb,
+ self);
++#endif
+ }
+
+ static GtkWidget *
diff -Nru
gnome-firmware-43.2/debian/patches/drop-device-flags-private-in-fwupd-2.0.0.patch
gnome-firmware-43.2/debian/patches/drop-device-flags-private-in-fwupd-2.0.0.patch
---
gnome-firmware-43.2/debian/patches/drop-device-flags-private-in-fwupd-2.0.0.patch
1969-12-31 18:00:00.000000000 -0600
+++
gnome-firmware-43.2/debian/patches/drop-device-flags-private-in-fwupd-2.0.0.patch
2026-06-27 11:06:53.000000000 -0500
@@ -0,0 +1,98 @@
+From de34a84f56280b28c5b9f45682f7640588f9948b Mon Sep 17 00:00:00 2001
+From: Mario Limonciello <[email protected]>
+Date: Thu, 12 Sep 2024 23:38:50 -0500
+Subject: [PATCH] drop device flags that were turned private in fwupd 2.0.0
+
+These aren't useful to a user anyway on older versions, so don't
+worry about showing them based on what version gnome-firmware
+is compiled against.
+
+---
+ src/gfu-common.c | 40 ---------------------------------------
+ 1 file changed, 40 deletions(-)
+
+--- a/src/gfu-common.c
++++ b/src/gfu-common.c
+@@ -302,10 +302,6 @@ gfu_common_device_flags_to_string(guint64 device_flag)
+ /* TRANSLATORS: Device is updatable in this or any other mode */
+ return _("Updatable");
+ }
+- if (device_flag == FWUPD_DEVICE_FLAG_ONLY_OFFLINE) {
+- /* TRANSLATORS: Update can only be done from offline mode */
+- return _("Update requires a reboot");
+- }
+ if (device_flag == FWUPD_DEVICE_FLAG_REQUIRE_AC) {
+ /* TRANSLATORS: Must be plugged in to an outlet */
+ return _("System requires external power source");
+@@ -338,14 +334,6 @@ gfu_common_device_flags_to_string(guint64 device_flag)
+ /* TRANSLATORS: User has been notified */
+ return _("User has been notified");
+ }
+- if (device_flag == FWUPD_DEVICE_FLAG_USE_RUNTIME_VERSION) {
+- /* skip */
+- return NULL;
+- }
+- if (device_flag == FWUPD_DEVICE_FLAG_INSTALL_PARENT_FIRST) {
+- /* TRANSLATORS: Install composite firmware on the parent before
the child */
+- return _("Install to parent device first");
+- }
+ if (device_flag == FWUPD_DEVICE_FLAG_IS_BOOTLOADER) {
+ /* TRANSLATORS: Is currently in bootloader mode */
+ return _("Is in bootloader mode");
+@@ -354,10 +342,6 @@ gfu_common_device_flags_to_string(guint64 device_flag)
+ /* TRANSLATORS: The hardware is waiting to be replugged */
+ return _("Hardware is waiting to be replugged");
+ }
+- if (device_flag == FWUPD_DEVICE_FLAG_IGNORE_VALIDATION) {
+- /* TRANSLATORS: Ignore validation safety checks when flashing
this device */
+- return _("Ignore validation safety checks");
+- }
+ if (device_flag == FWUPD_DEVICE_FLAG_ANOTHER_WRITE_REQUIRED) {
+ /* skip */
+ return NULL;
+@@ -398,10 +382,6 @@ gfu_common_device_flags_to_string(guint64 device_flag)
+ /* TRANSLATORS: Device does not jump directly to the newest */
+ return _("Device installs all intermediate releases");
+ }
+- if (device_flag == FWUPD_DEVICE_FLAG_SKIPS_RESTART) {
+- /* TRANSLATORS: Device does not restart and requires a manual
action */
+- return _("Device skips restart");
+- }
+ if (device_flag == FWUPD_DEVICE_FLAG_HAS_MULTIPLE_BRANCHES) {
+ /* TRANSLATORS: the stream can be provided by different vendors
*/
+ return _("Device supports switching to a different stream of
firmware");
+@@ -481,8 +461,6 @@ gfu_common_device_icon_from_flag(FwupdDeviceFlags
device_flag)
+ return "drive-harddisk-symbolic";
+ if (device_flag == FWUPD_DEVICE_FLAG_UPDATABLE)
+ return "software-update-available-symbolic";
+- if (device_flag == FWUPD_DEVICE_FLAG_ONLY_OFFLINE)
+- return "network-offline-symbolic";
+ if (device_flag == FWUPD_DEVICE_FLAG_REQUIRE_AC)
+ return "battery-symbolic";
+ if (device_flag == FWUPD_DEVICE_FLAG_LOCKED)
+@@ -499,16 +477,10 @@ gfu_common_device_icon_from_flag(FwupdDeviceFlags
device_flag)
+ return "task-due-symbolic";
+ if (device_flag == FWUPD_DEVICE_FLAG_NOTIFIED)
+ return "task-due-symbolic";
+- if (device_flag == FWUPD_DEVICE_FLAG_USE_RUNTIME_VERSION)
+- return "system-run-symbolic";
+- if (device_flag == FWUPD_DEVICE_FLAG_INSTALL_PARENT_FIRST)
+- return "system-software-install-symbolic";
+ if (device_flag == FWUPD_DEVICE_FLAG_IS_BOOTLOADER)
+ return "computer-symbolic";
+ if (device_flag == FWUPD_DEVICE_FLAG_WAIT_FOR_REPLUG)
+ return "battery-low-symbolic";
+- if (device_flag == FWUPD_DEVICE_FLAG_IGNORE_VALIDATION)
+- return "dialog-error-symbolic";
+ if (device_flag == FWUPD_DEVICE_FLAG_ANOTHER_WRITE_REQUIRED)
+ return "media-floppy-symbolic";
+ if (device_flag == FWUPD_DEVICE_FLAG_NEEDS_ACTIVATION)
+@@ -525,8 +497,6 @@ gfu_common_device_icon_from_flag(FwupdDeviceFlags
device_flag)
+ return "emblem-important-symbolic";
+ if (device_flag == FWUPD_DEVICE_FLAG_INSTALL_ALL_RELEASES)
+ return "media-skip-forward-symbolic";
+- if (device_flag == FWUPD_DEVICE_FLAG_SKIPS_RESTART)
+- return "process-stop-symbolic";
+ if (device_flag == FWUPD_DEVICE_FLAG_HAS_MULTIPLE_BRANCHES)
+ return "emblem-shared-symbolic";
+ if (device_flag == FWUPD_DEVICE_FLAG_BACKUP_BEFORE_INSTALL)
diff -Nru gnome-firmware-43.2/debian/patches/series
gnome-firmware-43.2/debian/patches/series
--- gnome-firmware-43.2/debian/patches/series 2023-02-15 16:52:29.000000000
-0600
+++ gnome-firmware-43.2/debian/patches/series 2026-06-27 11:06:53.000000000
-0500
@@ -0,0 +1,2 @@
+allow-fwupd-main-branch.patch
+drop-device-flags-private-in-fwupd-2.0.0.patch