unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#65976] [PATCH 1/3] gnu: Add ghc-hsyslog.
@ 2023-09-14 10:39 pinoaffe
  2023-09-14 10:42 ` [bug#65976] [PATCH 2/3] gnu: Add ghc-twain pinoaffe
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: pinoaffe @ 2023-09-14 10:39 UTC (permalink / raw)
  To: 65976


* gnu/packages/haskell-xyz.scm (ghc-hsyslog): New variable.
---
 gnu/packages/haskell-xyz.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index c02fd007f9..6d540aee54 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -33,6 +33,7 @@
 ;;; Copyright © 2022 jgart <jgart@dismail.de>
 ;;; Copyright © 2023 Josselin Poiret <dev@jpoiret.xyz>
 ;;; Copyright © 2023 zamfofex <zamfofex@twdb.moe>
+;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1422,6 +1423,32 @@ (define-public ghc-case-insensitive
 the resulting type will be insensitive to cases.")
     (license license:bsd-3)))
 
+(define-public ghc-hsyslog
+  (package
+    (name "ghc-hsyslog")
+    (version "5.0.2")
+    (source (origin
+              (method url-fetch)
+              (uri (hackage-uri "hsyslog" version))
+              (sha256
+               (base32
+                "1kkypn0dd92aqv8dr112bhkr9k9r9mchnyyvy41kvhj2zg447v1y"))))
+    (build-system haskell-build-system)
+    (properties '((upstream-name . "hsyslog")))
+    (arguments
+     `(#:cabal-revision ("1"
+                         "0k1j46nk3z64zw4bqmvw5lgy16ih200m66rv4b6ygjqv7nglqq0b")))
+    (home-page "https://github.com/peti/hsyslog")
+    (synopsis "FFI interface to syslog(3) from POSIX.1-2008")
+    (description
+     "This package provides a Haskell interface to @code{syslog} as specified
+in POSIX.1-2008.  The entire public API lives in @code{System.Posix.Syslog}.
+There is a set of exposed modules available underneath that one, which contain
+various implementation details that may be useful to other developers who want
+to implement syslog-related functionality.  Users of @code{syslog}, however,
+do not need them.")
+    (license license:bsd-3)))
+
 (define-public ghc-cassava
   (package
     (name "ghc-cassava")

base-commit: cf5cb0875b06b5823e9de8bbd01ddd8c0b0d15a7
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [bug#65976] [PATCH 2/3] gnu: Add ghc-twain.
  2023-09-14 10:39 [bug#65976] [PATCH 1/3] gnu: Add ghc-hsyslog pinoaffe
@ 2023-09-14 10:42 ` pinoaffe
  2023-09-14 10:43 ` [bug#65976] [PATCH 3/3] gnu: Add mailctl pinoaffe
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 11+ messages in thread
From: pinoaffe @ 2023-09-14 10:42 UTC (permalink / raw)
  To: 65976


* gnu/packages/haskell-xyz.scm (ghc-twain): New variable.
---
 gnu/packages/haskell-web.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 75b84b10a7..14cf16681c 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2022 Alice Brenon <alice.brenon@ens-lyon.fr>
+;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -483,6 +484,35 @@ (define-public ghc-wai
 communication between web applications and web servers.")
     (license license:bsd-3)))
 
+(define-public ghc-twain
+  (package
+    (name "ghc-twain")
+    (version "2.1.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (hackage-uri "twain" version))
+              (sha256
+               (base32
+                "1hkzp2g671dagmv1qznkf3mw3l2mslckg7h0a8x8633h6i3j6br0"))))
+    (build-system haskell-build-system)
+    (properties '((upstream-name . "twain")))
+    (inputs (list ghc-aeson
+                  ghc-case-insensitive
+                  ghc-cookie
+                  ghc-either
+                  ghc-http-types
+                  ghc-http2
+                  ghc-vault
+                  ghc-wai
+                  ghc-wai-extra))
+    (native-inputs (list ghc-hspec ghc-hspec-discover ghc-hspec-wai))
+    (home-page "https://github.com/alexmingoia/twain#readme")
+    (synopsis "Tiny web application framework for WAI.")
+    (description
+     "Twain is tiny web application framework for WAI. It provides routing, parameter
+parsing, and an either-like monad for composing responses.")
+    (license license:bsd-3)))
+
 (define-public ghc-wai-logger
   (package
     (name "ghc-wai-logger")
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [bug#65976] [PATCH 3/3] gnu: Add mailctl.
  2023-09-14 10:39 [bug#65976] [PATCH 1/3] gnu: Add ghc-hsyslog pinoaffe
  2023-09-14 10:42 ` [bug#65976] [PATCH 2/3] gnu: Add ghc-twain pinoaffe
@ 2023-09-14 10:43 ` pinoaffe
  2023-09-25 20:21 ` [bug#65976] [PATCH v3 1/4] gnu: Add ghc-hsyslog pinoaffe
  2023-10-24  9:24 ` [bug#65976] [PATCH v4 1/4] gnu: Add ghc-twain pinoaffe
  3 siblings, 0 replies; 11+ messages in thread
From: pinoaffe @ 2023-09-14 10:43 UTC (permalink / raw)
  To: 65976


* gnu/packages/mail.scm (mailctl): New variable.
---
 gnu/packages/mail.scm | 56 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index ecaab1c7cd..a64da6a328 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -52,6 +52,7 @@
 ;;; Copyright © 2022 jgart <jgart@dismail.de>
 ;;; Copyright © 2022 ( <paren@disroot.org>
 ;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
+;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -112,6 +113,7 @@ (define-module (gnu packages mail)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages guile-xyz)
   #:use-module (gnu packages haskell-xyz)
+  #:use-module (gnu packages haskell-web)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages language)
@@ -176,6 +178,7 @@ (define-module (gnu packages mail)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system go)
   #:use-module (guix build-system guile)
+  #:use-module (guix build-system haskell)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system pyproject)
@@ -1145,6 +1148,59 @@ (define-public offlineimap3
 (define-public offlineimap
   (deprecated-package "offlineimap" offlineimap3))
 
+(define-public mailctl
+  (package
+   (name "mailctl")
+   (version "0.8.8")
+   (source (origin
+            (method git-fetch)
+            (uri (git-reference
+                  (url "https://github.com/pdobsan/mailctl")
+                  (commit version)))
+            (file-name (git-file-name name version))
+            (sha256
+             (base32
+              "0zj1hcipb4d42rq3xl9qdx0ra94xlz6572y35m7f9bgkc35plnv8"))))
+   (build-system haskell-build-system)
+   (home-page "https://github.com/pdobsan/mailctl")
+   (arguments `(#:phases (modify-phases %standard-phases
+                           ;; The mailctl.cabal file specifies a minimum cabal
+                           ;; version of 3.8 (which is newer than the cabal
+                           ;; packaged in guix), but doesn't use any new
+                           ;; features and it builds with 3.6.
+                           (add-after 'unpack 'patch-cabal-version
+                             (lambda _
+                               (substitute* "mailctl.cabal"
+                                 (("3.8") "3.6")))))))
+   (inputs (list ghc-aeson
+                 ghc-hsyslog
+                 ghc-http-conduit
+                 ghc-network-uri
+                 ghc-optparse-applicative
+                 ghc-pretty-simple
+                 ghc-twain
+                 ghc-utf8-string
+                 ghc-warp
+                 ghc-yaml))
+   (synopsis "Authorize and renew OAuth2 credentials for IMAP/SMTP clients")
+   (description "@code{mailctl} provides IMAP/SMTP clients with the
+capabilities of renewal and authorization of OAuth2 credentials.
+
+Many IMAP/SMTP clients, like @code{offlineimap}, @code{msmtp}, @code{fdm},
+@code{isync}, @code{neomutt} or @code{mutt} can use OAuth2 access tokens but
+lack the ability to renew and/or authorize OAuth2 credentials.  The purpose of
+@code{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.
+
+If an IMAP/SMTP client cannot use an OAuth2 access token itself it may be
+\"wrapped\" with @code{fdm} and @code{msmtp} with the help of @code{mailctl}.
+
+@code{mailctl} also has some functionalities to manage the orchestration of a
+mailing system comprised of @code{msmtp}, @code{fdm}, and @code{mutt} or
+similar ones.")
+   (license license:bsd-3)))
+
 (define-public emacs-mew
   (let ((commit "35772ee0b44dd7e56b0f3899b27fa545b2bc6f03")
         (revision "1"))
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [bug#65976] [PATCH v3 1/4] gnu: Add ghc-hsyslog.
  2023-09-14 10:39 [bug#65976] [PATCH 1/3] gnu: Add ghc-hsyslog pinoaffe
  2023-09-14 10:42 ` [bug#65976] [PATCH 2/3] gnu: Add ghc-twain pinoaffe
  2023-09-14 10:43 ` [bug#65976] [PATCH 3/3] gnu: Add mailctl pinoaffe
@ 2023-09-25 20:21 ` pinoaffe
  2023-09-25 20:21   ` [bug#65976] [PATCH v3 2/4] gnu: Add ghc-twain pinoaffe
                     ` (2 more replies)
  2023-10-24  9:24 ` [bug#65976] [PATCH v4 1/4] gnu: Add ghc-twain pinoaffe
  3 siblings, 3 replies; 11+ messages in thread
From: pinoaffe @ 2023-09-25 20:21 UTC (permalink / raw)
  To: 65976; +Cc: pinoaffe, Lars-Dominik Braun

* gnu/packages/haskell-xyz.scm (ghc-hsyslog): New variable.
---
 gnu/packages/haskell-xyz.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index c02fd007f9..6d540aee54 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -33,6 +33,7 @@
 ;;; Copyright © 2022 jgart <jgart@dismail.de>
 ;;; Copyright © 2023 Josselin Poiret <dev@jpoiret.xyz>
 ;;; Copyright © 2023 zamfofex <zamfofex@twdb.moe>
+;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1422,6 +1423,32 @@ (define-public ghc-case-insensitive
 the resulting type will be insensitive to cases.")
     (license license:bsd-3)))
 
+(define-public ghc-hsyslog
+  (package
+    (name "ghc-hsyslog")
+    (version "5.0.2")
+    (source (origin
+              (method url-fetch)
+              (uri (hackage-uri "hsyslog" version))
+              (sha256
+               (base32
+                "1kkypn0dd92aqv8dr112bhkr9k9r9mchnyyvy41kvhj2zg447v1y"))))
+    (build-system haskell-build-system)
+    (properties '((upstream-name . "hsyslog")))
+    (arguments
+     `(#:cabal-revision ("1"
+                         "0k1j46nk3z64zw4bqmvw5lgy16ih200m66rv4b6ygjqv7nglqq0b")))
+    (home-page "https://github.com/peti/hsyslog")
+    (synopsis "FFI interface to syslog(3) from POSIX.1-2008")
+    (description
+     "This package provides a Haskell interface to @code{syslog} as specified
+in POSIX.1-2008.  The entire public API lives in @code{System.Posix.Syslog}.
+There is a set of exposed modules available underneath that one, which contain
+various implementation details that may be useful to other developers who want
+to implement syslog-related functionality.  Users of @code{syslog}, however,
+do not need them.")
+    (license license:bsd-3)))
+
 (define-public ghc-cassava
   (package
     (name "ghc-cassava")

base-commit: cf5cb0875b06b5823e9de8bbd01ddd8c0b0d15a7
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [bug#65976] [PATCH v3 2/4] gnu: Add ghc-twain.
  2023-09-25 20:21 ` [bug#65976] [PATCH v3 1/4] gnu: Add ghc-hsyslog pinoaffe
@ 2023-09-25 20:21   ` pinoaffe
  2023-09-25 20:21   ` [bug#65976] [PATCH v3 3/4] gnu: Add ghc-strings pinoaffe
  2023-09-25 20:21   ` [bug#65976] [PATCH v3 4/4] gnu: Add mailctl pinoaffe
  2 siblings, 0 replies; 11+ messages in thread
From: pinoaffe @ 2023-09-25 20:21 UTC (permalink / raw)
  To: 65976; +Cc: pinoaffe, Lars-Dominik Braun

* gnu/packages/haskell-xyz.scm (ghc-twain): New variable.
---
 gnu/packages/haskell-web.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 75b84b10a7..95f2669586 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2022 Alice Brenon <alice.brenon@ens-lyon.fr>
+;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -483,6 +484,35 @@ (define-public ghc-wai
 communication between web applications and web servers.")
     (license license:bsd-3)))
 
+(define-public ghc-twain
+  (package
+    (name "ghc-twain")
+    (version "2.1.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (hackage-uri "twain" version))
+              (sha256
+               (base32
+                "1hkzp2g671dagmv1qznkf3mw3l2mslckg7h0a8x8633h6i3j6br0"))))
+    (build-system haskell-build-system)
+    (properties '((upstream-name . "twain")))
+    (inputs (list ghc-aeson
+                  ghc-case-insensitive
+                  ghc-cookie
+                  ghc-either
+                  ghc-http-types
+                  ghc-http2
+                  ghc-vault
+                  ghc-wai
+                  ghc-wai-extra))
+    (native-inputs (list ghc-hspec ghc-hspec-discover ghc-hspec-wai))
+    (home-page "https://github.com/alexmingoia/twain#readme")
+    (synopsis "Tiny web application framework for WAI")
+    (description
+     "Twain is tiny web application framework for WAI.  It provides routing,
+parameter parsing, and an either-like monad for composing responses.")
+    (license license:bsd-3)))
+
 (define-public ghc-wai-logger
   (package
     (name "ghc-wai-logger")
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [bug#65976] [PATCH v3 3/4] gnu: Add ghc-strings.
  2023-09-25 20:21 ` [bug#65976] [PATCH v3 1/4] gnu: Add ghc-hsyslog pinoaffe
  2023-09-25 20:21   ` [bug#65976] [PATCH v3 2/4] gnu: Add ghc-twain pinoaffe
@ 2023-09-25 20:21   ` pinoaffe
  2023-09-25 20:21   ` [bug#65976] [PATCH v3 4/4] gnu: Add mailctl pinoaffe
  2 siblings, 0 replies; 11+ messages in thread
From: pinoaffe @ 2023-09-25 20:21 UTC (permalink / raw)
  To: 65976; +Cc: pinoaffe, Lars-Dominik Braun

* gnu/packages/haskell-xyz.scm (ghc-strings): New variable.
---
 gnu/packages/haskell-xyz.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 6d540aee54..4328363a01 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -15961,6 +15961,32 @@ (define-public ghc-base64
 (additional support for RFC 7049 standards)")
     (license license:bsd-3)))
 
+(define-public ghc-strings
+  (package
+    (name "ghc-strings")
+    (version "1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (hackage-uri "strings" version))
+              (sha256
+               (base32
+                "1xz9v3w5s13yhk7iy9dw6i8s2jc6c0b1ci96dwmcq9a1n3l3ng4v"))))
+    (build-system haskell-build-system)
+    (properties '((upstream-name . "strings")))
+    (arguments
+     `(#:cabal-revision ("1"
+                         "0jk1g71yzc5wpkr3vvhnxak61nqvisc5n90ggv6lmz4wqpqzdd0v")))
+    (home-page "https://hub.darcs.net/scravy/strings")
+    (synopsis
+     "Functions for working with strings, including Text and ByteString")
+    (description
+     "This package provides various functions for working with strings, such
+as @code{join}, @code{split}, @code{toUppercase}, et cetera.  The functions in
+this package work with all kinds of strings such as @code{Text},
+@code{ByteString}, @code{S tring}, and their respective lazy counter parts.
+There is also an interface which is agnostic of the underlying string type.")
+    (license license:expat)))
+
 (define-public ghc-ordered-containers
   (package
     (name "ghc-ordered-containers")
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [bug#65976] [PATCH v3 4/4] gnu: Add mailctl.
  2023-09-25 20:21 ` [bug#65976] [PATCH v3 1/4] gnu: Add ghc-hsyslog pinoaffe
  2023-09-25 20:21   ` [bug#65976] [PATCH v3 2/4] gnu: Add ghc-twain pinoaffe
  2023-09-25 20:21   ` [bug#65976] [PATCH v3 3/4] gnu: Add ghc-strings pinoaffe
@ 2023-09-25 20:21   ` pinoaffe
  2 siblings, 0 replies; 11+ messages in thread
From: pinoaffe @ 2023-09-25 20:21 UTC (permalink / raw)
  To: 65976; +Cc: pinoaffe

* gnu/packages/mail.scm (mailctl): New variable.
---
 gnu/packages/mail.scm | 58 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index ecaab1c7cd..4fd3e80d90 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -52,6 +52,7 @@
 ;;; Copyright © 2022 jgart <jgart@dismail.de>
 ;;; Copyright © 2022 ( <paren@disroot.org>
 ;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
+;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -112,6 +113,7 @@ (define-module (gnu packages mail)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages guile-xyz)
   #:use-module (gnu packages haskell-xyz)
+  #:use-module (gnu packages haskell-web)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages language)
@@ -176,6 +178,7 @@ (define-module (gnu packages mail)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system go)
   #:use-module (guix build-system guile)
+  #:use-module (guix build-system haskell)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system pyproject)
@@ -1145,6 +1148,61 @@ (define-public offlineimap3
 (define-public offlineimap
   (deprecated-package "offlineimap" offlineimap3))
 
+(define-public mailctl
+  (package
+   (name "mailctl")
+   (version "0.9.1")
+   (source (origin
+            (method git-fetch)
+            (uri (git-reference
+                  (url "https://github.com/pdobsan/mailctl")
+                  (commit version)))
+            (file-name (git-file-name name version))
+            (sha256
+             (base32
+              "18mjlvf8h0afirlr2pw30p9cpcyhfw4g41c0liqbsan684cj3dk1"))))
+   (build-system haskell-build-system)
+   (home-page "https://github.com/pdobsan/mailctl")
+   (arguments `(#:phases (modify-phases %standard-phases
+                           ;; The mailctl.cabal file specifies a minimum cabal
+                           ;; version of 3.8 (which is newer than the cabal
+                           ;; packaged in guix), but doesn't use any new
+                           ;; features and it builds with 3.6.
+                           (add-after 'unpack 'patch-cabal-version
+                             (lambda _
+                               (substitute* "mailctl.cabal"
+                                 (("3.8") "3.6")))))))
+   (inputs (list ghc-aeson
+                 ghc-hsyslog
+                 ghc-http-conduit
+                 ghc-network-uri
+                 ghc-optparse-applicative
+                 ghc-pretty-simple
+                 ghc-twain
+                 ghc-base64
+                 ghc-strings
+                 ghc-utf8-string
+                 ghc-warp
+                 ghc-yaml))
+   (synopsis "Authorize and renew OAuth2 credentials for IMAP/SMTP clients")
+   (description "@code{mailctl} provides IMAP/SMTP clients with the
+capabilities of renewal and authorization of OAuth2 credentials.
+
+Many IMAP/SMTP clients, like @code{offlineimap}, @code{msmtp}, @code{fdm},
+@code{isync}, @code{neomutt} or @code{mutt} can use OAuth2 access tokens but
+lack the ability to renew and/or authorize OAuth2 credentials.  The purpose of
+@code{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.
+
+If an IMAP/SMTP client cannot use an OAuth2 access token itself it may be
+\"wrapped\" with @code{fdm} and @code{msmtp} with the help of @code{mailctl}.
+
+@code{mailctl} also has some functionalities to manage the orchestration of a
+mailing system comprised of @code{msmtp}, @code{fdm}, and @code{mutt} or
+similar ones.")
+   (license license:bsd-3)))
+
 (define-public emacs-mew
   (let ((commit "35772ee0b44dd7e56b0f3899b27fa545b2bc6f03")
         (revision "1"))
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [bug#65976] [PATCH v4 1/4] gnu: Add ghc-twain.
  2023-09-14 10:39 [bug#65976] [PATCH 1/3] gnu: Add ghc-hsyslog pinoaffe
                   ` (2 preceding siblings ...)
  2023-09-25 20:21 ` [bug#65976] [PATCH v3 1/4] gnu: Add ghc-hsyslog pinoaffe
@ 2023-10-24  9:24 ` pinoaffe
  2023-10-24  9:24   ` [bug#65976] [PATCH v4 2/4] gnu: Add ghc-hsyslog pinoaffe
                     ` (2 more replies)
  3 siblings, 3 replies; 11+ messages in thread
From: pinoaffe @ 2023-10-24  9:24 UTC (permalink / raw)
  To: 65976; +Cc: pinoaffe, Lars-Dominik Braun

* gnu/packages/haskell-xyz.scm (ghc-twain): New variable.
---
 gnu/packages/haskell-web.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 75b84b10a7..95f2669586 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2022 Alice Brenon <alice.brenon@ens-lyon.fr>
+;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -483,6 +484,35 @@ (define-public ghc-wai
 communication between web applications and web servers.")
     (license license:bsd-3)))
 
+(define-public ghc-twain
+  (package
+    (name "ghc-twain")
+    (version "2.1.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (hackage-uri "twain" version))
+              (sha256
+               (base32
+                "1hkzp2g671dagmv1qznkf3mw3l2mslckg7h0a8x8633h6i3j6br0"))))
+    (build-system haskell-build-system)
+    (properties '((upstream-name . "twain")))
+    (inputs (list ghc-aeson
+                  ghc-case-insensitive
+                  ghc-cookie
+                  ghc-either
+                  ghc-http-types
+                  ghc-http2
+                  ghc-vault
+                  ghc-wai
+                  ghc-wai-extra))
+    (native-inputs (list ghc-hspec ghc-hspec-discover ghc-hspec-wai))
+    (home-page "https://github.com/alexmingoia/twain#readme")
+    (synopsis "Tiny web application framework for WAI")
+    (description
+     "Twain is tiny web application framework for WAI.  It provides routing,
+parameter parsing, and an either-like monad for composing responses.")
+    (license license:bsd-3)))
+
 (define-public ghc-wai-logger
   (package
     (name "ghc-wai-logger")

base-commit: 7383d15641f17af5a8c656a4ad592138abc7d5ec
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [bug#65976] [PATCH v4 2/4] gnu: Add ghc-hsyslog.
  2023-10-24  9:24 ` [bug#65976] [PATCH v4 1/4] gnu: Add ghc-twain pinoaffe
@ 2023-10-24  9:24   ` pinoaffe
  2023-10-24  9:24   ` [bug#65976] [PATCH v4 3/4] gnu: Add ghc-strings pinoaffe
  2023-10-24  9:24   ` [bug#65976] [PATCH v4 4/4] gnu: Add mailctl pinoaffe
  2 siblings, 0 replies; 11+ messages in thread
From: pinoaffe @ 2023-10-24  9:24 UTC (permalink / raw)
  To: 65976; +Cc: pinoaffe, Lars-Dominik Braun

* gnu/packages/haskell-xyz.scm (ghc-hsyslog): New variable.
---
 gnu/packages/haskell-xyz.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index c02fd007f9..6d540aee54 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -33,6 +33,7 @@
 ;;; Copyright © 2022 jgart <jgart@dismail.de>
 ;;; Copyright © 2023 Josselin Poiret <dev@jpoiret.xyz>
 ;;; Copyright © 2023 zamfofex <zamfofex@twdb.moe>
+;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1422,6 +1423,32 @@ (define-public ghc-case-insensitive
 the resulting type will be insensitive to cases.")
     (license license:bsd-3)))
 
+(define-public ghc-hsyslog
+  (package
+    (name "ghc-hsyslog")
+    (version "5.0.2")
+    (source (origin
+              (method url-fetch)
+              (uri (hackage-uri "hsyslog" version))
+              (sha256
+               (base32
+                "1kkypn0dd92aqv8dr112bhkr9k9r9mchnyyvy41kvhj2zg447v1y"))))
+    (build-system haskell-build-system)
+    (properties '((upstream-name . "hsyslog")))
+    (arguments
+     `(#:cabal-revision ("1"
+                         "0k1j46nk3z64zw4bqmvw5lgy16ih200m66rv4b6ygjqv7nglqq0b")))
+    (home-page "https://github.com/peti/hsyslog")
+    (synopsis "FFI interface to syslog(3) from POSIX.1-2008")
+    (description
+     "This package provides a Haskell interface to @code{syslog} as specified
+in POSIX.1-2008.  The entire public API lives in @code{System.Posix.Syslog}.
+There is a set of exposed modules available underneath that one, which contain
+various implementation details that may be useful to other developers who want
+to implement syslog-related functionality.  Users of @code{syslog}, however,
+do not need them.")
+    (license license:bsd-3)))
+
 (define-public ghc-cassava
   (package
     (name "ghc-cassava")
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [bug#65976] [PATCH v4 3/4] gnu: Add ghc-strings.
  2023-10-24  9:24 ` [bug#65976] [PATCH v4 1/4] gnu: Add ghc-twain pinoaffe
  2023-10-24  9:24   ` [bug#65976] [PATCH v4 2/4] gnu: Add ghc-hsyslog pinoaffe
@ 2023-10-24  9:24   ` pinoaffe
  2023-10-24  9:24   ` [bug#65976] [PATCH v4 4/4] gnu: Add mailctl pinoaffe
  2 siblings, 0 replies; 11+ messages in thread
From: pinoaffe @ 2023-10-24  9:24 UTC (permalink / raw)
  To: 65976; +Cc: pinoaffe, Lars-Dominik Braun

* gnu/packages/haskell-xyz.scm (ghc-strings): New variable.
---
 gnu/packages/haskell-xyz.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 6d540aee54..4328363a01 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -15961,6 +15961,32 @@ (define-public ghc-base64
 (additional support for RFC 7049 standards)")
     (license license:bsd-3)))
 
+(define-public ghc-strings
+  (package
+    (name "ghc-strings")
+    (version "1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (hackage-uri "strings" version))
+              (sha256
+               (base32
+                "1xz9v3w5s13yhk7iy9dw6i8s2jc6c0b1ci96dwmcq9a1n3l3ng4v"))))
+    (build-system haskell-build-system)
+    (properties '((upstream-name . "strings")))
+    (arguments
+     `(#:cabal-revision ("1"
+                         "0jk1g71yzc5wpkr3vvhnxak61nqvisc5n90ggv6lmz4wqpqzdd0v")))
+    (home-page "https://hub.darcs.net/scravy/strings")
+    (synopsis
+     "Functions for working with strings, including Text and ByteString")
+    (description
+     "This package provides various functions for working with strings, such
+as @code{join}, @code{split}, @code{toUppercase}, et cetera.  The functions in
+this package work with all kinds of strings such as @code{Text},
+@code{ByteString}, @code{S tring}, and their respective lazy counter parts.
+There is also an interface which is agnostic of the underlying string type.")
+    (license license:expat)))
+
 (define-public ghc-ordered-containers
   (package
     (name "ghc-ordered-containers")
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [bug#65976] [PATCH v4 4/4] gnu: Add mailctl.
  2023-10-24  9:24 ` [bug#65976] [PATCH v4 1/4] gnu: Add ghc-twain pinoaffe
  2023-10-24  9:24   ` [bug#65976] [PATCH v4 2/4] gnu: Add ghc-hsyslog pinoaffe
  2023-10-24  9:24   ` [bug#65976] [PATCH v4 3/4] gnu: Add ghc-strings pinoaffe
@ 2023-10-24  9:24   ` pinoaffe
  2 siblings, 0 replies; 11+ messages in thread
From: pinoaffe @ 2023-10-24  9:24 UTC (permalink / raw)
  To: 65976; +Cc: pinoaffe

* gnu/packages/mail.scm (mailctl): New variable.
---
 gnu/packages/mail.scm | 58 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 9f410047e2..78bff0546c 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -54,6 +54,7 @@
 ;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
 ;;; Copyright © 2023 Arjan Adriaanse <arjan@adriaan.se>
 ;;; Copyright © 2023 Wilko Meyer <w@wmeyer.eu>
+;;; Copyright © 2023 pinoaffe <pinoaffe@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -115,6 +116,7 @@ (define-module (gnu packages mail)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages guile-xyz)
   #:use-module (gnu packages haskell-xyz)
+  #:use-module (gnu packages haskell-web)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages language)
@@ -179,6 +181,7 @@ (define-module (gnu packages mail)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system go)
   #:use-module (guix build-system guile)
+  #:use-module (guix build-system haskell)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system pyproject)
@@ -1148,6 +1151,61 @@ (define-public offlineimap3
 (define-public offlineimap
   (deprecated-package "offlineimap" offlineimap3))
 
+(define-public mailctl
+  (package
+   (name "mailctl")
+   (version "0.9.1")
+   (source (origin
+            (method git-fetch)
+            (uri (git-reference
+                  (url "https://github.com/pdobsan/mailctl")
+                  (commit version)))
+            (file-name (git-file-name name version))
+            (sha256
+             (base32
+              "18mjlvf8h0afirlr2pw30p9cpcyhfw4g41c0liqbsan684cj3dk1"))))
+   (build-system haskell-build-system)
+   (home-page "https://github.com/pdobsan/mailctl")
+   (arguments `(#:phases (modify-phases %standard-phases
+                           ;; The mailctl.cabal file specifies a minimum cabal
+                           ;; version of 3.8 (which is newer than the cabal
+                           ;; packaged in guix), but doesn't use any new
+                           ;; features and it builds with 3.6.
+                           (add-after 'unpack 'patch-cabal-version
+                             (lambda _
+                               (substitute* "mailctl.cabal"
+                                 (("3.8") "3.6")))))))
+   (inputs (list ghc-aeson
+                 ghc-hsyslog
+                 ghc-http-conduit
+                 ghc-network-uri
+                 ghc-optparse-applicative
+                 ghc-pretty-simple
+                 ghc-twain
+                 ghc-base64
+                 ghc-strings
+                 ghc-utf8-string
+                 ghc-warp
+                 ghc-yaml))
+   (synopsis "Authorize and renew OAuth2 credentials for IMAP/SMTP clients")
+   (description "@code{mailctl} provides IMAP/SMTP clients with the
+capabilities of renewal and authorization of OAuth2 credentials.
+
+Many IMAP/SMTP clients, like @code{offlineimap}, @code{msmtp}, @code{fdm},
+@code{isync}, @code{neomutt} or @code{mutt} can use OAuth2 access tokens but
+lack the ability to renew and/or authorize OAuth2 credentials.  The purpose of
+@code{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.
+
+If an IMAP/SMTP client cannot use an OAuth2 access token itself it may be
+\"wrapped\" with @code{fdm} and @code{msmtp} with the help of @code{mailctl}.
+
+@code{mailctl} also has some functionalities to manage the orchestration of a
+mailing system comprised of @code{msmtp}, @code{fdm}, and @code{mutt} or
+similar ones.")
+   (license license:bsd-3)))
+
 (define-public emacs-mew
   (let ((commit "35772ee0b44dd7e56b0f3899b27fa545b2bc6f03")
         (revision "1"))
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2023-10-24  9:26 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-14 10:39 [bug#65976] [PATCH 1/3] gnu: Add ghc-hsyslog pinoaffe
2023-09-14 10:42 ` [bug#65976] [PATCH 2/3] gnu: Add ghc-twain pinoaffe
2023-09-14 10:43 ` [bug#65976] [PATCH 3/3] gnu: Add mailctl pinoaffe
2023-09-25 20:21 ` [bug#65976] [PATCH v3 1/4] gnu: Add ghc-hsyslog pinoaffe
2023-09-25 20:21   ` [bug#65976] [PATCH v3 2/4] gnu: Add ghc-twain pinoaffe
2023-09-25 20:21   ` [bug#65976] [PATCH v3 3/4] gnu: Add ghc-strings pinoaffe
2023-09-25 20:21   ` [bug#65976] [PATCH v3 4/4] gnu: Add mailctl pinoaffe
2023-10-24  9:24 ` [bug#65976] [PATCH v4 1/4] gnu: Add ghc-twain pinoaffe
2023-10-24  9:24   ` [bug#65976] [PATCH v4 2/4] gnu: Add ghc-hsyslog pinoaffe
2023-10-24  9:24   ` [bug#65976] [PATCH v4 3/4] gnu: Add ghc-strings pinoaffe
2023-10-24  9:24   ` [bug#65976] [PATCH v4 4/4] gnu: Add mailctl pinoaffe

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).