gnu: Move most packages from guile.scm to new module.
[jackhill/guix/guix.git] / gnu / packages / mail.scm
index bf77b0a..05607c1 100644 (file)
@@ -6,7 +6,7 @@
 ;;; Copyright © 2014 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
-;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2015, 2016, 2018 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
@@ -23,7 +23,7 @@
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
+;;; Copyright © 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
 ;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
   #:use-module (gnu packages)
   #:use-module (gnu packages aspell)
   #:use-module (gnu packages autotools)
-  #:use-module (gnu packages base)
   #:use-module (gnu packages backup)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages calendar)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages databases)
+  #:use-module (gnu packages dbm)
   #:use-module (gnu packages dejagnu)
   #:use-module (gnu packages django)
   #:use-module (gnu packages dns)
+  #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages enchant)
-  #:use-module (gnu packages ghostscript)
+  #:use-module (gnu packages gdb)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
@@ -72,6 +76,7 @@
   #:use-module (gnu packages gsasl)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
+  #:use-module (gnu packages guile-xyz)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages m4)
+  #:use-module (gnu packages man)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages networking)
   #:use-module (gnu packages openldap)
   #:use-module (gnu packages onc-rpc)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-web)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
-  #:use-module (gnu packages search)
-  #:use-module (gnu packages texinfo)
-  #:use-module (gnu packages compression)
-  #:use-module (gnu packages glib)
-  #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages flex)
-  #:use-module (gnu packages gdb)
-  #:use-module (gnu packages man)
   #:use-module (gnu packages ruby)
+  #:use-module (gnu packages search)
+  #:use-module (gnu packages serialization)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages screen)
+  #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tcl)
+  #:use-module (gnu packages texinfo)
   #:use-module (gnu packages time)
   #:use-module (gnu packages tls)
-  #:use-module (gnu packages networking)
+  #:use-module (gnu packages w3m)
   #:use-module (gnu packages web)
   #:use-module (gnu packages webkit)
-  #:use-module (gnu packages w3m)
-  #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
-  #:use-module (gnu packages docbook)
+  #:use-module (gnu packages xml)
   #:use-module ((guix licenses)
