fwupd/0001-Revert-trivial-Remove-some-dead-JCat-compat-code.patch
Richard Hughes 30a3b93cc5
Rebase to get new hardware support
Resolves: #RHEL-125778
2026-01-12 13:39:19 +00:00

119 lines
3.9 KiB
Diff

From 8c5c3fe46c4a10eafd8a11f888216f61448121f3 Mon Sep 17 00:00:00 2001
From: Richard Hughes <richard@hughsie.com>
Date: Fri, 9 Jan 2026 16:36:24 +0000
Subject: [PATCH] Revert "trivial: Remove some dead JCat compat code"
This reverts commit b3cd790875065fdda7b8bf7328c325af8ce30a52 so we can build
on RHEL 9 without also upreving libjcat.
(cherry picked from commit 4f6726f410cedcae7707366d89ef36f9d370950b)
---
meson.build | 2 +-
src/fu-cabinet.c | 12 +++++++++++-
src/fu-engine.c | 9 +++++++++
3 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
index 5726be646..1766ce8b6 100644
--- a/meson.build
+++ b/meson.build
@@ -360,7 +360,7 @@ if build_standalone
endif
libjcat = dependency(
'jcat',
- version: '>= 0.2.0',
+ version: '>= 0.1.6',
fallback: ['libjcat', 'libjcat_dep'],
)
libjsonglib = dependency(
diff --git a/src/fu-cabinet.c b/src/fu-cabinet.c
index dabc1eb6d..28b91b450 100644
--- a/src/fu-cabinet.c
+++ b/src/fu-cabinet.c
@@ -12,6 +12,11 @@
#include "fu-cabinet.h"
+/* fixed in 0.1.14 */
+#ifndef JCAT_CHECK_VERSION
+#define JCAT_CHECK_VERSION LIBJCAT_CHECK_VERSION
+#endif
+
/**
* FuCabinet:
*
@@ -225,6 +230,7 @@ fu_cabinet_parse_release(FuCabinet *self,
/* the jcat file signed the *checksum of the payload*, not the payload itself */
item = jcat_file_get_item_by_id(self->jcat_file, basename, NULL);
+#if JCAT_CHECK_VERSION(0, 2, 0)
if (item != NULL && jcat_item_has_target(item)) {
g_autofree gchar *checksum_sha256 = NULL;
g_autofree gchar *checksum_sha512 = NULL;
@@ -265,7 +271,9 @@ fu_cabinet_parse_release(FuCabinet *self,
g_info("verified indirect payload %s: %u", basename, results->len);
release_flags |= FWUPD_RELEASE_FLAG_TRUSTED_PAYLOAD;
}
- } else if (item != NULL) {
+ }
+#endif
+ if (item != NULL) {
g_autoptr(GBytes) blob = NULL;
g_autoptr(GError) error_local = NULL;
g_autoptr(GPtrArray) results = NULL;
@@ -1079,10 +1087,12 @@ fu_cabinet_init(FuCabinet *self)
self->builder = xb_builder_new();
self->jcat_file = jcat_file_new();
self->jcat_context = jcat_context_new();
+#if JCAT_CHECK_VERSION(0, 1, 13)
jcat_context_blob_kind_allow(self->jcat_context, JCAT_BLOB_KIND_SHA256);
jcat_context_blob_kind_allow(self->jcat_context, JCAT_BLOB_KIND_SHA512);
jcat_context_blob_kind_allow(self->jcat_context, JCAT_BLOB_KIND_PKCS7);
jcat_context_blob_kind_allow(self->jcat_context, JCAT_BLOB_KIND_GPG);
+#endif
}
static void
diff --git a/src/fu-engine.c b/src/fu-engine.c
index 498b6ebf8..9f2df208d 100644
--- a/src/fu-engine.c
+++ b/src/fu-engine.c
@@ -76,6 +76,11 @@
/* only needed until we hard depend on jcat 0.1.3 */
#include <libjcat/jcat-version.h>
+/* fixed in 0.1.14 */
+#ifndef JCAT_CHECK_VERSION
+#define JCAT_CHECK_VERSION LIBJCAT_CHECK_VERSION
+#endif
+
#ifdef HAVE_SYSTEMD
#include "fu-systemd.h"
#endif
@@ -9336,10 +9341,12 @@ fu_engine_constructed(GObject *obj)
/* setup Jcat context */
self->jcat_context = jcat_context_new();
+#if JCAT_CHECK_VERSION(0, 1, 13)
jcat_context_blob_kind_allow(self->jcat_context, JCAT_BLOB_KIND_SHA256);
jcat_context_blob_kind_allow(self->jcat_context, JCAT_BLOB_KIND_SHA512);
jcat_context_blob_kind_allow(self->jcat_context, JCAT_BLOB_KIND_PKCS7);
jcat_context_blob_kind_allow(self->jcat_context, JCAT_BLOB_KIND_GPG);
+#endif
keyring_path = fu_path_from_kind(FU_PATH_KIND_LOCALSTATEDIR_PKG);
jcat_context_set_keyring_path(self->jcat_context, keyring_path);
pkidir_fw = fu_path_build(FU_PATH_KIND_SYSCONFDIR, "pki", "fwupd", NULL);
@@ -9349,7 +9356,9 @@ fu_engine_constructed(GObject *obj)
/* add some runtime versions of things the daemon depends on */
fu_engine_add_runtime_version(self, "org.freedesktop.fwupd", VERSION);
+#if JCAT_CHECK_VERSION(0, 1, 11)
fu_engine_add_runtime_version(self, "com.hughsie.libjcat", jcat_version_string());
+#endif
fu_engine_add_runtime_version(self, "com.hughsie.libxmlb", xb_version_string());
/* optional kernel version */
--
2.52.0