From e74d38bfd3097471fe60dbe843a68c16516a78da Mon Sep 17 00:00:00 2001
From: Richard Hughes <richard@hughsie.com>
Date: Mon, 17 Jan 2022 14:50:47 +0000
Subject: [PATCH] Fix compiling with new versions of efivar

Fixes https://github.com/fwupd/fwupd/issues/4181
---
 meson.build                           | 5 +++++
 plugins/uefi-capsule/fu-uefi-common.h | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/meson.build b/meson.build
index 833bdbf56..691cc8a58 100644
--- a/meson.build
+++ b/meson.build
@@ -412,6 +412,11 @@ endif
 if build_standalone and get_option('plugin_uefi_capsule')
   efiboot = dependency('efiboot')
 
+  efivar = dependency('efivar')
+  if cc.has_header_symbol('efivar/efivar-types.h', 'efi_time_t', dependencies : efivar)
+    conf.set('HAVE_EFI_TIME_T', '1')
+  endif
+
   efi_app_location = join_paths(libexecdir, 'fwupd', 'efi')
   conf.set_quoted('EFI_APP_LOCATION', efi_app_location)
 
diff --git a/plugins/uefi-capsule/fu-uefi-common.h b/plugins/uefi-capsule/fu-uefi-common.h
index a21806d6b..1d616c9e0 100644
--- a/plugins/uefi-capsule/fu-uefi-common.h
+++ b/plugins/uefi-capsule/fu-uefi-common.h
@@ -9,6 +9,7 @@
 
 #include <fwupdplugin.h>
 
+#include <efivar/efivar.h>
 #include <glib.h>
 
 #define EFI_CAPSULE_HEADER_FLAGS_PERSIST_ACROSS_RESET  0x00010000
@@ -17,6 +18,7 @@
 
 #define EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED 0x0000000000000004ULL
 
+#ifndef HAVE_EFI_TIME_T
 typedef struct __attribute__((__packed__)) {
 	guint16 year;
 	guint8 month;
@@ -30,6 +32,7 @@ typedef struct __attribute__((__packed__)) {
 	guint8 daylight;
 	guint8 pad2;
 } efi_time_t;
+#endif
 
 typedef struct __attribute__((__packed__)) {
 	fwupd_guid_t guid;
