summary refs log tree commit diff
path: root/gnu/packages/mail.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/mail.scm')
-rw-r--r--gnu/packages/mail.scm1492
1 files changed, 746 insertions, 746 deletions
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index e1e56c33d0..d601a6e4bc 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -8,7 +8,7 @@
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 ;;; Copyright © 2015, 2016, 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2016 Al McElrath <hello@yrns.org>
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Leo Famulari <leo@famulari.name>
@@ -17,18 +17,18 @@
 ;;; Copyright © 2016, 2017 Troy Sankey <sankeytms@gmail.com>
 ;;; Copyright © 2016, 2017, 2018 Nikita <nikita@n0.is>
 ;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2016–2022 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2016, 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com>
-;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2022 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017, 2018, 2020 Rene Saavedra <pacoon@protonmail.com>
 ;;; Copyright © 2018, 2019, 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2019, 2020 Tanguy Le Carrour <tanguy@bioneland.org>
+;;; Copyright © 2019, 2020, 2021 Tanguy Le Carrour <tanguy@bioneland.org>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2020 Justus Winter <justus@sequoia-pgp.org>
 ;;; Copyright © 2020 Eric Brown <ecbrown@ericcbrown.com>
@@ -40,8 +40,11 @@
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
 ;;; Copyright © 2020 divoplade <d@divoplade.fr>
+;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
 ;;; Copyright © 2021 Benoit Joly <benoit@benoitj.ca>
+;;; Copyright © 2021 Morgan Smith <Morgan.J.Smith@outlook.com>
+;;; Copyright © 2021 Philip McGrath <philip@philipmcgrath.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -59,6 +62,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages mail)
+  #:use-module (guix gexp)
   #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
@@ -106,6 +110,7 @@
   #:use-module (gnu packages language)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages libevent)
+  #:use-module (gnu packages libffi)
   #:use-module (gnu packages libidn)
   #:use-module (gnu packages libunistring)
   #:use-module (gnu packages libunwind)
@@ -211,8 +216,7 @@
        ("automake" ,automake)
        ("gettext" ,gettext-minimal)))
     (inputs
-     `(("ncurses" ,ncurses)
-       ("readline" ,readline)))
+     (list ncurses readline))
     (home-page "https://abook.sourceforge.io/")
     (synopsis "Text-based address book")
     (description
@@ -236,18 +240,15 @@ mail client.")
          "0dvm6acl32dv8bixx9z50gzwfp6kj4kxnn1j3dcwjlp7sasjp41s"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("automake" ,automake)
-       ("autoconf" ,autoconf)
-       ("gettext" ,gettext-minimal)
-       ("m4" ,m4)))                     ;for the test suite
+     (list automake autoconf gettext-minimal m4))                     ;for the test suite
     (inputs
-     `(("gdbm" ,gdbm)
-       ("gnutls" ,gnutls)
-       ("gpgme" ,gpgme)
-       ("gsasl" ,gsasl)
-       ("guile" ,guile-3.0)
-       ("libgcrypt" ,libgcrypt)         ;gnutls support depends on libgcrypt
-       ("libgpg-error" ,libgpg-error)))
+     (list gdbm
+           gnutls
+           gpgme
+           gsasl
+           guile-3.0
+           libgcrypt ;gnutls support depends on libgcrypt
+           libgpg-error))
     (outputs '("out" "debug"))
     (synopsis "SMTP message submission daemon")
     (description "Anubis is a daemon that sits between the Mail User
@@ -261,88 +262,88 @@ example, modify the message headers or body, or encrypt or sign the message.")
 (define-public mailutils
   (package
     (name "mailutils")
-    (version "3.13")
+    (version "3.14")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/mailutils/mailutils-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1iwl82d6aa2acsdxbqh1s5xx44sg83b4yxqik408m1s9rcfrf86r"))
+               "0fbi2b144mgblq9qhdyhj9855mbglzr8fr23rnps8icbxa7v7if0"))
              (patches
               (search-patches "mailutils-variable-lookup.patch"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'prepare-test-suite
-           (lambda _
-             ;; Use the right file name for `cat'.
-             (substitute* "testsuite/lib/mailutils.exp"
-               (("/bin/cat")
-                (which "cat")))
-
-             ;; Tests try to invoke 'mda' such that it looks up the
-             ;; 'root' user, which does not exist in the build
-             ;; environment.
-             (substitute* '("mda/mda/tests/testsuite"
-                            "mda/lmtpd/tests/testsuite")
-               (("root <")         "nobody <")
-               (("spool/root")     "spool/nobody")
-               (("root@localhost") "nobody@localhost"))
-
-             ;; The 'pipeact.at' tests generate a shell script; make
-             ;; sure it uses the right shell.
-             (substitute* '("sieve/tests/testsuite"
-                            "mh/tests/testsuite"
-                            "libmailutils/tests/lock.at")
-               (("#! ?/bin/sh")
-                (string-append "#!" (which "sh"))))
-
-             (substitute* "mh/tests/testsuite"
-               (("moreproc: /bin/cat")
-                (string-append "moreproc: " (which "cat"))))
-
-             ;; XXX: The comsatd tests rely on being able to open
-             ;; /dev/tty, but that gives ENODEV in the build
-             ;; environment.  Thus, ignore test failures here.
-             (substitute* "comsat/tests/Makefile.in"
-               (("\\$\\(SHELL\\) \\$\\(TESTSUITE\\)" all)
-                (string-append "-" all)))
-
-             ;; XXX: The ‘moderator: program discard’ test does not specify
-             ;; an explicit From: but does expect an exact match.  But why are
-             ;; all other tests unaffected?
-             (substitute* "sieve/tests/testsuite"
-               (("gray@")
-                "nixbld@"))
-
-             ;; 'frm' tests expect write access to $HOME.
-             (setenv "HOME" (getcwd))
-
-             ;; Avoid the message "I'm going to create the standard MH path
-             ;; for you", which would lead to one test failure (when diffing
-             ;; stdout of 'fmtcheck'.)
-             (call-with-output-file ".mh_profile"
-               (lambda (port)
-                 (format port "Path: ~a/Mail-for-tests~%"
-                         (getcwd))))
-
-             (substitute* "imap4d/tests/testclient.c"
-               (("\"/bin/sh\"")
-                (string-append "\"" (which "sh") "\""))))))
-       #:configure-flags
-       (list "--sysconfdir=/etc"
-
-             ;; Add "/X.Y" to the installation directory.
-             (string-append "--with-guile-site-dir="
-                            (assoc-ref %outputs "out")
-                            "/share/guile/site/"
-                            ,(match (assoc "guile"
-                                           (package-inputs this-package))
-                               (("guile" guile)
-                                (version-major+minor
-                                 (package-version guile))))))))
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (add-before 'check 'prepare-test-suite
+                 (lambda _
+                   ;; Use the right file name for `cat'.
+                   (substitute* "testsuite/lib/mailutils.exp"
+                     (("/bin/cat")
+                      (which "cat")))
+
+                   ;; Tests try to invoke 'mda' such that it looks up the
+                   ;; 'root' user, which does not exist in the build
+                   ;; environment.
+                   (substitute* '("mda/mda/tests/testsuite"
+                                  "mda/lmtpd/tests/testsuite")
+                     (("root <")         "nobody <")
+                     (("spool/root")     "spool/nobody")
+                     (("root@localhost") "nobody@localhost"))
+
+                   ;; The 'pipeact.at' tests generate a shell script; make
+                   ;; sure it uses the right shell.
+                   (substitute* '("sieve/tests/testsuite"
+                                  "mh/tests/testsuite"
+                                  "libmailutils/tests/lock.at")
+                     (("#! ?/bin/sh")
+                      (string-append "#!" (which "sh"))))
+
+                   (substitute* "mh/tests/testsuite"
+                     (("moreproc: /bin/cat")
+                      (string-append "moreproc: " (which "cat"))))
+
+                   ;; XXX: The comsatd tests rely on being able to open
+                   ;; /dev/tty, but that gives ENODEV in the build
+                   ;; environment.  Thus, ignore test failures here.
+                   (substitute* "comsat/tests/Makefile.in"
+                     (("\\$\\(SHELL\\) \\$\\(TESTSUITE\\)" all)
+                      (string-append "-" all)))
+
+                   ;; XXX: The ‘moderator: program discard’ test does not
+                   ;; specify an explicit From: but does expect an exact
+                   ;; match.  But why are all other tests unaffected?
+                   (substitute* "sieve/tests/testsuite"
+                     (("gray@")
+                      "nixbld@"))
+
+                   ;; 'frm' tests expect write access to $HOME.
+                   (setenv "HOME" (getcwd))
+
+                   ;; Avoid the message "I'm going to create the standard MH
+                   ;; path for you", which would lead to one test failure
+                   ;; (when diffing stdout of 'fmtcheck'.)
+                   (call-with-output-file ".mh_profile"
+                     (lambda (port)
+                       (format port "Path: ~a/Mail-for-tests~%"
+                               (getcwd))))
+
+                   (substitute* "imap4d/tests/testclient.c"
+                     (("\"/bin/sh\"")
+                      (string-append "\"" (which "sh") "\""))))))
+           #:configure-flags
+           #~(list "--sysconfdir=/etc"
+
+                   ;; Add "/X.Y" to the installation directory.
+                   (string-append "--with-guile-site-dir="
+                                  (assoc-ref %outputs "out")
+                                  "/share/guile/site/"
+                                  #$(match (assoc "guile"
+                                                  (package-inputs this-package))
+                                      (("guile" guile)
+                                       (version-major+minor
+                                        (package-version guile))))))))
     (native-inputs
      ;; Regeneration of the build system is triggered by touching the
      ;; 'libmailutils/tests/lock.at' file.
@@ -355,17 +356,17 @@ example, modify the message headers or body, or encrypt or sign the message.")
        ("texinfo" ,texinfo)
        ("dejagnu" ,dejagnu)))
     (inputs
-     `(("guile" ,guile-3.0)
-       ("gsasl" ,gsasl)
-       ("gnutls" ,gnutls)
-       ("ncurses" ,ncurses)
-       ("readline" ,readline)
-       ("linux-pam" ,linux-pam)
-       ("libltdl" ,libltdl)
-       ("gdbm" ,gdbm)
-       ;; Required for SEARCH CHARSET.
-       ("libiconv" ,libiconv)
-       ("libunistring" ,libunistring)))
+     (list guile-3.0
+           gsasl
+           gnutls
+           ncurses
+           readline
+           linux-pam
+           libltdl
+           gdbm
+           ;; Required for SEARCH CHARSET.
+           libiconv
+           libunistring))
     (home-page "https://mailutils.org")
     (synopsis "Utilities and library for reading and serving mail")
     (description
@@ -414,12 +415,11 @@ software.  GNU Mailutils provides the following commands:
       (arguments
        `(#:import-path "gitlab.com/shackra/goimapnotify"))
       (propagated-inputs
-       `(("go-github-com-emersion-go-imap" ,go-github-com-emersion-go-imap)
-         ("go-github-com-emersion-go-imap-idle" ,go-github-com-emersion-go-imap-idle)
-         ("go-github-com-emersion-go-sasl" ,go-github-com-emersion-go-sasl)
-         ("go-github-com-sirupsen-logrus" ,go-github-com-sirupsen-logrus)
-         ("go-golang-org-x-text" ,go-golang-org-x-text)))
-      (synopsis "Execute scripts on IMAP mailbox changes.")
+       (list go-github-com-emersion-go-imap
+             go-github-com-emersion-go-imap-idle
+             go-github-com-emersion-go-sasl go-github-com-sirupsen-logrus
+             go-golang-org-x-text))
+      (synopsis "Execute scripts on IMAP mailbox changes")
       (description
        "Script to execute scripts on IMAP mailbox changes (new/deleted/updated
 messages) using IDLE.  Implemented in Go.")
@@ -431,11 +431,8 @@ messages) using IDLE.  Implemented in Go.")
     (inherit mailutils)
     (name "guile2.2-mailutils")
     (inputs
-     `(("guile" ,guile-2.2)
-       ,@(alist-delete "guile" (package-inputs mailutils))))))
-
-(define-public guile3.0-mailutils
-  (deprecated-package "guile3.0-mailutils" mailutils))
+     (modify-inputs (package-inputs mailutils)
+       (replace "guile" guile-2.2)))))
 
 (define-public nullmailer
   (package
@@ -499,9 +496,9 @@ messages) using IDLE.  Implemented in Go.")
              #t)))))
     (native-inputs
      ;; For tests.
-     `(("daemontools" ,daemontools)))   ; for svc
+     (list daemontools))   ; for svc
     (inputs
-     `(("gnutls" ,gnutls)))
+     (list gnutls))
     (home-page "https://untroubled.org/nullmailer/")
     (synopsis "Simple relay-only mail transfer agent")
     (description
@@ -521,7 +518,7 @@ to run without any changes.")
 (define-public fetchmail
   (package
     (name "fetchmail")
-    (version "6.4.22")
+    (version "6.4.23")
     (source
      (origin
        (method url-fetch)
@@ -529,10 +526,10 @@ to run without any changes.")
                            (version-major+minor version) "/"
                            "fetchmail-" version ".tar.xz"))
        (sha256
-        (base32 "111cc6zfmb53f2a844iiyp3j2symcg8xd4m2kwb04mj3b6yihs6c"))))
+        (base32 "001394gxji89hfh6jcdrmv9ndimdsz7bndd55i516c8lfc9mwyjz"))))
     (build-system gnu-build-system)
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (arguments
      `(#:configure-flags
        (list (string-append "--with-ssl="
@@ -556,7 +553,7 @@ aliasing facilities to work just as they would on normal mail.")
 (define-public mutt
   (package
     (name "mutt")
-    (version "2.1.3")
+    (version "2.1.5")
     (source (origin
              (method url-fetch)
              (uri (list
@@ -566,18 +563,18 @@ aliasing facilities to work just as they would on normal mail.")
                                    version ".tar.gz")))
              (sha256
               (base32
-               "0z74slnq3y9wr1xr07jigz4n8dgxhk9qb0787sd0j6wj9g4rqxgg"))
+               "1q1bq5qfv67s6ynbqga19ifaprgavhdbgg154kb9ffingvj0k8wj"))
              (patches (search-patches "mutt-store-references.patch"))))
     (build-system gnu-build-system)
     (inputs
-     `(("cyrus-sasl" ,cyrus-sasl)
-       ("gdbm" ,gdbm)
-       ("gpgme" ,gpgme)
-       ("libidn2" ,libidn2)
-       ("ncurses" ,ncurses)
-       ("openssl" ,openssl)
-       ("perl" ,perl)
-       ("sqlite" ,sqlite)))
+     (list cyrus-sasl
+           gdbm
+           gpgme
+           libidn2
+           ncurses
+           openssl
+           perl
+           sqlite))
     (arguments
      `(#:configure-flags '("--enable-smtp"
                            "--enable-imap"
@@ -603,7 +600,7 @@ operating systems.")
 (define-public neomutt
   (package
     (name "neomutt")
-    (version "20210205")
+    (version "20211029")
     (source
      (origin
        (method git-fetch)
@@ -612,22 +609,22 @@ operating systems.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "15kr9nvb4j8lx5rl2yapv231rbp4sbn709vv82pfhx5717x3yf00"))))
+        (base32 "1ad05k98z9r317k2hhxbgdic00iha5r0k0f8224anz60i9kc78w5"))))
     (build-system gnu-build-system)
     (inputs
-     `(("cyrus-sasl" ,cyrus-sasl)
-       ("gdbm" ,gdbm)
-       ("gpgme" ,gpgme)
-       ("ncurses" ,ncurses)
-       ("gnutls" ,gnutls)
-       ("openssl" ,openssl)             ; for S/MIME
-       ("perl" ,perl)
-       ("kyotocabinet" ,kyotocabinet)
-       ("libxslt" ,libxslt)
-       ("libidn2" ,libidn2)
-       ("libxml2" ,libxml2)
-       ("lmdb" ,lmdb)
-       ("notmuch" ,notmuch)))
+     (list cyrus-sasl
+           gdbm
+           gpgme
+           ncurses
+           gnutls
+           openssl ; for S/MIME
+           perl
+           kyotocabinet
+           libxslt
+           libidn2
+           libxml2
+           lmdb
+           notmuch))
     (native-inputs
      `(("automake" ,automake)
        ("gettext-minimal" ,gettext-minimal)
@@ -704,8 +701,7 @@ operating systems.")
              (copy-recursively (assoc-ref inputs "neomutt-test-files") "tests")
              (with-directory-excursion "tests"
                (setenv "NEOMUTT_TEST_DIR" (getcwd)) ; must be absolute
-               (invoke "bash" "setup.sh")
-               #t))))))
+               (invoke "bash" "setup.sh")))))))
     (home-page "https://neomutt.org/")
     (synopsis "Command-line mail reader based on Mutt")
     (description
@@ -727,15 +723,12 @@ It adds a large amount of new and improved features to mutt.")
                 "0i3xfc84qn1z99i70q68kbnp9rmgqrnprqb418ba52s6g9j9dsia"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("gnupg" ,gnupg)                 ; for tests only
-       ("gobject-introspection" ,gobject-introspection)))
-    (inputs `(("glib" ,glib)
-              ("gpgme" ,gpgme)
-              ("zlib" ,zlib)))
+     (list pkg-config gnupg ; for tests only
+           gobject-introspection vala))
+    (inputs (list glib gpgme zlib))
     (arguments
      `(#:configure-flags
-         (list "--enable-introspection=yes")
+         (list "--enable-introspection=yes" "--enable-vapigen=yes")
        #:phases
        (modify-phases %standard-phases
          (add-after
@@ -841,7 +834,7 @@ mailpack.  What can alterMIME do?
 (define-public astroid
   (package
     (name "astroid")
-    (version "0.15")
+    (version "0.16")
     (source
      (origin
        (method git-fetch)
@@ -850,14 +843,13 @@ mailpack.  What can alterMIME do?
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "11cxbva9ni98gii59xmbxh4c6idcg3mg0pgdsp1c3j0yg7ix0lj3"))
+        (base32 "17m99llggkg7xg72k8xaf7iipax7sgfhqa2a1qnlylndwa42f57b"))
        (modules '((guix build utils)))
        (snippet
         '(begin
            ;; https://github.com/astroidmail/astroid/pull/685
            (substitute* "tests/test_composed_message.cc"
-             (("\\\\n\\.\\.\\.") "\\n...\\n"))
-           #t))))
+             (("\\\\n\\.\\.\\.") "\\n...\\n"))))))
     (build-system cmake-build-system)
     (arguments
      `(#:modules ((guix build cmake-build-system)
@@ -876,8 +868,7 @@ mailpack.  What can alterMIME do?
            ;; ValueError: Namespace Astroid not available
            (lambda _
              (substitute* "tests/CMakeLists.txt"
-               ((".*markdown.*") ""))
-             #t))
+               ((".*markdown.*") ""))))
          (replace 'build
            (lambda _
              (invoke "ninja" "-j" (number->string (parallel-job-count)))))
