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

Reply via email to