-                #:select (fdl1.1+ gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+
+                #:select (fdl1.1+
+                           agpl3+
+                           gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+
                            non-copyleft (expat . license:expat) bsd-3
                            public-domain bsd-4 isc (openssl . license:openssl)
                            bsd-2 x11-style agpl3 asl2.0 perl-license))
   #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system guile)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial))
 (define-public mailutils
   (package
     (name "mailutils")
-    (version "3.4")
+    (version "3.5")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/mailutils/mailutils-"
-                                 version ".tar.bz2"))
+                                 version ".tar.xz"))
              (sha256
               (base32
-               "1dn71p85wlyisnwsb485sk3q5v393k3dizsa9fmimskdwjwgk3ch"))
-             (patches
-              (search-patches "mailutils-uninitialized-memory.patch"))
-             (snippet
-              ;; For a rebuild of the Flex/Bison byproducts touched by the
-              ;; patch above.
-              '(begin
-                 (for-each delete-file
-                           '("mh/mh_alias_lex.c"
-                             "libmailutils/cfg/parser.c"))
-                 #t))))
+               "1wx275w38fwni2abc8g7g3irbk332vr34byxd72zqfdiznsqgims"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
 
              #t)))
        ;; TODO: Add `--with-sql'.
-       #:configure-flags '("--sysconfdir=/etc")
+       #:configure-flags (list "--sysconfdir=/etc"
+
+                               ;; Add "/2.2" to the installation directory.
+                               (string-append "--with-guile-site-dir="
+                                              (assoc-ref %outputs "out")
+                                              "/share/guile/site/2.2"))
+
        #:parallel-tests? #f))
     (native-inputs
-     ;; Note: Bison and Flex needed due to
-     ;; 'mailutils-uninitialized-memory.patch'.
-     `(("bison" ,bison)
-       ("flex" ,flex)
-       ("perl" ,perl)))                           ;for 'gylwrap'
+     `(("perl" ,perl)))                           ;for 'gylwrap'
     (inputs
      `(("dejagnu" ,dejagnu)
        ("m4" ,m4)
        ("texinfo" ,texinfo)
-       ("guile" ,guile-2.0)
+       ("guile" ,guile-2.2)
+       ("gsasl" ,gsasl)
        ("gnutls" ,gnutls)
        ("ncurses" ,ncurses)
        ("readline" ,readline)
@@ -261,14 +260,14 @@ aliasing facilities to work just as they would on normal mail.")
 (define-public mutt
   (package
     (name "mutt")
-    (version "1.10.0")
+    (version "1.11.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://bitbucket.org/mutt/mutt/downloads/"
                                  "mutt-" version ".tar.gz"))
              (sha256
               (base32
-               "0nskymwr2cdapxlfv0ysz3bjwhb4kcvl5a3c39237k7r1vwva582"))
+               "1qqhkhlzvjj0iih8vm0wfagv4fzqqy1wnsb4sqsfv7w06ccjdjcj"))
              (patches (search-patches "mutt-store-references.patch"))))
     (build-system gnu-build-system)
     (inputs
@@ -300,7 +299,7 @@ operating systems.")
 (define-public neomutt
   (package
     (name "neomutt")
-    (version "20180323")
+    (version "20180716")
     (source
      (origin
        (method url-fetch)
@@ -308,7 +307,7 @@ operating systems.")
                            "/archive/" name "-" version ".tar.gz"))
        (sha256
         (base32
-         "12v7zkm809cvjxfz0n7jb4qa410ns1ydyf0gjin99vbdrlj88jac"))))
+         "0072in2d6znwqq461shsaxlf40r4zr7w3j9848qvm4xlh1lq52dx"))))
     (build-system gnu-build-system)
     (inputs
      `(("cyrus-sasl" ,cyrus-sasl)
@@ -491,15 +490,16 @@ and corrections.  It is based on a Bayesian filter.")
 (define-public offlineimap
   (package
     (name "offlineimap")
-    (version "7.2.1")
+    (version "7.2.2")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/OfflineIMAP/offlineimap/"
-                                  "archive/v" version ".tar.gz"))
-              (file-name (string-append name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/OfflineIMAP/offlineimap")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1022xf2w1xax4vx4kzhlfbhaf0b72wkpvrcscvs4q8qk2ja68h8x"))))
+                "11nj7y9fa7v6vcxk3wr8smfgm3mxxnmq3l8q69rrjxlfzcv7dl8m"))))
     (build-system python-build-system)
     (native-inputs
      `(("asciidoc" ,asciidoc)))