@@ -886,14 +877,12 @@ mailpack.  What can alterMIME do?
              (let ((xorg-server (assoc-ref inputs "xorg-server")))
                (setenv "HOME" (getcwd))
                (system (format #f "~a/bin/Xvfb :1 &" xorg-server))
-               (setenv "DISPLAY" ":1")
-               #t)))
+               (setenv "DISPLAY" ":1"))))
          (replace 'check
            (lambda* (#:key tests? #:allow-other-keys)
              (when tests?
                (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
-               (invoke "ctest" "."))
-             #t))
+               (invoke "ctest" "."))))
          (replace 'install
            (lambda _
              (invoke "ninja" "install")))
@@ -910,35 +899,34 @@ mailpack.  What can alterMIME do?
                                         #f))))
                                inputs)))
                (wrap-program (string-append out "/bin/astroid")
-                 `("GI_TYPELIB_PATH" ":" prefix ,(filter identity paths))))
-             #t))
+                 `("GI_TYPELIB_PATH" ":" prefix ,(filter identity paths))))))
          (add-after 'install 'glib-or-gtk-compile-schemas
            (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
          (add-after 'install 'glib-or-gtk-wrap
            (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
     (native-inputs
-     `(("glib-networking" ,glib-networking)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gnupg" ,gnupg)
-       ("ninja" ,ninja)
-       ("pkg-config" ,pkg-config)
-       ("ronn" ,ronn)
-       ("w3m" ,w3m)
-       ("xorg-server" ,xorg-server)))
+     (list glib-networking
+           gsettings-desktop-schemas
+           gnupg
+           ninja
+           pkg-config
+           ronn
+           w3m
+           xorg-server-for-tests))
     (inputs
-     `(("boost" ,boost)
-       ("gmime" ,gmime)
-       ("gobject-introspection" ,gobject-introspection) ; it is referenced
-       ("gtkmm" ,gtkmm)
-       ("libpeas" ,libpeas)
-       ("libsass" ,libsass)
-       ("notmuch" ,notmuch)
-       ("protobuf" ,protobuf)
-       ("python" ,python-wrapper)
-       ("python-pygobject" ,python-pygobject)
-       ("webkitgtk" ,webkitgtk)))
+     (list boost
+           gmime
+           gobject-introspection        ; it is referenced
+           gtkmm-3
+           libpeas
+           libsass
+           notmuch
+           protobuf
+           python-wrapper
+           python-pygobject
+           webkitgtk-with-libsoup2))
     (propagated-inputs
-     `(("adwaita-icon-theme" ,adwaita-icon-theme))) ; Required for the thread view
+     (list adwaita-icon-theme)) ; Required for the thread view
     (home-page "https://astroidmail.github.io/")
     (synopsis "GTK frontend to the notmuch mail system")
     (description
@@ -1027,7 +1015,7 @@ MIME-encoded email package.")
                    (("/usr") ""))       ; This allows the man page to install.
                  #t))))))
       (native-inputs
-       `(("python" ,python)))           ; for tests
+       (list python))           ; for tests
       (synopsis "MIME type associations for file types")
       (description
        "This package provides MIME type associations for file types.")
@@ -1056,8 +1044,8 @@ MIME-encoded email package.")
                (("GREP=/bin/grep")
                 (string-append "GREP=" (which "grep") "\n")))
              #t)))))
-    (native-inputs `(("flex" ,flex)))
-    (inputs `(("bdb" ,bdb)))
+    (native-inputs (list flex))
+    (inputs (list bdb))
     (home-page "https://bogofilter.sourceforge.io/")
     (synopsis "Mail classifier based on a Bayesian filter")
     (description
@@ -1087,11 +1075,9 @@ and corrections.  It is based on a Bayesian filter.")
                   "0nzh5dcc559jfw4yy12gc98s17w82b15zxikspc6apd8filmk9xg"))))
       (build-system python-build-system)
       (native-inputs
-       `(("asciidoc" ,asciidoc)))
+       (list asciidoc))
       (inputs
-       `(("python-distro" ,python-distro)
-         ("python-imaplib2" ,python-imaplib2)
-         ("python-rfc6555" ,python-rfc6555)))
+       (list python-distro python-imaplib2 python-rfc6555))
       (arguments
        `(;; Tests require a modifiable IMAP account.
          #:tests? #f
@@ -1132,10 +1118,10 @@ repository and Maildir/IMAP as LOCAL repository.")
                (base32
                 "0ixzyq33l6j34410kqav3lwn2wx171zvqd3irvns2jvhrbww8i6g"))))
     (native-inputs
-     `(("emacs" ,emacs)))
+     (list emacs))
     (propagated-inputs
-     `(("ruby-sqlite3" ,ruby-sqlite3) ; optional for the database of messages
-       ("ruby" ,ruby))) ; to set GEM_PATH so ruby-sqlite3 is found at runtime
+     (list ruby-sqlite3 ; optional for the database of messages
+           ruby)) ; to set GEM_PATH so ruby-sqlite3 is found at runtime
     (build-system gnu-build-system)
     (arguments
      (let ((elisp-dir "/share/emacs/site-lisp")
@@ -1174,7 +1160,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
 (define-public mu
   (package
     (name "mu")
-    (version "1.6.6")
+    (version "1.6.10")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/djcb/mu/releases/"
@@ -1182,7 +1168,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
                                   "mu-" version ".tar.xz"))
               (sha256
                (base32
-                "1da3ykqnba3axggxyzsh3kjhy0rbdfdh9pnwprbzww56y8h3vka2"))))
+                "1dh0x4lqnjflb0k8fybr5clqjxv35scf055g1590pr5znam29hhb"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -1190,10 +1176,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
        ("emacs" ,emacs-minimal)
        ("tzdata" ,tzdata-for-tests)))   ; for mu/test/test-mu-query.c
     (inputs
-     `(("xapian" ,xapian)
-       ("guile" ,guile-3.0)
-       ("glib" ,glib)
-       ("gmime" ,gmime)))
+     (list xapian guile-3.0 glib gmime))
     (arguments
      `(#:modules ((guix build gnu-build-system)
                   (guix build utils)
@@ -1227,8 +1210,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
            (lambda* (#:key inputs #:allow-other-keys)
              ;; For mu/test/test-mu-query.c
              (setenv "TZDIR"
-                     (string-append (assoc-ref inputs "tzdata")
-                                    "/share/zoneinfo"))))
+                     (search-input-directory inputs "share/zoneinfo"))))
          (add-after 'install 'install-emacs-autoloads
            (lambda* (#:key outputs #:allow-other-keys)
              (emacs-generate-autoloads
@@ -1239,7 +1221,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
     (synopsis "Quickly find emails")
     (description
      "Mu is a tool for dealing with e-mail messages stored in the
-Maildir-format.  Mu's purpose in life is to help you to quickly find the
+Maildir format.  Mu's purpose in life is to help you to quickly find the
 messages you need; in addition, it allows you to view messages, extract
 attachments, create new maildirs, and so on.")
     (license license:gpl3+)))
@@ -1247,7 +1229,7 @@ attachments, create new maildirs, and so on.")
 (define-public alot
   (package
     (name "alot")
-    (version "0.9.1")
+    (version "0.10")
     (source (origin
               (method git-fetch)
               ;; package author intends on distributing via github rather
@@ -1259,7 +1241,7 @@ attachments, create new maildirs, and so on.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0s94m17yph1gq9f2svipb3bbwbw1s4j3zf2xkg5h91006v8286r6"))))
+                "0awf1phdy1wqm01cy9zmvqlw6c8pvkxm2f9ncjd0cmzxqnmq1dyn"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -1278,20 +1260,23 @@ attachments, create new maildirs, and so on.")
           (substitute* "tests/commands/test_global.py"
             (("def test_no_spawn_no_stdin_attached")
              "def _test_no_spawn_no_stdin_attached"))
+          ;; FIXME: Investigate why this test hangs.
+          (substitute* "tests/db/test_manager.py"
+            (("def test_save_named_query")
+             "def _test_save_named_query"))
           #t)))))
     (native-inputs
-     `(("procps" ,procps)
-       ("python-mock" ,python-mock)))
+     (list procps python-mock))
     (inputs
-     `(("gnupg" ,gnupg)
-       ("python-magic" ,python-magic)
-       ("python-configobj" ,python-configobj)
-       ("python-twisted" ,python-twisted)
-       ("python-service-identity" ,python-service-identity)
-       ("python-urwid" ,python-urwid)
-       ("python-urwidtrees" ,python-urwidtrees)
-       ("python-gpg" ,python-gpg)
-       ("python-notmuch" ,python-notmuch)))
+     (list gnupg
+           python-magic
+           python-configobj
+           python-twisted
+           python-service-identity
+           python-urwid
+           python-urwidtrees
+           python-gpg
+           python-notmuch2))
     (home-page "https://github.com/pazz/alot")
     (synopsis "Command-line MUA using Notmuch")
     (description
@@ -1321,11 +1306,8 @@ Notmuch.")
          (file-name (string-append name "-" version "-checkout"))))
       (build-system python-build-system)
       (inputs
-       `(("python-notmuch" ,python-notmuch)
-         ("python-pygobject" ,python-pygobject)
-         ("gobject-introspection" ,gobject-introspection)
-         ("libnotify" ,libnotify)
-         ("gtk+" ,gtk+)))
+       (list python-notmuch python-pygobject gobject-introspection
+             libnotify gtk+))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
@@ -1334,7 +1316,7 @@ Notmuch.")
                (let* ((out (assoc-ref outputs "out"))
                       (bin (string-append out "/bin/notifymuch")))
                  (wrap-program bin
-                   `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
+                   `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
                    `("GI_TYPELIB_PATH" ":" prefix
                      (,(getenv "GI_TYPELIB_PATH")
                       ,(string-append out "/lib/girepository-1.0")))))
@@ -1353,14 +1335,14 @@ invoking @command{notifymuch} from the post-new hook.")
 (define-public notmuch
   (package
     (name "notmuch")
-    (version "0.33.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://notmuchmail.org/releases/notmuch-"
-                                  version ".tar.xz"))
-              (sha256
-               (base32
-                "1lhhkg9aw2ychj8lvkmk4bnj7rjz3v9w9r7sdp8bqjpfv41mz41d"))))
+    (version "0.34.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://notmuchmail.org/releases/notmuch-"
+                           version ".tar.xz"))
+       (sha256
+        (base32 "1278r8x8l2hsxg8plbfk7w2md0fagdm243lm7df5m0gx7d411s9z"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
@@ -1388,26 +1370,21 @@ invoking @command{notifymuch} from the post-new hook.")
                       (substitute* (find-files "test" "\\.sh$")
                         (("/bin/sh") (which "sh"))))))))
     (native-inputs
-     `(("bash-completion" ,bash-completion)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python)
-       ("python-docutils" ,python-docutils)
-       ("sphinx" ,python-sphinx)
-       ("texinfo" ,texinfo)
-
-       ;; The following are required for tests only.
-       ("emacs" ,emacs-no-x)    ; -minimal lacks libxml, needed for some tests
-       ("which" ,which)
-       ("dtach" ,dtach)
-       ("gnupg" ,gnupg)
-       ("man" ,man-db)
-       ("perl" ,perl)))
+     (list bash-completion
+           pkg-config
+           python
+           python-docutils
+           python-sphinx
+           texinfo
+           ;; The following are required for tests only.
+           emacs-no-x ; -minimal lacks libxml, needed for some tests
+           which
+           dtach
+           gnupg
+           man-db
+           perl))
     (inputs
-     `(("glib" ,glib)
-       ("gmime" ,gmime)
-       ("talloc" ,talloc)
-       ("xapian" ,xapian)
-       ("zlib" ,zlib)))
+     (list glib gmime talloc xapian zlib))
     (home-page "https://notmuchmail.org/")
     (synopsis "Thread-based email index, search, and tagging")
     (description
@@ -1422,7 +1399,7 @@ ing, and tagging large collections of email messages.")
     (build-system emacs-build-system)
     (native-inputs '())
     (inputs
-     `(("notmuch" ,notmuch)))
+     (list notmuch))
     (arguments
      `(#:exclude (cons* "make-deps.el" "rstdoc.el" %default-exclude)
        #:phases
@@ -1470,10 +1447,9 @@ system.")))
                                   (assoc-ref outputs "out") "/bin")))
                         (install-file "notmuch-addrlookup" bin)))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("notmuch" ,notmuch)))
+     (list glib notmuch))
     (home-page "https://github.com/aperezdc/notmuch-addrlookup-c")
     (synopsis "Address lookup tool for Notmuch")
     (description "This is an address lookup tool using a Notmuch database,
@@ -1488,7 +1464,7 @@ useful for email address completion.")
     ;; bindings are distributed via the notmuch release tarball.
     (source (package-source notmuch))
     (build-system python-build-system)
-    (inputs `(("notmuch" ,notmuch)))
+    (inputs (list notmuch))
     (arguments
      `(#:tests? #f  ; no "test" target
        #:phases
@@ -1515,6 +1491,21 @@ and search library.")
 (define-public python2-notmuch
   (package-with-python2 python-notmuch))
 
+(define-public python-notmuch2
+  (package
+    (inherit python-notmuch)
+    (name "python-notmuch2")
+    (propagated-inputs (list python-cffi))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; This python package lives in a subdirectory of the notmuch source
+         ;; tree, so chdir into it before building.
+         (add-after 'unpack 'enter-python-dir
+           (lambda _ (chdir "bindings/python-cffi"))))))
+    (synopsis "Pythonic bindings for the notmuch mail database using CFFI")
+    (license license:gpl3+)))
+
 (define-public muchsync
   (package
     (name "muchsync")
@@ -1528,13 +1519,9 @@ and search library.")
         (base32 "1s799kx16nm5ry1fcqcc0grgxrwnnp4cnzd0hzwbkvc5v2sf6g8b"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pandoc" ,pandoc)
-       ("pkg-config" ,pkg-config)))
+     (list pandoc pkg-config))
     (inputs
-     `(("libcrypto" ,openssl)
-       ("notmuch" ,notmuch)
-       ("sqlite" ,sqlite)
-       ("xapian" ,xapian)))
+     (list openssl notmuch sqlite xapian))
     (home-page "http://www.muchsync.org/")
     (synopsis "Synchronize notmuch mail across machines")
     (description
@@ -1550,19 +1537,19 @@ pairs have previously synchronized.")
 (define-public getmail
   (package
     (name "getmail")
-    (version "5.15")
+    (version "5.16")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "http://pyropus.ca/software/getmail/old-versions/"
+       (uri (string-append "https://pyropus.ca/software/getmail/old-versions/"
                            "getmail-" version ".tar.gz"))
        (sha256
-        (base32 "0ahn2jyj4ka996qzs99id59pwxv6sqxp61g7drcf53rzzigq0lyl"))))
+        (base32 "1yk7lrndbfsrbdxikwzdqvadryqsldalxdn3a184dg4sxzmgis3a"))))
     (build-system python-build-system)
     (arguments
-     `(#:tests? #f                      ; no tests
-       #:python ,python-2))
-    (home-page "http://pyropus.ca/software/getmail/")
+     (list #:tests? #f                  ; no tests
+           #:python python-2))
+    (home-page "https://pyropus.ca/software/getmail/")
     (synopsis "Mail retriever")
     (description
      "A flexible, extensible mail retrieval system with support for
@@ -1586,19 +1573,13 @@ useful features.")
              (sha256
                (base32 "0g7an003simfdn7ihg9yjv7hl2czsmjsndjrp39i7cad8icixscn"))))
     (build-system gnu-build-system)
-    (native-inputs `(("autoconf" ,autoconf)
-                     ("automake" ,automake)
-                     ("libtool" ,libtool)
-                     ("pkg-config" ,pkg-config)))
+    (native-inputs (list autoconf automake libtool pkg-config))
     (propagated-inputs
      ;; 'libetpan-config --libs' returns '-lssl -lcrypto -lsasl2', so these
      ;; libraries need to be propagated.
-     `(("cyrus-sasl" ,cyrus-sasl)
-       ("openssl" ,openssl)))
+     (list cyrus-sasl openssl))
     (inputs
-     `(("curl" ,curl)
-       ("expat" ,expat)
-       ("zlib" ,zlib)))
+     (list curl expat zlib))
     (arguments
       '(#:configure-flags
         '("--disable-static" "--disable-db")))
@@ -1661,73 +1642,69 @@ compresses it.")
          (add-after 'unpack 'patch-source
            (lambda* (#:key inputs #:allow-other-keys)
              ;; Use absolute paths to referenced programs.
-             (let* ((mailutils (assoc-ref inputs "mailutils"))
-                    (inc (string-append mailutils "/bin/mu-mh/inc"))
-                    (send-mail (assoc-ref inputs "sendmail"))
-                    (sendmail (string-append send-mail "/sbin/sendmail")))
-               (substitute* "src/common/defs.h"
-                 (("/usr/bin/mh/inc") inc)
-                 (("/usr/sbin/sendmail") sendmail)))))
+             (substitute* "src/common/defs.h"
+               (("/usr/bin/mh/inc")
+                (search-input-file inputs "/bin/mu-mh/inc"))
+               (("/usr/sbin/sendmail")
+                (search-input-file inputs "/sbin/sendmail")))))
          (add-before 'build 'patch-mime
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "src/procmime.c"
                (("/usr/share/mime/globs")
-                (string-append (assoc-ref inputs "shared-mime-info")
-                               "/share/mime/globs"))))))))
+                (search-input-file inputs "/share/mime/globs"))))))))
     (native-inputs
-     `(("bison" ,bison)
-       ;;("docbook-utils" ,docbook-utils)
-       ("flex" ,flex)
-       ("gettext-minimal" ,gettext-minimal)
-       ("gobject-introspection" ,gobject-introspection)
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list bison
+           ;;("docbook-utils" ,docbook-utils)
+           flex
+           gettext-minimal
+           gobject-introspection
+           intltool
+           pkg-config))
     (inputs
-     `(("bogofilter" ,bogofilter)
-       ("cairo" ,cairo)
-       ("compface" ,compface)
-       ("curl" ,curl)
-       ("dbus" ,dbus)
-       ("dbus-glib" ,dbus-glib)
-       ("enchant" ,enchant)
-       ("expat" ,expat)
-       ("fontconfig" ,fontconfig)
-       ("gdk-pixbuf+svg" ,gdk-pixbuf+svg)
-       ("ghostscript" ,ghostscript)
-       ("glib" ,glib)
-       ("gnupg" ,gnupg)
-       ("gnutls" ,gnutls)
-       ("gpgme" ,gpgme)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gtk+" ,gtk+)
-       ("gumbo-parser" ,gumbo-parser)
-       ;;("j-pilot" ,j-pilot)
-       ("libarchive" ,libarchive)
-       ("libcanberra" ,libcanberra)
-       ("libetpan" ,libetpan)
-       ("libgdata" ,libgdata)
-       ("libical" ,libical)
-       ("libindicator" ,libindicator)
-       ("libnotify" ,libnotify)
-       ("librsvg" ,librsvg)
-       ("libsm" ,libsm)
-       ("libsoup" ,libsoup)
-       ("libxml2" ,libxml2)
-       ("mailutils" ,mailutils)
-       ("nettle" ,nettle)
-       ("network-manager" ,network-manager)
-       ("openldap" ,openldap)
-       ("perl" ,perl)
-       ("poppler" ,poppler)
-       ("python" ,python)
-       ("python-pygobject" ,python-pygobject)
-       ("sendmail" ,sendmail)
-       ("shared-mime-info" ,shared-mime-info)
-       ("startup-notification" ,startup-notification)
-       ;;("webkitgtk" ,webkitgtk)
-       ("ytnef" ,ytnef)))
+      (list bogofilter
+            cairo
+            compface
+            curl
+            dbus
+            dbus-glib
+            enchant
+            expat
+            fontconfig
+            ghostscript
+            glib
+            gnupg
+            gnutls
+            gpgme
+            gsettings-desktop-schemas
+            gtk+
+            gumbo-parser
+            ;;j-pilot
+            libarchive
+            libcanberra
+            libetpan
+            libgdata
+            libical
+            libindicator
+            libnotify
+            (librsvg-for-system)
+            libsm
+            libsoup
+            libxml2
+            mailutils
+            nettle
+            network-manager
+            openldap
+            perl
+            poppler
+            python
+            python-pygobject
+            sendmail
+            shared-mime-info
+            startup-notification
+            ;;webkitgtk
+            ytnef))
     (propagated-inputs
-     `(("dconf" ,dconf)))
+     (list dconf))
     (synopsis "GTK-based Email client")
     (description "Claws-Mail is an email client (and news reader) based on GTK+.
 The appearance and interface are designed to be familiar to new users coming
@@ -1740,22 +1717,19 @@ addons which can add many functionalities to the base client.")
 (define-public msmtp
   (package
     (name "msmtp")
-    (version "1.8.16")
+    (version "1.8.19")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://marlam.de/msmtp/releases/"
                            "/msmtp-" version ".tar.xz"))
        (sha256
-        (base32 "1n271yr83grpki9szdirnk6wb5rcc319f0gmfabyw3fzyf4msjy0"))))
+        (base32 "0ssj8izcw1fywihlip6wljd9i41w23cy0vp69sz4v1vn26cf389l"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libsecret" ,libsecret)
-       ("gnutls" ,gnutls)
-       ("zlib" ,zlib)
-       ("gsasl" ,gsasl)))
+     (list libsecret gnutls zlib gsasl))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://marlam.de/msmtp/")
     (arguments
      `(#:configure-flags (list "--with-libgsasl"
@@ -1777,8 +1751,9 @@ addons which can add many functionalities to the base client.")
                ;; Don't rely on netcat being in the PATH to test for a
                ;; connection, instead look up and ping debian.org.
                (substitute* (string-append bin "/msmtpq")
-                 (("EMAIL_CONN_TEST=n") "EMAIL_CONN_TEST=p"))
-               #t))))))
+                 (("EMAIL_CONN_TEST=n") "EMAIL_CONN_TEST=p"))))))))
+    (properties
+     '((release-monitoring-url . "https://marlam.de/msmtp/download/")))
     (synopsis
      "Simple and easy to use SMTP client with decent sendmail compatibility")
     (description
@@ -1817,9 +1792,7 @@ delivery.")
        ("libxt" ,libxt)
        ("libxaw" ,libxaw)))
     (native-inputs
-     `(("pcre" ,pcre "bin")
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)))
+     (list `(,pcre "bin") perl pkg-config))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1901,7 +1874,7 @@ facilities for checking incoming mail.")
   (package
     (name "dovecot")
     ;; Also update dovecot-pigeonhole when updating to a new minor version.
-    (version "2.3.16")
+    (version "2.3.17.1")
     (source
      (origin
        (method url-fetch)
@@ -1909,27 +1882,23 @@ facilities for checking incoming mail.")
                            (version-major+minor version) "/"
                            "dovecot-" version ".tar.gz"))
        (sha256
-        (base32 "04ngqv5mml5z0i4p7fkchp4xw2awy7x7mq2mim9frnav0m9iv9q3"))))
+        (base32 "1f525bvpjvi4rnwqjsqaqrbdii08sqmc1v8xq03m19w1vk6cqrqw"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("bzip2" ,bzip2)
-       ("clucene" ,clucene)
-       ("icu4c" ,icu4c)
-       ("libsodium" ,libsodium)         ; extra password algorithms
-       ("libstemmer" ,libstemmer)
-       ;; FIXME: The 'test-backtrace' tests fail on arm when using glibc's
-       ;; backtrace_symbol() function so fallback to using libunwind.
-       ,@(if (target-arm?)
-          `(("libunwind" ,libunwind))
-          '())
-       ("linux-pam" ,linux-pam)
-       ("lz4" ,lz4)
-       ("openssl" ,openssl)
-       ("sqlite" ,sqlite)
-       ("zlib" ,zlib)
-       ("zstd" ,zstd "lib")))
+     (list bzip2
+           clucene
+           icu4c
+           libsodium ; extra password algorithms
+           libstemmer
+           libunwind
+           linux-pam
+           lz4
+           openssl
+           sqlite
+           zlib
+           `(,zstd "lib")))
     (arguments
      `(#:configure-flags '("--sysconfdir=/etc"
                            "--localstatedir=/var"
@@ -1948,8 +1917,7 @@ facilities for checking incoming mail.")
                (("sleep") (which "sleep")))
              (substitute* (list "src/lib-smtp/test-bin/sendmail-exit-1.sh"
                                 "src/lib-smtp/test-bin/sendmail-success.sh")
-               (("cat") (which "cat")))
-             #t))
+               (("cat") (which "cat")))))
          (replace 'install
            (lambda* (#:key make-flags #:allow-other-keys)
              ;; Simple hack to avoid installing a trivial README in /etc.
@@ -1970,7 +1938,7 @@ It supports mbox/Maildir and its own dbox/mdbox formats.")
   (let ((dovecot-version (version-major+minor (package-version dovecot))))
     (package
       (name "dovecot-pigeonhole")
-      (version "0.5.16")
+      (version "0.5.17.1")
       (source
        (origin
          (method url-fetch)
@@ -1978,7 +1946,7 @@ It supports mbox/Maildir and its own dbox/mdbox formats.")
                "https://pigeonhole.dovecot.org/releases/" dovecot-version "/"
                "dovecot-" dovecot-version "-pigeonhole-" version ".tar.gz"))
          (sha256
-          (base32 "0f79qsiqnhaxn7mrrfcrnsjyv6357kzb7wa0chhfd69vwa06g8sw"))
+          (base32 "04j5z3y8yyci4ni9j9i7cy0zg1qj2sm9zfarmjcvs9vydpga7i1w"))
          (modules '((guix build utils)))
          (snippet
           '(begin
@@ -1987,8 +1955,7 @@ It supports mbox/Maildir and its own dbox/mdbox formats.")
              (substitute* "configure"
                (("doc/rfc/Makefile") ""))
              (substitute* "doc/Makefile.in"
-               (("rfc ") ""))
-             #t))))
+               (("rfc ") ""))))))
       (build-system gnu-build-system)
       (arguments
        `(#:configure-flags
@@ -2016,12 +1983,11 @@ It supports mbox/Maildir and its own dbox/mdbox formats.")
                  (substitute* "src/managesieve-login/managesieve-login-settings.c"
                    (("\\.executable = \"managesieve-login\"")
                     (string-append ".executable = \"" libexec
-                                   "/managesieve-login\"")))
-                 #t))))))
+                                   "/managesieve-login\"")))))))))
       (native-inputs
-       `(("pkg-config" ,pkg-config)))
+       (list pkg-config))
       (inputs
-       `(("dovecot" ,dovecot)))
+       (list dovecot))
       (home-page "https://pigeonhole.dovecot.org")
       (synopsis "Dovecot Sieve mail filtering plug-in and ManageSieve service")
       (description
@@ -2060,13 +2026,9 @@ scripts to prevent embarrassing errors later on.")
         (search-patches "dovecot-trees-support-dovecot-2.3.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("automake" ,automake)
-       ("autoconf" ,autoconf)
-       ("libtool" ,libtool)
-       ("dovecot" ,dovecot)
-       ("pkg-config" ,pkg-config)))
+     (list automake autoconf libtool dovecot pkg-config))
     (inputs
-     `(("libsodium" ,libsodium)))
+     (list libsodium))
     (arguments
      `(#:tests? #f ;No tests exist.
        #:configure-flags (list (string-append "--with-dovecot="
@@ -2111,13 +2073,9 @@ using libsodium sealed boxes.
            "13h07l7xy713zchnj2p9fhvq7fdl4zy1ai94li3ygkqjjj8hrgas"))))
       (build-system gnu-build-system)
       (native-inputs
-       `(("automake" ,automake)
-         ("autoconf" ,autoconf)
-         ("libtool" ,libtool)
-         ("dovecot" ,dovecot)
-         ("pkg-config" ,pkg-config)))
+       (list automake autoconf libtool dovecot pkg-config))
       (inputs
-       `(("libsodium" ,libsodium)))
+       (list libsodium))
       (arguments
        `(#:tests? #f ;No tests exist.
          #:configure-flags (list (string-append "--with-dovecot="
@@ -2133,22 +2091,19 @@ hashing scheme (such as scrypt) plug-in for @code{Dovecot}.")
 (define-public isync
   (package
     (name "isync")
-    (version "1.4.3")
+    (version "1.4.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/isync/isync/"
                            version "/isync-" version ".tar.gz"))
        (sha256 (base32
-                "024p3glj4p7fhrssw5sr55arls9zna1igxxrspxlfd6sbds21ixl"))))
+                "1zq0wwvmqsl9y71546dr0aygzn9gjjfiw19hlcq87s929y4p6ckw"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (inputs
-     `(("bdb" ,bdb)
-       ("cyrus-sasl" ,cyrus-sasl)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list bdb cyrus-sasl openssl zlib))
     (home-page "https://isync.sourceforge.io/")
     (synopsis "Mailbox synchronization program")
     (description
@@ -2169,9 +2124,7 @@ mailboxes.  Currently Maildir and IMAP are supported types.")
         (base32 "1z01wbflg49nbgzl81x260cp8x6qr7xdpz3dkrg82m1fwa9742q4"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-email-simple" ,perl-email-simple)
-       ("perl-module-pluggable" ,perl-module-pluggable)
-       ("perl-mro-compat" ,perl-mro-compat)))
+     (list perl-email-simple perl-module-pluggable perl-mro-compat))
     (home-page "https://metacpan.org/release/Email-Abstract")
     (synopsis "Interface to mail representations")
     (description "Email::Abstract provides module writers with the ability to
@@ -2271,13 +2224,13 @@ identify a message uniquely.")
          "0z1k3i0lzp2k421gc8f3wq0jbqflkbw2xqd2k7n7pmv56417kvk8"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-email-address" ,perl-email-address)
-       ("perl-email-messageid" ,perl-email-messageid)
-       ("perl-email-mime-contenttype" ,perl-email-mime-contenttype)
-       ("perl-email-mime-encodings" ,perl-email-mime-encodings)
-       ("perl-email-simple" ,perl-email-simple)
-       ("perl-mime-types" ,perl-mime-types)
-       ("perl-module-runtime" ,perl-module-runtime)))
+     (list perl-email-address
+           perl-email-messageid
+           perl-email-mime-contenttype
+           perl-email-mime-encodings
+           perl-email-simple
+           perl-mime-types
+           perl-module-runtime))
     (home-page "https://metacpan.org/release/Email-MIME")
     (synopsis "MIME message handling")
     (description "Email::MIME is an extension of the Email::Simple module, to
@@ -2300,7 +2253,7 @@ message.  Headers are decoded from MIME encoding.")
          "042kxhs3bp1ab9z0mbr1wy21ld4lxd6v2a2mmrashqnsn2075fws"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-capture-tiny" ,perl-capture-tiny)))
+     (list perl-capture-tiny))
     (home-page "https://metacpan.org/release/Email-MIME-ContentType")
     (synopsis "Parse MIME Content-Type headers")
     (description "Email::MIME::ContentType parses a MIME Content-Type
@@ -2321,7 +2274,7 @@ header.")
          "0p5b8g9gh35m8fqrpx60g4bp98rvwd02n5b0vm9wh7mk0xah8wac"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-capture-tiny" ,perl-capture-tiny)))
+     (list perl-capture-tiny))
     (home-page "https://metacpan.org/release/Email-MIME-Encodings")
     (synopsis "Unified interface to MIME encoding and decoding")
     (description "This module wraps MIME::Base64 and MIME::QuotedPrint.")
