gnu: Add gnugo.
[jackhill/guix/guix.git] / gnu / packages / mail.scm
CommitLineData
a661e420 1;;; GNU Guix --- Functional package management for GNU
3246cc91 2;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
681a6588 3;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
29a7c98a 4;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
98e9e22f 5;;; Copyright © 2014 Sou Bunnbu <iyzsong@gmail.com>
f58f767b 6;;; Copyright © 2014 Julien Lepiller <julien@lepiller.eu>
a661e420
LC
7;;;
8;;; This file is part of GNU Guix.
9;;;
10;;; GNU Guix is free software; you can redistribute it and/or modify it
11;;; under the terms of the GNU General Public License as published by
12;;; the Free Software Foundation; either version 3 of the License, or (at
13;;; your option) any later version.
14;;;
15;;; GNU Guix is distributed in the hope that it will be useful, but
16;;; WITHOUT ANY WARRANTY; without even the implied warranty of
17;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;;; GNU General Public License for more details.
19;;;
20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22
1fdd3ee2 23(define-module (gnu packages mail)
59a43334 24 #:use-module (gnu packages)
d983a14f 25 #:use-module (gnu packages autotools)
d2938d59 26 #:use-module (gnu packages base)
e8435c4d 27 #:use-module (gnu packages backup)
f58f767b 28 #:use-module (gnu packages curl)
4fd6bf53 29 #:use-module (gnu packages cyrus-sasl)
d983a14f 30 #:use-module (gnu packages dejagnu)
d2938d59 31 #:use-module (gnu packages emacs)
e8435c4d 32 #:use-module (gnu packages enchant)
1ffa7090 33 #:use-module (gnu packages gdbm)
e8435c4d 34 #:use-module (gnu packages ghostscript)
d2938d59 35 #:use-module (gnu packages glib)
e8435c4d 36 #:use-module (gnu packages gnome)
524e1df6 37 #:use-module (gnu packages gnupg)
d983a14f 38 #:use-module (gnu packages gnutls)
d6e941bc 39 #:use-module (gnu packages gsasl)
e8435c4d 40 #:use-module (gnu packages gtk)
1ffa7090 41 #:use-module (gnu packages guile)
e8435c4d 42 #:use-module (gnu packages libcanberra)
d6e941bc 43 #:use-module (gnu packages libidn)
d983a14f
AE
44 #:use-module (gnu packages linux)
45 #:use-module (gnu packages m4)
5f96f303 46 #:use-module (gnu packages databases)
1ffa7090 47 #:use-module (gnu packages ncurses)
d983a14f 48 #:use-module (gnu packages openssl)
13f04f48 49 #:use-module (gnu packages perl)
3919a31a 50 #:use-module (gnu packages python)
1ffa7090 51 #:use-module (gnu packages readline)
d2938d59 52 #:use-module (gnu packages search)
1ffa7090 53 #:use-module (gnu packages texinfo)
681a6588
MW
54 #:use-module (gnu packages compression)
55 #:use-module (gnu packages glib)
56 #:use-module (gnu packages pkg-config)
a7e59c50 57 #:use-module (gnu packages flex)
1bd3f849
DT
58 #:use-module (gnu packages gdb)
59 #:use-module (gnu packages samba)
f58f767b 60 #:use-module (gnu packages xml)
e8435c4d 61 #:use-module (gnu packages xorg)
d983a14f 62 #:use-module ((guix licenses)
f58f767b 63 #:select (gpl2 gpl2+ gpl3+ lgpl2.1+ lgpl3+ bsd-style))
a661e420
LC
64 #:use-module (guix packages)
65 #:use-module (guix download)
29a7c98a 66 #:use-module (guix utils)
681a6588 67 #:use-module (guix build-system gnu)
29a7c98a 68 #:use-module (guix build-system python))
a661e420
LC
69
70(define-public mailutils
71 (package
72 (name "mailutils")
73 (version "2.2")
74 (source (origin
75 (method url-fetch)
76 (uri (string-append "mirror://gnu/mailutils/mailutils-"
77 version ".tar.bz2"))
78 (sha256
79 (base32
01eafd38
LC
80 "0szbqa12zqzldqyw97lxqax3ja2adis83i7brdfsxmrfw68iaf65"))
81 (patches (list (search-patch "m4-gets-undeclared.patch")))))
a661e420
LC
82 (build-system gnu-build-system)
83 (arguments
84 '(;; TODO: Add `--with-sql'.
a661e420
LC
85 #:phases (alist-cons-before
86 'build 'pre-build
87 (lambda _
88 ;; Use Guile 2.0's public API.
89 (substitute* "libmu_scm/mu_message.c"
90 (("scm_i_string_length")
91 "scm_c_string_length"))
92
93 ;; This file should be generated to use the right
94 ;; value of $(libdir) et al.
95 (delete-file "libmu_scm/mailutils.scm")
96
97 ;; Use the right file name for `cat'.
98 (substitute* "testsuite/lib/mailutils.exp"
99 (("/bin/cat")
100 (which "cat"))))
101 %standard-phases)
102 #:parallel-tests? #f))
103 (inputs
104 `(("dejagnu" ,dejagnu)
105 ("m4" ,m4)
106 ("texinfo" ,texinfo)
107 ("guile" ,guile-2.0)
108 ("gnutls" ,gnutls)
109 ("ncurses" ,ncurses)
eb8cc645
MW
110
111 ;; With Readline 6.3, examples/pop3client.c fails to build because it
112 ;; uses the now undefined 'CPPFunction' type.
113 ("readline" ,readline-6.2)
114
a661e420 115 ("linux-pam" ,linux-pam)
3246cc91 116 ("libltdl" ,libltdl)
01eafd38 117 ("gdbm" ,gdbm)))
a661e420 118 (home-page "http://www.gnu.org/software/mailutils/")
f50d2669 119 (synopsis "Utilities and library for reading and serving mail")
a661e420 120 (description
79c311b8
LC
121 "GNU Mailutils is a collection of programs for managing, viewing and
122processing electronic mail. It contains both utilities and server daemons
123and all operate in a protocol-agnostic way. The underlying libraries are
124also available, simplifying the addition of mail capabilities to new
125software.")
a661e420
LC
126 (license
127 ;; Libraries are under LGPLv3+, and programs under GPLv3+.
128 (list gpl3+ lgpl3+))))
d983a14f
AE
129
130(define-public fetchmail
131 (package
132 (name "fetchmail")
133 (version "6.3.26")
134 (source (origin
135 (method url-fetch)
136 (uri (string-append "mirror://sourceforge/fetchmail/branch_6.3/fetchmail-"
137 version ".tar.xz"))
138 (sha256
139 (base32
140 "0l78ayvi9dm8hd190gl139cs2xqsrf7r9ncilslw20mgvd6cbd3r"))))
141 (build-system gnu-build-system)
142 (inputs
143 `(("openssl" ,openssl)))
144 (arguments
145 `(#:configure-flags (list (string-append "--with-ssl="
146 (assoc-ref %build-inputs "openssl")))))
07af3e5e 147 (home-page "http://www.fetchmail.info/")
ae2189a9 148 (synopsis "Remote-mail retrieval and forwarding utility")
d983a14f
AE
149 (description
150 "Fetchmail is a full-featured, robust, well-documented remote-mail
151retrieval and forwarding utility intended to be used over on-demand
152TCP/IP links (such as SLIP or PPP connections). It supports every
153remote-mail protocol now in use on the Internet: POP2, POP3, RPOP, APOP,
154KPOP, all flavors of IMAP, ETRN, and ODMR. It can even support IPv6
155and IPSEC.
156
157Fetchmail retrieves mail from remote mail servers and forwards it via SMTP,
158so it can then be read by normal mail user agents such as mutt, elm
159or BSD Mail. It allows all your system MTA's filtering, forwarding, and
160aliasing facilities to work just as they would on normal mail.")
161 (license gpl2+))) ; most files are actually public domain or x11
13f04f48
AE
162
163(define-public mutt
164 (package
165 (name "mutt")
fb9c3acc 166 (version "1.5.23")
13f04f48
AE
167 (source (origin
168 (method url-fetch)
fb9c3acc
MW
169 (uri (list ;; Temporarily put bitbucket first, because
170 ;; ftp.mutt.org has been down for a while.
171 (string-append "https://bitbucket.org/mutt/mutt/downloads/mutt-"
172 version ".tar.gz")
173 (string-append "ftp://ftp.mutt.org/mutt/devel/mutt-"
174 version ".tar.gz")))
13f04f48
AE
175 (sha256
176 (base32
63d526e2
MW
177 "0dzx4qk50pjfsb6cs5jahng96a52k12f7pm0sc78iqdrawg71w1s"))
178 (patches (list (search-patch "mutt-CVE-2014-9116.patch")))))
13f04f48
AE
179 (build-system gnu-build-system)
180 (inputs
4fd6bf53 181 `(("cyrus-sasl" ,cyrus-sasl)
524e1df6 182 ("gpgme" ,gpgme)
4fd6bf53 183 ("ncurses" ,ncurses)
13f04f48
AE
184 ("openssl" ,openssl)
185 ("perl" ,perl)))
186 (arguments
187 `(#:configure-flags '("--enable-smtp"
188 "--enable-imap"
189 "--enable-pop"
524e1df6 190 "--enable-gpgme"
13f04f48 191 "--with-ssl"
4fd6bf53 192 "--with-sasl"
13f04f48
AE
193 ;; so that mutt does not check whether the path
194 ;; exists, which it does not in the chroot
195 "--with-mailpath=/var/mail")))
196 (home-page "http://www.mutt.org/")
197 (synopsis "Mail client")
198 (description
199 "Mutt is a small but very powerful text-based mail client for Unix
200operating systems.")
201 (license gpl2+)))
681a6588
MW
202
203(define-public gmime
204 (package
205 (name "gmime")
206 (version "2.6.19")
207 (source (origin
208 (method url-fetch)
75630043 209 (uri (string-append "mirror://gnome/sources/gmime/"
29a7c98a 210 (version-major+minor version)
681a6588
MW
211 "/gmime-" version ".tar.xz"))
212 (sha256
213 (base32
214 "0jm1fgbjgh496rsc0il2y46qd4bqq2ln9168p4zzh68mk4ml1yxg"))))
215 (build-system gnu-build-system)
216 (native-inputs
217 `(("pkg-config" ,pkg-config)
218 ("gnupg" ,gnupg))) ; for tests only
219 (inputs `(("glib" ,glib)
220 ("gpgme" ,gpgme)
221 ("zlib" ,zlib)))
222 (arguments
223 `(#:phases
224 (alist-cons-after
225 'unpack 'patch-paths-in-tests
226 (lambda _
227 ;; The test programs run several programs using 'system'
228 ;; with hard-coded paths. Here we patch them all. We also
229 ;; change "gpg" to "gpg2".
230 (substitute* (find-files "tests" "\\.c$")
231 (("(system *\\(\")(/[^ ]*)" all pre prog-path)
232 (let* ((base (basename prog-path))
233 (prog (which (if (string=? base "gpg") "gpg2" base))))
234 (string-append pre (or prog (error "not found: " base)))))))
235 %standard-phases)))
236 (home-page "http://spruce.sourceforge.net/gmime/")
237 (synopsis "MIME message parser and creator library")
238 (description
239 "GMime provides a core library and set of utilities which may be used for
240the creation and parsing of messages using the Multipurpose Internet Mail
241Extension (MIME).")
242 (license (list lgpl2.1+ gpl2+ gpl3+))))
243
a7e59c50
LC
244(define-public bogofilter
245 (package
246 (name "bogofilter")
247 (version "1.2.4")
248 (source (origin
249 (method url-fetch)
250 (uri (string-append "mirror://sourceforge/bogofilter/bogofilter-"
251 version "/bogofilter-"
252 version ".tar.bz2"))
253 (sha256
254 (base32
255 "1d56n2m9inm8gnzm88aa27xl2a7sp7aff3484vmflpqkinjqf0p1"))))
256 (build-system gnu-build-system)
257 (arguments
258 '(#:phases (alist-cons-before
259 'check 'pre-check
260 (lambda _
261 (substitute* "src/tests/t.frame"
262 (("GREP=/bin/grep")
263 (string-append "GREP=" (which "grep") "\n"))))
264 %standard-phases)))
265 (native-inputs `(("flex" ,flex)))
266 (inputs `(("bdb" ,bdb)))
267 (home-page "http://bogofilter.sourceforge.net/")
268 (synopsis "Mail classifier based on a Bayesian filter")
269 (description
270 "Bogofilter is a mail filter that classifies mail as spam or ham
271 (non-spam) by a statistical analysis of the message's header and
272content (body). The program is able to learn from the user's classifications
273and corrections. It is based on a Bayesian filter.")
274 (license gpl2)))
275
3919a31a
EB
276(define-public offlineimap
277 (package
278 (name "offlineimap")
279 (version "6.5.5")
280 (source (origin
281 (method url-fetch)
282 (uri (string-append "https://github.com/OfflineIMAP/offlineimap/"
283 "archive/v" version ".tar.gz"))
284 (sha256
285 (base32
286 "00k84qagph3xnxss6rkxm61x07ngz8fvffx4z9jyw5baf3cdd32p"))))
287 (build-system python-build-system)
288 (native-inputs `(("python" ,python-2)))
289 (arguments
290 ;; The setup.py script expects python-2.
291 `(#:python ,python-2
292 ;; Tests require a modifiable IMAP account.
293 #:tests? #f))
294 (home-page "http://www.offlineimap.org")
295 (synopsis "Synch emails between two repositories")
296 (description
297 "OfflineImap synchronizes emails between two repositories, so that you
298can read the same mailbox from multiple computers. It supports IMAP as REMOTE
299repository and Maildir/IMAP as LOCAL repository.")
7886e23b 300 (license gpl2+)))
3919a31a 301
d2938d59
EB
302(define-public mu
303 (package
304 (name "mu")
305 (version "0.9.9.5")
306 (source (origin
307 (method url-fetch)
308 (uri (string-append "https://mu0.googlecode.com/files/mu-"
309 version ".tar.gz"))
310 (sha256
311 (base32
312 "1hwkliyb8fjrz5sw9fcisssig0jkdxzhccw0ld0l9a10q1l9mqhp"))))
313 (build-system gnu-build-system)
314 (native-inputs
315 `(("pkg-config" ,pkg-config)
9fd571a2 316 ("glib" ,glib "bin") ; for gtester
d2938d59
EB
317 ("texinfo" ,texinfo)))
318 ;; TODO: Add webkit and gtk to build the mug GUI.
319 (inputs
320 `(("xapian" ,xapian)
321 ("emacs" ,emacs)
322 ("guile" ,guile-2.0)
323 ("glib" ,glib)
324 ("gmime" ,gmime)
325 ("tzdata" ,tzdata))) ;for mu/test/test-mu-query.c
326 (arguments
327 '(#:phases (alist-cons-before
328 'check 'check-tz-setup
329 (lambda* (#:key inputs #:allow-other-keys)
330 ;; For mu/test/test-mu-query.c
331 (setenv "TZDIR"
332 (string-append (assoc-ref inputs "tzdata")
333 "/share/zoneinfo")))
334 %standard-phases)))
335 (home-page "http://www.djcbsoftware.nl/code/mu/")
336 (synopsis "Quickly find emails")
337 (description
338 "Mu is a tool for dealing with e-mail messages stored in the
339Maildir-format. Mu's purpose in life is to help you to quickly find the
340messages you need; in addition, it allows you to view messages, extract
341attachments, create new maildirs, and so on.")
342 (license gpl3+)))
343
1bd3f849
DT
344(define-public notmuch
345 (package
346 (name "notmuch")
7f767bcc 347 (version "0.18.1")
1bd3f849
DT
348 (source (origin
349 (method url-fetch)
350 (uri (string-append "http://notmuchmail.org/releases/notmuch-"
351 version ".tar.gz"))
352 (sha256
353 (base32
7f767bcc 354 "1pdp9l7yv71d3fjb30qyccva8h03hvg88q4a00yi50v2j70kvmgj"))))
1bd3f849
DT
355 (build-system gnu-build-system)
356 (arguments
357 '(#:tests? #f ;; FIXME: Test suite hangs and times out.
358 #:phases (alist-replace
359 'configure
360 (lambda* (#:key outputs #:allow-other-keys)
361 (setenv "CONFIG_SHELL" (which "sh"))
362 (let ((out (assoc-ref outputs "out")))
363 (zero? (system* "./configure"
364 (string-append "--prefix=" out)))))
365 %standard-phases)))
366 (native-inputs
367 `(("pkg-config" ,pkg-config)))
368 (inputs
369 `(("emacs" ,emacs)
370 ("glib" ,glib)
371 ("gmime" ,gmime)
372 ("talloc" ,talloc)
373 ("xapian" ,xapian)
374 ("zlib" ,zlib)))
375 (home-page "http://notmuchmail.org/")
376 (synopsis "Thread-based email index, search, and tagging")
377 (description
378 "Notmuch is a command-line based program for indexing, searching, read-
379ing, and tagging large collections of email messages.")
380 (license gpl3+)))
381
98e9e22f
SB
382(define-public getmail
383 (package
384 (name "getmail")
385 (version "4.46.0")
386 (source
387 (origin
388 (method url-fetch)
389 (uri (string-append "http://pyropus.ca/software/getmail/old-versions/"
390 name "-" version ".tar.gz"))
391 (sha256
392 (base32
393 "15rqmm25pq6ll8aaqh8h6pfdkpqs7y6yismb3h3w1bz8j292c8zl"))))
394 (build-system python-build-system)
395 (arguments
396 `(#:tests? #f ; no tests
397 #:python ,python-2))
398 (home-page "http://pyropus.ca/software/getmail/")
399 (synopsis "Mail retriever")
400 (description
401 "A flexible, extensible mail retrieval system with support for
402POP3, IMAP4, SSL variants of both, maildirs, mboxrd files, external MDAs,
403arbitrary message filtering, single-user and domain-mailboxes, and many other
404useful features.")
405
406 ;; License is specified in file '__init__.py'.
407 (license gpl2)))
408
f58f767b
JL
409(define-public libetpan
410 (package
411 (name "libetpan")
412 (version "1.6")
413 (source (origin
414 (method url-fetch)
415 (uri (string-append "https://github.com/dinhviethoa/" name
416 "/archive/" version ".tar.gz"))
417 (sha256
418 (base32 "05qyqx2c1ppb1jnrs3m52i60f9xlxfxdmb9dnwg4vqjv8kwv2qkr"))))
419 (build-system gnu-build-system)
420 (native-inputs `(("autoconf" ,(autoconf-wrapper))
421 ("automake" ,automake)
3246cc91 422 ("libtool" ,libtool)
f58f767b
JL
423 ("pkg-config" ,pkg-config)))
424 (propagated-inputs
425 ;; 'libetpan-config --libs' returns '-lssl -lcrypto -lsasl2', so these
426 ;; libraries need to be propagated.
427 `(("cyrus-sasl" ,cyrus-sasl)
428 ("openssl" ,openssl)))
429 (inputs
430 `(("curl" ,curl)
431 ("expat" ,expat)))
432 (arguments
433 '(#:phases (alist-cons-before
434 'configure 'autogen
435 (lambda _
436 (system* "./autogen.sh")) ;; Note: this fails because the
437 ;; generated configure script uses /bin/sh. It is
438 ;; replaced in the configure phase by the correct
439 ;; value. TODO: replace the configure phase by the
440 ;; autogen phase and have the SHELL variable be replaced
441 %standard-phases)
442 #:configure-flags
443 '("--disable-static" "--disable-db")))
444 (home-page "http://www.etpan.org/libetpan.html")
445 (synopsis "Portable middleware for email access")
446 (description
447 "The purpose of this mail library is to provide a portable, efficient
448framework for different kinds of mail access: IMAP, SMTP, POP and NNTP. It
449provides an API for C language. It's the low-level API used by MailCore and
450MailCore 2.")
451 (license (bsd-style "file://COPYING"))))
452
e8435c4d
JL
453(define-public claws-mail
454 (package
455 (name "claws-mail")
456 (version "3.11.1")
457 (source (origin
458 (method url-fetch)
459 (uri (string-append
460 "http://downloads.sourceforge.net/project/claws-mail/"
461 "Claws Mail/" version "/" name "-" version ".tar.xz"))
462 (sha256
463 (base32 "0cyixz1jgfpi8abh9fbb8ylx9mcvw4jqj81cms666wpqr6v828yp"))))
464 (build-system gnu-build-system)
465 (native-inputs `(("pkg-config" ,pkg-config)))
466 (inputs `(("bogofilter" ,bogofilter)
467 ("curl" ,curl)
468 ("dbus-glib" ,dbus-glib)
469 ("dbus" ,dbus)
470 ("enchant" ,enchant)
471 ("expat" ,expat)
472 ("ghostscript" ,ghostscript)
473 ("hicolor-icon-theme" ,hicolor-icon-theme)
474 ("gnupg" ,gnupg)
475 ("gnutls" ,gnutls)
476 ("gpgme" ,gpgme)
477 ("gtk" ,gtk+-2)
478 ("libarchive" ,libarchive)
479 ("libcanberra" ,libcanberra)
480 ("libetpan" ,libetpan)
481 ("libnotify" ,libnotify)
482 ("libsm" ,libsm)
483 ("libxml2" ,libxml2)
484 ("perl" ,perl)
485 ("python-2" ,python-2)))
486 (arguments
487 '(#:configure-flags
488 '("--enable-gnutls" "--enable-pgpmime-plugin" "--enable-enchant")))
489 (synopsis "GTK-based Email client")
490 (description
491 "Claws-Mail is an email client (and news reader) based on GTK+. The
492appearance and interface are designed to be familiar to new users coming from
493other popular email clients, as well as experienced users. Almost all commands
494are accessible with the keyboard. Plus, Claws-Mail is extensible via addons
495which can add many functionalities to the base client.")
496 (home-page "http://www.claws-mail.org/")
497 (license gpl3+))) ; most files are actually public domain or x11
498
d6e941bc
499(define-public msmtp
500 (package
501 (name "msmtp")
502 (version "1.4.32")
503 (source
504 (origin
505 (method url-fetch)
506 (uri (string-append
507 "http://downloads.sourceforge.net/project/msmtp/msmtp/" version
508 "/msmtp-" version ".tar.bz2"))
509 (sha256 (base32
510 "122z38pv4q03w3mbnhrhg4w85a51258sfdg2ips0b6cgwz3wbw1b"))))
511 (build-system gnu-build-system)
512 (inputs
513 `(("libidn" ,libidn)
514 ("gnutls" ,gnutls)
515 ("zlib" ,zlib)
516 ("gsasl" ,gsasl)))
517 (native-inputs
518 `(("pkg-config" ,pkg-config)))
519 (home-page "http://msmtp.sourceforge.net/")
520 (arguments
521 `(#:configure-flags (list "--with-libgsasl"
522 "--with-libidn"
523 "--with-ssl=gnutls")))
524 (synopsis
525 "Simple and easy to use SMTP client with decent sendmail compatibility")
526 (description
527 "msmtp is an SMTP client. In the default mode, it transmits a mail to
528an SMTP server (for example at a free mail provider) which takes care of further
529delivery.")
530 (license gpl3+)))
531
681a6588 532;;; mail.scm ends here