aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/mail.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/mail.scm')
-rw-r--r--gnu/packages/mail.scm562
1 files changed, 424 insertions, 138 deletions
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index d4ef3a1f3e..beee68c67d 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -1,6 +1,6 @@
;;; 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>
@@ -33,6 +33,8 @@
;;; 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>
+;;; Copyright © 2020 Alexey Abramov <levenson@mmer.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -86,7 +88,9 @@
#: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)
@@ -111,6 +115,7 @@
#: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)
@@ -134,6 +139,7 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
+ #:use-module (guix svn-download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system guile)
@@ -184,14 +190,14 @@ example, modify the message headers or body, or encrypt or sign the message.")
(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
@@ -230,6 +236,13 @@ example, modify the message headers or body, or encrypt or sign the message.")
(("\\$\\(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))
@@ -382,7 +395,7 @@ to run without any changes.")
(define-public fetchmail
(package
(name "fetchmail")
- (version "6.4.8")
+ (version "6.4.11")
(source
(origin
(method url-fetch)
@@ -390,7 +403,7 @@ to run without any changes.")
(version-major+minor version) "/"
"fetchmail-" version ".tar.xz"))
(sha256
- (base32 "1g893dr3982vrqzxybmflnqfmd1q6yipd9krvxn0avhlrrp97k96"))))
+ (base32 "177276dha2pchsvlki0skf460kmjnixqmzc6nj33fz4hd7c1sj1y"))))
(build-system gnu-build-system)
(inputs
`(("openssl" ,openssl)))
@@ -417,7 +430,7 @@ aliasing facilities to work just as they would on normal mail.")
(define-public mutt
(package
(name "mutt")
- (version "1.14.6")
+ (version "1.14.7")
(source (origin
(method url-fetch)
(uri (list
@@ -427,7 +440,7 @@ aliasing facilities to work just as they would on normal mail.")
version ".tar.gz")))
(sha256
(base32
- "0i0q6vwhnb1grimsrpmz8maw255rh9k0laijzxkry6xqa80jm5s7"))
+ "0r58xnjgkw0kmnnzhb32mk5gkkani5kbi5krybpbag156fqhgxg4"))
(patches (search-patches "mutt-store-references.patch"))))
(build-system gnu-build-system)
(inputs
@@ -746,7 +759,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
(define-public mu
(package
(name "mu")
- (version "1.4.10")
+ (version "1.4.13")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/djcb/mu/releases/"
@@ -754,7 +767,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
"mu-" version ".tar.xz"))
(sha256
(base32
- "0vbyrmv3d2bja4vx86za93gq46vxg18j12g0lca3x1dl8d5g2xa6"))))
+ "13kfpr77qrnp3i5qnb5zd03frd3fdviggnl50973gdk0hr7m0smj"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@@ -915,14 +928,20 @@ invoking @command{notifymuch} from the post-new hook.")
(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)
@@ -952,6 +971,13 @@ invoking @command{notifymuch} from the post-new hook.")
(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")
@@ -1244,14 +1270,14 @@ which can add many functionalities to the base client.")
(define-public msmtp
(package
(name "msmtp")
- (version "1.8.11")
+ (version "1.8.12")
(source
(origin
(method url-fetch)
(uri (string-append "https://marlam.de/msmtp/releases/"
"/msmtp-" version ".tar.xz"))
(sha256
- (base32 "0q0fg235qk448l1xjcwyxr7vcpzk6w57jzhjbkb0m7nffyhhypzj"))))
+ (base32 "0m33m5bc7ajmgy7vivnzj3mhybg37259hx79xypj769kfyafyvx8"))))
(build-system gnu-build-system)
(inputs
`(("libsecret" ,libsecret)
@@ -1400,7 +1426,8 @@ facilities for checking incoming mail.")
(define-public dovecot
(package
(name "dovecot")
- (version "2.3.10.1")
+ ;; Also update dovecot-pigeonhole when updating to a new minor version.
+ (version "2.3.11.3")
(source
(origin
(method url-fetch)
@@ -1408,13 +1435,16 @@ facilities for checking incoming mail.")
(version-major+minor version) "/"
"dovecot-" version ".tar.gz"))
(sha256
- (base32 "035idr2j81s5mngnhd58rih79dhwwak7q01mqbx3rcmi4cpychk6"))))
+ (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?)
@@ -1424,11 +1454,13 @@ facilities for checking incoming mail.")
("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
@@ -1460,6 +1492,83 @@ It supports mbox/Maildir and its own dbox/mdbox formats.")
(license (list license:lgpl2.1 license:expat
(license:non-copyleft "file://COPYING")))))
+(define-public dovecot-pigeonhole
+ (let ((dovecot-version (version-major+minor (package-version dovecot))))
+ (package
+ (name "dovecot-pigeonhole")
+ (version "0.5.11")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://pigeonhole.dovecot.org/releases/" dovecot-version "/"
+ "dovecot-" dovecot-version "-pigeonhole-" version ".tar.gz"))
+ (sha256
+ (base32 "1w5mryv6izh1gv7davnl94rb0pvh5bxl2bydzbfla1b83x22m5qb"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; RFC licencing is ad-hoc and rarely free. Remove them all.
+ (delete-file-recursively "doc/rfc")
+ (substitute* "configure"
+ (("doc/rfc/Makefile") ""))
+ (substitute* "doc/Makefile.in"
+ (("rfc ") ""))
+ #t))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags
+ (list "--disable-static"
+ "--with-dovecot-install-dirs=no"
+ (string-append "--with-dovecot="
+ (assoc-ref %build-inputs "dovecot")
+ "/lib/dovecot")
+ (string-append "--docdir="
+ (assoc-ref %outputs "out")
+ "/share/doc/" ,name "-" ,version)
+ (string-append "--with-moduledir="
+ (assoc-ref %outputs "out")
+ "/lib/dovecot"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-file-names
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (libexec (string-append out "/libexec/dovecot")))
+ (substitute* "src/managesieve/managesieve-settings.c"
+ (("\\.executable = \"managesieve\"")
+ (string-append ".executable = \"" libexec
+ "/managesieve\"")))
+ (substitute* "src/managesieve-login/managesieve-login-settings.c"
+ (("\\.executable = \"managesieve-login\"")
+ (string-append ".executable = \"" libexec
+ "/managesieve-login\"")))
+ #t))))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("dovecot" ,dovecot)))
+ (home-page "https://pigeonhole.dovecot.org")
+ (synopsis "Dovecot Sieve mail filtering plug-in and ManageSieve service")
+ (description
+ "Pigeonhole adds support for the Sieve language (RFC 5228) and the
+ManageSieve protocol (RFC 5804) to the Dovecot e-mail server.
+
+@dfn{Sieve} is a language for filtering incoming mail. Messages can be
+forwarded or sorted into separate folders. Unwanted messages can be rejected
+or discarded, and, when the user is not available, the Sieve interpreter can
+send an automated reply.
+
+Sieve is meant to be simple, extensible, and system-independent. The
+intention is to make it impossible to write anything more complex (and
+dangerous) than simple mail filters. Unlike most other mail filtering script
+languages, Sieve does not allow users to execute arbitrary programmes.
+
+Through the @dfn{ManageSieve} protocol, users can remotely manage their Sieve
+scripts without needing file system access. The server accepts only valid
+scripts to prevent embarrassing errors later on.")
+ (license license:lgpl2.1))))
+
(define-public dovecot-trees
(package
(name "dovecot-trees")
@@ -1550,14 +1659,14 @@ hashing scheme (such as scrypt) plug-in for @code{Dovecot}.")
(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)))
@@ -1566,7 +1675,7 @@ hashing scheme (such as scrypt) plug-in for @code{Dovecot}.")
("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
@@ -1945,13 +2054,13 @@ maintained.")
(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
@@ -1967,7 +2076,6 @@ maintained.")
(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)))
@@ -2242,7 +2350,6 @@ etc; plus other capabilities including support for MIME and
powerful user customization features.")
(license license:gpl2+)))
-
(define-public sendmail
(package
(name "sendmail")
@@ -2325,6 +2432,70 @@ transfer protocols.")
(license (license:non-copyleft "file://LICENSE"
"See LICENSE in the distribution."))))
+(define-public sieve-connect
+ (package
+ (name "sieve-connect")
+ (version "0.90")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://people.spodhuis.org/phil.pennock/software/"
+ "sieve-connect-" version ".tar.bz2"))
+ (sha256
+ (base32 "00vnyzr67yr2ilnprbd388gfnwmrmbdx1jsig9d0n5q902jqn62a"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags
+ (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:tests? #f ; no test suite
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure) ; no configure script
+ (add-before 'install 'create-output-directories
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (for-each (lambda (subdirectory)
+ (mkdir-p (string-append out "/" subdirectory)))
+ (list "bin"
+ "man/man1"))
+ #t)))
+ (add-after 'install 'wrap-program
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (path (getenv "PERL5LIB")))
+ (wrap-script (string-append out "/bin/sieve-connect")
+ `("PERL5LIB" ":" = (,path)))
+ #t))))))
+ (inputs
+ `(("guile" ,guile-3.0) ; for wrap-script
+ ("perl" ,perl)
+ ("perl-authen-sasl" ,perl-authen-sasl)
+ ("perl-io-socket-inet6" ,perl-io-socket-inet6)
+ ("perl-io-socket-ssl" ,perl-io-socket-ssl)
+ ("perl-net-dns" ,perl-net-dns)
+ ("perl-socket6" ,perl-socket6)
+ ("perl-term-readkey" ,perl-term-readkey)
+ ("perl-term-readline" ,perl-term-readline-gnu)))
+ (home-page
+ "https://people.spodhuis.org/phil.pennock/software/#sieve-connect")
+ (synopsis "ManageSieve client for managing Sieve e-mail filters")
+ (description
+ "Sieve-connect lets you view, upload, edit, delete, and otherwise manage
+Sieve scripts on any mail server that speaks the @dfn{ManageSieve} protocol,
+as specifed in RFC 5804.
+
+@dfn{Sieve} (RFC 5228) is a specialised language for e-mail filtering. Sieve
+scripts are stored on the server and run whenever mail arrives. They can
+automatically sort new messages into folders, silently reject them, send an
+automated response, and more.
+
+@command{sieve-connect} is designed to be both a tool which can be invoked
+from scripts as well as a decent interactive client. It supports TLS for
+connection privacy, as well as authentication with SASL or GSSAPI client
+certificates. It should be a drop-in replacement for @command{sieveshell}
+from the Cyrus IMAP project.")
+ (license license:bsd-3)))
+
(define-public opensmtpd
(package
(name "opensmtpd")
@@ -2465,6 +2636,125 @@ for OpenSMTPD to extend its functionality.")
(license (list license:bsd-2 license:bsd-3 ; openbsd-compat
license:isc)))) ; everything else
+(define libopensmtpd
+ ;; Private source dependency of opensmtpd-filter-dkimsign (by the same
+ ;; author), until any project actually uses it in its compiled form.
+ (let ((revision 48))
+ (package
+ (name "libopensmtpd")
+ (version (format #f "0.0.0-~a" revision))
+ (source
+ (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url "http://imperialat.at/dev/libopensmtpd/")
+ (revision revision)))
+ (sha256
+ (base32 "04fgibpi6q0c3468ww3z7gsvraz0gyfps0c2dj8mdyri636c0x0s"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags
+ (list "-f" "Makefile.gnu"
+ (string-append "CC=" ,(cc-for-target))
+ (string-append "LOCALBASE=" (assoc-ref %outputs "out")))
+ #:tests? #f ; no test suite
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'inherit-ownership
+ (lambda _
+ (substitute* "Makefile.gnu"
+ (("-o \\$\\{BINOWN\\} -g \\$\\{BINGRP\\}") ""))
+ #t))
+ (delete 'configure) ; no configure script
+ (add-before 'install 'create-output-directories
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (mkdir-p (string-append out "/lib"))
+ #t)))
+ (add-after 'install 'install-header-file
+ (lambda* (#:key make-flags outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (mkdir-p (string-append out "/include"))
+ (apply invoke "make" "includes" make-flags))))
+ (add-after 'install 'install-man-page
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (man3 (string-append out "/share/man/man3")))
+ ;; There is no make target for this.
+ (install-file "osmtpd_run.3" man3)
+ #t))))))
+ (inputs
+ `(("libevent" ,libevent)))
+ (home-page "http://imperialat.at/dev/libopensmtpd/")
+ (synopsis "OpenSMTPd filter C API")
+ (description
+ "The @code{osmtpd} API is an event-based C programming interface for
+writing OpenSMTPd filters.")
+ (license license:expat))))
+
+(define-public opensmtpd-filter-dkimsign
+ (package
+ (name "opensmtpd-filter-dkimsign")
+ ;; The .arch repackaging provides not only a usable Makefile, but patches
+ ;; the source to actually build on GNU, e.g., by making pledge() optional.
+ ;; It's effectively the portable branch that upstream lacks at this time.
+ (version "0.2.arch2") ; also update both native-inputs
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/de-vri-es/filter-dkimsign")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32 "1dv6184h0gq2safnc7ln4za3arbafzc1xwkgwmiihqcjvdyxig0c"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags
+ (list (string-append "CC=" ,(cc-for-target)))
+ #:tests? #f ; no test suite
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'unpack
+ (lambda* (#:key source inputs #:allow-other-keys)
+ (copy-recursively source "filter-dkimsign")
+ (copy-recursively (assoc-ref inputs "libopensmtpd-source")
+ "libopensmtpd")
+ (copy-file (assoc-ref inputs "Makefile") "Makefile")
+ #t))
+ (delete 'configure) ; no configure script
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (libexec (string-append out "/libexec/opensmtpd"))
+ (man8 (string-append out "/share/man/man8")))
+ (chdir "filter-dkimsign")
+ (install-file "filter-dkimsign" libexec)
+ (install-file "filter-dkimsign.8" man8)
+ #t))))))
+ (native-inputs
+ `(("Makefile"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append
+ "https://aur.archlinux.org/cgit/aur.git/plain/Makefile"
+ "?h=opensmtpd-filter-dkimsign"
+ "&id=58393470477a2ff2a58f9d72f5d851698067539f"))
+ (sha256
+ (base32 "0da5qr9hfjkf07ybvfva967njmf2x0b82z020r6v5f93jzsbqx92"))
+ (file-name (string-append name "-" version "-Makefile"))))
+ ("libopensmtpd-source" ,(package-source libopensmtpd))))
+ (inputs
+ `(("libevent" ,libevent)
+ ("libressl" ,libressl))) ; openssl works too but follow opensmtpd
+ (home-page "http://imperialat.at/dev/filter-dkimsign/")
+ (synopsis "OpenSMTPd filter for signing mail with DKIM")
+ (description
+ "The @command{filter-dkimsign} OpenSMTPd filter signs outgoing e-mail
+messages with @acronym{DKIM, DomainKeys Identified Mail} (RFC 4871).")
+ (license license:expat)))
+
(define-public mailman
(package
(name "mailman")
@@ -2915,10 +3205,7 @@ operators and scripters.")
(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.22")
+ (version "2.23.2")
(source
(origin
(method git-fetch)
@@ -2928,10 +3215,10 @@ operators and scripters.")
;; http://alpine.freeiz.com/alpine/readme/README.patches
(uri (git-reference
(url "http://repo.or.cz/alpine.git")
- (commit "b50297779a4becb9ceca9c6b5b375d526fe3df78")))
+ (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "06js44fvdl7l33hfd4lsxpcd1cz3c0h796cswyzz0lkrzx89yl48"))
+ (base32 "16ldmmcymrnpnbfc1kb2rhac7nzlc87wjawic4wfinkphd124d1y"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -3293,90 +3580,88 @@ related tools to process winmail.dat files.")
(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 license:agpl3+))))
+ (license license:agpl3+)))
(define-public sylpheed
(package
@@ -3430,36 +3715,34 @@ designed for keyboard-oriented operation.")
(lambda _
(invoke "python" "-m" "authres" "-v"))))))
(home-page "https://launchpad.net/authentication-results-python")
- (synopsis "Email Authentication Results Header Module")
+ (synopsis "Authentication-Results email header creator and parser")
(description
- "This module can be used to generate and parse RFC 5451/7001/7601
-Authentication-Results headers. It also supports Authentication Results
-extensions:
+ "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 (header.b)
-@item RFC 6212 Vouch By Reference (VBR)
-@item RFC 6577 Sender Policy Framework (SPF)
-@item RFC 7281 Authentication-Results Registration for S/MIME
-@item RFC 7293 The Require-Recipient-Valid-Since Header Field
-@item RFC 7489 Domain-based Message Authentication, Reporting, and Conformance (DMARC)
-@item Authenticated Recieved Chain (ARC) (draft-ietf-dmarc-arc-protocol-08)
-@end itemize
-Note: RFC 7601 obsoletes RFC 5451, 6577, 7001, and 7410. Authres supports the
-current standard. No backward compatibility issues have been noted.")
+@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.4")
+ (version "1.0.5")
(source
(origin
(method url-fetch)
(uri (pypi-uri "dkimpy" version))
(sha256
- (base32
- "14idcs0wiyc0iyi5bz3xqimxf3x6dizcjfn92s2ka5zxp95xdyvd"))))
+ (base32 "088iz5cqjqh4c7141d94pvn13bh25aizqlrifwv6fs5g16zj094s"))))
(build-system python-build-system)
(arguments
'(#:phases
@@ -3520,20 +3803,23 @@ DKIM and ARC sign messages and output the corresponding signature headers.")
(define-public python-aiosmtpd
(package
(name "python-aiosmtpd")
- (version "1.2")
+ (version "1.2.1")
(source
- (origin
- (method url-fetch)
- (uri (pypi-uri "aiosmtpd" version))
- (sha256
- (base32
- "1xdfk741pjmz1cm8dsi4n5vq4517i175rm94696m3f7kcgk7xsmp"))))
+ (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-test
+ (add-after 'unpack 'delete-failing-tests
(lambda _
+ ;; This test uses an expired certificate.
(delete-file "aiosmtpd/tests/test_smtps.py")
#t))
(replace 'check