@@ -2340,18 +2293,18 @@ header.")
         (base32 "0yfssp3rqdx1dmgvnygarzgkpkhqm28r5sd0gh87ksk8yxndhjql"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-capture-tiny" ,perl-capture-tiny)))
+     (list perl-capture-tiny))
     (propagated-inputs
-     `(("perl-email-abstract" ,perl-email-abstract)
-       ("perl-email-address" ,perl-email-address)
-       ("perl-email-simple" ,perl-email-simple)
-       ("perl-list-moreutils" ,perl-list-moreutils)
-       ("perl-module-runtime" ,perl-module-runtime)
-       ("perl-moo" ,perl-moo)
-       ("perl-moox-types-mooselike" ,perl-moox-types-mooselike)
-       ("perl-sub-exporter" ,perl-sub-exporter)
-       ("perl-throwable" ,perl-throwable)
-       ("perl-try-tiny" ,perl-try-tiny)))
+     (list perl-email-abstract
+           perl-email-address
+           perl-email-simple
+           perl-list-moreutils
+           perl-module-runtime
+           perl-moo
+           perl-moox-types-mooselike
+           perl-sub-exporter
+           perl-throwable
+           perl-try-tiny))
     (home-page "https://metacpan.org/release/Email-Sender")
     (synopsis "Perl library for sending email")
     (description "Email::Sender replaces the old and sometimes problematic
@@ -2372,7 +2325,7 @@ Email::Send library.")
          "1m4brbjvalyp5kjqslqv4155dzwg977shxin208i7lc8236n6pyq"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-email-date-format" ,perl-email-date-format)))
+     (list perl-email-date-format))
     (home-page "https://metacpan.org/release/Email-Simple")
     (synopsis "Parsing of RFC 2822 messages")
     (description "Email::Simple provides simple parsing of RFC 2822 message
@@ -2394,7 +2347,7 @@ format and headers.")
         (base32 "1bhh8hlsl9597x0bnfl563k2c09b61qnkb9mfyqcmzlq63m1zw5y"))))
     (build-system meson-build-system)
     (propagated-inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (home-page "http://www.stafford.uklinux.net/libesmtp/")
     (synopsis "Library for sending mail via remote hosts using SMTP")
     (description
@@ -2434,13 +2387,9 @@ be expected from a simple client.")
                    (lambda _ (invoke "autoreconf" "-vfi"))))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list bison flex autoconf automake libtool))
     (inputs
-     `(("libesmtp" ,libesmtp)))
+     (list libesmtp))
     (home-page "https://sourceforge.net/projects/esmtp/")
     (synopsis "Relay-only mail transfer agent (MTA)")
     (description "Esmtp is a simple relay-only mail transfer agent built using
@@ -2463,9 +2412,7 @@ compatibility shims for the @command{sendmail}, @command{mailq}, and
                (base32 "196fs1z8y7p12wmqn1bylzz94szl58yv2aby3p30nmwjnyv8rch6"))))
     (build-system gnu-build-system)
     (inputs
-     `(("tdb" ,tdb)
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list tdb openssl zlib))
     (home-page "https://github.com/nicm/fdm")
     (synopsis "Mail Retrieval Agent (MRA) and Mail Delivery Agent (MDA)")
     (description "fdm is a program designed to fetch mail from POP3
@@ -2516,7 +2463,7 @@ deliver it in various ways.")
     ;; file system are performed during 'make install'.  However, these
     ;; are performed before the actual build process.
     (build-system gnu-build-system)
-    (inputs `(("exim" ,exim)))
+    (inputs (list exim))
     (home-page "http://www.procmail.org/")
     (synopsis "Versatile mail delivery agent (MDA)")
     (description "Procmail is a mail delivery agent (MDA) featuring support
@@ -2550,13 +2497,10 @@ maintained.")
                (copy-recursively "misc/zsh" zsh)
                #t))))))
     (native-inputs
-     `(("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-setuptools-scm))
     (inputs
-     `(("python-atomicwrites" ,python-atomicwrites)
-       ("python-configobj" ,python-configobj)
-       ("python-ruamel.yaml" ,python-ruamel.yaml)
-       ("python-unidecode" ,python-unidecode)
-       ("python-vobject" ,python-vobject)))
+     (list python-atomicwrites python-configobj python-ruamel.yaml
+           python-unidecode python-vobject))
     (synopsis "Console address book using CardDAV")
     (description "Khard is an address book for the console.  It creates, reads,
 modifies and removes CardDAV address book entries at your local machine.  For
@@ -2580,9 +2524,7 @@ Khard can also be used from within the email client @command{mutt}.")
         (base32 "0qk1rfgfm5drj4iyniiabrasrpqv570vzhgz66lwgb67y4amkjv1"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-module-build" ,perl-module-build)
-       ("perl-net-dns-resolver-programmable"
-        ,perl-net-dns-resolver-programmable)))
+     (list perl-module-build perl-net-dns-resolver-programmable))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2594,10 +2536,7 @@ Khard can also be used from within the email client @command{mutt}.")
                                                "/sbin'")))
              #t)))))
     (inputs
-     `(("perl-error" ,perl-error)
-       ("perl-net-dns" ,perl-net-dns)
-       ("perl-netaddr-ip" ,perl-netaddr-ip)
-       ("perl-uri" ,perl-uri)))
+     (list perl-error perl-net-dns perl-netaddr-ip perl-uri))
     (home-page "https://metacpan.org/release/Mail-SPF")
     (synopsis "Perl implementation of Sender Policy Framework")
     (description "Mail::SPF is the Sender Policy Framework implemented
@@ -2618,7 +2557,7 @@ in Perl.")
                 "1g1wym9vcbhldwvi4w5pl0fhd4jh2icj975awf4wr5xmkli9mxbz"))))
     (build-system perl-build-system)
     (native-inputs
-     `(("perl-test-exception" ,perl-test-exception)))
+     (list perl-test-exception))
     (home-page "https://metacpan.org/release/Mail-AuthenticationResults")
     (synopsis "Object Oriented Authentication-Results Headers")
     (description "Mail::AuthenticationResults parses the message header field
@@ -2642,14 +2581,11 @@ Authentication-Results header seen in the wild.")
                 "1x8v4pa0447c1xqri1jn96i8vlyjpl6jmz63nb1vifbp16yi3zxb"))))
     (build-system perl-build-system)
     (propagated-inputs
-     `(("perl-crypt-openssl-rsa" ,perl-crypt-openssl-rsa)
-       ("perl-mail-authenticationresults" ,perl-mail-authenticationresults)
-       ("perl-mailtools" ,perl-mailtools)
-       ("perl-net-dns" ,perl-net-dns)))
+     (list perl-crypt-openssl-rsa perl-mail-authenticationresults
+           perl-mailtools perl-net-dns))
     (native-inputs
-     `(("perl-net-dns-resolver-mock" ,perl-net-dns-resolver-mock)
-       ("perl-test-requiresinternet" ,perl-test-requiresinternet)
-       ("perl-yaml-libyaml" ,perl-yaml-libyaml)))
+     (list perl-net-dns-resolver-mock perl-test-requiresinternet
+           perl-yaml-libyaml))
     (home-page "https://metacpan.org/release/Mail-DKIM")
     (synopsis "Signs/verifies Internet mail with DKIM/DomainKey signatures")
     (description "Mail::DKIM is a Perl module that implements the new Domain
@@ -2710,17 +2646,17 @@ DKIM and/or DomainKeys.")
                               "perl-timedate"))
                #t))))))
     (inputs
-     `(("perl" ,perl)
-       ("perl-crypt-openssl-rsa" ,perl-crypt-openssl-rsa)
-       ("perl-io-socket-inet6" ,perl-io-socket-inet6)
-       ("perl-mailtools" ,perl-mailtools)
-       ("perl-mail-authenticationresults" ,perl-mail-authenticationresults)
-       ("perl-mail-dkim" ,perl-mail-dkim)
-       ("perl-mime-tools" ,perl-mime-tools)
-       ("perl-net-dns" ,perl-net-dns)
-       ("perl-net-server" ,perl-net-server)
-       ("perl-socket6" ,perl-socket6)
-       ("perl-timedate" ,perl-timedate)))
+     (list perl
+           perl-crypt-openssl-rsa
+           perl-io-socket-inet6
+           perl-mailtools
+           perl-mail-authenticationresults
+           perl-mail-dkim
+           perl-mime-tools
+           perl-net-dns
+           perl-net-server
+           perl-socket6
+           perl-timedate))
     (home-page "http://dkimproxy.sourceforge.net/")
     (synopsis "SMTP proxy to sign and verify Internet mail with DKIM headers")
     (description
@@ -2769,9 +2705,8 @@ existing mail server.  With Postfix, the proxies can operate as either
              (patch-shebang "mb2md" (list (string-append perl "/bin")))
              (chmod "mb2md" #o555))
            #t))))
-    (native-inputs `(("gzip" ,gzip)))
-    (inputs `(("perl" ,perl)
-              ("perl-timedate" ,perl-timedate)))
+    (native-inputs (list gzip))
+    (inputs (list perl perl-timedate))
     (home-page "http://batleth.sapienti-sat.org/projects/mb2md/")
     (synopsis "Mbox to maildir converter")
     (description
@@ -2782,7 +2717,7 @@ converts them to maildir format directories.")
 (define-public mblaze
   (package
     (name "mblaze")
-    (version "1.1")
+    (version "1.2")
     (source
      (origin
        (method git-fetch)
@@ -2791,10 +2726,10 @@ converts them to maildir format directories.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1bir977vnqs76g8jgv1yivqw0wk2kn56l3l5r4w2ipix3fir138y"))))
+        (base32 "0fa8s9dp5ilwmfcwkx72x2b5i0maa5sl97hv2cdknqmc27gv0b1c"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl)))
+     (list perl))
     (arguments
      `(#:tests? #f                   ; XXX: Upstream tests appear to be broken
        #:make-flags (list (string-append "CC=" ,(cc-for-target))
@@ -2833,19 +2768,19 @@ easily (one at a time).")
 (define-public mpop
   (package
     (name "mpop")
-    (version "1.4.14")
+    (version "1.4.16")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://marlam.de/mpop/releases/"
                            "mpop-" version ".tar.xz"))
        (sha256
-        (base32 "046wbglvry54id9wik6c020fs09piv3gig3z0nh5nmyhsxjw4i18"))))
+        (base32 "1yc7lsdy9gvlslvljqg34kvcaf4wvrwlvj6h5awkzlp6x9qva3l7"))))
     (build-system gnu-build-system)
     (inputs
-     `(("gnutls" ,gnutls)))
+     (list gnutls))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://marlam.de/mpop/")
     (synopsis "POP3 mail client")
     (description "mpop is a small and fast POP3 client suitable as a
@@ -2860,15 +2795,14 @@ Names} and SOCKS proxies.")
 (define-public mhonarc
   (package
     (name "mhonarc")
-    (version "2.6.19")
+    (version "2.6.24")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://cpan/authors/id/E/EH/EHOOD/MHonArc-"
+       (uri (string-append "mirror://cpan/authors/id/L/LD/LDIDRY/MHonArc-"
                            version ".tar.gz"))
        (sha256
-        (base32
-         "0ll3v93yji334zqp6xfzfxc0127pmjcznmai1l5q6dzawrs2igzq"))))
+        (base32 "0cszh619i8bfjpyxhfgph20v8lic5zpirr990xdbg7759qvwfza5"))))
     (build-system perl-build-system)
     (home-page "https://www.mhonarc.org/")
     (synopsis "Create HTML archives of mail/news messages")
@@ -2969,8 +2903,7 @@ define(`confINST_DEP', `')
        ;; require root privileges
        #:tests? #f))
     (inputs
-     `(("m4" ,m4)
-       ("perl" ,perl)))
+     (list m4 perl))
     (home-page "http://sendmail.org")
     (synopsis
      "Highly configurable Mail Transfer Agent (MTA)")
@@ -3013,6 +2946,7 @@ transfer protocols.")
              (let ((out (assoc-ref outputs "out"))
                    (path (getenv "PERL5LIB")))
                (wrap-script (string-append out "/bin/sieve-connect")
+                 #:guile (search-input-file inputs "bin/guile")
                  `("PERL5LIB" ":" = (,path)))
                #t))))))
     (inputs
@@ -3058,15 +2992,14 @@ from the Cyrus IMAP project.")
         (base32 "05sd7bmq29ibnqbl2z53hiyprfxzf0qydfdaixs68rz55wqhbgsi"))))
     (build-system gnu-build-system)
     (inputs
-     `(("bdb" ,bdb)
-       ("libasr" ,libasr)
-       ("libevent" ,libevent)
-       ("libressl" ,libressl)           ; recommended, and supports e.g. ECDSA
-       ("linux-pam" ,linux-pam)
-       ("zlib" ,zlib)))
+     (list bdb
+           libasr
+           libevent
+           libressl ; recommended, and supports e.g. ECDSA
+           linux-pam
+           zlib))
     (native-inputs
-     `(("bison" ,bison)
-       ("groff" ,groff)))               ; for man pages
+     (list bison groff))               ; for man pages
     (arguments
      `(#:configure-flags
        (list "--localstatedir=/var"
@@ -3138,7 +3071,7 @@ to esoteric or niche requirements.")
                 "1b1mx71bvmv92lbm08wr2p60g3qhikvv3n15zsr6dcwbk9aqahzq"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
      `(("libressl" ,libressl)
        ("libevent" ,libevent)
@@ -3215,9 +3148,9 @@ for OpenSMTPD to extend its functionality.")
                (("-o \\$\\{...OWN\\} -g \\$\\{...GRP\\}") ""))))
          (delete 'configure))))         ; no configure script
     (native-inputs
-     `(("mandoc" ,mandoc)))           ; silently installs empty man page without
+     (list mandoc))           ; silently installs empty man page without
     (inputs
-     `(("libevent" ,libevent)))
+     (list libevent))
     (home-page "https://imperialat.at/dev/libopensmtpd/")
     (synopsis "OpenSMTPd filter C API")
     (description
@@ -3255,13 +3188,12 @@ writing OpenSMTPd filters.")
                (("-o \\$\\{...OWN\\} -g \\$\\{...GRP\\}") ""))))
          (delete 'configure))))         ; no configure script
     (native-inputs
-     `(("mandoc" ,mandoc)))           ; silently installs empty man page without
+     (list mandoc))           ; silently installs empty man page without
     (inputs
-     `(("libevent" ,libevent)
-       ("libopensmtpd" ,libopensmtpd)
-       ;; XXX Our OpenSMTPd package uses libressl, but this package currently
-       ;; supports HAVE_ED25519 only with openssl.  Switch back when possible.
-       ("openssl" ,openssl)))
+     (list libevent libopensmtpd
+           ;; XXX Our OpenSMTPd package uses libressl, but this package currently
+           ;; supports HAVE_ED25519 only with openssl.  Switch back when possible.
+           openssl))
     (home-page "http://imperialat.at/dev/filter-dkimsign/")
     (synopsis "OpenSMTPd filter for signing mail with DKIM")
     (description
@@ -3293,7 +3225,7 @@ messages with @acronym{DKIM, DomainKeys Identified Mail} (RFC 4871).")
                     (libexec (string-append out "/libexec/opensmtpd")))
                (setenv "GOBIN" libexec)))))))
     (native-inputs
-     `(("opensmtpd" ,opensmtpd)))
+     (list opensmtpd))
     (home-page "https://github.com/poolpOrg/filter-rspamd")
     (synopsis "OpenSMTPd filter to request an Rspamd analysis")
     (description
@@ -3314,30 +3246,30 @@ an SMTP transaction before a message is committed to queue.")
          (base32 "0a5ckbf8hc3y28b7p5psp0d4bxk601jlr5pd3hhh545xd8d9f0dg"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("gunicorn" ,gunicorn)
-       ("python-aiosmtpd" ,python-aiosmtpd)
-       ("python-alembic" ,python-alembic)
-       ("python-atpublic" ,python-atpublic)
-       ("python-authheaders" ,python-authheaders)
-       ("python-authres" ,python-authres)
-       ("python-click" ,python-click)
-       ("python-dateutil" ,python-dateutil)
-       ("python-dnspython" ,python-dnspython)
-       ("python-falcon" ,python-falcon)
-       ("python-flufl-bounce" ,python-flufl-bounce)
-       ("python-flufl-i18n" ,python-flufl-i18n)
-       ("python-flufl-lock" ,python-flufl-lock)
-       ("python-importlib-resources" ,python-importlib-resources)
-       ("python-lazr-config" ,python-lazr-config)
-       ("python-passlib" ,python-passlib)
-       ("python-requests" ,python-requests)
-       ("python-sqlalchemy" ,python-sqlalchemy)
-       ("python-zope-component" ,python-zope-component)
-       ("python-zope-configuration" ,python-zope-configuration)
-       ("python-zope-event" ,python-zope-event)
-       ("python-zope-interface" ,python-zope-interface)))
+     (list gunicorn
+           python-aiosmtpd
+           python-alembic
+           python-atpublic
+           python-authheaders
+           python-authres
+           python-click
+           python-dateutil
+           python-dnspython
+           python-falcon
+           python-flufl-bounce
+           python-flufl-i18n
+           python-flufl-lock
+           python-importlib-resources
+           python-lazr-config
+           python-passlib
+           python-requests
+           python-sqlalchemy
+           python-zope-component
+           python-zope-configuration
+           python-zope-event
+           python-zope-interface))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     (list python-nose))
     (home-page "https://www.list.org")
     (synopsis "Mailing list manager")
     (description
@@ -3351,19 +3283,19 @@ filtering, digest delivery, and more.")
 (define-public python-mailmanclient
   (package
     (name "python-mailmanclient")
-    (version "3.3.1")
+    (version "3.3.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "mailmanclient" version))
        (sha256
         (base32
-         "0pjgzpvhdb6ql8asb20xr8d01m646zpghmcp9fmscks0n1k4di4g"))))
+         "0ppqnv84v7npgjykhqdy5c38vanz4l0qw871kpsl27z4fm365zlj"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f)) ; Requires mailman running
     (propagated-inputs
-     `(("python-requests" ,python-requests)))
+     (list python-requests))
     ;(native-inputs
     ; `(("mailman" ,mailman)
     ;   ("python-falcon" ,python-falcon)
@@ -3392,8 +3324,7 @@ the GNU Mailman 3 REST API.")
            (base32
             "0fdfs5g3pf30v2i7w18pdkv9xnfxmfcv66mzv56dck0a1igq07m3"))))
       (propagated-inputs
-       `(("python2-six" ,python2-six)
-         ("python2-httplib2" ,python2-httplib2))))))
+       (list python2-six python2-httplib2)))))
 
 (define-public mlmmj
   (package
@@ -3409,9 +3340,9 @@ the GNU Mailman 3 REST API.")
          "0hpj10qad821ci11si8xc2qnmkzfn90y13s43fm4fca38f0qjp8w"))))
     (build-system gnu-build-system)
     (inputs
-     `(("perl" ,perl))) ; For "contrib/web/"
+     (list perl)) ; For "contrib/web/"
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (arguments
      `(#:configure-flags
        ;; mlmmj-receive-strip is a replacement for mlmmj-receive
@@ -3457,14 +3388,14 @@ installation on systems where resources are limited.  Its features include:
 (define-public python-django-mailman3
   (package
     (name "python-django-mailman3")
-    (version "1.3.4")
+    (version "1.3.7")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "django-mailman3" version))
         (sha256
          (base32
-          "1yrm7wpjy34xai72vn2vkhc9131cdrbqy08rrabf36kynj5vcdvy"))))
+          "1dzycnwdr1gavs1dgmcv1lz24x0fkp8y864fy52fgbz72d6c5a3f"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -3476,13 +3407,10 @@ installation on systems where resources are limited.  Its features include:
              (invoke "django-admin" "test"
                      "--pythonpath=."))))))
     (propagated-inputs
-     `(("python-django" ,python-django)
-       ("python-django-allauth" ,python-django-allauth)
-       ("python-django-gravatar2" ,python-django-gravatar2)
-       ("python-mailmanclient" ,python-mailmanclient)
-       ("python-pytz" ,python-pytz)))
+     (list python-django python-django-allauth python-django-gravatar2
+           python-mailmanclient python-pytz))
     (native-inputs
-     `(("python-mock" ,python-mock)))
+     (list python-mock))
     (home-page "https://gitlab.com/mailman/django-mailman3")
     (synopsis "Django library to help interaction with Mailman")
     (description
@@ -3493,34 +3421,21 @@ interacting with Mailman.")
 (define-public python-mailman-hyperkitty
   (package
     (name "python-mailman-hyperkitty")
-    (version "1.1.0")
+    (version "1.2.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "mailman-hyperkitty" version))
         (sha256
          (base32
-          "1lfqa9admhvdv71f528jmz2wl0i5cv77v6l64px2pm4zqr9ckkjx"))
-        (patches
-          (list
-            (origin
-              ;; see: https://gitlab.com/mailman/mailman-hyperkitty/issues/17
-              ;; fixes test_archive_message_unserializable
-              (method url-fetch)
-              (uri "https://salsa.debian.org/mailman-team/mailman-hyperkitty/raw/debian/1.1.0-9/debian/patches/0002-Skip-the-test_archive_message_unserializable.patch")
-              (sha256
-               (base32
-                "0p1fwm46c4bl81lvsg3kjhn2r1lwgkpgxamb3xyqn7h9qdrw10hw")))))))
+          "1ni6vf1yi14c0l895fk278x4na7ymhpkl1q0vnpzbkzplpa7200i"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-requests" ,python-requests)
-       ("python-zope-interface" ,python-zope-interface)))
+     (list python-requests python-zope-interface))
     (inputs
-     `(("mailman" ,mailman)))
+     (list mailman))
     (native-inputs
-     `(("python-mock" ,python-mock)
-       ("python-nose" ,python-nose)
-       ("python-nose2" ,python-nose2)))
+     (list python-mock python-nose python-nose2))
     (home-page "https://gitlab.com/mailman/mailman-hyperkitty/")
     (synopsis "Mailman archiver plugin for HyperKitty")
     (description
@@ -3533,44 +3448,46 @@ which sends emails to HyperKitty, the official Mailman3 web archiver.")
 (define-public python-hyperkitty
   (package
     (name "python-hyperkitty")
-    (version "1.3.3")
+    (version "1.3.5")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "HyperKitty" version))
         (sha256
          (base32
-          "0p85r9q6mn5as5b39xp9hkkipnk0156acx540n2ygk3qb3jd4a5n"))))
+          "11lz1s2p8n43h1cdr9l5dppsigg8qdppckdwdndzn7a8r8mj4sc2"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
          (replace 'check
            (lambda _
-             (setenv "PYTHONPATH" (string-append ".:" (getenv "PYTHONPATH")))
              (invoke "example_project/manage.py" "test"
-                     "--settings=hyperkitty.tests.settings_test"))))))
+                     "--settings=hyperkitty.tests.settings_test"
+                     "--pythonpath=."))))))
     (propagated-inputs
-     `(("python-dateutil" ,python-dateutil)
-       ("python-django" ,python-django-2.2)
-       ("python-django-compressor" ,python-django-compressor)
-       ("python-django-extensions" ,python-django-extensions)
-       ("python-django-gravatar2" ,python-django-gravatar2)
-       ("python-django-haystack" ,python-django-haystack)
-       ("python-django-mailman3" ,python-django-mailman3)
-       ("python-django-q" ,python-django-q)
-       ("python-djangorestframework" ,python-djangorestframework)
-       ("python-flufl-lock" ,python-flufl-lock)
-       ("python-mailmanclient" ,python-mailmanclient)
-       ("python-networkx" ,python-networkx)
-       ("python-pytz" ,python-pytz)
-       ("python-robot-detection" ,python-robot-detection)))
+     (list python-dateutil
+           python-django
+           python-django-compressor
+           python-django-extensions
+           python-django-gravatar2
+           python-django-haystack
+           python-django-mailman3
+           python-django-q
+           python-django-rest-framework
+           python-flufl-lock
+           python-mailmanclient
+           python-mistune-next
+           python-networkx
+           python-pytz
+           python-robot-detection))
     (native-inputs
-     `(("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-elasticsearch" ,python-elasticsearch)
-       ("python-isort" ,python-isort)
-       ("python-mock" ,python-mock)
-       ("python-whoosh" ,python-whoosh)))
+     (list python-beautifulsoup4
+           python-elasticsearch
+           python-isort
+           python-lxml
+           python-mock
+           python-whoosh))
     (home-page "https://gitlab.com/mailman/hyperkitty")
     (synopsis "Web interface to access GNU Mailman v3 archives")
     (description
@@ -3603,15 +3520,10 @@ some configuration.")
                  #t))))
        #:tests? #f)) ; Tests try to run a mailman instance to test against.
     (inputs
-     `(("python-django" ,python-django)
-       ("python-django-mailman3" ,python-django-mailman3)
-       ("python-mailmanclient" ,python-mailmanclient)
-       ("python-readme-renderer" ,python-readme-renderer)))
+     (list python-readme-renderer python-mailmanclient
+           python-django-2.2 python-django-mailman3))
     (native-inputs
-     `(("python-beautifulsoup4" ,python-beautifulsoup4)
-       ("python-isort" ,python-isort)
-       ("python-mock" ,python-mock)
-       ("python-vcrpy" ,python-vcrpy)))
+     (list python-beautifulsoup4 python-isort python-mock python-vcrpy))
     (home-page "https://gitlab.com/mailman/postorius")
     (synopsis "Web user interface for GNU Mailman")
     (description
@@ -3669,10 +3581,7 @@ on the fly.  Both programs are written in C and are very fast.")
         (base32 "131i2b1yxhnbqkfk4kky40pfanqw2c5lcgbnjhfqp5cvpawpk2ai"))))
     (build-system perl-build-system)
     (inputs
-     `(("perl-io-socket-inet6" ,perl-io-socket-inet6)
-       ("perl-net-dns" ,perl-net-dns)
-       ("perl-net-ssleay" ,perl-net-ssleay)
-       ("perl-socket6" ,perl-socket6))) ; used by perl-io-socket-inet6
+     (list perl-io-socket-inet6 perl-net-dns perl-net-ssleay perl-socket6)) ; used by perl-io-socket-inet6
     (arguments
      `(#:tests? #f                      ; no tests
        #:phases
@@ -3713,7 +3622,7 @@ operators and scripters.")
 (define-public alpine
   (package
     (name "alpine")
-    (version "2.24.2")
+    (version "2.25")
     (source
      (origin
        (method git-fetch)
@@ -3726,13 +3635,14 @@ operators and scripters.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0ibwss04j4qbhpd3jcw3d4xjf8jnmb9fi3sz58a99xw3awkfjabd"))
+        (base32 "0z6dp3cpz1dmbxw41ravsx1bxychafp0ij8gvj96mzz7rm9pdnq3"))
        (modules '((guix build utils)))
        (snippet
         '(begin
            ;; Remove pre-built binaries scattered across the source repository.
-           (for-each delete-file (find-files "." "\\.(dll|exe)"))
-           #t))))
+           (for-each delete-file (find-files "." "\\.(dll|exe)"))))
+       (patches
+        (search-patches "alpine-fix-privacy-policy-crash.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
@@ -3758,24 +3668,22 @@ operators and scripters.")
            ;; ‘/etc/shadow exists in the build environment’.  It does not.
            (lambda _
              (substitute* "configure"
-               (("test -f /etc/shadow") "true"))
-             #t))
+               (("test -f /etc/shadow") "true"))))
          (add-after 'unpack 'make-reproducible
            (lambda _
              ;; This removes time-dependent code to make alpine reproducible.
              (substitute* "pico/blddate.c"
-               (("%02d-%s-%d") "1970-01-01"))
-             #t)))))
+               (("%02d-%s-%d") "1970-01-01")))))))
     (inputs
-     `(("ncurses" ,ncurses)
-       ("openssl" ,openssl)
-       ("gnutls" ,gnutls)
-       ("openldap" ,openldap)
-       ("cyrus-sasl" ,cyrus-sasl)
-       ("mit-krb5" ,mit-krb5)
-       ("aspell" ,aspell)
-       ("tcl" ,tcl)
-       ("linux-pam" ,linux-pam)))
+     (list ncurses
+           openssl
+           gnutls
+           openldap
+           cyrus-sasl
+           mit-krb5
+           aspell
+           tcl
+           linux-pam))
     (home-page "https://repo.or.cz/alpine.git")
     (synopsis "Alternatively Licensed Program for Internet News and Email")
     (description
@@ -3813,30 +3721,27 @@ tools and applications:
          "--with-compface"
          "--with-ldap")))
     (inputs
-     `(("cyrus-sasl" ,cyrus-sasl)
-       ("enchant" ,enchant)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("gmime" ,gmime)
-       ("gnutls" ,gnutls)
-       ("gpgme" ,gpgme)
-       ("gtk+" ,gtk+)
-       ("gtksourceview" ,gtksourceview)
-       ("gtkspell3" ,gtkspell3)
-       ("libassuan" ,libassuan)         ; in gpgme.pc Requires
-       ("libcanberra" ,libcanberra)
-       ("libesmtp" ,libesmtp)
-       ("libical" ,libical)
-       ("libnotify" ,libnotify)
-       ("libsecret" ,libsecret)
-       ("openldap" ,openldap)
-       ("sqlite" ,sqlite)
-       ("webkitgtk" ,webkitgtk)))
+     (list cyrus-sasl
+           enchant
+           gdk-pixbuf
+           gmime
+           gnutls
+           gpgme
+           gtk+
+           gtksourceview
+           gtkspell3
+           libassuan ; in gpgme.pc Requires
+           libcanberra
+           libesmtp
+           libical
+           libnotify
+           libsecret
+           openldap
+           sqlite
+           webkitgtk))
     (native-inputs
-     `(("compface" ,compface)
-       ("glib" ,glib "bin")
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)
-       ("yelp-tools" ,yelp-tools)))
+     (list compface
+           `(,glib "bin") intltool pkg-config yelp-tools))
     (home-page "https://pawsa.fedorapeople.org/balsa")
     (synopsis "E-mail client for GNOME")
     (description "Balsa is a highly configurable and robust mail client for
@@ -3858,13 +3763,9 @@ the use of a local MTA such as Sendmail.")
          "0wpfqbqjlfb9z0hafvdhkm7qw56cr9kfy6n8vb0q42dwlghpz1ff"))))
     (build-system python-build-system)
     (inputs
-     `(("notmuch" ,notmuch)
-       ("python-chardet" ,python-chardet)
-       ("python-dkimpy" ,python-dkimpy)
-       ("python-notmuch" ,python-notmuch)))
+     (list notmuch python-chardet python-dkimpy python-notmuch))
     (native-inputs
-     `(("python-freezegun" ,python-freezegun)
-       ("python-setuptools-scm" ,python-setuptools-scm)))
+     (list python-freezegun python-setuptools-scm))
     (home-page "https://github.com/afewmail/afew")
     (synopsis "Initial tagging script for notmuch mail")
     (description "afew is an initial tagging script for notmuch mail.  It
@@ -3876,41 +3777,40 @@ killed threads.")
 (define-public pan
   (package
     (name "pan")
-    (version "0.147")
+    (version "0.149")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "http://pan.rebelbase.com/download/releases/"
                            version "/source/" name "-" version ".tar.bz2"))
        (sha256
-        (base32 "0960siaf0r6m18kv0d8aqpf36x2xbsfcvk07kswlany7jbxrhylr"))))
+        (base32 "1sl5rdgalswxya61vhkf28r0fb4b3pq77qgzhhsfagmpvgbx0d2x"))))
     (arguments
-     `(#:configure-flags '("--with-gtk3" "--with-gtkspell" "--with-gnutls"
-                           "--enable-libnotify" "--enable-manual"
-                           "--enable-gkr")
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'patch-gpg2
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "pan/usenet-utils/gpg.cc"
-               (("\"gpg2\"") (string-append "\""
-                                            (assoc-ref inputs "gnupg")
-                                            "/bin/gpg\"")))
-             #t)))))
+     (list #:configure-flags
+           #~(list "--with-gtk3" "--with-gtkspell" "--with-gnutls"
+                   "--enable-libnotify" "--enable-manual"
+                   "--enable-gkr")
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-before 'configure 'patch-gpg2
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   (substitute* "pan/usenet-utils/gpg.cc"
+                     (("\"gpg2\"")
+                      (string-append "\""
+                                     (search-input-file inputs "/bin/gpg")
+                                     "\""))))))))
     (inputs
-     `(("gmime" ,gmime-2.6)
-       ("gnupg" ,gnupg)
-       ("gnutls" ,gnutls)
-       ("gtk+" ,gtk+)
-       ("gtkspell3" ,gtkspell3)
-       ("libnotify" ,libnotify)
-       ("libsecret" ,libsecret)
-       ("libxml2" ,libxml2)
-       ("zlib" ,zlib)))
+     (list gmime
+           gnupg
+           gnutls
+           gtk+
+           gtkspell3
+           libnotify
+           libsecret
+           libxml2
+           zlib))
     (native-inputs
-     `(("gettext-minimal" ,gettext-minimal)
-       ("itstool" ,itstool)
-       ("pkg-config" ,pkg-config)))
+     (list gettext-minimal itstool pkg-config))
     (build-system gnu-build-system)
     (home-page "http://pan.rebelbase.com/")
     (synopsis "Pan newsreader")
@@ -3943,9 +3843,7 @@ PGP handling, multiple servers, and secure connections.")
        (modify-phases %standard-phases
          (delete 'configure))))         ; no configure script
     (inputs
-     `(("lua" ,lua)
-       ("pcre2" ,pcre2)
-       ("openssl" ,openssl)))
+     (list lua pcre2 openssl))
     (home-page "https://github.com/lefcha/imapfilter")
     (synopsis "IMAP mail filtering utility")
     (description "IMAPFilter is a mail filtering utility.  It connects
@@ -3958,16 +3856,16 @@ servers.  The 4rev1 and 4 versions of IMAP are supported.")
 (define-public urlscan
   (package
     (name "urlscan")
-    (version "0.9.6")
+    (version "0.9.8")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "urlscan" version))
         (sha256
-         (base32 "09lxi7dhn49fpb3ij4cgrhj3qqqqs9rcxbjb7p9smw5wblrqpzga"))))
+         (base32 "1imrg2r9cshfvdwkdkm9y4i58qzkgnnwkswmh3kgy38m334mlcyf"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-urwid" ,python-urwid)))
+     (list python-urwid))
     (home-page "https://github.com/firecat53/urlscan")
     (synopsis "View/select the URLs in an email message or file")
     (description
@@ -3995,8 +3893,7 @@ It is a replacement for the @command{urlview} program.")
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)))
+     (list autoconf automake))
     (arguments `(#:parallel-tests? #f)) ;tests are side-effect'y
     (home-page "https://github.com/verdammelt/tnef")
     (synopsis "Unpack @code{application/ms-tnef} attachments")
@@ -4006,8 +3903,8 @@ It is a replacement for the @command{urlview} program.")
     (license license:gpl2+)))
 
 (define-public mumi
-  (let ((commit "9f070bd90adc67064cd8aff4e40f303d5957ef4a")
-        (revision "5"))
+  (let ((commit "8a45281801ade7524dbdee423c28b326051719de")
+        (revision "6"))
     (package
       (name "mumi")
       (version (git-version "0.0.1" revision commit))
@@ -4019,7 +3916,7 @@ It is a replacement for the @command{urlview} program.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1ym1j3nzy8qhd1ydadccbgm0nckkmnq3vnz9qh9x8rasx7zg1ldp"))))
+                  "0p1i66j721y5hwbdy97kv4gw892nx7xrdfjrs12fn90cwkl611mp"))))
       (build-system gnu-build-system)
       (arguments
        `(#:modules ((guix build gnu-build-system)
@@ -4045,8 +3942,7 @@ It is a replacement for the @command{urlview} program.")
                    `("GUILE_LOAD_PATH" ":" prefix
                      (,scm ,(getenv "GUILE_LOAD_PATH")))
                    `("GUILE_LOAD_COMPILED_PATH" ":" prefix
-                     (,go ,(getenv "GUILE_LOAD_COMPILED_PATH"))))
-                 #t))))))
+                     (,go ,(getenv "GUILE_LOAD_COMPILED_PATH"))))))))))
       (inputs
        `(("guile-email" ,guile-email-latest)
          ("guile-fibers" ,guile-fibers)
@@ -4059,9 +3955,7 @@ It is a replacement for the @command{urlview} program.")
          ("guile" ,guile-3.0)
          ("mailutils" ,mailutils)))
       (native-inputs
-       `(("autoconf" ,autoconf)
-         ("automake" ,automake)
-         ("pkg-config" ,pkg-config)))
+       (list autoconf automake pkg-config))
       (home-page "https://git.elephly.net/software/mumi.git")
       (synopsis "Debbugs web interface")
       (description "Mumi is a Debbugs web interface.")
