summaryrefslogtreecommitdiff
path: root/gnu/packages/mail.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/mail.scm')
-rw-r--r--gnu/packages/mail.scm112
1 files changed, 76 insertions, 36 deletions
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 53c7785020..15a53a337d 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -47,6 +47,7 @@
;;; Copyright © 2022 Andrew Tropin <[email protected]>
;;; Copyright © 2022 Justin Veilleux <[email protected]>
;;; Copyright © 2022 Thiago Jung Bauermann <[email protected]>
+;;; Copyright © 2022 Guillaume Le Vaillant <[email protected]>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -87,6 +88,7 @@
#:use-module (gnu packages django)
#:use-module (gnu packages dns)
#:use-module (gnu packages docbook)
+ #:use-module (gnu packages docker)
#:use-module (gnu packages documentation)
#:use-module (gnu packages emacs)
#:use-module (gnu packages enchant)
@@ -1333,14 +1335,14 @@ invoking @command{notifymuch} from the post-new hook.")
(define-public notmuch
(package
(name "notmuch")
- (version "0.35")
+ (version "0.36")
(source
(origin
(method url-fetch)
(uri (string-append "https://notmuchmail.org/releases/notmuch-"
version ".tar.xz"))
(sha256
- (base32 "0fdc81m24xrbhfrhw00g12ak4b8hap4961sq7ap6q2pjqhac8cd8"))))
+ (base32 "0h6f6mh9m9vrijm638x5sbsl321b74a25cdasbxhx67x62w320hk"))))
(build-system gnu-build-system)
(arguments
(list
@@ -1474,8 +1476,7 @@ useful for email address completion.")
(let ((notmuch (assoc-ref inputs "notmuch")))
(substitute* "notmuch/globals.py"
(("libnotmuch\\.so\\.")
- (string-append notmuch "/lib/libnotmuch.so.")))
- #t))))))
+ (string-append notmuch "/lib/libnotmuch.so.")))))))))
(home-page (package-home-page notmuch))
(synopsis "Python bindings of the Notmuch mail indexing library")
(description
@@ -1551,7 +1552,7 @@ pairs have previously synchronized.")
(define-public getmail6
(package
(name "getmail6")
- (version "6.18.6")
+ (version "6.18.9")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1560,7 +1561,7 @@ pairs have previously synchronized.")
(file-name (git-file-name name version))
(sha256
(base32
- "08a5yw6ll1kmd1ardj8rzhsw4wl48zzdc87g5lh4p5snv8w2m4ja"))))
+ "1ch5hagkpybmkgg2wbb2mids3nbmjqgdqjhczzz7pvj4hx2m8fdb"))))
(build-system python-build-system)
(arguments (list #:tests? #f)) ;tests require docker
(home-page "https://github.com/getmail6/getmail6")
@@ -1569,7 +1570,7 @@ pairs have previously synchronized.")
"A flexible, extensible mail retrieval system with support for POP3,
IMAP4, SSL variants of both, maildirs, mboxrd files, external MDAs, arbitrary
message filtering, single-user and domain-mailboxes, and many other useful
-features. This is a fork derived from getmali 5.14, aimed at Python 3
+features. This is a fork derived from getmail 5.14, aimed at Python 3
compatibility.")
(license license:gpl2+))) ;see docs/COPYING
@@ -1632,7 +1633,7 @@ compresses it.")
(define-public claws-mail
(package
(name "claws-mail")
- (version "4.0.0")
+ (version "4.1.0")
(source
(origin
(method url-fetch)
@@ -1640,7 +1641,7 @@ compresses it.")
(string-append "https://www.claws-mail.org/releases/claws-mail-"
version ".tar.xz"))
(sha256
- (base32 "0xg41rxxq2q5vhjzbh8p12s248kcljk6g7y0m6raq7nrllkbvwja"))))
+ (base32 "13ksh4iwr23zi86fwmiwxha94xqrr5zxq373i82rwaldvfh9q6hf"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:configure-flags
@@ -1670,7 +1671,7 @@ compresses it.")
(search-input-file inputs "/share/mime/globs"))))))))
(native-inputs
(list bison
- ;;("docbook-utils" ,docbook-utils)
+ ;;docbook-utils
flex
gettext-minimal
gobject-introspection
@@ -1890,7 +1891,7 @@ facilities for checking incoming mail.")
(package
(name "dovecot")
;; Also update dovecot-pigeonhole when updating to a new minor version.
- (version "2.3.19")
+ (version "2.3.19.1")
(source
(origin
(method url-fetch)
@@ -1898,7 +1899,7 @@ facilities for checking incoming mail.")
(version-major+minor version) "/"
"dovecot-" version ".tar.gz"))
(sha256
- (base32 "0ys3zq9b1rgj1cz6a0i9l421y6h2j3b5zak2ia5j9dj1sj9zcwq1"))))
+ (base32 "0lawd8grwxass1frlw9bdd49fpwwxsv2qnxllsg6a2bkgpcbqnnv"))))
(build-system gnu-build-system)
(native-inputs
(list pkg-config))
@@ -2423,21 +2424,29 @@ compatibility shims for the @command{sendmail}, @command{mailq}, and
(define-public fdm
(package
(name "fdm")
- (version "2.0")
+ (version "2.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/nicm/fdm/releases/download/"
version "/fdm-" version ".tar.gz"))
(sha256
- (base32 "196fs1z8y7p12wmqn1bylzz94szl58yv2aby3p30nmwjnyv8rch6"))))
+ (base32 "1zxd5j5x2gp6m62j83xsjyfglw1p6gn4zk5qx10djdh8xzkg53c5"))))
(build-system gnu-build-system)
(inputs
(list tdb openssl zlib))
(home-page "https://github.com/nicm/fdm")
- (synopsis "Mail Retrieval Agent (MRA) and Mail Delivery Agent (MDA)")
- (description "fdm is a program designed to fetch mail from POP3
-or IMAP servers, or receive local mail from stdin, and
-deliver it in various ways.")
+ (synopsis
+ "@acronym{MRA, Mail Retrieval Agent} and @acronym{MDA, Mail Delivery Agent}")
+ (description "fdm fetches and delivers mail in various ways.
+
+Mail may be fetched from IMAP or POP3 servers, from local maildirs, or read
+from standard input. It is then filtered based on regular expressions, its
+size or age, or the output of a (shell) command. It can be rewritten by an
+external process, dropped, left on the server or delivered into maildirs,
+mboxes, to a file or pipe, or any combination.
+
+fdm is primarily designed for use by a single user, but can use privilege
+separation to safely deliver mail in multi-user setups.")
(license
;; 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
@@ -3671,7 +3680,7 @@ operators and scripters.")
(define-public alpine
(package
(name "alpine")
- (version "2.25")
+ (version "2.26")
(source
(origin
(method git-fetch)
@@ -3684,14 +3693,12 @@ operators and scripters.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0z6dp3cpz1dmbxw41ravsx1bxychafp0ij8gvj96mzz7rm9pdnq3"))
+ (base32 "1padh9kgn9blzjf0016i2f15c615fk17m8vg8kx301jhmc2r973h"))
(modules '((guix build utils)))
(snippet
'(begin
;; Remove pre-built binaries scattered across the source repository.
- (for-each delete-file (find-files "." "\\.(dll|exe)"))))
- (patches
- (search-patches "alpine-fix-privacy-policy-crash.patch"))))
+ (for-each delete-file (find-files "." "\\.(dll|exe)"))))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
@@ -4087,10 +4094,16 @@ Git and exports them in maildir format or to an MDA through a pipe.")
(sha256
(base32
"0xni1l54v1z3p0zb52807maay0yqabp8jgf5iras5zmhgjyk3swz"))
- (file-name (git-file-name name version))))
+ (file-name (git-file-name name version))
+ (patches (search-patches "public-inbox-fix-spawn-test.patch"))))
(build-system perl-build-system)
(arguments
- '(#:tests? #f
+ `(#:imported-modules (,@%perl-build-system-modules
+ (guix build syscalls))
+ #:modules ((guix build perl-build-system)
+ (guix build syscalls)
+ (guix build utils)
+ (ice-9 match))
#:phases
(modify-phases %standard-phases
(add-before 'configure 'qualify-paths
@@ -4099,18 +4112,45 @@ Git and exports them in maildir format or to an MDA through a pipe.")
(substitute* "lib/PublicInbox/Xapcmd.pm"
(("'xapian-compact'")
(format #f "'~a'" (search-input-file inputs
- "/bin/xapian-compact"))))))
+ "/bin/xapian-compact"))))
+ (substitute* "lib/PublicInbox/TestCommon.pm"
+ ;; This is only used for tests, but get it from ‘inputs’ so
+ ;; that cross builds won't hold a reference to a package built
+ ;; for another architecture.
+ (("/bin/cp") (search-input-file inputs "/bin/cp")))))
(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');"))))
+ (invoke "./certs/create-certs.perl")))
+ (replace 'check
+ (lambda* (#:key target
+ (tests? (not target)) (test-flags '())
+ #:allow-other-keys)
+ (if tests?
+ (match (primitive-fork)
+ (0 ;child process
+ ;; lei tests build UNIX domain sockets in the temporary
+ ;; directory, but the path of those sockets can be at most
+ ;; 108 chars and Guix' default value for the variables
+ ;; below already use 47 chars. Use the shortest temporary
+ ;; path possible to avoid hitting the limit.
+ (setenv "TEMP" "/tmp")
+ (setenv "TEMPDIR" "/tmp")
+ (setenv "TMP" "/tmp")
+ (setenv "TMPDIR" "/tmp")
+
+ ;; Use tini so that signals are properly handled and
+ ;; doubly-forked processes get reaped; otherwise,
+ ;; lei-daemon is kept as a zombie and the testsuite
+ ;; fails thinking that it didn't quit as it should.
+ (set-child-subreaper!)
+ (apply execlp "tini" "--"
+ "make" "check" test-flags))
+ (pid
+ (match (waitpid pid)
+ ((_ . status)
+ (unless (zero? status)
+ (error "`make check' exited with status" status))))))
+ (format #t "test suite not run~%"))))
(add-after 'install 'wrap-programs
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
@@ -4129,7 +4169,7 @@ Git and exports them in maildir format or to an MDA through a pipe.")
(find-files (string-append out "/bin")))))))))
(native-inputs
(list ;; For testing.
- lsof openssl))
+ lsof openssl tini))
(inputs
(list bash-minimal
curl