Subject: [bug#67144] [PATCH 4/4] gnu: Add mailctl.

From: VÖRÖSKŐI András <[email-masked]>
Date: Mon, 13 Nov 2023 06:03:51 +0100

* gnu/packages/haskell-apps.scm (mailctl): New variable.

Change-Id: I29386081322f421bafaaa95544e4e4b69cf2a8b3
---
 gnu/packages/haskell-apps.scm | 39 +++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index ac22082088..b4c6d583c2 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -19,6 +19,7 @@
 ;;; Copyright © 2021 Stefan Reichör <[email-masked]>
 ;;; Copyright © 2021 Morgan Smith <[email-masked]>
 ;;; Copyright © 2022 David Thompson <[email-masked]>
+;;; Copyright © 2023 VÖRÖSKŐI András <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -37,6 +38,7 @@
 
 (define-module (gnu packages haskell-apps)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module (guix git-download)
   #:use-module (guix packages)
   #:use-module ((guix licenses) #:prefix license:)
@@ -670,6 +672,43 @@ (define-public kmonad
 Wayland, and Linux console environments alike.")
       (license license:expat))))
 
+(define-public mailctl
+  (package
+    (name "mailctl")
+    (version "0.9.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/pdobsan/mailctl/archive/refs/tags/"
+                           version ".tar.gz"))
+       (snippet
+        #~(begin
+            (use-modules (guix build utils))
+            (substitute* "mailctl.cabal" (("3.8") "3.6"))))
+       (sha256
+        (base32 "0p96xprgrnf7vcn73rjnjj5ddgk2swywlp16mgqqvp5i4jwschvw"))))
+    (inputs (list ghc-aeson
+                  ghc-base64
+                  ghc-hsyslog
+                  ghc-http-conduit
+                  ghc-network-uri
+                  ghc-optparse-applicative
+                  ghc-pretty-simple
+                  ghc-strings
+                  ghc-twain
+                  ghc-utf8-string
+                  ghc-warp
+                  ghc-yaml))
+    (build-system haskell-build-system)
+    (home-page "https://github.com/pdobsan/mailctl")
+    (synopsis "OAuth2 credentials renewal for @acronym{MUA} or @acronym{MTA}")
+    (description "Many IMAP/SMTP clients, like msmtp, fdm, isync, neomutt or mutt
+can use OAuth2 access tokens but lack the ability to renew and/or authorize OAuth2
+credentials.  The purpose of mailctl is to provide these missing capabilities by
+acting as a kind of smart password manager. In particular, access token renewal
+happens automatically in the background transparent to the user.")
+    (license license:bsd-3)))
+
 (define-public nixfmt
   (package
     (name "nixfmt")
-- 
2.41.0