@@ -4084,9 +3978,7 @@ It is a replacement for the @command{urlview} program.")
                                        "ytnef-CVE-2021-3404.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libtool" ,libtool)))
+     (list autoconf automake libtool))
     (home-page "https://github.com/Yeraze/ytnef/")
     (synopsis "TNEF stream reader for winmail.dat files")
     (description "This package provides a TNEF stream reader library and
@@ -4111,7 +4003,7 @@ related tools to process winmail.dat files.")
           (base32 "0hxz8i70v1xgv30zjclfvmjqszn073c7i8nwmswi2lr6vd7cklvp"))))
       (build-system gnu-build-system)
       (inputs
-       `(("libgit2" ,libgit2)))
+       (list libgit2))
       (arguments
        `(#:phases
          (modify-phases %standard-phases
@@ -4181,39 +4073,37 @@ Git and exports them in maildir format or to an MDA through a pipe.")
                     ;; 'git' is invoked in various files of the PublicInbox
                     ;; perl module.
                     `("PATH" ":" prefix
-                      (,(string-append (assoc-ref inputs "git") "/bin")))))
+                      (,(dirname (search-input-file inputs "/bin/git"))))))
                 (find-files (string-append out "/bin"))))
              #t)))))
     (native-inputs
-     `(("xapian" ,xapian)
-       ;; For testing.
-       ("lsof" ,lsof)
-       ("openssl" ,openssl)))
+     (list xapian
+           ;; For testing.
+           lsof openssl))
     (inputs
-     `(("git" ,git)
-       ("perl-dbd-sqlite" ,perl-dbd-sqlite)
-       ("perl-dbi" ,perl-dbi)
-       ("perl-email-address-xs" ,perl-email-address-xs)
-       ("perl-email-mime-contenttype" ,perl-email-mime-contenttype)
-       ("perl-email-mime" ,perl-email-mime)
-       ("perl-email-simple" ,perl-email-simple)
-       ("perl-net-server" ,perl-net-server)
-       ("perl-plack-middleware-deflater" ,perl-plack-middleware-deflater)
-       ("perl-plack-middleware-reverseproxy" ,perl-plack-middleware-reverseproxy)
-       ("perl-plack" ,perl-plack)
-       ("perl-search-xapian" ,perl-search-xapian)
-       ("perl-timedate" ,perl-timedate)
-       ("perl-uri-escape" ,perl-uri-escape)
-       ("perl-inline-c" ,perl-inline-c)
-       ("perl-parse-recdescent" ,perl-parse-recdescent)
-       ("perl-linux-inotify2" ,perl-linux-inotify2)
-       ;; FIXME: Perl modules are unable to find the config file for highlight
-       ;; https://issues.guix.gnu.org/48033#4
-       ;; ("highlight" ,highlight)
-
-       ;; For testing.
-       ("perl-ipc-run" ,perl-ipc-run)
-       ("perl-xml-feed" ,perl-xml-feed)))
+     (list git
+           perl-dbd-sqlite
+           perl-dbi
+           perl-email-address-xs
+           perl-email-mime-contenttype
+           perl-email-mime
+           perl-email-simple
+           perl-net-server
+           perl-plack-middleware-deflater
+           perl-plack-middleware-reverseproxy
+           perl-plack
+           perl-search-xapian
+           perl-timedate
+           perl-uri-escape
+           perl-inline-c
+           perl-parse-recdescent
+           perl-linux-inotify2
+           ;; FIXME: Perl modules are unable to find the config file for highlight
+           ;; https://issues.guix.gnu.org/48033#4
+           ;; ("highlight" ,highlight)
+           ;; For testing.
+           perl-ipc-run
+           perl-xml-feed))
     (home-page "https://public-inbox.org/README.html")
     (synopsis "Archive mailing lists in Git repositories")
     (description
@@ -4235,17 +4125,17 @@ IMAP, Atom feeds or HTML archives.")
                 "0j9y5vdzch251s264diw9clrn88dn20bqqkwfmis9l7m8vmwasqd"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("bogofilter" ,bogofilter)
-       ("compface" ,compface)
-       ("gnupg" ,gnupg-1)
-       ("gpgme" ,gpgme)
-       ("gtk+-2.0" ,gtk+-2)
-       ("gtkspell" ,gtkspell3)
-       ("libnsl" ,libnsl)
-       ("openldap" ,openldap)
-       ("openssl" ,openssl)))
+     (list bogofilter
+           compface
+           gnupg-1
+           gpgme
+           gtk+-2
+           gtkspell3
+           libnsl
+           openldap
+           openssl))
     (home-page "https://sylpheed.sraoss.jp/en/")
     (synopsis "Lightweight GTK+ email client")
     (description
@@ -4316,12 +4206,11 @@ and Conformance}
            (lambda _
              (invoke "python" "test.py"))))))
     (propagated-inputs
-     `(("python-dnspython" ,python-dnspython)))
+     (list python-dnspython))
     (native-inputs
-     `(("python-authres" ,python-authres)
-       ("python-pynacl" ,python-pynacl)))
+     (list python-authres python-pynacl))
     (inputs
-     `(("openssl" ,openssl)))
+     (list openssl))
     (home-page "https://launchpad.net/dkimpy")
     (synopsis "DKIM (DomainKeys Identified Mail)")
     (description "Python module that implements @dfn{DKIM} (DomainKeys
@@ -4344,10 +4233,8 @@ the RFC 8617 Authenticated Received Chain (ARC) protocol.")
           "14k6i72k5f8dyvps8vc0aq0cczc8lvqpgjfjzsy6qqychjvjcmwk"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-authres" ,python-authres)
-       ("python-dkimpy" ,python-dkimpy)
-       ("python-dnspython" ,python-dnspython)
-       ("python-publicsuffix2" ,python-publicsuffix2)))
+     (list python-authres python-dkimpy python-dnspython
+           python-publicsuffix2))
     (home-page "https://github.com/ValiMail/authentication-headers")
     (synopsis "Library wrapping email authentication header verification and generation")
     (description
@@ -4385,10 +4272,9 @@ DKIM and ARC sign messages and output the corresponding signature headers.")
            (lambda _
              (invoke "python" "-m" "nose2" "-v"))))))
     (native-inputs
-     `(("python-flufl-testing" ,python-flufl-testing)
-       ("python-nose2" ,python-nose2)))
+     (list python-flufl-testing python-nose2))
     (propagated-inputs
-     `(("python-atpublic" ,python-atpublic)))
+     (list python-atpublic))
     (home-page "https://aiosmtpd.readthedocs.io/")
     (synopsis "Asyncio based SMTP server")
     (description
@@ -4432,19 +4318,19 @@ on RFC 3501 and original @code{imaplib} module.")
     (arguments
      '(#:configure-flags '("-DENABLE_LUAJIT=ON")))
     (inputs
-     `(("openssl" ,openssl)
-       ("glib" ,glib)
-       ("ragel" ,ragel)
-       ("luajit" ,luajit)
-       ("sqlite" ,sqlite)
-       ("file" ,file)
-       ("icu4c" ,icu4c)
-       ("pcre" ,pcre)
-       ("zlib" ,zlib)
-       ("perl" ,perl)
-       ("libsodium" ,libsodium)))
+     (list openssl
+           glib
+           ragel
+           luajit
+           sqlite
+           file
+           icu4c
+           pcre
+           zlib
+           perl
+           libsodium))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (synopsis "Spam filtering system")
     (description "Rspamd is an advanced spam filtering system that
 allows evaluation of messages by a number of rules including regular
@@ -4486,12 +4372,9 @@ undelete email messages from Outlook Express .dbx files.")
          "0hhbbb8ddsgjhv9y1xd8s9ixlhdnjmhw12v06jwx4j6vpgp1na9x"))))
     (build-system gnu-build-system)
     (inputs
-     `(("boost" ,boost)
-       ("libgsf" ,libgsf)
-       ("python" ,python)
-       ("zlib" ,zlib)))
+     (list boost libgsf python zlib))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list pkg-config))
     (home-page "https://www.five-ten-sg.com/libpst/")
     (synopsis "")
     (description "The Libpst utilities include @code{readpst} which can
@@ -4500,6 +4383,41 @@ which can convert the contacts to @code{.ldif} format for import into LDAP
 databases, and other tools to process Outlook email archives.")
     (license license:gpl2+)))
 
