From ac7c745539126117900493a382d702931c44a94d Mon Sep 17 00:00:00 2001
From: Doro Rose <doroerose@gmail.com>
Date: Tue, 28 Nov 2023 10:21:33 +0100
Subject: [PATCH] dovecot: fix build on aarch64-darwin

---
 pkgs/servers/mail/dovecot/default.nix    |  3 +++
 pkgs/servers/mail/dovecot/timespec.patch | 15 +++++++++++++++
 2 files changed, 18 insertions(+)
 create mode 100644 pkgs/servers/mail/dovecot/timespec.patch

diff --git a/pkgs/servers/mail/dovecot/default.nix b/pkgs/servers/mail/dovecot/default.nix
index 133411ffc737..04c1f7031bba 100644
--- a/pkgs/servers/mail/dovecot/default.nix
+++ b/pkgs/servers/mail/dovecot/default.nix
@@ -66,6 +66,9 @@ stdenv.mkDerivation rec {
       url = "https://salsa.debian.org/debian/dovecot/-/raw/debian/1%252.3.19.1+dfsg1-2/debian/patches/Support-openssl-3.0.patch";
       hash = "sha256-PbBB1jIY3jIC8Js1NY93zkV0gISGUq7Nc67Ul5tN7sw=";
     })
+  ] ++ lib.optionals stdenv.isDarwin [
+    # fix timespec calls
+    ./timespec.patch
   ];
 
   configureFlags = [
diff --git a/pkgs/servers/mail/dovecot/timespec.patch b/pkgs/servers/mail/dovecot/timespec.patch
new file mode 100644
index 000000000000..50290a5a57de
--- /dev/null
+++ b/pkgs/servers/mail/dovecot/timespec.patch
@@ -0,0 +1,15 @@
+diff --git a/src/lib-storage/index/dbox-common/dbox-storage.h b/src/lib-storage/index/dbox-common/dbox-storage.h
+index 8e8aaa1..a3018a4 100644
+--- a/src/lib-storage/index/dbox-common/dbox-storage.h
++++ b/src/lib-storage/index/dbox-common/dbox-storage.h
+@@ -86,4 +86,10 @@ int dbox_verify_alt_storage(struct mailbox_list *list);
+ bool dbox_header_have_flag(struct mailbox *box, uint32_t ext_id,
+ 			   unsigned int flags_offset, uint8_t flag);
+ 
++#if defined(__APPLE__) || defined(__NetBSD__) 
++#define st_atim st_atimespec
++#define st_ctim st_ctimespec
++#define st_mtim st_mtimespec
++#endif
++
+ #endif