@@ -532,7 +532,7 @@ and corrections.  It is based on a Bayesian filter.")
                (wrap-program bin
                  `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))))
                #t))))))
-    (home-page "http://www.offlineimap.org")
+    (home-page "https://www.offlineimap.org")
     (synopsis "Sync emails between two repositories")
     (description
      "OfflineImap synchronizes emails between two repositories, so that you
@@ -546,7 +546,7 @@ repository and Maildir/IMAP as LOCAL repository.")
     (version "6.7")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://mew.org/Release/mew-"
+              (uri (string-append "https://mew.org/Release/mew-"
                                   version ".tar.gz"))
               (sha256
                (base32
@@ -584,7 +584,7 @@ repository and Maildir/IMAP as LOCAL repository.")
                 "mew" (string-append (assoc-ref outputs "out") ,elisp-dir))
                #t)))
          #:tests? #f)))
-    (home-page "http://www.mew.org")
+    (home-page "https://mew.org")
     (synopsis "Emacs e-mail client")
     (description "Mew (Messaging in the Emacs World) is a user interface
 for text messages, multimedia messages (MIME), news articles and
@@ -706,9 +706,9 @@ attachments, create new maildirs, and so on.")
        ("python2-pygpgme" ,python2-pygpgme)
        ("python2-notmuch" ,python2-notmuch)))
     (home-page "https://github.com/pazz/alot")
-    (synopsis "Commandline MUA using notmuch")
+    (synopsis "Command-line MUA using @code{notmuch}")
     (description
-     "Alot is an experimental terminal mail user agent (MUA) based on
+     "Alot is an experimental terminal mail user agent (@dfn{MUA}) based on
 @code{notmuch} mail.  It is written in Python using the @code{urwid} toolkit.")
     (license gpl3+)))
 
@@ -763,14 +763,14 @@ invoking @command{notifymuch} from the post-new hook.")
 (define-public notmuch
   (package
     (name "notmuch")
-    (version "0.27")
+    (version "0.28")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://notmuchmail.org/releases/notmuch-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0xh8vq2sa7r07xb3n13drc6gdiqhcgl0pj0za5xj43qkiwpikls0"))))
+                "0dqarmjc8544m2w7bqrqmvsfy55fw82707z3lz9cql8nr777bjmc"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((guix build gnu-build-system)
@@ -947,14 +947,15 @@ useful features.")
 (define-public libetpan
   (package
     (name "libetpan")
-    (version "1.8")
+    (version "1.9.2")
     (source (origin
-             (method url-fetch)
-             (uri (string-append "https://github.com/dinhviethoa/" name
-                   "/archive/" version ".tar.gz"))
-             (file-name (string-append name "-" version ".tar.gz"))
+             (method git-fetch)
+             (uri (git-reference
+                   (url  "https://github.com/dinhviethoa/libetpan.git")
+                   (commit version)))
+             (file-name (git-file-name name version))
              (sha256
-               (base32 "1sxnaglp5hb0z78sgnfzva4x8m4flqhicvm1dz0krkxdmfsafrsf"))))
+               (base32 "13jiy2ddxbp9f2mk1mip9sk8h97bva5m0pnq2mlvh5xhifs6gza4"))))
     (build-system gnu-build-system)
     (native-inputs `(("autoconf" ,autoconf-wrapper)
                      ("automake" ,automake)
@@ -978,7 +979,7 @@ useful features.")
               (invoke "sh" "autogen.sh"))))
         #:configure-flags
         '("--disable-static" "--disable-db")))