+(define-public neatmail
+  (package
+    (name "neatmail")
+    (version "02")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/aligrudi/neatmail")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "00d453d57d3v6ja2gpmjd8vch804c72g38pc1nr5shmz3hkgd52d"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f                      ;no tests
+       #:make-flags `((string-append "CC=" ,(cc-for-target)))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)            ;no configure script
+         (replace 'install              ;no install target in the Makefile
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out  (assoc-ref outputs "out"))
+                    (bin  (string-append out "/bin")))
+               (rename-file "mail" "neatmail")
+               (install-file "neatmail" bin)))))))
+    (home-page "https://litcave.rudi.ir/")
+    (synopsis "Text-mode mail client")
+    (description
+     "@command{neatmail} is a noninteractive mail client.  It generates
+a listing of the messages in a mailbox in mbox format and executes a list of
+ex-like commands on it.")
+    (license license:isc)))
+
 (define-public crm114
   (package
     (name "crm114")
@@ -4534,7 +4452,12 @@ databases, and other tools to process Outlook email archives.")
              ;; Inline functions can only be used from the same compilation
              ;; unit. This causes the build to fail.
              (substitute* "crm_svm_matrix.c"
-               (("^inline ") ""))))
+               (("^inline ") ""))
+             ;; Building with gcc 10 fails without the -fcommon flag. Add it
+             ;; to CFLAGS.
+             (substitute* "Makefile"
+               (("CFLAGS \\+= -DVERSION")
+                "CFLAGS += -fcommon -DVERSION"))))
          (add-before 'install 'pre-install
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -4564,7 +4487,7 @@ databases, and other tools to process Outlook email archives.")
          (add-after 'emacs-build 'validate-compiled-autoloads
            (assoc-ref emacs:%standard-phases 'validate-compiled-autoloads)))))
     (inputs
-     `(("tre" ,tre)))
+     (list tre))
     (native-inputs
      `(("emacs" ,emacs-minimal)))
     (home-page "http://crm114.sourceforge.net/")
@@ -4577,3 +4500,80 @@ regexes, approximate regexes, a Hidden Markov Model, Orthogonal Sparse
 Bigrams, WINNOW, Correlation, KNN/Hyperspace, or Bit Entropy (or by other
 means--it's all programmable).")
     (license license:gpl3)))
+
+(define-public rss2email
+  (package
+    (name "rss2email")
+    (version "3.13.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/rss2email/rss2email")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0g1yr3v3ibdh2jqil64fbdbplx5m2yzxr893fqfkwcc5c7fbwl4d"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (with-directory-excursion "test"
+                 ;; Skip networking tests
+                 (substitute* "test.py"
+                   (("( *)class (:?TestSend|TestFetch).*" match indent)
+                    (string-append indent "@unittest.skip(\"Networking stuff skipped\")\n"
+                                   indent match)))
+                 (invoke "python" "-m" "unittest"))))))))
+    (inputs
+     (list python-feedparser python-html2text))
+    (home-page "https://github.com/rss2email/rss2email")
+    (synopsis "Converts RSS/Atom newsfeeds to email")
+    (description "The RSS2email program (@command{r2e}) fetches RSS/Atom news
+feeds, converts them into emails, and sends them.")
+    ;; GPL version 2 or 3.  NOT 2+.
+    (license (list license:gpl2
+                   license:gpl3))))
+
+(define-public sendgmail
+  (let ((commit "e3229155a4037267ce40f1a3a681f53221aa4d8d")
+        (revision "1"))
+    (package
+      (name "sendgmail")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/google/gmail-oauth2-tools")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (patches (search-patches
+                   "sendgmail-remove-domain-restriction.patch"
+                   "sendgmail-accept-ignored-gsuite-flag.patch"))
+         (sha256
+          (base32
+           "1cxpkiaajhq1gjsg47r2b5xgck0r63pvkyrkm7af8c8dw7fyn64f"))))
+      (inputs
+       (list go-golang-org-x-oauth2 go-cloud-google-com-go-compute-metadata))
+      (build-system go-build-system)
+      (arguments
+       '(#:unpack-path "github.com/google/gmail-oauth2-tools"
+         #:import-path "github.com/google/gmail-oauth2-tools/go/sendgmail"))
+      (home-page
+       "https://github.com/google/gmail-oauth2-tools/tree/master/go/sendgmail")
+      (synopsis
+       "Sendmail-compatible tool for using Gmail with @code{git send-email}")
+      (description
+       "The @command{sendgmail} command provides a minimal sendmail-compatible
+front-end that connects to Gmail using OAuth2.  It is specifically designed
+for use with @code{git send-email}.  The command needs a Gmail API key to
+function.
+
+Guix's version of @command{sendgmail} has been patched for compatibility with
+all known forks, including support for non-@code{@@gmail.com} email
+addresses.")
+      (license license:asl2.0))))