;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014, 2015, 2017, 2020 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;; Copyright © 2014 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2014, 2019 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016, 2017 Troy Sankey <sankeytms@gmail.com>
-;;; Copyright © 2016, 2017, 2018 ng0 <ng0@n0.is>
+;;; Copyright © 2016, 2017, 2018 Nikita <nikita@n0.is>
;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
-;;; Copyright © 2016, 2017, 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 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 © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Justus Winter <justus@sequoia-pgp.org>
;;; Copyright © 2020 Eric Brown <ecbrown@ericcbrown.com>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages guile-xyz)
#:use-module (gnu packages flex)
#:use-module (gnu packages haskell-xyz)
+ #:use-module (gnu packages icu4c)
#:use-module (gnu packages kerberos)
+ #:use-module (gnu packages language)
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libidn)
#:use-module (gnu packages perl-web)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-check)
+ #:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages rdf)
#:use-module (gnu packages readline)
#:use-module (gnu packages ruby)
#:use-module (gnu packages search)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)
#:use-module (gnu packages xml)
- #:use-module ((guix licenses)
- #: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 licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (srfi srfi-1)
#:use-module (ice-9 match))
+(define-public anubis
+ (package
+ (name "anubis")
+ ;; This 4.2.90 alpha release adds support for Guile 3 and has fixes for
+ ;; other issues.
+ (version "4.2.90")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://alpha.gnu.org/gnu/anubis/anubis-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0dvm6acl32dv8bixx9z50gzwfp6kj4kxnn1j3dcwjlp7sasjp41s"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("automake" ,automake)
+ ("autoconf" ,autoconf)
+ ("gettext" ,gettext-minimal)
+ ("m4" ,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)))
+ (outputs '("out" "debug"))
+ (synopsis "SMTP message submission daemon")
+ (description "Anubis is a daemon that sits between the Mail User
+Agent (MUA) and the Mail Transfer Agent (MTA). When a mail is sent by a user
+in the MUA, it is first passed to Anubis, which performs additional processing
+to the message before passing it on for delivery by the MTA. Anubis may, for
+example, modify the message headers or body, or encrypt or sign the message.")
+ (home-page "https://www.gnu.org/software/anubis/manual/")
+ (license license:gpl3+)))
+
(define-public mailutils
(package
(name "mailutils")
- (version "3.9")
+ (version "3.10")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/mailutils/mailutils-"
version ".tar.xz"))
(sha256
(base32
- "1g1xf2lal04nsnf1iym9n9n0wxjpqbcr9nysxpm98v4pniinqwsz"))))
+ "17smrxjdgbbzbzakik30vj46q4iib85ksqhb82jr4vjp57akszh9"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(("\\$\\(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))
("dejagnu" ,dejagnu)))
(inputs
`(("m4" ,m4)
- ("guile" ,guile-2.2)
+ ("guile" ,guile-3.0)
("gsasl" ,gsasl)
("gnutls" ,gnutls)
("ncurses" ,ncurses)
software.")
(license
;; Libraries are under LGPLv3+, and programs under GPLv3+.
- (list gpl3+ lgpl3+))))
+ (list license:gpl3+ license:lgpl3+))))
-(define-public guile3.0-mailutils
+(define-public guile2.2-mailutils
(package
(inherit mailutils)
- (name "guile3.0-mailutils")
+ (name "guile2.2-mailutils")
(inputs
- `(("guile" ,guile-3.0)
+ `(("guile" ,guile-2.2)
,@(alist-delete "guile" (package-inputs mailutils))))))
+(define-public guile3.0-mailutils
+ (deprecated-package "guile3.0-mailutils" mailutils))
+
(define-public nullmailer
(package
(name "nullmailer")
It requires little ongoing administration. The included @command{sendmail}
emulator front-end should allow most (if not all) sendmail-compatible programs
to run without any changes.")
- (license (list lgpl2.1+ ; lib/cli++/ (but some files lack headers)
- gpl2+)))) ; everything else
+ (license (list license:lgpl2.1+ ; lib/cli++/ (but some files lack headers)
+ license:gpl2+)))) ; everything else
(define-public fetchmail
(package
(name "fetchmail")
- (version "6.4.1")
+ (version "6.4.11")
(source
(origin
(method url-fetch)
(version-major+minor version) "/"
"fetchmail-" version ".tar.xz"))
(sha256
- (base32 "1859wvfc9fq72mwp4njdiy0x89hnddlfr3nix71qqglcs0fz2crz"))))
+ (base32 "177276dha2pchsvlki0skf460kmjnixqmzc6nj33fz4hd7c1sj1y"))))
(build-system gnu-build-system)
(inputs
`(("openssl" ,openssl)))
(arguments
`(#:configure-flags
(list (string-append "--with-ssl="
- (assoc-ref %build-inputs "openssl")))
- #:phases
- (modify-phases %standard-phases
- (add-before 'check 'create-test-environment
- (lambda _
- ;; Fix ‘Cannot find absolute path for user's home directory’.
- (setenv "HOME" "/tmp")
- #t)))))
+ (assoc-ref %build-inputs "openssl")))))
(home-page "https://www.fetchmail.info/")
(synopsis "Remote-mail retrieval and forwarding utility")
(description
so it can then be read by normal mail user agents such as mutt, elm
or BSD Mail. It allows all your system MTA's filtering, forwarding, and
aliasing facilities to work just as they would on normal mail.")
- (license gpl2+))) ; most files are actually public domain or x11
+ (license license:gpl2+))) ; most files are actually public domain or x11
(define-public mutt
(package
(name "mutt")
- (version "1.13.5")
+ (version "1.14.7")
(source (origin
(method url-fetch)
(uri (list
version ".tar.gz")))
(sha256
(base32
- "0lx65a44b03rbvcrz0y9syrik67fx3hvblxyyvz5l9bb7rdipmvc"))
+ "0r58xnjgkw0kmnnzhb32mk5gkkani5kbi5krybpbag156fqhgxg4"))
(patches (search-patches "mutt-store-references.patch"))))
(build-system gnu-build-system)
(inputs
"--with-sasl"
"--with-sqlite3" ; required for Autocrypt
"--with-idn2" ; recommended for Autocrypt
- ;; so that mutt does not check whether the path
- ;; exists, which it does not in the chroot
+ ;; So that mutt does not check whether the path
+ ;; exists, which it does not in the chroot.
"--with-mailpath=/var/mail")))
(home-page "http://www.mutt.org/")
(synopsis "Mail client")
(description
"Mutt is a small but very powerful text-based mail client for Unix
operating systems.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public neomutt
(package
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/neomutt/neomutt.git")
+ (url "https://github.com/neomutt/neomutt")
(commit version)))
(file-name (git-file-name name version))
(sha256
(description
"NeoMutt is a command-line mail reader which is based on mutt.
It adds a large amount of new and improved features to mutt.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public gmime
(package
"GMime provides a core library and set of utilities which may be used for
the creation and parsing of messages using the Multipurpose Internet Mail
Extension (MIME).")
- (license (list lgpl2.1+ gpl2+ gpl3+))))
+ (license (list license:lgpl2.1+ license:gpl2+ license:gpl3+))))
;; Some packages are not ready for GMime 3 yet.
(define-public gmime-2.6
(non-spam) by a statistical analysis of the message's header and
content (body). The program is able to learn from the user's classifications
and corrections. It is based on a Bayesian filter.")
- (license gpl3+)))
+ (license license:gpl3+)))
(define-public offlineimap
(package
"OfflineImap synchronizes emails between two repositories, so that you
can read the same mailbox from multiple computers. It supports IMAP as REMOTE
repository and Maildir/IMAP as LOCAL repository.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public emacs-mew
(package
(description "Mew (Messaging in the Emacs World) is a user interface
for text messages, multimedia messages (MIME), news articles and
security functionality including PGP, S/MIME, SSH, and SSL.")
- (license bsd-3)))
+ (license license:bsd-3)))
(define-public mu
(package
(name "mu")
- (version "1.4.4")
+ (version "1.4.13")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/djcb/mu/releases/"
- "download/" version "/"
+ "download/" version "/"
"mu-" version ".tar.xz"))
(sha256
(base32
- "0pmx8zh5fsfhkdl0cr7ydcv6cywhxbgavnjrfr5p2ibz9gx3q3vf"))))
+ "13kfpr77qrnp3i5qnb5zd03frd3fdviggnl50973gdk0hr7m0smj"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
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 gpl3+)))
+ (license license:gpl3+)))
(define-public alot
(package
(description
"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+)))
+ (license license:gpl3+)))
(define-public notifymuch
(let
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/kspi/notifymuch.git")
+ (url "https://github.com/kspi/notifymuch")
(commit commit)))
(sha256
(base32
within a configurable period (defaults to 48 hours). To use notifymuch, run
@command{notifymuch} after new mail is indexed, this can be automated by
invoking @command{notifymuch} from the post-new hook.")
- (license gpl3))))
+ (license license:gpl3))))
(define-public notmuch
(package
(name "notmuch")
- (version "0.29.3")
+ (version "0.30-0.31rc1") ; Ensure it is ordered before "0.31"
(source (origin
(method url-fetch)
(uri (string-append "https://notmuchmail.org/releases/notmuch-"
- version ".tar.xz"))
+ ;; version
+ "0.31~rc1" ;FIXME: Remove on the next update
+ ".tar.xz"))
+ ;; FIXME: The 'file-name' field below is needed only because of
+ ;; the tilde "~" in the URL base name. Remove it when the tilde
+ ;; is no longer there.
+ (file-name (string-append name "-" version ".tar.xz"))
(sha256
(base32
- "0dfwa38vgnxk9cvvpza66szjgp8lir6iz6yy0cry9593lywh9xym"))))
+ "11f10r9pp3p22afpfsrlz0xa0raas4w7fg2jkscgkjj5710ws8fw"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
(string-append "--prefix=" out)
(string-append "--emacslispdir=" elisp)
(string-append "--emacsetcdir=" elisp)))))
+ (add-before 'check 'disable-failing-tests
+ ;; FIXME: Investigate why these tests are failing,
+ ;; and try removing this for notmuch versions >= 0.31.
+ (lambda _
+ (substitute* "test/T356-protected-headers.sh"
+ (("\\$NOTMUCH_GMIME_X509_CERT_VALIDITY") "0"))
+ #t))
(add-before 'check 'prepare-test-environment
(lambda _
(setenv "TEST_CC" "gcc")
(description
"Notmuch is a command-line based program for indexing, searching, read-
ing, and tagging large collections of email messages.")
- (license gpl3+)))
+ (license license:gpl3+)))
(define-public notmuch-addrlookup-c
(package
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/aperezdc/notmuch-addrlookup-c.git")
+ (url "https://github.com/aperezdc/notmuch-addrlookup-c")
(commit (string-append "v" version))))
(file-name (string-append name "-" version "-checkout"))
(sha256
(description
"This package provides Python bindings to use the Notmuch mail indexing
and search library.")
- (license gpl3+)))
+ (license license:gpl3+)))
(define-public python2-notmuch
(package-with-python2 python-notmuch))
replicas. A version-vector-based algorithm allows it to exchange only the
minimum information necessary to bring replicas up to date regardless of which
pairs have previously synchronized.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public getmail
(package
useful features.")
;; License is specified in file '__init__.py'.
- (license gpl2)))
+ (license license:gpl2)))
(define-public libetpan
(package
("expat" ,expat)
("zlib" ,zlib)))
(arguments
- '(#:phases
- (modify-phases %standard-phases
- (replace 'bootstrap
- (lambda _
- (setenv "NOCONFIGURE" "true")
- (invoke "sh" "autogen.sh"))))
- #:configure-flags
+ '(#:configure-flags
'("--disable-static" "--disable-db")))
(home-page "https://www.etpan.org/libetpan.html")
(synopsis "Portable middleware for email access")
framework for different kinds of mail access: IMAP, SMTP, POP and NNTP. It
provides an API for C language. It's the low-level API used by MailCore and
MailCore 2.")
- (license bsd-3)))
+ (license license:bsd-3)))
(define-public compface
(package
(description "This package takes your 48x48x1 portrait image and
compresses it.")
(home-page "https://legacy.cs.indiana.edu/ftp/faces/")
- (license (x11-style "file://README"))))
+ (license (license:x11-style "file://README"))))
(define-public claws-mail
(package
(name "claws-mail")
- (version "3.17.5")
+ (version "3.17.6")
(source (origin
(method url-fetch)
(uri (string-append
".tar.xz"))
(sha256
(base32
- "1gjrmdmhc7zzilrlss9yl86ybv9sra8v0qi7mkwv7d9azidx5kns"))))
+ "1s05qw0r0gqwvvkxvrrwbjkbi61dvilixiwrpgcq21qc9csc9r0m"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs `(("bogofilter" ,bogofilter)
are accessible with the keyboard. Plus, Claws-Mail is extensible via addons
which can add many functionalities to the base client.")
(home-page "https://www.claws-mail.org/")
- (license gpl3+))) ; most files are actually public domain or x11
+ (license license:gpl3+))) ; most files are actually public domain or x11
(define-public msmtp
(package
(name "msmtp")
- (version "1.8.7")
+ (version "1.8.12")
(source
(origin
(method url-fetch)
(uri (string-append "https://marlam.de/msmtp/releases/"
"/msmtp-" version ".tar.xz"))
(sha256
- (base32 "1waiiksa57byb7gvx1zmh6srvl6r8rvwqklk0slb3iaf4kfbqlws"))))
+ (base32 "0m33m5bc7ajmgy7vivnzj3mhybg37259hx79xypj769kfyafyvx8"))))
(build-system gnu-build-system)
(inputs
`(("libsecret" ,libsecret)
"msmtp is an SMTP client. In the default mode, it transmits a mail to
an SMTP server (for example at a free mail provider) which takes care of further
delivery.")
- (license gpl3+)))
+ (license license:gpl3+)))
(define-public exim
(package
(name "exim")
- (version "4.93.0.4")
+ (version "4.94")
(source
(origin
(method url-fetch)
(string-append "https://ftp.exim.org/pub/exim/exim4/old/"
file-name))))
(sha256
- (base32 "01g4sfycv13glnmfrapwhjbdw6z1z7w5bwjldxjmglwfw5p3czak"))))
+ (base32 "1nsb2i5mqxfz1sl1bmbxmpb2qiaf3wffhfiw4j9vfpagy3xfhzpp"))))
(build-system gnu-build-system)
(inputs
`(("bdb" ,bdb-5.3) ; ‘#error Version 6 and later BDB API is not supported’
similar to Smail 3, but its facilities are more general. There is a great
deal of flexibility in the way mail can be routed, and there are extensive
facilities for checking incoming mail.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public dovecot
(package
(name "dovecot")
- (version "2.3.10")
+ (version "2.3.11.3")
(source
(origin
(method url-fetch)
(version-major+minor version) "/"
"dovecot-" version ".tar.gz"))
(sha256
- (base32 "1ibiz3k2flablkcqbkvfzsjnq5b5kxximhcrplflsjl57mr88ca7"))))
+ (base32 "1p5gp8jbavcsaara5mfn5cbrnlxssajnchczbgmmfzr7228fmnfk"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,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?)
("lz4" ,lz4)
("openssl" ,openssl)
("sqlite" ,sqlite)
- ("zlib" ,zlib)))
+ ("zlib" ,zlib)
+ ("zstd" ,zstd "lib")))
(arguments
`(#:configure-flags '("--sysconfdir=/etc"
"--localstatedir=/var"
- "--with-sqlite") ; not auto-detected
+ "--with-sqlite" ; not auto-detected
+ "--with-lucene") ; not auto-detected
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-file-names
;; Most source files are covered by either lgpl2.1 or expat. The SHA code
;; is covered by a variant of BSD-3, and UnicodeData.txt is covered by the
;; Unicode, Inc. License Agreement for Data Files and Software.
- (license (list lgpl2.1 license:expat (non-copyleft "file://COPYING")))))
+ (license (list license:lgpl2.1 license:expat
+ (license:non-copyleft "file://COPYING")))))
(define-public dovecot-trees
(package
using libsodium sealed boxes.
@item New mail is encrypted as it arrives using the Curve25519 public key.
@end enumerate\n")
- (license agpl3)))
+ (license license:agpl3)))
(define-public dovecot-libsodium-plugin
(let ((commit "044de73c01c35385df0105f6b387bec5d5317ce7")
(description
"@code{dovecot-libsodium-plugin} provides a libsodium password
hashing scheme (such as scrypt) plug-in for @code{Dovecot}.")
- (license gpl3+))))
+ (license license:gpl3+))))
(define-public isync
(package
(name "isync")
- (version "1.3.1")
+ (version "1.3.3")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/isync/isync/"
version "/isync-" version ".tar.gz"))
(sha256 (base32
- "1sphd30jplii58y2zmw365bckm6pszmapcy905zhjll1sm1ldjv8"))))
+ "10n8ykag0q3ws6fc15xqyg3v980v5nq3kzpablly2rh2z7vkn8gj"))))
(build-system gnu-build-system)
(native-inputs
`(("perl" ,perl)))
("cyrus-sasl" ,cyrus-sasl)
("openssl" ,openssl-1.0)
("zlib" ,zlib)))
- (home-page "http://isync.sourceforge.net/")
+ (home-page "https://isync.sourceforge.io/")
(synopsis "Mailbox synchronization program")
(description
"isync/mbsync is a command-line tool for two-way synchronization of
mailboxes. Currently Maildir and IMAP are supported types.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public perl-email-abstract
(package
(synopsis "Interface to mail representations")
(description "Email::Abstract provides module writers with the ability to
write simple, representation-independent mail handling code.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-email-address
(package
(description "Email::Address implements a regex-based RFC 2822 parser that
locates email addresses in strings and returns a list of Email::Address
objects found. Alternatively you may construct objects manually.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-email-address-xs
(package
addresses and groups. Unlike Email::Address, this module does not use regular
expressions for parsing but instead is implemented in XS and uses shared code
from Dovecot IMAP server.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-email-date-format
(package
(synopsis "Produce RFC 2822 date strings")
(description "Email::Date::Format provides a means for generating an RFC
2822 compliant datetime string.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-email-messageid
(package
(synopsis "Generate world unique message-ids")
(description "Email::MessageID generates recommended message-ids to
identify a message uniquely.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-email-mime
(package
handle MIME encoded messages. It takes a message as a string, splits it up
into its constituent parts, and allows you access to various parts of the
message. Headers are decoded from MIME encoding.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-email-mime-contenttype
(package
(synopsis "Parse MIME Content-Type headers")
(description "Email::MIME::ContentType parses a MIME Content-Type
header.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-email-mime-encodings
(package
(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)))
+ (license license:perl-license)))
(define-public perl-email-sender
(package
(synopsis "Perl library for sending email")
(description "Email::Sender replaces the old and sometimes problematic
Email::Send library.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-email-simple
(package
(synopsis "Parsing of RFC 2822 messages")
(description "Email::Simple provides simple parsing of RFC 2822 message
format and headers.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public libesmtp
(package
It may be used as part of a Mail User Agent (MUA) or other program that must
be able to post electronic mail where mail functionality may not be that
program's primary purpose.")
- (license (list lgpl2.1+ gpl2+))))
+ (license (list license:lgpl2.1+ license:gpl2+))))
(define-public esmtp
(package
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/andywingo/esmtp.git")
+ (url "https://github.com/andywingo/esmtp")
(commit "01bf9fc")))
(sha256
(base32
page for more on configuration. This package also provides minimal
compatibility shims for the @command{sendmail}, @command{mailq}, and
@command{newaliases} commands.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public fdm
(package
;; Why point to a source file? Well, all the individual files have a
;; copy of this license in their headers, but there's no seprate file
;; with that information.
- (non-copyleft "https://github.com/nicm/fdm/blob/master/command.c"))))
+ (license:non-copyleft
+ "https://github.com/nicm/fdm/blob/master/command.c"))))
(define-public procmail
can be sorted into separate files/directories and arbitrary commands can be
executed on mail arrival. Procmail is considered stable, but is no longer
maintained.")
- (license gpl2+))) ;; procmail allows to choose the
- ;; nonfree Artistic License 1.0
- ;; as alternative to the GPL2+.
- ;; This option is not listed here.
+ (license license:gpl2+))) ;; procmail allows to choose the
+ ;; nonfree Artistic License 1.0
+ ;; as alternative to the GPL2+.
+ ;; This option is not listed here.
(define-public khard
(package
(name "khard")
- (version "0.16.1")
+ (version "0.17.0")
(source (origin
(method url-fetch)
(uri (pypi-uri name version))
(sha256
(base32
- "0fg4qh5gzki5wg958wlpc8a2icnk74gzg33lqxjm755cfnjng7qd"))))
+ "062nv4xkfsjc11k9m52dh6xjn9z68a4a6x1s8z05wwv4jbp1lkhn"))))
(build-system python-build-system)
(arguments
`(#:phases
(inputs
`(("python-atomicwrites" ,python-atomicwrites)
("python-configobj" ,python-configobj)
- ("python-pyyaml" ,python-pyyaml)
("python-ruamel.yaml" ,python-ruamel.yaml)
("python-unidecode" ,python-unidecode)
("python-vobject" ,python-vobject)))
synchronizing with a remote address book, @command{vdirsyncer} is recommended.
Khard can also be used from within the email client @command{mutt}.")
(home-page "https://github.com/scheibler/khard")
- (license gpl3+)))
+ (license license:gpl3+)))
(define-public perl-mail-spf
(package
(synopsis "Perl implementation of Sender Policy Framework")
(description "Mail::SPF is the Sender Policy Framework implemented
in Perl.")
- (license bsd-3)))
+ (license license:bsd-3)))
(define-public perl-mail-authenticationresults
(package
that indicates the message authentication status as per RFC7601. This module
is not fully compliant with the RFC but it tries to implement most styles of
Authentication-Results header seen in the wild.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-mail-dkim
(package
both of which sign and verify emails using digital signatures and DNS records.
Mail-DKIM can be used by any Perl program that wants to provide support for
DKIM and/or DomainKeys.")
- (license gpl3+)))
+ (license license:gpl3+)))
(define-public dkimproxy
(package
It was designed for Postfix, but can be used to add DKIM support to nearly any
existing mail server. With Postfix, the proxies can operate as either
@code{Before-Queue} or @code{After-Queue} content filters.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public mb2md
(package
(description
"Mb2md is a Perl script that takes one or more mbox format files and
converts them to maildir format directories.")
- (license public-domain)))
+ (license license:public-domain)))
(define-public mpop
(package
(name "mpop")
- (version "1.4.7")
+ (version "1.4.10")
(source
(origin
(method url-fetch)
(uri (string-append "https://marlam.de/mpop/releases/"
"mpop-" version ".tar.xz"))
(sha256
- (base32 "0c6n5afn9pr4p7gxkv462lysrw52w9fhvavzm99c78dcp9dj5xnk"))))
+ (base32 "1243hazpiwgvz2m3p48cdh0yw1019i6xjxgc7qyhmxcdy0inb6wy"))))
(build-system gnu-build-system)
(inputs
`(("gnutls" ,gnutls)))
to mbox files, maildir folders or an @acronym{MDA, Mail Delivery Agent},
TLS/SSL, several authentication methods, @acronym{IDN, Internationalized Domain
Names} and SOCKS proxies.")
- (license gpl3+)))
+ (license license:gpl3+)))
(define-public mhonarc
(package
provides HTML mail archiving with index, mail thread linking,
etc; plus other capabilities including support for MIME and
powerful user customization features.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public sendmail
"Sendmail is a mail transfer agent (MTA) originally developed by Eric
Allman. It is highly configurable and supports many delivery methods and many
transfer protocols.")
- (license (non-copyleft "file://LICENSE"
- "See LICENSE in the distribution."))))
+ (license (license:non-copyleft "file://LICENSE"
+ "See LICENSE in the distribution."))))
(define-public opensmtpd
(package
(name "opensmtpd")
- (version "6.6.4p1")
+ (version "6.7.1p1")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.opensmtpd.org/archives/"
"opensmtpd-" version ".tar.gz"))
(sha256
- (base32 "1kyph9ycq0j21dl9n1sq5fns9p4gckdi0fmnf8awrcwrdcm9dyg2"))))
+ (base32 "1jh8vxfajm1mvp1v5yh6llrhjzv0n9fgab88mlwllwqynhcfjy3l"))))
(build-system gnu-build-system)
(inputs
`(("bdb" ,bdb)
"--with-table-db")
#:phases
(modify-phases %standard-phases
+ ;; See: https://github.com/OpenSMTPD/OpenSMTPD/issues/1069.
+ (add-after 'unpack 'fix-smtpctl-encrypt-bug
+ (lambda _
+ (substitute* "smtpd/smtpctl.c"
+ (("\"encrypt\", \"--\",")
+ "\"encrypt\","))
+ #t))
;; Fix some incorrectly hard-coded external tool file names.
(add-after 'unpack 'patch-FHS-file-names
(lambda _
provide enough features to satisfy typical usage at the risk of unsuitability
to esoteric or niche requirements.")
(home-page "https://www.opensmtpd.org")
- (license (list bsd-2 bsd-3 bsd-4 (non-copyleft "file://COPYING")
- public-domain isc license:openssl))))
+ (license (list license:bsd-2 license:bsd-3 license:bsd-4
+ (license:non-copyleft "file://COPYING")
+ license:public-domain license:isc license:openssl))))
(define-public opensmtpd-extras
(package
(name "opensmtpd-extras")
- (version "5.7.1")
+ (version "6.7.1")
(source (origin
(method url-fetch)
(uri (string-append "https://www.opensmtpd.org/archives/"
- name "-" version ".tar.gz"))
+ "opensmtpd-extras-" version ".tar.gz"))
(sha256
(base32
- "1kld4hxgz792s0cb2gl7m2n618ikzqkj88w5dhaxdrxg4x2c4vdm"))))
+ "1b1mx71bvmv92lbm08wr2p60g3qhikvv3n15zsr6dcwbk9aqahzq"))))
(build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
(inputs
`(("libressl" ,libressl)
("libevent" ,libevent)
- ("libasr" ,libasr)
- ("python-2" ,python-2)
+ ("mysql" ,mysql)
("opensmtpd" ,opensmtpd)
- ("perl" ,perl)
- ("lua" ,lua)
("postgresql" ,postgresql)
- ("sqlite" ,sqlite)
- ("linux-pam" ,linux-pam)))
- (native-inputs
- `(("bison" ,bison)
- ("pkg-config" ,pkg-config)
- ("groff" ,groff)
- ("automake" ,automake)
- ("autoconf" ,autoconf)))
+ ("python" ,python-2)
+ ("sqlite" ,sqlite)))
(arguments
- `(;; We have to configure it like this because the default checks for for example
- ;; python in /usr/local/bin, /usr/bin and fails otherwise.
- #:configure-flags (list
- "--with-filter-clamav" "--with-filter-dkim-signer"
- "--with-filter-dnsbl" "--with-filter-lua"
- "--with-filter-monkey" "--with-filter-pause"
- "--with-filter-perl" "--with-filter-python"
- "--with-filter-regex" "--with-filter-spamassassin"
- "--with-filter-stub" "--with-filter-trace"
- "--with-filter-void"
-
- "--with-queue-null" "--with-queue-python"
- "--with-queue-ram" "--with-queue-stub"
-
- "--with-scheduler-python" "--with-scheduler-ram"
- "--with-scheduler-stub"
-
- "--with-table-ldap" ; "--with-table-mysql"
- "--with-table-passwd" "--with-table-postgres"
- "--with-table-python" "--with-table-socketmap"
- "--with-table-sqlite" "--with-table-stub"
- ;;"--with-table-redis" ; TODO: package hiredis
-
- "--with-user=smtpd" "--with-privsep-user=smtpd"
- "--localstatedir=/var" "--sysconfdir=/etc"
- "--with-lua-type=lua" ; can use lua or luajit
-
- (string-append "--with-python="
- (assoc-ref %build-inputs "python-2"))
- (string-append "--with-lua="
- (assoc-ref %build-inputs "lua")))))
- (license (list bsd-2 bsd-3 bsd-4
- public-domain isc license:openssl))
+ `(#:configure-flags
+ (list "--sysconfdir=/etc"
+ "--localstatedir=/var"
+
+ "--with-queue-null"
+ "--with-queue-python"
+ "--with-queue-ram"
+ "--with-queue-stub"
+
+ "--with-table-ldap"
+ "--with-table-mysql"
+ "--with-table-postgres"
+ ;; "--with-table-redis" ; TODO: package hiredis
+ "--with-table-socketmap"
+ "--with-table-passwd"
+ "--with-table-python"
+ "--with-table-sqlite"
+ "--with-table-stub"
+
+ "--with-scheduler-ram"
+ "--with-scheduler-stub"
+ "--with-scheduler-python"
+
+ "--with-user-smtpd=smtpd"
+
+ ;; We have to configure it like this because the default checks for
+ ;; for example Python in /usr/{,local/}bin and fails otherwise.
+ (string-append "--with-python="
+ (assoc-ref %build-inputs "python")))))
+ (home-page "https://www.opensmtpd.org")
(synopsis "Extra tables, filters, and various other addons for OpenSMTPD")
(description
"This package provides extra tables, filters, and various other addons
for OpenSMTPD to extend its functionality.")
- (home-page "https://www.opensmtpd.org")))
+ (license (list license:bsd-2 license:bsd-3 ; openbsd-compat
+ license:isc)))) ; everything else
+
+(define-public mailman
+ (package
+ (name "mailman")
+ (version "3.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "mailman" version))
+ (sha256
+ (base32
+ "0idfiv48jjgc0jq4731094ddhraqq8bxnwmjk6sg5ask0jss9kxq"))))
+ (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)))
+ (native-inputs
+ `(("python-nose" ,python-nose)))
+ (home-page "https://www.list.org")
+ (synopsis "Mailing list manager")
+ (description
+ "GNU Mailman is software for managing email discussion and mailing
+lists. Both users and administrators generally perform their actions in a
+web interface, although email and command-line interfaces are also provided.
+The system features built-in archiving, automatic bounce processing, content
+filtering, digest delivery, and more.")
+ (license license:gpl3+)))
(define-public python-mailmanclient
(package
(name "python-mailmanclient")
- (version "3.1.1")
+ (version "3.3.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "mailmanclient" version))
(sha256
(base32
- "0fdfs5g3pf30v2i7w18pdkv9xnfxmfcv66mzv56dck0a1igq07m3"))))
+ "0pjgzpvhdb6ql8asb20xr8d01m646zpghmcp9fmscks0n1k4di4g"))))
(build-system python-build-system)
(arguments
`(#:tests? #f)) ; Requires mailman running
(propagated-inputs
- `(("python-six" ,python-six)
- ("python-httplib2" ,python-httplib2)))
- (home-page "https://launchpad.net/mailman.client")
+ `(("python-requests" ,python-requests)))
+ ;(native-inputs
+ ; `(("mailman" ,mailman)
+ ; ("python-falcon" ,python-falcon)
+ ; ("python-pytest" ,python-pytest)
+ ; ("python-pytest-services" ,python-pytest-services)))
+ (home-page "https://www.list.org/")
(synopsis "Python bindings for the Mailman 3 REST API")
(description
"The mailmanclient library provides official Python bindings for
the GNU Mailman 3 REST API.")
- (license lgpl3+)))
+ (properties `((python2-variant . ,(delay python2-mailmanclient))))
+ (license license:lgpl3+)))
+;; This is the last version which supports Python-2.
(define-public python2-mailmanclient
- (package-with-python2 python-mailmanclient))
+ (let ((base (package-with-python2
+ (strip-python2-variant python-mailmanclient))))
+ (package
+ (inherit base)
+ (version "3.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "mailmanclient" version))
+ (sha256
+ (base32
+ "0fdfs5g3pf30v2i7w18pdkv9xnfxmfcv66mzv56dck0a1igq07m3"))))
+ (propagated-inputs
+ `(("python2-six" ,python2-six)
+ ("python2-httplib2" ,python2-httplib2))))))
(define-public mlmmj
(package
@end enumerate\n")
(license license:expat)))
+(define-public python-django-mailman3
+ (package
+ (name "python-django-mailman3")
+ (version "1.3.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "django-mailman3" version))
+ (sha256
+ (base32
+ "1yrm7wpjy34xai72vn2vkhc9131cdrbqy08rrabf36kynj5vcdvy"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (setenv "DJANGO_SETTINGS_MODULE"
+ "django_mailman3.tests.settings_test")
+ (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)))
+ (native-inputs
+ `(("python-mock" ,python-mock)))
+ (home-page "https://gitlab.com/mailman/django-mailman3")
+ (synopsis "Django library to help interaction with Mailman")
+ (description
+ "This package contains libraries and templates for Django-based interfaces
+interacting with Mailman.")
+ (properties `((python2-variant . ,(delay python2-django-mailman3))))
+ (license license:gpl3+)))
+
+;; This is the last version to support Python-2.
(define-public python2-django-mailman3
(package
(name "python2-django-mailman3")
(description
"Libraries and templates for Django-based interfaces
interacting with Mailman.")
- (license gpl3+)))
+ (license license:gpl3+)))
+
+(define-public python-mailman-hyperkitty
+ (package
+ (name "python-mailman-hyperkitty")
+ (version "1.1.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")))))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-requests" ,python-requests)
+ ("python-zope-interface" ,python-zope-interface)))
+ (inputs
+ `(("mailman" ,mailman)))
+ (native-inputs
+ `(("python-mock" ,python-mock)
+ ("python-nose" ,python-nose)
+ ("python-nose2" ,python-nose2)))
+ (home-page "https://gitlab.com/mailman/mailman-hyperkitty/")
+ (synopsis "Mailman archiver plugin for HyperKitty")
+ (description
+ "Mailman3 allows emails sent to its mailing lists to be archived by any
+software provided that there is a plugin (loadable by Mailman3) designed to
+communicate with it properly. This module contains a Mailman3 archiver plugin
+which sends emails to HyperKitty, the official Mailman3 web archiver.")
+ (license license:gpl3+)))
+
+(define-public python-hyperkitty
+ (package
+ (name "python-hyperkitty")
+ (version "1.3.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "HyperKitty" version))
+ (sha256
+ (base32
+ "0p85r9q6mn5as5b39xp9hkkipnk0156acx540n2ygk3qb3jd4a5n"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ ;; It is unclear why this test fails.
+ (substitute* "hyperkitty/tests/commands/test_import.py"
+ (("def test_bad_content_type_part_two")
+ "@SkipTest\n def test_bad_content_type_part_two"))
+ (setenv "PYTHONPATH" (string-append ".:" (getenv "PYTHONPATH")))
+ (invoke "example_project/manage.py" "test"
+ "--settings=hyperkitty.tests.settings_test"))))))
+ (propagated-inputs
+ `(("python-dateutil" ,python-dateutil)
+ ("python-django" ,python-django)
+ ("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)))
+ (native-inputs
+ `(("python-beautifulsoup4" ,python-beautifulsoup4)
+ ("python-elasticsearch" ,python-elasticsearch)
+ ("python-isort" ,python-isort)
+ ("python-mock" ,python-mock)
+ ("python-whoosh" ,python-whoosh)))
+ (home-page "https://gitlab.com/mailman/hyperkitty")
+ (synopsis "Web interface to access GNU Mailman v3 archives")
+ (description
+ "The hyperkitty Django app provides a web user interface to access GNU
+Mailman3 archives, and manage it. This interface uses django, and requires
+some configuration.")
+ (license license:gpl3))) ; Some files are gpl2+
(define-public postorius
(package
(name "postorius")
- (version "1.0.3")
+ (version "1.3.3")
(source
(origin
(method url-fetch)
- (uri (pypi-uri "postorius" version "+post2.tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (uri (pypi-uri "postorius" version))
(sha256
(base32
- "1wymcpv2icjjy8h1ni52p6dr7wwxf71ivqgbqhzx4i82yqphcaq5"))))
+ "08jn23gblbkfl09qlykbpsmp39mmach3sl69h1j5cd5kkx839rwa"))))
(build-system python-build-system)
(arguments
- `(; One test dependency relies on Persona, which was shut down in
- ;; November 2016.
- #:tests? #f
- ;; The part of the frontend of Mailman is still python 2.7.
- #:python ,python-2))
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (add-installed-pythonpath inputs outputs)
+ (if tests?
+ (invoke "python" "example_project/manage.py" "test"
+ "--settings=test_settings" "postorius")
+ #t))))
+ #:tests? #f)) ; Tests try to run a mailman instance to test against.
(inputs
- `(("python2-django" ,python2-django)
- ("python2-django-mailman3" ,python2-django-mailman3)
- ("python2-mailmanclient" ,python2-mailmanclient)))
+ `(("python-django" ,python-django)
+ ("python-django-mailman3" ,python-django-mailman3)
+ ("python-mailmanclient" ,python-mailmanclient)
+ ("python-readme-renderer" ,python-readme-renderer)))
+ (native-inputs
+ `(("python-beautifulsoup4" ,python-beautifulsoup4)
+ ("python-isort" ,python-isort)
+ ("python-mock" ,python-mock)
+ ("python-vcrpy" ,python-vcrpy)))
(home-page "https://gitlab.com/mailman/postorius")
(synopsis "Web user interface for GNU Mailman")
(description
"Postorius is a Django app which provides a web user interface
to access GNU Mailman.")
- (license (list gpl3+ lgpl3+))))
+ (license (list license:gpl3+ license:lgpl3+))))
(define-public blists
(package
(define-public swaks
(package
(name "swaks")
- (version "20181104.0")
+ (version "20190914.0")
(source
(origin
(method url-fetch)
version ".tar.gz"))
(sha256
(base32
- "0n1yd27xcyb1ylp5gln3yv5gzi9r377hjy1j32367kgb3247ygq2"))))
+ "12awq5z4sdd54cxprj834zajxhkpy4jwhzf1fhigcx1zbhdaacsp"))))
(build-system perl-build-system)
(inputs
`(("perl-net-dns" ,perl-net-dns)
Options can be specified in environment variables, configuration files, and
the command line allowing maximum configurability and ease of use for
operators and scripters.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public alpine
(package
(name "alpine")
- ;; Upstream doesn't use git tags, but does ‘tag’ their releases in the
- ;; commit message. Hence the lack of GIT-VERSIONing despite using a commit
- ;; ID below. Don't forget to update it…
- (version "2.21.99999")
+ (version "2.23.2")
(source
(origin
(method git-fetch)
;; http://alpine.freeiz.com/alpine/readme/README.patches
(uri (git-reference
(url "http://repo.or.cz/alpine.git")
- (commit "abeb2c25935ef8c75f1e5deef0f81276754dc975")))
+ (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0rqgbw08a5lj41dkp82aq480lqkc4bnxagna7wpqffi821n8gkwz"))
+ (base32 "16ldmmcymrnpnbfc1kb2rhac7nzlc87wjawic4wfinkphd124d1y"))
(modules '((guix build utils)))
(snippet
'(begin
#t))))
(build-system gnu-build-system)
(arguments
- `(#:make-flags (list "CC=gcc")
+ `(#:make-flags
+ (list (string-append "CC=" ,(cc-for-target)))
#:configure-flags (list (string-append "--with-ssl-include-dir="
(assoc-ref %build-inputs "openssl")
"/include/openssl")
"--with-date-stamp=Thu 1 Jan 01:00:01 CET 1970")
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'assume-shadow-passwords
+ ;; Alpine's configure script confuses ‘shadow password support’ with
+ ;; ‘/etc/shadow exists in the build environment’. It does not.
+ (lambda _
+ (substitute* "configure"
+ (("test -f /etc/shadow") "true"))
+ #t))
(add-after 'unpack 'make-reproducible
(lambda _
;; This removes time-dependent code to make alpine reproducible.
@item pico, the standalone text editor, GNU nano's predecessor
@item pilot, the standalone file system navigator
@end enumerate\n")
- (license asl2.0)))
+ (license license:asl2.0)))
(define-public balsa
(package
(name "balsa")
- (version "2.6.0")
+ (version "2.6.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://pawsa.fedorapeople.org/balsa/"
- name "-" version ".tar.bz2"))
+ "balsa-" version ".tar.bz2"))
(sha256
- (base32 "0ycidvgy9npd6avxk88sf2ca609m7zb0hzrk1yajrgwb1rfqx68a"))))
+ (base32 "1xkxx801p7sbfkn0bh3cz85wra4xf1z1zhjqqc80z1z1nln7fhb4"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
the GNOME desktop. It supports both POP3 and IMAP servers as well as the
mbox, maildir and mh local mailbox formats. Balsa also supports SMTP and/or
the use of a local MTA such as Sendmail.")
- (license gpl3+)))
+ (license license:gpl3+)))
(define-public afew
(package
provides automatic tagging each time new mail is registered with notmuch. It
can add tags based on email headers or Maildir folders and can handle spam and
killed threads.")
- (license isc)))
+ (license license:isc)))
(define-public pan
(package
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))))
+ (license (list license:fdl1.1+ license:gpl2))))
(define-public imapfilter
(package
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/lefcha/imapfilter.git")
+ (url "https://github.com/lefcha/imapfilter")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(define-public urlscan
(package
(name "urlscan")
- (version "0.9.4")
+ (version "0.9.5")
(source
(origin
(method url-fetch)
(uri (pypi-uri "urlscan" version))
(sha256
- (base32 "1q0vxv9haap01vz1cbkzss62cgwb9365lv5vnkg2gbpx4g5y7a9l"))))
+ (base32 "07vcwirap0p4dkqrqblfn1q017slgd8m6qyijvbi3gxnr09pbyx2"))))
(build-system python-build-system)
(propagated-inputs
`(("python-urwid" ,python-urwid)))
(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
+Mutt mail reader 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)))
+Web browser. Alternatively, it send a list of all URLs to standard output.
+It is a replacement for the @command{urlview} program.")
+ (license license:gpl2)))
(define-public tnef
(package
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/verdammelt/tnef.git")
+ (url "https://github.com/verdammelt/tnef")
(commit version)))
(sha256
(base32 "104g48mcm00bgiyzas2vf86331w7bnw7h3bc11ib4lp7rz6zqfck"))
(description
"TNEF is a tar-like program that unpacks MIME attachments of type
@code{application/ms-tnef}.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public mumi
- (let ((commit "9175199e9039b9a1dbc5e1eafa05b9c618416f3b")
- (revision "16"))
+ (let ((commit "5a578328199bab51a147fbadbce12c8d06959ed6")
+ (revision "2"))
(package
(name "mumi")
- (version (git-version "0.0.0" revision commit))
+ (version (git-version "0.0.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "1v0i9h3dw0irc92flmk3wk72l0kiymf82fashklbyhk7mr968zx3"))))
+ "0hngv82gd19l4q7nnbf97r120z1yagsmkp0x3lc8haza5q4mc12c"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
(,go ,(getenv "GUILE_LOAD_COMPILED_PATH"))))
#t))))))
(inputs
- `(("guile-debbugs" ,guile-debbugs)
- ("guile-email" ,guile-email)
+ `(("guile-email" ,guile-email)
+ ("guile-fibers" ,guile-fibers)
("guile-gcrypt" ,guile-gcrypt)
("guile-json" ,guile-json-3)
("guile-redis" ,guile-redis)
- ("guile-sqlite3" ,guile-sqlite3)
("guile-syntax-highlight" ,guile-syntax-highlight)
("guile-webutils" ,guile-webutils)
("guile-xapian" ,guile-xapian)
- ("gnutls" ,gnutls) ;needed to talk to https://debbugs.gnu.org
- ("guile" ,guile-2.2)
+ ("guile" ,guile-3.0)
("mailutils" ,mailutils)))
(native-inputs
`(("autoconf" ,autoconf)
(home-page "https://git.elephly.net/software/mumi.git")
(synopsis "Debbugs web interface")
(description "Mumi is a Debbugs web interface.")
- (license agpl3+))))
+ (license license:agpl3+))))
(define-public ytnef
(package
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/Yeraze/ytnef.git")
+ (url "https://github.com/Yeraze/ytnef")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(synopsis "TNEF stream reader for winmail.dat files")
(description "This package provides a TNEF stream reader library and
related tools to process winmail.dat files.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public public-inbox
- (let ((commit "05a06f3262a2ddbf46adb85169e13ce9127e4524")
- (revision "0"))
- (package
- (name "public-inbox")
- (version (git-version "1.2.0" revision commit))
- (source
- (origin (method git-fetch)
- (uri (git-reference
- (url "https://public-inbox.org")
- (commit commit)))
- (sha256
- (base32
- "06cclxg46gsls3x19l9s8s9x8gkjghm6gd4jb1v9ng6fds6xi2fg"))
- (file-name (git-file-name name version))))
- (build-system perl-build-system)
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-before 'configure 'qualify-paths
- (lambda _
- ;; Use absolute paths for 'xapian-compact'.
- (let ((xapian-compact (which "xapian-compact")))
- (substitute* "script/public-inbox-compact"
- (("xapian-compact") xapian-compact)))
- #t))
- (add-before 'check 'pre-check
- (lambda _
- (substitute* "t/spawn.t"
- (("\\['env'\\]") (string-append "['" (which "env") "']")))
- (substitute* "t/ds-leak.t"
- (("/bin/sh") (which "sh")))
- (invoke "./certs/create-certs.perl")
- ;; XXX: This test fails due to zombie process is not reaped by
- ;; the builder.
- (substitute* "t/httpd-unix.t"
- (("^SKIP: \\{") "SKIP: { skip('Guix');"))
- #t))
- (add-after 'install 'wrap-programs
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (for-each
- (lambda (prog)
- (wrap-program prog
- ;; Let those scripts find their perl modules.
- `("PERL5LIB" ":" prefix
- (,(string-append out "/lib/perl5/site_perl")
- ,(getenv "PERL5LIB")))
- ;; 'git' is invoked in various files of the PublicInbox
- ;; perl module.
- `("PATH" ":" prefix
- (,(string-append (assoc-ref inputs "git") "/bin")))))
- (find-files (string-append out "/bin"))))
- #t)))))
- (native-inputs
- `(("git" ,git)
- ("xapian" ,xapian)
- ;; For testing.
- ("lsof" ,lsof)
- ("openssl" ,openssl)))
- (inputs
- `(("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-filesys-notify-simple" ,perl-filesys-notify-simple)
- ("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)
- ;; For testing.
- ("perl-ipc-run" ,perl-ipc-run)
- ("perl-xml-feed" ,perl-xml-feed)))
- (home-page "https://public-inbox.org/README.html")
- (synopsis "Archive mailing lists in git repositories")
- (description
- "public-inbox implements the sharing of an email inbox via git to
+ (package
+ (name "public-inbox")
+ (version "1.5.0")
+ (source
+ (origin (method git-fetch)
+ (uri (git-reference
+ (url "https://public-inbox.org")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "03zj7shdl3vibs7k5lr673bwcf8j1xx8is3mjz34ca4cdh6p5j2k"))
+ (file-name (git-file-name name version))))
+ (build-system perl-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'qualify-paths
+ (lambda _
+ ;; Use absolute paths for 'xapian-compact'.
+ (let ((xapian-compact (which "xapian-compact")))
+ (substitute* "script/public-inbox-compact"
+ (("xapian-compact") xapian-compact)))
+ #t))
+ (add-before 'check 'pre-check
+ (lambda _
+ (substitute* "t/spawn.t"
+ (("\\['env'\\]") (string-append "['" (which "env") "']")))
+ (substitute* "t/ds-leak.t"
+ (("/bin/sh") (which "sh")))
+ (invoke "./certs/create-certs.perl")
+ ;; XXX: This test fails due to zombie process is not reaped by
+ ;; the builder.
+ (substitute* "t/httpd-unix.t"
+ (("^SKIP: \\{") "SKIP: { skip('Guix');"))
+ #t))
+ (add-after 'install 'wrap-programs
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (for-each
+ (lambda (prog)
+ (wrap-program prog
+ ;; Let those scripts find their perl modules.
+ `("PERL5LIB" ":" prefix
+ (,(string-append out "/lib/perl5/site_perl")
+ ,(getenv "PERL5LIB")))
+ ;; 'git' is invoked in various files of the PublicInbox
+ ;; perl module.
+ `("PATH" ":" prefix
+ (,(string-append (assoc-ref inputs "git") "/bin")))))
+ (find-files (string-append out "/bin"))))
+ #t)))))
+ (native-inputs
+ `(("xapian" ,xapian)
+ ;; For testing.
+ ("lsof" ,lsof)
+ ("openssl" ,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-filesys-notify-simple" ,perl-filesys-notify-simple)
+ ("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)
+ ;; For testing.
+ ("perl-ipc-run" ,perl-ipc-run)
+ ("perl-xml-feed" ,perl-xml-feed)))
+ (home-page "https://public-inbox.org/README.html")
+ (synopsis "Archive mailing lists in git repositories")
+ (description
+ "public-inbox implements the sharing of an email inbox via git to
complement or replace traditional mailing lists. Readers may read via NNTP,
Atom feeds or HTML archives.")
- (license agpl3+))))
+ (license license:agpl3+)))
(define-public sylpheed
(package
"Sylpheed is a simple, lightweight but featureful, and easy-to-use e-mail
client. Sylpheed provides intuitive user-interface. Sylpheed is also
designed for keyboard-oriented operation.")
- (license gpl2+)))
+ (license license:gpl2+)))
+
+(define-public python-authres
+ (package
+ (name "python-authres")
+ (version "1.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "authres" version))
+ (sha256
+ (base32
+ "1dr5zpqnb54h4f5ax8334l1dcp8j9083d7v4vdi1xqkwmnavklck"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ ;; Run doctests as described in the README.
+ (lambda _
+ (invoke "python" "-m" "authres" "-v"))))))
+ (home-page "https://launchpad.net/authentication-results-python")
+ (synopsis "Authentication-Results email header creator and parser")
+ (description
+ "This Python module can be used to generate and parse RFC 5451/7001/7601
+@code{Authentication-Results} email headers. It supports extensions such as:
+@itemize
+@item RFC 5617 DKIM/ADSP
+@item RFC 6008 DKIM signature identification (@code{header.b})
+@item RFC 6212 @acronym{VBR, Vouch By Reference}
+@item RFC 6577 @acronym{SPF, Sender Policy Framework}
+@item RFC 7281 @code{Authentication-Results} registration for S/MIME
+@item RFC 7293 The @code{Require-Recipient-Valid-Since} header field
+@item RFC 7489 @acronym{DMARC, Domain-based Message Authentication Reporting
+and Conformance}
+@item @acronym{ARC, Authenticated Received Chain}
+(draft-ietf-dmarc-arc-protocol-08)
+@end itemize\n")
+ (license license:asl2.0)))
+
+(define-public python-dkimpy
+ (package
+ (name "python-dkimpy")
+ (version "1.0.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "dkimpy" version))
+ (sha256
+ (base32 "088iz5cqjqh4c7141d94pvn13bh25aizqlrifwv6fs5g16zj094s"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'patch-source-shebangs 'patch-more-source
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((openssl (assoc-ref inputs "openssl")))
+ (substitute* "dkim/dknewkey.py"
+ (("/usr/bin/openssl") (string-append openssl "/bin/openssl"))))
+ #t))
+ (replace 'check
+ (lambda _
+ (invoke "python" "test.py"))))))
+ (propagated-inputs
+ `(("python-dnspython" ,python-dnspython)))
+ (native-inputs
+ `(("python-authres" ,python-authres)
+ ("python-pynacl" ,python-pynacl)))
+ (inputs
+ `(("openssl" ,openssl)))
+ (home-page "https://launchpad.net/dkimpy")
+ (synopsis "DKIM (DomainKeys Identified Mail)")
+ (description "Python module that implements @dfn{DKIM} (DomainKeys
+Identified Mail) email signing and verification (RFC6376). It also provides
+helper scripts for command line signing and verification. It supports DKIM
+signing/verifying of ed25519-sha256 signatures (RFC 8463). It also supports
+the RFC 8617 Authenticated Received Chain (ARC) protocol.")
+ (license license:bsd-3)))
+
+(define-public python-authheaders
+ (package
+ (name "python-authheaders")
+ (version "0.13.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "authheaders" version))
+ (sha256
+ (base32
+ "14k6i72k5f8dyvps8vc0aq0cczc8lvqpgjfjzsy6qqychjvjcmwk"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-authres" ,python-authres)
+ ("python-dkimpy" ,python-dkimpy)
+ ("python-dnspython" ,python-dnspython)
+ ("python-publicsuffix2" ,python-publicsuffix2)))
+ (home-page "https://github.com/ValiMail/authentication-headers")
+ (synopsis "Library wrapping email authentication header verification and generation")
+ (description
+ "This is a Python library for the generation of email authentication
+headers. The library can perform DKIM, SPF, and DMARC validation, and the
+results are packaged into the Authentication-Results header. The library can
+DKIM and ARC sign messages and output the corresponding signature headers.")
+ ;; The package's metadata claims it were MIT licensed, but the source file
+ ;; headers disagree. MPL-2 for the public suffix list.
+ (license (list license:zpl2.1 license:zlib license:mpl2.0))))
+
+(define-public python-aiosmtpd
+ (package
+ (name "python-aiosmtpd")
+ (version "1.2.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/aio-libs/aiosmtpd")
+ (commit version)))
+ (sha256
+ (base32 "14c30dm6jzxiblnsah53fdv68vqhxwvb9x0aq9bc4vcdas747vr7"))
+ (file-name (git-file-name name version))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'delete-failing-tests
+ (lambda _
+ ;; This test uses an expired certificate.
+ (delete-file "aiosmtpd/tests/test_smtps.py")
+ #t))
+ (replace 'check
+ (lambda _
+ (invoke "python" "-m" "nose2" "-v"))))))
+ (native-inputs
+ `(("python-flufl-testing" ,python-flufl-testing)
+ ("python-nose2" ,python-nose2)))
+ (propagated-inputs
+ `(("python-atpublic" ,python-atpublic)))
+ (home-page "https://aiosmtpd.readthedocs.io/")
+ (synopsis "Asyncio based SMTP server")
+ (description
+ "This project is a reimplementation of the Python stdlib @code{smtpd.py}
+based on asyncio.")
+ (license (list license:asl2.0
+ license:lgpl3)))) ; only for setup_helpers.py