-    (home-page "http://www.etpan.org/libetpan.html")
+    (home-page "https://www.etpan.org/libetpan.html")
     (synopsis "Portable middleware for email access")
     (description
      "The purpose of this mail library is to provide a portable, efficient
@@ -1011,15 +1012,15 @@ compresses it.")
 (define-public claws-mail
   (package
     (name "claws-mail")
-    (version "3.16.0")
+    (version "3.17.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://www.claws-mail.org/releases/" name "-" version
+                    "https://www.claws-mail.org/releases/claws-mail-" version
                     ".tar.xz"))
               (sha256
                (base32
-                "1awpr3s7n8bq8p3w10a4j6lg5bizjxyiqp4rqzc2j8cn7lyi64n2"))))
+                "1wnj6c9cbmhphs2l6wfvndkk2g08rmxw0sl2c8k1k008dxd1ykjh"))))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs `(("bogofilter" ,bogofilter)
@@ -1065,31 +1066,30 @@ appearance and interface are designed to be familiar to new users coming from
 other popular email clients, as well as experienced users.  Almost all commands
 are accessible with the keyboard.  Plus, Claws-Mail is extensible via addons
 which can add many functionalities to the base client.")
-    (home-page "http://www.claws-mail.org/")
+    (home-page "https://www.claws-mail.org/")
     (license gpl3+))) ; most files are actually public domain or x11
 
 (define-public msmtp
   (package
     (name "msmtp")
-    (version "1.6.6")
+    (version "1.8.1")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://sourceforge/msmtp/msmtp/" version
+       (uri (string-append "https://marlam.de/msmtp/releases/"
                            "/msmtp-" version ".tar.xz"))
        (sha256
         (base32
-         "0ppvww0sb09bnsrpqnvlrn8vx231r24xn2iiwpy020mxc8gxn5fs"))))
+         "1nm4vizrnrrnknc4mc8nr7grz9q76m1vraa0hsl5rfm34gnsg8ph"))))
     (build-system gnu-build-system)
     (inputs
-     `(("libidn" ,libidn)
-       ("libsecret" ,libsecret)
+     `(("libsecret" ,libsecret)
        ("gnutls" ,gnutls)
        ("zlib" ,zlib)
        ("gsasl" ,gsasl)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://msmtp.sourceforge.net/")
+    (home-page "https://marlam.de/msmtp/")
     (arguments
      `(#:configure-flags (list "--with-libgsasl"
                                "--with-libidn"
@@ -1206,7 +1206,7 @@ facilities for checking incoming mail.")
 (define-public dovecot
   (package
     (name "dovecot")
-    (version "2.3.1")
+    (version "2.3.4")
     (source
      (origin
        (method url-fetch)
@@ -1214,7 +1214,7 @@ facilities for checking incoming mail.")
                            (version-major+minor version) "/"
                            name "-" version ".tar.gz"))
        (sha256 (base32
-                "14zva4f8k64x86sm9n21cp2yvrpph6k6k52bm22a00pxjwdq50q8"))))
+                "01ggzf7b3jpl89mjiqr7xbpbs181g2gjf6wzg70qaqfzz3ppc6yr"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -1399,7 +1399,7 @@ mailboxes.  Currently Maildir and IMAP are supported types.")
      `(("perl-email-simple" ,perl-email-simple)
        ("perl-module-pluggable" ,perl-module-pluggable)
        ("perl-mro-compat" ,perl-mro-compat)))
-    (home-page "http://search.cpan.org/dist/Email-Abstract")
+    (home-page "https://metacpan.org/release/Email-Abstract")
     (synopsis "Interface to mail representations")
     (description "Email::Abstract provides module writers with the ability to
 write simple, representation-independent mail handling code.")
@@ -1418,7 +1418,7 @@ write simple, representation-independent mail handling code.")
         (base32
          "0l7x6sl06j9ffgfz5f9vgms2b5axd4cgp5fj03ivb3kia4km6b3g"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Email-Address")
+    (home-page "https://metacpan.org/release/Email-Address")
     (synopsis "Email address parsing and creation")
     (description "Email::Address implements a regex-based RFC 2822 parser that
 locates email addresses in strings and returns a list of Email::Address
@@ -1438,7 +1438,7 @@ objects found.  Alternatively you may construct objects manually.")
         (base32
          "012ivfwpnbl3wr50f9c6f4azhdlxnm31pdn72528g79v61z6372p"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Email-Date-Format")
+    (home-page "https://metacpan.org/release/Email-Date-Format")
     (synopsis "Produce RFC 2822 date strings")
     (description "Email::Date::Format provides a means for generating an RFC
 2822 compliant datetime string.")
@@ -1457,7 +1457,7 @@ objects found.  Alternatively you may construct objects manually.")
         (base32
          "1f22sdnfq169qw1l0lg7y74pmiam7j9v95bggjnf3q4mygdmshpc"))))
     (build-system perl-build-system)
-    (home-page "http://search.cpan.org/dist/Email-MessageID")
+    (home-page "https://metacpan.org/release/Email-MessageID")
     (synopsis "Generate world unique message-ids")
     (description "Email::MessageID generates recommended message-ids to
 identify a message uniquely.")
@@ -1484,7 +1484,7 @@ identify a message uniquely.")
        ("perl-email-simple" ,perl-email-simple)
        ("perl-mime-types" ,perl-mime-types)
        ("perl-module-runtime" ,perl-module-runtime)))
-    (home-page "http://search.cpan.org/dist/Email-MIME")
+    (home-page "https://metacpan.org/release/Email-MIME")
     (synopsis "MIME message handling")
     (description "Email::MIME is an extension of the Email::Simple module, to
 handle MIME encoded messages.  It takes a message as a string, splits it up
@@ -1507,7 +1507,7 @@ message.  Headers are decoded from MIME encoding.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-capture-tiny" ,perl-capture-tiny)))
-    (home-page "http://search.cpan.org/dist/Email-MIME-ContentType")
+    (home-page "https://metacpan.org/release/Email-MIME-ContentType")
     (synopsis "Parse MIME Content-Type headers")
     (description "Email::MIME::ContentType parses a MIME Content-Type
 header.")
@@ -1528,7 +1528,7 @@ header.")
     (build-system perl-build-system)
     (native-inputs
      `(("perl-capture-tiny" ,perl-capture-tiny)))
-    (home-page "http://search.cpan.org/dist/Email-MIME-Encodings")
+    (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.")
     (license perl-license)))
