gnu: cook: Update source URL.
[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>
722ec722 3;;; Copyright © 2014, 2015 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>
66cc3ab2 7;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
17dd4329 8;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
f6292baf 9;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
2e88d113 10;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
21565719 11;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
34dd26af 12;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
8a75c589 13;;; Copyright © 2016 Al McElrath <hello@yrns.org>
823e2ed4 14;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
e90819c4 15;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
99404fff 16;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
a2cb16b0 17;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
a661e420
LC
18;;;
19;;; This file is part of GNU Guix.
20;;;
21;;; GNU Guix is free software; you can redistribute it and/or modify it
22;;; under the terms of the GNU General Public License as published by
23;;; the Free Software Foundation; either version 3 of the License, or (at
24;;; your option) any later version.
25;;;
26;;; GNU Guix is distributed in the hope that it will be useful, but
27;;; WITHOUT ANY WARRANTY; without even the implied warranty of
28;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29;;; GNU General Public License for more details.
30;;;
31;;; You should have received a copy of the GNU General Public License
32;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
33
1fdd3ee2 34(define-module (gnu packages mail)
59a43334 35 #:use-module (gnu packages)
d983a14f 36 #:use-module (gnu packages autotools)
d2938d59 37 #:use-module (gnu packages base)
e8435c4d 38 #:use-module (gnu packages backup)
ee886454 39 #:use-module (gnu packages bash)
f8ae32a2 40 #:use-module (gnu packages bison)
f58f767b 41 #:use-module (gnu packages curl)
4fd6bf53 42 #:use-module (gnu packages cyrus-sasl)
81ce19f4 43 #:use-module (gnu packages databases)
d983a14f 44 #:use-module (gnu packages dejagnu)
d2938d59 45 #:use-module (gnu packages emacs)
e8435c4d 46 #:use-module (gnu packages enchant)
e8435c4d 47 #:use-module (gnu packages ghostscript)
d2938d59 48 #:use-module (gnu packages glib)
e8435c4d 49 #:use-module (gnu packages gnome)
524e1df6 50 #:use-module (gnu packages gnupg)
d6e941bc 51 #:use-module (gnu packages gsasl)
e8435c4d 52 #:use-module (gnu packages gtk)
1ffa7090 53 #:use-module (gnu packages guile)
f8ae32a2 54 #:use-module (gnu packages flex)
e8435c4d 55 #:use-module (gnu packages libcanberra)
d6e941bc 56 #:use-module (gnu packages libidn)
d983a14f
AE
57 #:use-module (gnu packages linux)
58 #:use-module (gnu packages m4)
1ffa7090 59 #:use-module (gnu packages ncurses)
66cc3ab2 60 #:use-module (gnu packages pcre)
13f04f48 61 #:use-module (gnu packages perl)
3919a31a 62 #:use-module (gnu packages python)
1ffa7090 63 #:use-module (gnu packages readline)
d2938d59 64 #:use-module (gnu packages search)
1ffa7090 65 #:use-module (gnu packages texinfo)
681a6588
MW
66 #:use-module (gnu packages compression)
67 #:use-module (gnu packages glib)
68 #:use-module (gnu packages pkg-config)
a7e59c50 69 #:use-module (gnu packages flex)
1bd3f849
DT
70 #:use-module (gnu packages gdb)
71 #:use-module (gnu packages samba)
a7fd7b68 72 #:use-module (gnu packages tls)
f58f767b 73 #:use-module (gnu packages xml)
e8435c4d 74 #:use-module (gnu packages xorg)
d983a14f 75 #:use-module ((guix licenses)
61c30e9d
LF
76 #:select (gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+
77 non-copyleft (expat . license:expat)))
a661e420
LC
78 #:use-module (guix packages)
79 #:use-module (guix download)
f8ae32a2 80 #:use-module (guix git-download)
29a7c98a 81 #:use-module (guix utils)
681a6588 82 #:use-module (guix build-system gnu)
ebda902f 83 #:use-module (guix build-system perl)
29a7c98a 84 #:use-module (guix build-system python))
a661e420
LC
85
86(define-public mailutils
87 (package
88 (name "mailutils")
89 (version "2.2")
90 (source (origin
91 (method url-fetch)
92 (uri (string-append "mirror://gnu/mailutils/mailutils-"
93 version ".tar.bz2"))
94 (sha256
95 (base32
01eafd38 96 "0szbqa12zqzldqyw97lxqax3ja2adis83i7brdfsxmrfw68iaf65"))
fc1adab1 97 (patches (search-patches "m4-gets-undeclared.patch"))))
a661e420
LC
98 (build-system gnu-build-system)
99 (arguments
100 '(;; TODO: Add `--with-sql'.
a661e420
LC
101 #:phases (alist-cons-before
102 'build 'pre-build
103 (lambda _
104 ;; Use Guile 2.0's public API.
105 (substitute* "libmu_scm/mu_message.c"
106 (("scm_i_string_length")
107 "scm_c_string_length"))
108
109 ;; This file should be generated to use the right
110 ;; value of $(libdir) et al.
111 (delete-file "libmu_scm/mailutils.scm")
112
113 ;; Use the right file name for `cat'.
114 (substitute* "testsuite/lib/mailutils.exp"
115 (("/bin/cat")
116 (which "cat"))))
117 %standard-phases)
118 #:parallel-tests? #f))
119 (inputs
120 `(("dejagnu" ,dejagnu)
121 ("m4" ,m4)
122 ("texinfo" ,texinfo)
123 ("guile" ,guile-2.0)
124 ("gnutls" ,gnutls)
125 ("ncurses" ,ncurses)
eb8cc645
MW
126
127 ;; With Readline 6.3, examples/pop3client.c fails to build because it
128 ;; uses the now undefined 'CPPFunction' type.
129 ("readline" ,readline-6.2)
130
a661e420 131 ("linux-pam" ,linux-pam)
3246cc91 132 ("libltdl" ,libltdl)
01eafd38 133 ("gdbm" ,gdbm)))
a661e420 134 (home-page "http://www.gnu.org/software/mailutils/")
f50d2669 135 (synopsis "Utilities and library for reading and serving mail")
a661e420 136 (description
79c311b8
LC
137 "GNU Mailutils is a collection of programs for managing, viewing and
138processing electronic mail. It contains both utilities and server daemons
139and all operate in a protocol-agnostic way. The underlying libraries are
140also available, simplifying the addition of mail capabilities to new
141software.")
a661e420
LC
142 (license
143 ;; Libraries are under LGPLv3+, and programs under GPLv3+.
144 (list gpl3+ lgpl3+))))
d983a14f
AE
145
146(define-public fetchmail
147 (package
148 (name "fetchmail")
149 (version "6.3.26")
150 (source (origin
151 (method url-fetch)
152 (uri (string-append "mirror://sourceforge/fetchmail/branch_6.3/fetchmail-"
153 version ".tar.xz"))
154 (sha256
155 (base32
156 "0l78ayvi9dm8hd190gl139cs2xqsrf7r9ncilslw20mgvd6cbd3r"))))
157 (build-system gnu-build-system)
158 (inputs
159 `(("openssl" ,openssl)))
160 (arguments
161 `(#:configure-flags (list (string-append "--with-ssl="
162 (assoc-ref %build-inputs "openssl")))))
07af3e5e 163 (home-page "http://www.fetchmail.info/")
ae2189a9 164 (synopsis "Remote-mail retrieval and forwarding utility")
d983a14f
AE
165 (description
166 "Fetchmail is a full-featured, robust, well-documented remote-mail
167retrieval and forwarding utility intended to be used over on-demand
168TCP/IP links (such as SLIP or PPP connections). It supports every
169remote-mail protocol now in use on the Internet: POP2, POP3, RPOP, APOP,
170KPOP, all flavors of IMAP, ETRN, and ODMR. It can even support IPv6
171and IPSEC.
172
173Fetchmail retrieves mail from remote mail servers and forwards it via SMTP,
174so it can then be read by normal mail user agents such as mutt, elm
175or BSD Mail. It allows all your system MTA's filtering, forwarding, and
176aliasing facilities to work just as they would on normal mail.")
177 (license gpl2+))) ; most files are actually public domain or x11
13f04f48
AE
178
179(define-public mutt
180 (package
181 (name "mutt")
bdb2d56e 182 (version "1.6.1")
13f04f48
AE
183 (source (origin
184 (method url-fetch)
d82633d0
AE
185 (uri (string-append "ftp://ftp.mutt.org/pub/mutt/mutt-"
186 version ".tar.gz"))
13f04f48
AE
187 (sha256
188 (base32
bdb2d56e 189 "087dz1y9qhl4ikhsnnb4xmyvs82w6kx480w8zj130wdiqvn6rclq"))
fc1adab1 190 (patches (search-patches "mutt-store-references.patch"))))
13f04f48
AE
191 (build-system gnu-build-system)
192 (inputs
4fd6bf53 193 `(("cyrus-sasl" ,cyrus-sasl)
b0bb0136 194 ("gdbm" ,gdbm)
524e1df6 195 ("gpgme" ,gpgme)
4fd6bf53 196 ("ncurses" ,ncurses)
13f04f48
AE
197 ("openssl" ,openssl)
198 ("perl" ,perl)))
199 (arguments
200 `(#:configure-flags '("--enable-smtp"
201 "--enable-imap"
202 "--enable-pop"
524e1df6 203 "--enable-gpgme"
b0bb0136 204 "--enable-hcache" ; for header caching
13f04f48 205 "--with-ssl"
4fd6bf53 206 "--with-sasl"
13f04f48
AE
207 ;; so that mutt does not check whether the path
208 ;; exists, which it does not in the chroot
209 "--with-mailpath=/var/mail")))
210 (home-page "http://www.mutt.org/")
211 (synopsis "Mail client")
212 (description
213 "Mutt is a small but very powerful text-based mail client for Unix
214operating systems.")
215 (license gpl2+)))
681a6588
MW
216
217(define-public gmime
218 (package
219 (name "gmime")
cc955356 220 (version "2.6.20")
681a6588
MW
221 (source (origin
222 (method url-fetch)
75630043 223 (uri (string-append "mirror://gnome/sources/gmime/"
29a7c98a 224 (version-major+minor version)
681a6588
MW
225 "/gmime-" version ".tar.xz"))
226 (sha256
227 (base32
cc955356 228 "0rfzbgsh8ira5p76kdghygl5i3fvmmx4wbw5rp7f8ajc4vxp18g0"))))
681a6588
MW
229 (build-system gnu-build-system)
230 (native-inputs
231 `(("pkg-config" ,pkg-config)
232 ("gnupg" ,gnupg))) ; for tests only
233 (inputs `(("glib" ,glib)
234 ("gpgme" ,gpgme)
235 ("zlib" ,zlib)))
236 (arguments
237 `(#:phases
cc955356
EF
238 (modify-phases %standard-phases
239 (add-after
240 'unpack 'patch-paths-in-tests
241 (lambda _
242 ;; The test programs run several programs using 'system' with
243 ;; hard-coded paths. Here we patch them all. We also change "gpg"
244 ;; to "gpg2". We use ISO-8859-1 here because test-iconv.c contains
245 ;; raw byte sequences in several different encodings.
246 (with-fluids ((%default-port-encoding #f))
247 (substitute* (find-files "tests" "\\.c$")
248 (("(system *\\(\")(/[^ ]*)" all pre prog-path)
249 (let* ((base (basename prog-path))
250 (prog (which (if (string=? base "gpg") "gpg2" base))))
251 (string-append pre
252 (or prog (error "not found: " base))))))))))))
681a6588
MW
253 (home-page "http://spruce.sourceforge.net/gmime/")
254 (synopsis "MIME message parser and creator library")
255 (description
256 "GMime provides a core library and set of utilities which may be used for
257the creation and parsing of messages using the Multipurpose Internet Mail
258Extension (MIME).")
259 (license (list lgpl2.1+ gpl2+ gpl3+))))
260
a7e59c50
LC
261(define-public bogofilter
262 (package
263 (name "bogofilter")
264 (version "1.2.4")
265 (source (origin
266 (method url-fetch)
267 (uri (string-append "mirror://sourceforge/bogofilter/bogofilter-"
268 version "/bogofilter-"
269 version ".tar.bz2"))
270 (sha256
271 (base32
272 "1d56n2m9inm8gnzm88aa27xl2a7sp7aff3484vmflpqkinjqf0p1"))))
273 (build-system gnu-build-system)
274 (arguments
275 '(#:phases (alist-cons-before
276 'check 'pre-check
277 (lambda _
278 (substitute* "src/tests/t.frame"
279 (("GREP=/bin/grep")
280 (string-append "GREP=" (which "grep") "\n"))))
281 %standard-phases)))
282 (native-inputs `(("flex" ,flex)))
283 (inputs `(("bdb" ,bdb)))
284 (home-page "http://bogofilter.sourceforge.net/")
285 (synopsis "Mail classifier based on a Bayesian filter")
286 (description
287 "Bogofilter is a mail filter that classifies mail as spam or ham
288 (non-spam) by a statistical analysis of the message's header and
289content (body). The program is able to learn from the user's classifications
290and corrections. It is based on a Bayesian filter.")
291 (license gpl2)))
292
3919a31a
EB
293(define-public offlineimap
294 (package
295 (name "offlineimap")
e2380269 296 (version "6.7.0.1")
3919a31a
EB
297 (source (origin
298 (method url-fetch)
299 (uri (string-append "https://github.com/OfflineIMAP/offlineimap/"
300 "archive/v" version ".tar.gz"))
f586c877 301 (file-name (string-append name "-" version ".tar.gz"))
3919a31a
EB
302 (sha256
303 (base32
e2380269 304 "1ys26v2w3vws08acjs7w5irjgahdxyad00pmj7fhcx91hbvizs80"))))
3919a31a
EB
305 (build-system python-build-system)
306 (native-inputs `(("python" ,python-2)))
42aa73b3 307 (inputs `(("python2-pysqlite" ,python2-pysqlite)))
3919a31a
EB
308 (arguments
309 ;; The setup.py script expects python-2.
310 `(#:python ,python-2
311 ;; Tests require a modifiable IMAP account.
42aa73b3
EF
312 #:tests? #f
313 #:phases
314 (modify-phases %standard-phases
315 (add-after 'install 'wrap-binary
316 (lambda* (#:key inputs outputs #:allow-other-keys)
317 (let* ((out (assoc-ref outputs "out"))
318 (bin (string-append out "/bin/offlineimap")))
319 (wrap-program bin
320 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))))
321 #t))))))
3919a31a 322 (home-page "http://www.offlineimap.org")
31e98ca6 323 (synopsis "Sync emails between two repositories")
3919a31a
EB
324 (description
325 "OfflineImap synchronizes emails between two repositories, so that you
326can read the same mailbox from multiple computers. It supports IMAP as REMOTE
327repository and Maildir/IMAP as LOCAL repository.")
7886e23b 328 (license gpl2+)))
3919a31a 329
d2938d59
EB
330(define-public mu
331 (package
332 (name "mu")
47c96a57 333 (version "0.9.16")
d2938d59
EB
334 (source (origin
335 (method url-fetch)
922eaede 336 (uri (string-append "https://github.com/djcb/mu/archive/v"
d2938d59 337 version ".tar.gz"))
922eaede 338 (file-name (string-append "mu-" version ".tar.gz"))
d2938d59
EB
339 (sha256
340 (base32
47c96a57 341 "0p7hqri1r1x6750x138cc29mh81kdav2dcim26y58s8an206h25g"))))
d2938d59
EB
342 (build-system gnu-build-system)
343 (native-inputs
344 `(("pkg-config" ,pkg-config)
9fd571a2 345 ("glib" ,glib "bin") ; for gtester
922eaede
PW
346 ("autoconf" ,autoconf)
347 ("automake" ,automake)
b8fc3622 348 ("emacs" ,emacs-minimal)
922eaede 349 ("libtool" ,libtool)
d2938d59
EB
350 ("texinfo" ,texinfo)))
351 ;; TODO: Add webkit and gtk to build the mug GUI.
352 (inputs
353 `(("xapian" ,xapian)
d2938d59
EB
354 ("guile" ,guile-2.0)
355 ("glib" ,glib)
356 ("gmime" ,gmime)
357 ("tzdata" ,tzdata))) ;for mu/test/test-mu-query.c
358 (arguments
704f2196
AK
359 `(#:modules ((guix build gnu-build-system)
360 (guix build utils)
361 (guix build emacs-utils))
362 #:imported-modules (,@%gnu-build-system-modules
363 (guix build emacs-utils))
364 #:phases
99404fff 365 (modify-phases %standard-phases
789bda83
AK
366 (add-after 'unpack 'patch-configure.ac
367 ;; By default, elisp code goes to "share/emacs/site-lisp/mu4e",
368 ;; so our Emacs package can't find it. Setting "--with-lispdir"
369 ;; configure flag doesn't help because "mu4e" will be added to
370 ;; the lispdir anyway, so we have to modify "configure.ac".
371 (lambda _
372 (substitute* "configure.ac"
373 (("^ +lispdir=.*") ""))
374 #t))
375 (add-after 'patch-configure.ac 'autoreconf
99404fff
AK
376 (lambda _
377 (zero? (system* "autoreconf" "-vi"))))
378 (add-before 'check 'check-tz-setup
379 (lambda* (#:key inputs #:allow-other-keys)
380 ;; For mu/test/test-mu-query.c
381 (setenv "TZDIR"
382 (string-append (assoc-ref inputs "tzdata")
383 "/share/zoneinfo"))
704f2196
AK
384 #t))
385 (add-after 'install 'install-emacs-autoloads
386 (lambda* (#:key outputs #:allow-other-keys)
387 (emacs-generate-autoloads
388 "mu4e"
389 (string-append (assoc-ref outputs "out")
390 "/share/emacs/site-lisp"))
99404fff 391 #t)))))
d2938d59
EB
392 (home-page "http://www.djcbsoftware.nl/code/mu/")
393 (synopsis "Quickly find emails")
394 (description
395 "Mu is a tool for dealing with e-mail messages stored in the
396Maildir-format. Mu's purpose in life is to help you to quickly find the
397messages you need; in addition, it allows you to view messages, extract
398attachments, create new maildirs, and so on.")
399 (license gpl3+)))
400
a2cb16b0
TS
401(define-public alot
402 (package
403 (name "alot")
404 (version "0.3.7")
405 (source (origin
406 (method url-fetch)
407 ; v0.3.7 not on PyPi yet, so use github instead
408 (uri (string-append "https://github.com/pazz/alot/archive/"
409 version ".tar.gz"))
410 (file-name (string-append "alot-" version ".tar.gz"))
411 (sha256
412 (base32
413 "09md9llg38r6xby8l0y0zf8nhlh91cr4xs0r15b294hhp8hl2bgx"))))
414 (build-system python-build-system)
415 (arguments
416 `(#:tests? #f ; no tests
417 ; python 3 is unsupported, more info:
418 ; https://github.com/pazz/alot/blob/0.3.7/docs/source/faq.rst
419 #:python ,python-2))
420 (inputs
421 `(("python2-magic" ,python2-magic)
422 ("python2-configobj" ,python2-configobj)
423 ("python2-twisted" ,python2-twisted)
424 ("python2-urwid" ,python2-urwid)
425 ("python2-urwidtrees" ,python2-urwidtrees)
426 ("python2-pygpgme" ,python2-pygpgme)
427 ("python2-notmuch" ,python2-notmuch)))
428 (home-page "https://github.com/pazz/alot")
429 (synopsis "Commandline MUA using notmuch")
430 (description
431 "Alot is an experimental terminal mail user agent (MUA) based on
432@code{notmuch} mail. It is written in Python using the @code{urwid} toolkit.")
433 (license gpl3+)))
434
1bd3f849
DT
435(define-public notmuch
436 (package
437 (name "notmuch")
866fade9 438 (version "0.21")
1bd3f849
DT
439 (source (origin
440 (method url-fetch)
866fade9 441 (uri (string-append "https://notmuchmail.org/releases/notmuch-"
1bd3f849
DT
442 version ".tar.gz"))
443 (sha256
444 (base32
866fade9 445 "1cr53rbpkcy3pvrmhbg2gq7sjpwb0c8xd7a4zhzxbiv8s7z8yvyh"))))
1bd3f849
DT
446 (build-system gnu-build-system)
447 (arguments
866fade9
EF
448 '(#:tests? #f ;; FIXME: 662 tests; 168 fail and 99 are skipped
449 ;; with perl input: 50 fail and 99 are skipped
eb537f57
DT
450 #:phases (modify-phases %standard-phases
451 (replace 'configure
452 (lambda* (#:key outputs #:allow-other-keys)
453 (setenv "CC" "gcc")
454 (setenv "CONFIG_SHELL" (which "sh"))
ee886454 455
eb537f57
DT
456 (let ((out (assoc-ref outputs "out")))
457 (zero? (system* "./configure"
458 (string-append "--prefix=" out)))))))))
1bd3f849 459 (native-inputs
ee886454
MW
460 `(("pkg-config" ,pkg-config)
461 ("python" ,python-2)
eb537f57
DT
462 ("python-docutils" ,python2-docutils)
463 ("python-sphinx" ,python2-sphinx)
ee886454 464 ("bash-completion" ,bash-completion)))
1bd3f849
DT
465 (inputs
466 `(("emacs" ,emacs)
467 ("glib" ,glib)
468 ("gmime" ,gmime)
469 ("talloc" ,talloc)
470 ("xapian" ,xapian)
471 ("zlib" ,zlib)))
472 (home-page "http://notmuchmail.org/")
473 (synopsis "Thread-based email index, search, and tagging")
474 (description
475 "Notmuch is a command-line based program for indexing, searching, read-
476ing, and tagging large collections of email messages.")
477 (license gpl3+)))
478
8a75c589
AM
479(define-public notmuch-addrlookup-c
480 (package
481 (name "notmuch-addrlookup-c")
482 (version "7")
483 (source (origin
484 (method url-fetch)
485 (uri (string-append
486 "https://github.com/aperezdc/" name "/archive/v"
487 version ".tar.gz"))
488 (file-name (string-append name "-" version ".tar.gz"))
489 (sha256
490 (base32
491 "0rslg2ifgyhl6asv3yr1f62m9xjfcinv7i6qb07h2k217jqlmrri"))))
492 (build-system gnu-build-system)
493 (arguments
494 '(#:tests? #f ; no tests
495 #:make-flags (list "CC=gcc"
496 (string-append "PREFIX="
497 (assoc-ref %outputs "out")))
498 #:phases (modify-phases %standard-phases
499 (delete 'configure)
500 ;; Remove vim code completion config, it's not needed to
501 ;; build (or be patched).
502 (add-before 'patch-source-shebangs 'delete-ycm-file
503 (lambda _ (delete-file ".ycm_extra_conf.py")))
504 (replace 'install
505 (lambda* (#:key outputs #:allow-other-keys)
506 (let ((bin (string-append
507 (assoc-ref outputs "out") "/bin")))
508 (install-file "notmuch-addrlookup" bin)))))))
509 (native-inputs
510 `(("pkg-config" ,pkg-config)))
511 (inputs
512 `(("glib" ,glib)
513 ("notmuch" ,notmuch)))
514 (home-page "https://github.com/aperezdc/notmuch-addrlookup-c")
515 (synopsis "Address lookup tool for Notmuch")
516 (description "This is an address lookup tool using a Notmuch database,
517useful for email address completion.")
518 (license license:expat)))
519
1c74da21
LC
520(define-public python2-notmuch
521 (package
522 (name "python2-notmuch")
523 (version "0.15.2")
524 (source (origin
525 (method url-fetch)
526 (uri (string-append
527 "https://pypi.python.org/packages/source/n/notmuch/notmuch-"
528 version
529 ".tar.gz"))
530 (sha256
531 (base32
532 "18g8701ibr153ngsz258kgcd42wqnbf9ifpqig1bijy6b0zx9xn5"))))
533 (build-system python-build-system)
534 (inputs `(("notmuch" ,notmuch)))
535 (arguments
536 `(#:python ,python-2
537 #:phases (modify-phases %standard-phases
538 (add-before
539 'build 'set-libnotmuch-file-name
540 (lambda* (#:key inputs #:allow-other-keys)
541 (let ((notmuch (assoc-ref inputs "notmuch")))
542 (substitute* "notmuch/globals.py"
543 (("libnotmuch\\.so\\.[0-9]")
544 (string-append notmuch "/lib/libnotmuch.so.4")))
545 #t))))
546 #:tests? #f)) ;no "test" target
547 (home-page "http://notmuchmail.org/")
548 (synopsis "Python bindings of the Notmuch mail indexing library")
549 (description
550 "This package provides Python bindings to use the Notmuch mail indexing
551and search library.")
552 (license gpl3+)))
553
98e9e22f
SB
554(define-public getmail
555 (package
556 (name "getmail")
1a5fd02a 557 (version "4.49.0")
98e9e22f
SB
558 (source
559 (origin
560 (method url-fetch)
561 (uri (string-append "http://pyropus.ca/software/getmail/old-versions/"
562 name "-" version ".tar.gz"))
563 (sha256
564 (base32
1a5fd02a 565 "1m0yzxd05fklwbmjj1n2q4sx397c1j5qi9a0r5fv3h8pplz4lv0w"))))
98e9e22f
SB
566 (build-system python-build-system)
567 (arguments
568 `(#:tests? #f ; no tests
569 #:python ,python-2))
570 (home-page "http://pyropus.ca/software/getmail/")
571 (synopsis "Mail retriever")
572 (description
573 "A flexible, extensible mail retrieval system with support for
574POP3, IMAP4, SSL variants of both, maildirs, mboxrd files, external MDAs,
575arbitrary message filtering, single-user and domain-mailboxes, and many other
576useful features.")
577
578 ;; License is specified in file '__init__.py'.
579 (license gpl2)))
580
f58f767b
JL
581(define-public libetpan
582 (package
583 (name "libetpan")
c1748912 584 (version "1.7.2")
f58f767b
JL
585 (source (origin
586 (method url-fetch)
587 (uri (string-append "https://github.com/dinhviethoa/" name
588 "/archive/" version ".tar.gz"))
f586c877 589 (file-name (string-append name "-" version ".tar.gz"))
f58f767b 590 (sha256
c1748912 591 (base32 "081ixgj3skglq9i7v0jb835lmfx21zi4i5b7997igwr0lj174y9j"))))
f58f767b
JL
592 (build-system gnu-build-system)
593 (native-inputs `(("autoconf" ,(autoconf-wrapper))
594 ("automake" ,automake)
3246cc91 595 ("libtool" ,libtool)
f58f767b
JL
596 ("pkg-config" ,pkg-config)))
597 (propagated-inputs
598 ;; 'libetpan-config --libs' returns '-lssl -lcrypto -lsasl2', so these
599 ;; libraries need to be propagated.
600 `(("cyrus-sasl" ,cyrus-sasl)
601 ("openssl" ,openssl)))
602 (inputs
603 `(("curl" ,curl)
c1748912
EF
604 ("expat" ,expat)
605 ("zlib" ,zlib)))
f58f767b 606 (arguments
722ec722
MW
607 '(#:phases (alist-cons-after
608 'unpack 'autogen
f58f767b 609 (lambda _
722ec722
MW
610 (setenv "NOCONFIGURE" "true")
611 (zero? (system* "sh" "autogen.sh")))
f58f767b
JL
612 %standard-phases)
613 #:configure-flags
614 '("--disable-static" "--disable-db")))
615 (home-page "http://www.etpan.org/libetpan.html")
616 (synopsis "Portable middleware for email access")
617 (description
618 "The purpose of this mail library is to provide a portable, efficient
619framework for different kinds of mail access: IMAP, SMTP, POP and NNTP. It
620provides an API for C language. It's the low-level API used by MailCore and
621MailCore 2.")
166191b3 622 (license (non-copyleft "file://COPYING"))))
f58f767b 623
e8435c4d
JL
624(define-public claws-mail
625 (package
626 (name "claws-mail")
21565719 627 (version "3.13.2")
e8435c4d
JL
628 (source (origin
629 (method url-fetch)
630 (uri (string-append
762b1971 631 "http://www.claws-mail.org/releases/" name "-" version
6ea4b094 632 ".tar.xz"))
e8435c4d 633 (sha256
ec92806a 634 (base32
21565719 635 "1l8ankx0qpq1ix1an8viphcf11ksh53jsrm1xjmq8cjbh5910wva"))))
e8435c4d
JL
636 (build-system gnu-build-system)
637 (native-inputs `(("pkg-config" ,pkg-config)))
638 (inputs `(("bogofilter" ,bogofilter)
639 ("curl" ,curl)
640 ("dbus-glib" ,dbus-glib)
e8435c4d
JL
641 ("enchant" ,enchant)
642 ("expat" ,expat)
643 ("ghostscript" ,ghostscript)
644 ("hicolor-icon-theme" ,hicolor-icon-theme)
645 ("gnupg" ,gnupg)
646 ("gnutls" ,gnutls)
647 ("gpgme" ,gpgme)
648 ("gtk" ,gtk+-2)
649 ("libarchive" ,libarchive)
650 ("libcanberra" ,libcanberra)
651 ("libetpan" ,libetpan)
652 ("libnotify" ,libnotify)
653 ("libsm" ,libsm)
654 ("libxml2" ,libxml2)
655 ("perl" ,perl)
f6292baf
EB
656 ("python-2" ,python-2)
657 ("mime-info" ,shared-mime-info)))
e8435c4d
JL
658 (arguments
659 '(#:configure-flags
f6292baf
EB
660 '("--enable-gnutls" "--enable-pgpmime-plugin" "--enable-enchant")
661 #:phases (modify-phases %standard-phases
662 (add-before 'build 'patch-mime
663 (lambda* (#:key inputs #:allow-other-keys)
664 (substitute* "src/procmime.c"
665 (("/usr/share/mime/globs")
666 (string-append (assoc-ref inputs "mime-info")
667 "/share/mime/globs"))))))))
e8435c4d
JL
668 (synopsis "GTK-based Email client")
669 (description
670 "Claws-Mail is an email client (and news reader) based on GTK+. The
671appearance and interface are designed to be familiar to new users coming from
672other popular email clients, as well as experienced users. Almost all commands
673are accessible with the keyboard. Plus, Claws-Mail is extensible via addons
674which can add many functionalities to the base client.")
675 (home-page "http://www.claws-mail.org/")
676 (license gpl3+))) ; most files are actually public domain or x11
677
d6e941bc
678(define-public msmtp
679 (package
680 (name "msmtp")
d23d1ddf 681 (version "1.6.5")
d6e941bc
682 (source
683 (origin
684 (method url-fetch)
d23d1ddf
LF
685 (uri (string-append "mirror://sourceforge/msmtp/msmtp/" version
686 "/msmtp-" version ".tar.xz"))
687 (sha256
688 (base32
689 "01jh9ba49bih8zsh40myw6qq1ll210q1vw0jg865vrn7jc3dd83n"))))
d6e941bc
690 (build-system gnu-build-system)
691 (inputs
692 `(("libidn" ,libidn)
72d8b5ba 693 ("libsecret" ,libsecret)
d6e941bc
694 ("gnutls" ,gnutls)
695 ("zlib" ,zlib)
696 ("gsasl" ,gsasl)))
697 (native-inputs
698 `(("pkg-config" ,pkg-config)))
699 (home-page "http://msmtp.sourceforge.net/")
700 (arguments
701 `(#:configure-flags (list "--with-libgsasl"
702 "--with-libidn"
823e2ed4
LF
703 "--with-tls=gnutls")
704 #:phases
705 (modify-phases %standard-phases
706 (add-after 'install 'install-msmtpq
707 (lambda* (#:key outputs #:allow-other-keys)
708 (let* ((out (assoc-ref outputs "out"))
709 (bin (string-append out "/bin"))
710 (doc (string-append out "/share/doc/msmtp"))
711 (msmtpq (string-append "scripts/msmtpq")))
712 (install-file (string-append msmtpq "/msmtpq") bin)
713 (install-file (string-append msmtpq "/msmtp-queue") bin)
714 (install-file (string-append msmtpq "/README.msmtpq") doc)
715 #t))))))
d6e941bc
716 (synopsis
717 "Simple and easy to use SMTP client with decent sendmail compatibility")
718 (description
719 "msmtp is an SMTP client. In the default mode, it transmits a mail to
720an SMTP server (for example at a free mail provider) which takes care of further
721delivery.")
722 (license gpl3+)))
723
66cc3ab2
TUBK
724(define-public exim
725 (package
726 (name "exim")
cf316a59 727 (version "4.87")
66cc3ab2
TUBK
728 (source
729 (origin
730 (method url-fetch)
fc6fdc05
LF
731 (uri (list (string-append "ftp://ftp.exim.org/pub/exim/exim4/exim-"
732 version ".tar.bz2")
733 (string-append "ftp://ftp.exim.org/pub/exim/exim4/old/exim-"
734 version ".tar.bz2")))
66cc3ab2 735 (sha256
513f8ab4 736 (base32
cf316a59 737 "1jbxn13shq90kpn0s73qpjnx5xm8jrpwhcwwgqw5s6sdzw6iwsbl"))))
66cc3ab2
TUBK
738 (build-system gnu-build-system)
739 (inputs
740 `(("bdb" ,bdb)
741 ("gnutls" ,gnutls)
742 ("gzip" ,gzip)
743 ("bzip2" ,bzip2)
744 ("xz" ,xz)
745 ("pcre" ,pcre)
746 ("perl" ,perl)
747 ("libxt" ,libxt)
748 ("libxaw" ,libxaw)))
749 (native-inputs
750 `(("perl" ,perl)))
751 (arguments
752 '(#:phases
753 (alist-replace
754 'configure
755 ;; We'd use #:make-flags but the top-level Makefile calls others
756 ;; recursively, so just set all variables this way.
757 (lambda* (#:key outputs inputs #:allow-other-keys)
758 (substitute* '("Makefile" "OS/Makefile-Default")
759 (("(RM_COMMAND=).*" all var)
760 (string-append var "rm\n")))
761 (copy-file "src/EDITME" "Local/Makefile")
762 (copy-file "exim_monitor/EDITME" "Local/eximon.conf")
763 (let ((out (assoc-ref outputs "out"))
764 (gzip (assoc-ref inputs "gzip"))
765 (bzip2 (assoc-ref inputs "bzip2"))
766 (xz (assoc-ref inputs "xz")))
767 (substitute* '("Local/Makefile")
768 (("(BIN_DIRECTORY=).*" all var)
769 (string-append var out "/bin\n"))
770 (("(CONFIGURE_FILE=).*" all var)
771 (string-append var out "/etc/exim.conf\n"))
772 (("(EXIM_USER=).*" all var)
773 (string-append var "nobody\n"))
774 (("(FIXED_NEVER_USERS=).*" all var)
775 (string-append var "\n")) ;XXX no root in build environment
776 (("(COMPRESS_COMMAND=).*" all var)
777 (string-append var gzip "/bin/gzip\n"))
778 (("(ZCAT_COMMAND=).*" all var)
779 (string-append var gzip "/bin/zcat\n")))
780 ;; This file has hardcoded names for tools despite the zcat
781 ;; configuration above.
782 (substitute* '("src/exigrep.src")
783 (("'zcat'") (string-append "'" gzip "/bin/zcat'"))
784 (("'bzcat'") (string-append "'" bzip2 "/bin/bzcat'"))
785 (("'xzcat'") (string-append "'" xz "/bin/xzcat'"))
786 (("'lzma'") (string-append "'" xz "/bin/lzma'")))))
787 (alist-cons-before
788 'build 'fix-sh-paths
789 (lambda* (#:key inputs #:allow-other-keys)
790 (substitute* '("scripts/lookups-Makefile" "scripts/reversion")
791 (("SHELL=/bin/sh") "SHELL=sh"))
792 (substitute* '("scripts/Configure-config.h")
793 (("\\| /bin/sh") "| sh"))
794 (let ((bash (assoc-ref inputs "bash")))
795 (substitute* '("scripts/Configure-eximon")
796 (("#!/bin/sh") (string-append "#!" bash "/bin/sh")))))
797 %standard-phases))
798 #:make-flags '("INSTALL_ARG=-no_chown")
799 ;; No 'check' target.
800 #:tests? #f))
801 (home-page "http://www.exim.org/")
802 (synopsis
803 "Message Transfer Agent (MTA) developed at the University of Cambridge")
804 (description
805 "Exim is a message transfer agent (MTA) developed at the University of
806Cambridge for use on Unix systems connected to the Internet. In style it is
807similar to Smail 3, but its facilities are more general. There is a great
808deal of flexibility in the way mail can be routed, and there are extensive
809facilities for checking incoming mail.")
810 (license gpl2+)))
811
7d2b784b
MW
812(define-public dovecot
813 (package
814 (name "dovecot")
873966e3 815 (version "2.2.25")
7d2b784b
MW
816 (source
817 (origin
818 (method url-fetch)
819 (uri (string-append "http://www.dovecot.org/releases/"
820 (version-major+minor version) "/"
821 name "-" version ".tar.gz"))
822 (sha256 (base32
873966e3 823 "0rwn5wc5b8j9fzqcjggdgpzmb77myrf4ra294z1gg5v3hhng7nfq"))))
7d2b784b
MW
824 (build-system gnu-build-system)
825 (native-inputs
826 `(("pkg-config" ,pkg-config)))
827 (inputs
828 `(("openssl" ,openssl)
829 ("zlib" ,zlib)
830 ("bzip2" ,bzip2)
fd5c70f8
AW
831 ("sqlite" ,sqlite)
832 ("linux-pam" ,linux-pam)))
7d2b784b
MW
833 (arguments
834 `(#:configure-flags '("--sysconfdir=/etc"
835 "--localstatedir=/var")
836 #:phases (modify-phases %standard-phases
837 (add-before
838 'configure 'pre-configure
839 (lambda _
840 ;; Simple hack to avoid installing in /etc
841 (substitute* '("doc/Makefile.in"
842 "doc/example-config/Makefile.in")
843 (("pkgsysconfdir = .*")
844 "pkgsysconfdir = /tmp/etc"))
845 #t)))))
846 (home-page "http://www.dovecot.org")
847 (synopsis "Secure POP3/IMAP server")
848 (description
849 "Dovecot is a mail server whose major goals are security and reliability.
850It supports mbox/Maildir and its own dbox/mdbox formats.")
851 ;; Most source files are covered by either lgpl2.1 or expat. The SHA code
852 ;; is covered by a variant of BSD-3, and UnicodeData.txt is covered by the
853 ;; Unicode, Inc. License Agreement for Data Files and Software.
854 (license (list lgpl2.1 license:expat (non-copyleft "file://COPYING")))))
855
81ce19f4
856(define-public isync
857 (package
858 (name "isync")
2c3d13fe 859 (version "1.2.1")
81ce19f4
860 (source
861 (origin
862 (method url-fetch)
863 (uri (string-append "mirror://sourceforge/isync/isync/"
864 version "/isync-" version ".tar.gz"))
865 (sha256 (base32
2c3d13fe 866 "1bij6nm06ghkg98n2pdyacam2fyg5y8f7ajw0d5653m0r4ldw5p7"))))
81ce19f4
867 (build-system gnu-build-system)
868 (inputs
869 `(("bdb" ,bdb)
870 ("openssl" ,openssl)))
871 (home-page "http://isync.sourceforge.net/")
872 (synopsis "Mailbox synchronization program")
873 (description
874 "isync/mbsync is command line tool for two-way synchronization of
875mailboxes. Currently Maildir and IMAP are supported types.")
876 (license gpl2+)))
877
26b8de19
EB
878(define-public perl-email-abstract
879 (package
880 (name "perl-email-abstract")
881 (version "3.008")
882 (source
883 (origin
884 (method url-fetch)
885 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
886 "Email-Abstract-" version ".tar.gz"))
887 (sha256
888 (base32
889 "0h42rhvp769wb421cpbbg6v6xjp8iv86mvz70pqgfgf4nsn6jwgw"))))
890 (build-system perl-build-system)
891 (propagated-inputs
892 `(("perl-email-simple" ,perl-email-simple)
a2190ccc 893 ("perl-module-pluggable" ,perl-module-pluggable)
26b8de19
EB
894 ("perl-mro-compat" ,perl-mro-compat)))
895 (home-page "http://search.cpan.org/dist/Email-Abstract")
896 (synopsis "Interface to mail representations")
897 (description "Email::Abstract provides module writers with the ability to
898write simple, representation-independent mail handling code.")
899 (license (package-license perl))))
900
ebda902f
EB
901(define-public perl-email-address
902 (package
903 (name "perl-email-address")
904 (version "1.907")
905 (source
906 (origin
907 (method url-fetch)
908 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
909 "Email-Address-" version ".tar.gz"))
910 (sha256
911 (base32
912 "1ai4r149pzjv9dc2vddir8zylj0z1pii93rm4g591lx7avim71hx"))))
913 (build-system perl-build-system)
914 (home-page "http://search.cpan.org/dist/Email-Address")
915 (synopsis "Email address parsing and creation")
916 (description "Email::Address implements a regex-based RFC 2822 parser that
917locates email addresses in strings and returns a list of Email::Address
918objects found. Alternatively you may construct objects manually.")
919 (license (package-license perl))))
920
aa86a3be
EB
921(define-public perl-email-date-format
922 (package
923 (name "perl-email-date-format")
924 (version "1.005")
925 (source
926 (origin
927 (method url-fetch)
928 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
929 "Email-Date-Format-" version ".tar.gz"))
930 (sha256
931 (base32
932 "012ivfwpnbl3wr50f9c6f4azhdlxnm31pdn72528g79v61z6372p"))))
933 (build-system perl-build-system)
934 (home-page "http://search.cpan.org/dist/Email-Date-Format")
935 (synopsis "Produce RFC 2822 date strings")
936 (description "Email::Date::Format provides a means for generating an RFC
9372822 compliant datetime string.")
938 (license (package-license perl))))
939
08bf7095
EB
940(define-public perl-email-messageid
941 (package
942 (name "perl-email-messageid")
943 (version "1.405")
944 (source
945 (origin
946 (method url-fetch)
947 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
948 "Email-MessageID-" version ".tar.gz"))
949 (sha256
950 (base32
951 "09216naz21x99ff33wdm3j3zq1zhdbxhrsmx8bvavjrw3gjsvrq3"))))
952 (build-system perl-build-system)
953 (home-page "http://search.cpan.org/dist/Email-MessageID")
954 (synopsis "Generate world unique message-ids")
955 (description "Email::MessageID generates recommended message-ids to
956identify a message uniquely.")
957 (license (package-license perl))))
958
0a4c49f6
EB
959(define-public perl-email-mime
960 (package
961 (name "perl-email-mime")
962 (version "1.929")
963 (source
964 (origin
965 (method url-fetch)
966 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
967 "Email-MIME-" version ".tar.gz"))
968 (sha256
969 (base32
970 "1sf7dldg4dvicyw6dl1vx6s1gjq3fcppi0103ikl0vi6v5xjdjdh"))))
971 (build-system perl-build-system)
972 (propagated-inputs
973 `(("perl-email-address" ,perl-email-address)
974 ("perl-email-messageid" ,perl-email-messageid)
975 ("perl-email-mime-contenttype" ,perl-email-mime-contenttype)
976 ("perl-email-mime-encodings" ,perl-email-mime-encodings)
977 ("perl-email-simple" ,perl-email-simple)
978 ("perl-mime-types" ,perl-mime-types)))
979 (home-page "http://search.cpan.org/dist/Email-MIME")
980 (synopsis "MIME message handling")
981 (description "Email::MIME is an extension of the Email::Simple module, to
982handle MIME encoded messages. It takes a message as a string, splits it up
983into its constituent parts, and allows you access to various parts of the
984message. Headers are decoded from MIME encoding.")
985 (license (package-license perl))))
986
55025bb5
EB
987(define-public perl-email-mime-contenttype
988 (package
989 (name "perl-email-mime-contenttype")
990 (version "1.017")
991 (source
992 (origin
993 (method url-fetch)
994 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
995 "Email-MIME-ContentType-" version ".tar.gz"))
996 (sha256
997 (base32
998 "1cl1l97lg690dh7i704hqi7yhxalq1chy7ylld5yc5v38jqa6gcn"))))
999 (build-system perl-build-system)
1000 (native-inputs
1001 `(("perl-capture-tiny" ,perl-capture-tiny)))
1002 (home-page "http://search.cpan.org/dist/Email-MIME-ContentType")
1003 (synopsis "Parse MIME Content-Type headers")
1004 (description "Email::MIME::ContentType parses a MIME Content-Type
1005header.")
1006 (license (package-license perl))))
1007
02e29936
EB
1008(define-public perl-email-mime-encodings
1009 (package
1010 (name "perl-email-mime-encodings")
1011 (version "1.315")
1012 (source
1013 (origin
1014 (method url-fetch)
1015 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
1016 "Email-MIME-Encodings-" version ".tar.gz"))
1017 (sha256
1018 (base32
1019 "0p5b8g9gh35m8fqrpx60g4bp98rvwd02n5b0vm9wh7mk0xah8wac"))))
1020 (build-system perl-build-system)
1021 (native-inputs
1022 `(("perl-capture-tiny" ,perl-capture-tiny)))
1023 (home-page "http://search.cpan.org/dist/Email-MIME-Encodings")
1024 (synopsis "Unified interface to MIME encoding and decoding")
1025 (description "This module wraps MIME::Base64 and MIME::QuotedPrint.")
1026 (license (package-license perl))))
1027
a24c5420
EB
1028(define-public perl-email-sender
1029 (package
1030 (name "perl-email-sender")
1031 (version "1.300016")
1032 (source
1033 (origin
1034 (method url-fetch)
1035 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
1036 "Email-Sender-" version ".tar.gz"))
1037 (sha256
1038 (base32
1039 "18x26fjh399q3s2g8dajb9r10633c46jrnbvycpnpclgnzhjs100"))))
1040 (build-system perl-build-system)
1041 (native-inputs
1042 `(("perl-capture-tiny" ,perl-capture-tiny)))
1043 (propagated-inputs
1044 `(("perl-email-abstract" ,perl-email-abstract)
1045 ("perl-email-address" ,perl-email-address)
1046 ("perl-email-simple" ,perl-email-simple)
1047 ("perl-list-moreutils" ,perl-list-moreutils)
1048 ("perl-module-runtime" ,perl-module-runtime)
1049 ("perl-moo" ,perl-moo)
1050 ("perl-moox-types-mooselike" ,perl-moox-types-mooselike)
1051 ("perl-sub-exporter" ,perl-sub-exporter)
1052 ("perl-throwable" ,perl-throwable)
1053 ("perl-try-tiny" ,perl-try-tiny)))
1054 (home-page "http://search.cpan.org/dist/Email-Sender")
1055 (synopsis "Perl library for sending email")
1056 (description "Email::Sender replaces the old and sometimes problematic
1057Email::Send library.")
1058 (license (package-license perl))))
1059
151ef3ed
EB
1060(define-public perl-email-simple
1061 (package
1062 (name "perl-email-simple")
1063 (version "2.206")
1064 (source
1065 (origin
1066 (method url-fetch)
1067 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
1068 "Email-Simple-" version ".tar.gz"))
1069 (sha256
1070 (base32
1071 "19dpy3j5na2k9qw1jcpc8ia25038068r9j1bn34f9yyrisz7s522"))))
1072 (build-system perl-build-system)
1073 (propagated-inputs
1074 `(("perl-email-date-format" ,perl-email-date-format)))
1075 (home-page "http://search.cpan.org/dist/Email-Simple")
1076 (synopsis "Parsing of RFC 2822 messages")
1077 (description "Email::Simple provides simple parsing of RFC 2822 message
1078format and headers.")
1079 (license (package-license perl))))
1080
f5dceecb
AW
1081(define-public libesmtp
1082 (package
1083 (name "libesmtp")
1084 (version "1.0.6")
1085 (source
1086 (origin
1087 (method url-fetch)
1088 (uri (string-append "http://www.stafford.uklinux.net/libesmtp/libesmtp-"
1089 version ".tar.bz2"))
1090 (sha256
1091 (base32
1092 "02zbniyz7qys1jmx3ghx21kxmns1wc3hmv80gp7ag7yra9f1m9nh"))))
1093 (build-system gnu-build-system)
1094 (propagated-inputs
1095 `(("openssl" ,openssl)))
1096 (home-page "http://www.stafford.uklinux.net/libesmtp/")
1097 (synopsis "Library for sending mail via remote hosts using SMTP")
1098 (description "libESMTP is an SMTP client which manages posting (or
1099submission of) electronic mail via a preconfigured Mail Transport Agent (MTA).
1100It may be used as part of a Mail User Agent (MUA) or other program that must
1101be able to post electronic mail where mail functionality may not be that
1102program's primary purpose.")
1103 (license (list lgpl2.1+ gpl2+))))
1104
f8ae32a2
AW
1105(define-public esmtp
1106 (package
1107 (name "esmtp")
1108 (version "1.2")
1109 (source
1110 (origin
1111 (method git-fetch)
1112 (uri (git-reference
1113 (url "https://github.com/andywingo/esmtp.git")
1114 (commit "01bf9fc")))
1115 (sha256
1116 (base32
1117 "1ay282rrl92h0m0m8z5zzjnwiiagi7c78aq2qvhia5mw7prwfyw2"))
1118 (file-name (string-append name "-" version "-checkout"))))
1119 (arguments
1120 `(#:phases (modify-phases %standard-phases
1121 (add-before
1122 'configure 'autoconf
1123 (lambda _ (zero? (system* "autoreconf" "-vfi")))))))
1124 (build-system gnu-build-system)
1125 (native-inputs
1126 `(("bison" ,bison)
1127 ("flex" ,flex)
1128 ("autoconf" ,autoconf)
1129 ("automake" ,automake)
1130 ("libtool" ,libtool)))
1131 (inputs
718c5dd6 1132 `(("libesmtp" ,libesmtp)))
f8ae32a2
AW
1133 (home-page "http://sourceforge.net/projects/esmtp/")
1134 (synopsis "Relay-only mail transfer agent (MTA)")
1135 (description "Esmtp is a simple relay-only mail transfer agent built using
1136libESMTP. It sends e-mail via a remote SMTP server using credentials from the
1137user's @file{$HOME/.esmtprc} configuration file; see the @command{esmtprc} man
1138page for more on configuration. This package also provides minimal
1139compatibility shims for the @command{sendmail}, @command{mailq}, and
1140@command{newaliases} commands.")
1141 (license gpl2+)))
1142
34dd26af
CAW
1143(define-public fdm
1144 (package
1145 (name "fdm")
1146 (version "1.9")
1147 (source (origin
1148 (method url-fetch)
1149 (uri (string-append "https://github.com/nicm/fdm/releases/download/"
1150 version "/fdm-"
1151 version ".tar.gz"))
1152 (file-name (string-append name "-" version ".tar.gz"))
1153 (sha256
1154 (base32 "054rscijahiza5f9qha79rg3siji3bk5mk10f8c2vqx7m4w6qh8n"))))
1155 (build-system gnu-build-system)
1156 (inputs
1157 `(("tdb" ,tdb)
1158 ("openssl" ,openssl)
1159 ("zlib" ,zlib)))
1160 (home-page "https://github.com/nicm/fdm")
1161 (synopsis "Mail Retrieval Agent (MRA) and Mail Delivery Agent (MDA)")
1162 (description "fdm is a program designed to fetch mail from POP3
1163or IMAP servers, or receive local mail from stdin, and
1164deliver it in various ways.")
1165 (license
1166 ;; Why point to a source file? Well, all the individual files have a
1167 ;; copy of this license in their headers, but there's no seprate file
1168 ;; with that information.
16966d5b 1169 (non-copyleft "https://github.com/nicm/fdm/blob/master/command.c"))))
34dd26af 1170
e90819c4
LG
1171
1172(define-public procmail
1173 (package
1174 (name "procmail")
1175 (version "3.22")
1176 (source
1177 (origin
1178 (method url-fetch)
1179 (uri (string-append
1180 "ftp://ftp.fu-berlin.de/pub/unix/mail/procmail/procmail-"
1181 version
1182 ".tar.gz"))
1183 (sha256
1184 (base32
1185 "05z1c803n5cppkcq99vkyd5myff904lf9sdgynfqngfk9nrpaz08"))
1186 ;; The following patch fixes an ambiguous definition of
1187 ;; getline() in formail.c. The patch is provided by Debian as
1188 ;; patch 24.
1d982d78
LF
1189 (patches (search-patches "procmail-ambiguous-getline-debian.patch"
1190 "procmail-CVE-2014-3618.patch"))))
e90819c4
LG
1191 (arguments
1192 `(#:phases (modify-phases %standard-phases
1193 (replace 'configure
1194 (lambda _
1195 (substitute* "Makefile"
1196 (("/bin/sh")
1197 (which "sh"))
1198 (("/usr")
1199 (assoc-ref %outputs "out"))
1200 (("/bin/rm")
1201 (which "rm")))
1202 #t)))
1203 #:tests? #f)) ;; There are no tests indicating a successful
1204 ;; build. Some tests of basic locking mechanisms provided by the
1205 ;; filesystem are performed during 'make install'. However, these
1206 ;; are performed before the actual build process.
1207 (build-system gnu-build-system)
1208 (inputs `(("glibc" ,glibc)
1209 ("exim" ,exim)))
1210 (home-page "http://www.procmail.org/")
1211 (synopsis "Versatile mail delivery agent (MDA)")
1212 (description "Procmail is a mail delivery agent (MDA) featuring support
1213for a variety of mailbox formats such as mbox, mh and maildir. Incoming mail
1214can be sorted into separate files/directories and arbitrary commands can be
1215executed on mail arrival. Procmail is considered stable, but is no longer
1216maintained.")
1217 (license gpl2+))) ;; procmail allows to choose the
1218 ;; nonfree Artistic License 1.0
1219 ;; as alternative to the GPL2+.
1220 ;; This option is not listed here.
e90819c4 1221
61c30e9d
LF
1222(define-public khard
1223 (package
1224 (name "khard")
d99f6ffb 1225 (version "0.9.0")
61c30e9d
LF
1226 (source (origin
1227 (method url-fetch)
1228 (uri (pypi-uri name version))
1229 (sha256
1230 (base32
d99f6ffb 1231 "0y83rji4f270hbb41m4jpr0z3yzvpvbsl32mpg9d38hlydw8fk1s"))))
61c30e9d
LF
1232 (build-system python-build-system)
1233 (arguments
1234 `(#:python ,python-2 ; only python-2 is supported.
1235 #:phases
1236 (modify-phases %standard-phases
1237 (add-before 'build 'disable-egg-compression
1238 ;; Do not compress the egg.
1239 (lambda _
1240 (let ((port (open-file "setup.cfg" "a")))
1241 (display "\n[easy_install]\nzip_ok = 0\n"
1242 port)
1243 (close-port port)
1244 #t)))
1245 (add-after 'install 'install-doc
1246 (lambda* (#:key outputs #:allow-other-keys)
1247 (let* ((out (assoc-ref outputs "out"))
1248 (doc (string-append out "/share/doc/khard")))
1249 (copy-recursively "misc/khard" doc)))))))
1250 (native-inputs
1251 `(("python2-setuptools" ,python2-setuptools)))
1252 (propagated-inputs
1253 `(("python2-vobject" ,python2-vobject)
1254 ("python2-pyyaml" ,python2-pyyaml)
1255 ("python2-atomicwrites" ,python2-atomicwrites)
1256 ("python2-configobj" ,python2-configobj)))
1257 (synopsis "Console address book using CardDAV")
1258 (description "Khard is an address book for the console. It creates, reads,
1259modifies and removes CardDAV address book entries at your local machine. For
1260synchronizing with a remote address book, @command{vdirsyncer} is recommended.
1261Khard can also be used from within the email client @command{mutt}.")
1262 (home-page "https://github.com/scheibler/khard")
1263 (license gpl3+)))