diff options
Diffstat (limited to 'gnu/packages/mail.scm')
-rw-r--r-- | gnu/packages/mail.scm | 1492 |
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)))) |