gnu: cook: Update source URL.
[jackhill/guix/guix.git] / gnu / packages / mail.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
3 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
4 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
5 ;;; Copyright © 2014 Sou Bunnbu <iyzsong@gmail.com>
6 ;;; Copyright © 2014 Julien Lepiller <julien@lepiller.eu>
7 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
8 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
9 ;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
10 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
11 ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
12 ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
13 ;;; Copyright © 2016 Al McElrath <hello@yrns.org>
14 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
15 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
16 ;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
17 ;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
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
34 (define-module (gnu packages mail)
35 #:use-module (gnu packages)
36 #:use-module (gnu packages autotools)
37 #:use-module (gnu packages base)
38 #:use-module (gnu packages backup)
39 #:use-module (gnu packages bash)
40 #:use-module (gnu packages bison)
41 #:use-module (gnu packages curl)
42 #:use-module (gnu packages cyrus-sasl)
43 #:use-module (gnu packages databases)
44 #:use-module (gnu packages dejagnu)
45 #:use-module (gnu packages emacs)
46 #:use-module (gnu packages enchant)
47 #:use-module (gnu packages ghostscript)
48 #:use-module (gnu packages glib)
49 #:use-module (gnu packages gnome)
50 #:use-module (gnu packages gnupg)
51 #:use-module (gnu packages gsasl)
52 #:use-module (gnu packages gtk)
53 #:use-module (gnu packages guile)
54 #:use-module (gnu packages flex)
55 #:use-module (gnu packages libcanberra)
56 #:use-module (gnu packages libidn)
57 #:use-module (gnu packages linux)
58 #:use-module (gnu packages m4)
59 #:use-module (gnu packages ncurses)
60 #:use-module (gnu packages pcre)
61 #:use-module (gnu packages perl)
62 #:use-module (gnu packages python)
63 #:use-module (gnu packages readline)
64 #:use-module (gnu packages search)
65 #:use-module (gnu packages texinfo)
66 #:use-module (gnu packages compression)
67 #:use-module (gnu packages glib)
68 #:use-module (gnu packages pkg-config)
69 #:use-module (gnu packages flex)
70 #:use-module (gnu packages gdb)
71 #:use-module (gnu packages samba)
72 #:use-module (gnu packages tls)
73 #:use-module (gnu packages xml)
74 #:use-module (gnu packages xorg)
75 #:use-module ((guix licenses)
76 #:select (gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+
77 non-copyleft (expat . license:expat)))
78 #:use-module (guix packages)
79 #:use-module (guix download)
80 #:use-module (guix git-download)
81 #:use-module (guix utils)
82 #:use-module (guix build-system gnu)
83 #:use-module (guix build-system perl)
84 #:use-module (guix build-system python))
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
96 "0szbqa12zqzldqyw97lxqax3ja2adis83i7brdfsxmrfw68iaf65"))
97 (patches (search-patches "m4-gets-undeclared.patch"))))
98 (build-system gnu-build-system)
99 (arguments
100 '(;; TODO: Add `--with-sql'.
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)
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
131 ("linux-pam" ,linux-pam)
132 ("libltdl" ,libltdl)
133 ("gdbm" ,gdbm)))
134 (home-page "http://www.gnu.org/software/mailutils/")
135 (synopsis "Utilities and library for reading and serving mail")
136 (description
137 "GNU Mailutils is a collection of programs for managing, viewing and
138 processing electronic mail. It contains both utilities and server daemons
139 and all operate in a protocol-agnostic way. The underlying libraries are
140 also available, simplifying the addition of mail capabilities to new
141 software.")
142 (license
143 ;; Libraries are under LGPLv3+, and programs under GPLv3+.
144 (list gpl3+ lgpl3+))))
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")))))
163 (home-page "http://www.fetchmail.info/")
164 (synopsis "Remote-mail retrieval and forwarding utility")
165 (description
166 "Fetchmail is a full-featured, robust, well-documented remote-mail
167 retrieval and forwarding utility intended to be used over on-demand
168 TCP/IP links (such as SLIP or PPP connections). It supports every
169 remote-mail protocol now in use on the Internet: POP2, POP3, RPOP, APOP,
170 KPOP, all flavors of IMAP, ETRN, and ODMR. It can even support IPv6
171 and IPSEC.
172
173 Fetchmail retrieves mail from remote mail servers and forwards it via SMTP,
174 so it can then be read by normal mail user agents such as mutt, elm
175 or BSD Mail. It allows all your system MTA's filtering, forwarding, and
176 aliasing facilities to work just as they would on normal mail.")
177 (license gpl2+))) ; most files are actually public domain or x11
178
179 (define-public mutt
180 (package
181 (name "mutt")
182 (version "1.6.1")
183 (source (origin
184 (method url-fetch)
185 (uri (string-append "ftp://ftp.mutt.org/pub/mutt/mutt-"
186 version ".tar.gz"))
187 (sha256
188 (base32
189 "087dz1y9qhl4ikhsnnb4xmyvs82w6kx480w8zj130wdiqvn6rclq"))
190 (patches (search-patches "mutt-store-references.patch"))))
191 (build-system gnu-build-system)
192 (inputs
193 `(("cyrus-sasl" ,cyrus-sasl)
194 ("gdbm" ,gdbm)
195 ("gpgme" ,gpgme)
196 ("ncurses" ,ncurses)
197 ("openssl" ,openssl)
198 ("perl" ,perl)))
199 (arguments
200 `(#:configure-flags '("--enable-smtp"
201 "--enable-imap"
202 "--enable-pop"
203 "--enable-gpgme"
204 "--enable-hcache" ; for header caching
205 "--with-ssl"
206 "--with-sasl"
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
214 operating systems.")
215 (license gpl2+)))
216
217 (define-public gmime
218 (package
219 (name "gmime")
220 (version "2.6.20")
221 (source (origin
222 (method url-fetch)
223 (uri (string-append "mirror://gnome/sources/gmime/"
224 (version-major+minor version)
225 "/gmime-" version ".tar.xz"))
226 (sha256
227 (base32
228 "0rfzbgsh8ira5p76kdghygl5i3fvmmx4wbw5rp7f8ajc4vxp18g0"))))
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
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))))))))))))
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
257 the creation and parsing of messages using the Multipurpose Internet Mail
258 Extension (MIME).")
259 (license (list lgpl2.1+ gpl2+ gpl3+))))
260
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
289 content (body). The program is able to learn from the user's classifications
290 and corrections. It is based on a Bayesian filter.")
291 (license gpl2)))
292
293 (define-public offlineimap
294 (package
295 (name "offlineimap")
296 (version "6.7.0.1")
297 (source (origin
298 (method url-fetch)
299 (uri (string-append "https://github.com/OfflineIMAP/offlineimap/"
300 "archive/v" version ".tar.gz"))
301 (file-name (string-append name "-" version ".tar.gz"))
302 (sha256
303 (base32
304 "1ys26v2w3vws08acjs7w5irjgahdxyad00pmj7fhcx91hbvizs80"))))
305 (build-system python-build-system)
306 (native-inputs `(("python" ,python-2)))
307 (inputs `(("python2-pysqlite" ,python2-pysqlite)))
308 (arguments
309 ;; The setup.py script expects python-2.
310 `(#:python ,python-2
311 ;; Tests require a modifiable IMAP account.
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))))))
322 (home-page "http://www.offlineimap.org")
323 (synopsis "Sync emails between two repositories")
324 (description
325 "OfflineImap synchronizes emails between two repositories, so that you
326 can read the same mailbox from multiple computers. It supports IMAP as REMOTE
327 repository and Maildir/IMAP as LOCAL repository.")
328 (license gpl2+)))
329
330 (define-public mu
331 (package
332 (name "mu")
333 (version "0.9.16")
334 (source (origin
335 (method url-fetch)
336 (uri (string-append "https://github.com/djcb/mu/archive/v"
337 version ".tar.gz"))
338 (file-name (string-append "mu-" version ".tar.gz"))
339 (sha256
340 (base32
341 "0p7hqri1r1x6750x138cc29mh81kdav2dcim26y58s8an206h25g"))))
342 (build-system gnu-build-system)
343 (native-inputs
344 `(("pkg-config" ,pkg-config)
345 ("glib" ,glib "bin") ; for gtester
346 ("autoconf" ,autoconf)
347 ("automake" ,automake)
348 ("emacs" ,emacs-minimal)
349 ("libtool" ,libtool)
350 ("texinfo" ,texinfo)))
351 ;; TODO: Add webkit and gtk to build the mug GUI.
352 (inputs
353 `(("xapian" ,xapian)
354 ("guile" ,guile-2.0)
355 ("glib" ,glib)
356 ("gmime" ,gmime)
357 ("tzdata" ,tzdata))) ;for mu/test/test-mu-query.c
358 (arguments
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
365 (modify-phases %standard-phases
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
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"))
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"))
391 #t)))))
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
396 Maildir-format. Mu's purpose in life is to help you to quickly find the
397 messages you need; in addition, it allows you to view messages, extract
398 attachments, create new maildirs, and so on.")
399 (license gpl3+)))
400
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
435 (define-public notmuch
436 (package
437 (name "notmuch")
438 (version "0.21")
439 (source (origin
440 (method url-fetch)
441 (uri (string-append "https://notmuchmail.org/releases/notmuch-"
442 version ".tar.gz"))
443 (sha256
444 (base32
445 "1cr53rbpkcy3pvrmhbg2gq7sjpwb0c8xd7a4zhzxbiv8s7z8yvyh"))))
446 (build-system gnu-build-system)
447 (arguments
448 '(#:tests? #f ;; FIXME: 662 tests; 168 fail and 99 are skipped
449 ;; with perl input: 50 fail and 99 are skipped
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"))
455
456 (let ((out (assoc-ref outputs "out")))
457 (zero? (system* "./configure"
458 (string-append "--prefix=" out)))))))))
459 (native-inputs
460 `(("pkg-config" ,pkg-config)
461 ("python" ,python-2)
462 ("python-docutils" ,python2-docutils)
463 ("python-sphinx" ,python2-sphinx)
464 ("bash-completion" ,bash-completion)))
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-
476 ing, and tagging large collections of email messages.")
477 (license gpl3+)))
478
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,
517 useful for email address completion.")
518 (license license:expat)))
519
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
551 and search library.")
552 (license gpl3+)))
553
554 (define-public getmail
555 (package
556 (name "getmail")
557 (version "4.49.0")
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
565 "1m0yzxd05fklwbmjj1n2q4sx397c1j5qi9a0r5fv3h8pplz4lv0w"))))
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
574 POP3, IMAP4, SSL variants of both, maildirs, mboxrd files, external MDAs,
575 arbitrary message filtering, single-user and domain-mailboxes, and many other
576 useful features.")
577
578 ;; License is specified in file '__init__.py'.
579 (license gpl2)))
580
581 (define-public libetpan
582 (package
583 (name "libetpan")
584 (version "1.7.2")
585 (source (origin
586 (method url-fetch)
587 (uri (string-append "https://github.com/dinhviethoa/" name
588 "/archive/" version ".tar.gz"))
589 (file-name (string-append name "-" version ".tar.gz"))
590 (sha256
591 (base32 "081ixgj3skglq9i7v0jb835lmfx21zi4i5b7997igwr0lj174y9j"))))
592 (build-system gnu-build-system)
593 (native-inputs `(("autoconf" ,(autoconf-wrapper))
594 ("automake" ,automake)
595 ("libtool" ,libtool)
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)
604 ("expat" ,expat)
605 ("zlib" ,zlib)))
606 (arguments
607 '(#:phases (alist-cons-after
608 'unpack 'autogen
609 (lambda _
610 (setenv "NOCONFIGURE" "true")
611 (zero? (system* "sh" "autogen.sh")))
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
619 framework for different kinds of mail access: IMAP, SMTP, POP and NNTP. It
620 provides an API for C language. It's the low-level API used by MailCore and
621 MailCore 2.")
622 (license (non-copyleft "file://COPYING"))))
623
624 (define-public claws-mail
625 (package
626 (name "claws-mail")
627 (version "3.13.2")
628 (source (origin
629 (method url-fetch)
630 (uri (string-append
631 "http://www.claws-mail.org/releases/" name "-" version
632 ".tar.xz"))
633 (sha256
634 (base32
635 "1l8ankx0qpq1ix1an8viphcf11ksh53jsrm1xjmq8cjbh5910wva"))))
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)
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)
656 ("python-2" ,python-2)
657 ("mime-info" ,shared-mime-info)))
658 (arguments
659 '(#:configure-flags
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"))))))))
668 (synopsis "GTK-based Email client")
669 (description
670 "Claws-Mail is an email client (and news reader) based on GTK+. The
671 appearance and interface are designed to be familiar to new users coming from
672 other popular email clients, as well as experienced users. Almost all commands
673 are accessible with the keyboard. Plus, Claws-Mail is extensible via addons
674 which 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
678 (define-public msmtp
679 (package
680 (name "msmtp")
681 (version "1.6.5")
682 (source
683 (origin
684 (method url-fetch)
685 (uri (string-append "mirror://sourceforge/msmtp/msmtp/" version
686 "/msmtp-" version ".tar.xz"))
687 (sha256
688 (base32
689 "01jh9ba49bih8zsh40myw6qq1ll210q1vw0jg865vrn7jc3dd83n"))))
690 (build-system gnu-build-system)
691 (inputs
692 `(("libidn" ,libidn)
693 ("libsecret" ,libsecret)
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"
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))))))
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
720 an SMTP server (for example at a free mail provider) which takes care of further
721 delivery.")
722 (license gpl3+)))
723
724 (define-public exim
725 (package
726 (name "exim")
727 (version "4.87")
728 (source
729 (origin
730 (method url-fetch)
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")))
735 (sha256
736 (base32
737 "1jbxn13shq90kpn0s73qpjnx5xm8jrpwhcwwgqw5s6sdzw6iwsbl"))))
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
806 Cambridge for use on Unix systems connected to the Internet. In style it is
807 similar to Smail 3, but its facilities are more general. There is a great
808 deal of flexibility in the way mail can be routed, and there are extensive
809 facilities for checking incoming mail.")
810 (license gpl2+)))
811
812 (define-public dovecot
813 (package
814 (name "dovecot")
815 (version "2.2.25")
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
823 "0rwn5wc5b8j9fzqcjggdgpzmb77myrf4ra294z1gg5v3hhng7nfq"))))
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)
831 ("sqlite" ,sqlite)
832 ("linux-pam" ,linux-pam)))
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.
850 It 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
856 (define-public isync
857 (package
858 (name "isync")
859 (version "1.2.1")
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
866 "1bij6nm06ghkg98n2pdyacam2fyg5y8f7ajw0d5653m0r4ldw5p7"))))
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
875 mailboxes. Currently Maildir and IMAP are supported types.")
876 (license gpl2+)))
877
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)
893 ("perl-module-pluggable" ,perl-module-pluggable)
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
898 write simple, representation-independent mail handling code.")
899 (license (package-license perl))))
900
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
917 locates email addresses in strings and returns a list of Email::Address
918 objects found. Alternatively you may construct objects manually.")
919 (license (package-license perl))))
920
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
937 2822 compliant datetime string.")
938 (license (package-license perl))))
939
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
956 identify a message uniquely.")
957 (license (package-license perl))))
958
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
982 handle MIME encoded messages. It takes a message as a string, splits it up
983 into its constituent parts, and allows you access to various parts of the
984 message. Headers are decoded from MIME encoding.")
985 (license (package-license perl))))
986
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
1005 header.")
1006 (license (package-license perl))))
1007
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
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
1057 Email::Send library.")
1058 (license (package-license perl))))
1059
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
1078 format and headers.")
1079 (license (package-license perl))))
1080
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
1099 submission of) electronic mail via a preconfigured Mail Transport Agent (MTA).
1100 It may be used as part of a Mail User Agent (MUA) or other program that must
1101 be able to post electronic mail where mail functionality may not be that
1102 program's primary purpose.")
1103 (license (list lgpl2.1+ gpl2+))))
1104
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
1132 `(("libesmtp" ,libesmtp)))
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
1136 libESMTP. It sends e-mail via a remote SMTP server using credentials from the
1137 user's @file{$HOME/.esmtprc} configuration file; see the @command{esmtprc} man
1138 page for more on configuration. This package also provides minimal
1139 compatibility shims for the @command{sendmail}, @command{mailq}, and
1140 @command{newaliases} commands.")
1141 (license gpl2+)))
1142
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
1163 or IMAP servers, or receive local mail from stdin, and
1164 deliver 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.
1169 (non-copyleft "https://github.com/nicm/fdm/blob/master/command.c"))))
1170
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.
1189 (patches (search-patches "procmail-ambiguous-getline-debian.patch"
1190 "procmail-CVE-2014-3618.patch"))))
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
1213 for a variety of mailbox formats such as mbox, mh and maildir. Incoming mail
1214 can be sorted into separate files/directories and arbitrary commands can be
1215 executed on mail arrival. Procmail is considered stable, but is no longer
1216 maintained.")
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.
1221
1222 (define-public khard
1223 (package
1224 (name "khard")
1225 (version "0.9.0")
1226 (source (origin
1227 (method url-fetch)
1228 (uri (pypi-uri name version))
1229 (sha256
1230 (base32
1231 "0y83rji4f270hbb41m4jpr0z3yzvpvbsl32mpg9d38hlydw8fk1s"))))
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,
1259 modifies and removes CardDAV address book entries at your local machine. For
1260 synchronizing with a remote address book, @command{vdirsyncer} is recommended.
1261 Khard can also be used from within the email client @command{mutt}.")
1262 (home-page "https://github.com/scheibler/khard")
1263 (license gpl3+)))