@@ -1559,7 +1559,7 @@ header.")
        ("perl-sub-exporter" ,perl-sub-exporter)
        ("perl-throwable" ,perl-throwable)
        ("perl-try-tiny" ,perl-try-tiny)))
-    (home-page "http://search.cpan.org/dist/Email-Sender")
+    (home-page "https://metacpan.org/release/Email-Sender")
     (synopsis "Perl library for sending email")
     (description "Email::Sender replaces the old and sometimes problematic
 Email::Send library.")
@@ -1568,7 +1568,7 @@ Email::Send library.")
 (define-public perl-email-simple
   (package
     (name "perl-email-simple")
-    (version "2.214")
+    (version "2.216")
     (source
      (origin
        (method url-fetch)
@@ -1576,11 +1576,11 @@ Email::Send library.")
                            "Email-Simple-" version ".tar.gz"))
        (sha256
         (base32
-         "14kb86hi0m0bqc7kxpm4x5kvfsyj2x86gggbvpxhx9hy8hvjpw5j"))))
+         "1m4brbjvalyp5kjqslqv4155dzwg977shxin208i7lc8236n6pyq"))))
     (build-system perl-build-system)
     (propagated-inputs
      `(("perl-email-date-format" ,perl-email-date-format)))
-    (home-page "http://search.cpan.org/dist/Email-Simple")
+    (home-page "https://metacpan.org/release/Email-Simple")
     (synopsis "Parsing of RFC 2822 messages")
     (description "Email::Simple provides simple parsing of RFC 2822 message
 format and headers.")
@@ -1735,13 +1735,13 @@ maintained.")
 (define-public khard
   (package
     (name "khard")
-    (version "0.11.4")
+    (version "0.12.2")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri name version))
               (sha256
                (base32
-                "1shhlq6ljbd8095hd82v4mw56rjcfxf1ymmgknbgh8gix02nsxw1"))))
+                "01y52qmab4cw9wmx87aahnxbyaxrxw8j2wx06mpcqsfvgk8d54wi"))))
     (build-system python-build-system)
     (arguments
       `(#:phases
@@ -1752,14 +1752,17 @@ maintained.")
                      (doc (string-append out "/share/doc/khard")))
                 (copy-recursively "misc/khard" doc)
                 #t))))
-        ;; FIXME: check phase fails with
-        ;; "Config file /tmp/.config/khard/khard.conf not available"
+        ;; Tests are currently only runnable without preexisting data on
+        ;; the development branch:
+        ;; https://github.com/scheibler/khard/issues/176
         #:tests? #f))
     (propagated-inputs
-     `(("python-vobject" ,python-vobject)
+     `(("python-atomicwrites" ,python-atomicwrites)
+       ("python-configobj" ,python-configobj)
        ("python-pyyaml" ,python-pyyaml)
-       ("python-atomicwrites" ,python-atomicwrites)
-       ("python-configobj" ,python-configobj)))
+       ("python-ruamel.yaml" ,python-ruamel.yaml)
+       ("python-unidecode" ,python-unidecode)
+       ("python-vobject" ,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
@@ -1802,7 +1805,7 @@ Khard can also be used from within the email client @command{mutt}.")
       ("perl-netaddr-ip" ,perl-netaddr-ip)
       ("perl-uri" ,perl-uri)))
   (home-page
-    "http://search.cpan.org/dist/Mail-SPF")
+    "https://metacpan.org/release/Mail-SPF")
   (synopsis
     "Perl implementation of Sender Policy Framework")
   (description "Mail::SPF is the Sender Policy Framework implemented
@@ -1857,24 +1860,22 @@ converts them to maildir format directories.")
 (define-public mpop
   (package
     (name "mpop")
-    (version "1.2.6")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "mirror://sourceforge/mpop/mpop/" version
-                           "/mpop-" version ".tar.xz"))
+       (uri (string-append "https://marlam.de/mpop/releases/"
+                           name "-" version ".tar.xz"))
        (sha256
         (base32
-         "0p1ix63jh64dibrlccch8q7gxl9nn18wd2qpyr5z1h4gs2fpmv4z"))))
+         "14xsvpm5bc1wycisq882gqrnamnyi1q4rlk6anlw8ihzvwgm4h2j"))))
     (build-system gnu-build-system)
     (inputs
      `(("gnutls" ,gnutls)
        ("libidn" ,libidn)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (arguments
-     `(#:configure-flags (list "--with-tls=gnutls")))
-    (home-page "http://mpop.sourceforge.net/")
+    (home-page "https://marlam.de/mpop/")
     (synopsis "POP3 mail client")
     (description "mpop is a small and fast POP3 client suitable as a
 fetchmail replacement.
@@ -2364,7 +2365,7 @@ operators and scripters.")
 (define-public alpine
   (package
     (name "alpine")
-    (version "2.21.999")
+    (version "2.21.9999")
     (source
      (origin
        (method url-fetch)
@@ -2373,11 +2374,11 @@ operators and scripters.")
        ;; the patched version, and so do we to not break expectations.
        ;; http://alpine.freeiz.com/alpine/readme/README.patches
        (uri (string-append "http://repo.or.cz/alpine.git/snapshot/"
-                           "349642a84039a4b026513c32a3b4f8594acd50df.tar.gz"))
+                           "d3e6f3932f2af9deca8eed09e30a55e9bd524362.tar.gz"))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1rkvlfk3q7h9jcvaj91pk7l087bq4b38j30060jaw21zz94b90np"))))
+         "0w4qyybfdxi29r2z3giq0by6aa6v6nrgibh1xgv4d1vwwq4hw35w"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags (list "CC=gcc")
@@ -2430,15 +2431,15 @@ tools and applications:
 (define-public balsa
   (package
     (name "balsa")
-    (version "2.5.3")
+    (version "2.5.6")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "https://pawsa.fedorapeople.org/balsa/balsa-"
-                           version ".tar.bz2"))
+       (uri (string-append "https://pawsa.fedorapeople.org/balsa/"
+                           name "-" version ".tar.bz2"))
        (sha256
         (base32
-         "15jkwp3ylbwd8iha4dr37z1xb6mkk31ym90vv3h2a5xk2rmym5mq"))))
+         "17k6wcsl8gki7cskr3hhmfj6n54rha8ca3b6fzd8blsl5shsankx"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -2554,3 +2555,145 @@ and binaries. It supports offline reading, scoring and killfiles, yEnc, NZB,
 PGP handling, multiple servers, and secure connections.")
     ;; License of the docs: fdl-1.1; Others: gpl2.
     (license (list fdl1.1+ gpl2))))
+
+(define-public imapfilter
+  (package
+    (name "imapfilter")
+    (version "2.6.12")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/lefcha/imapfilter.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0vzpc54fjf5vb5vx5w0fl20xvx1k9cg6a3hbl86mm8kwsqf3wrab"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f
+       #:make-flags
+       (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+             "CC=gcc")
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-after 'unpack 'fix-include-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((pcre (assoc-ref inputs "pcre")))
+               (substitute* "src/Makefile"
+                 (("INCDIRS =")
+                  (string-append "INCDIRS ="
+                                 "-I" pcre "/include")))
+               #t))))))
+    (native-inputs
+     `(("lua" ,lua)
+       ("pcre" ,pcre)
+       ("openssl" ,openssl)))
+    (home-page "https://github.com/lefcha/imapfilter")
+    (synopsis "IMAP mail filtering utility")
+    (description "IMAPFilter is a mail filtering utility.  It connects
+to remote mail servers using IMAP, sends searching queries to the server and
+processes mailboxes based on the results.  It can be used to delete, copy,
+move, flag, etc. messages residing in mailboxes at the same or different mail
+servers.  The 4rev1 and 4 versions of IMAP are supported.")
+    (license license:expat)))
+
+(define-public urlscan
+  (package
+    (name "urlscan")
+    (version "0.9.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (pypi-uri "urlscan" version))
+        (sha256
+         (base32
+          "0vpdyrx51sg9a8kswa7ibbcgcpvc7r03aq8x4n4c7v2xg0v3c7wb"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-urwid" ,python-urwid)))
+    (home-page "https://github.com/firecat53/urlscan")
+    (synopsis "View/select the URLs in an email message or file")
+    (description
+     "Urlscan is a small program that is designed to integrate with the
+@code{mutt} mailreader to allow you to easily launch a Web browser for URLs
+contained in email messages.  It parses an email message or file and scans it
+for URLs and email addresses.  It then displays the URLs and their context
+within the message, and allows you to choose one or more URLs to send to your
+Web browser.  Alternatively, it send a list of all URLs to stdout.  It is a
+replacement for the @code{urlview} program.")
+    (license gpl2)))
+
+(define-public tnef
+  (package
+    (name "tnef")
+    (version "1.4.17")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/verdammelt/tnef.git")
+             (commit version)))
+       (sha256
+        (base32
+         "0cq2xh5wd74qn6k2nnw5rayxgqhjl3jbzf4zlc4babcwxrv32ldh"))
+       (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)))
+    (arguments `(#:parallel-tests? #f)) ;tests are side-effect'y
+    (home-page "https://github.com/verdammelt/tnef")
+    (synopsis "Unpack @code{application/ms-tnef} attachments")
+    (description
+     "TNEF is a tar-like program that unpacks MIME attachments of type
+@code{application/ms-tnef}.")
+    (license gpl2+)))
+
+(define-public mumi
+  (let ((commit "bfd96ce76b4600ae232e6548b26c9365095fd174")
+        (revision "2"))
+    (package
+      (name "mumi")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://git.elephly.net/software/mumi.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "05miwfi1bh0v9x2gvn15bwkb3gn4xy53z506ysjzns2y497zkc5h"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'install 'wrap-executable
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (bin (string-append out "/bin"))
+                      (scm (string-append out "/share/guile/site/2.2"))
+                      (go  (string-append out "/lib/guile/2.2/site-ccache")))
+                 (wrap-program (string-append bin "/mumi")
+                   `("GUILE_LOAD_PATH" ":" prefix
+                     (,scm ,(getenv "GUILE_LOAD_PATH")))
+                   `("GUILE_LOAD_COMPILED_PATH" ":" prefix
+                     (,go ,(getenv "GUILE_LOAD_COMPILED_PATH"))))
+                 #t))))))
+      (inputs
+       `(("guile-debbugs" ,guile-debbugs-next)
+         ("guile-email" ,guile-email)
+         ("guile-fibers" ,guile-fibers)
+         ("guile-json" ,guile-json)
+         ("guile-syntax-highlight" ,guile-syntax-highlight)
+         ("guile" ,guile-2.2)))
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("pkg-config" ,pkg-config)))
+      (home-page "https://git.elephly.net/software/mumi.git")
+      (synopsis "Debbugs web interface")
+      (description "Mumi is a Debbugs web interface.")
+      (license agpl3+))))