gnu: perl-email-simple: Update to 2.214.
[jackhill/guix/guix.git] / gnu / packages / mail.scm
CommitLineData
a661e420 1;;; GNU Guix --- Functional package management for GNU
baa6790b 2;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
ee2b2d2f 3;;; Copyright © 2014, 2015, 2017 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>
a047122c 11;;; Copyright © 2015, 2016, 2017 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>
3f81ca32 17;;; Copyright © 2016, 2017 Troy Sankey <sankeytms@gmail.com>
32f9cc33 18;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org>
24262239 19;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
ed428a58 20;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
5d87088c 21;;; Copyright © 2016 John Darrington <jmd@gnu.org>
7a6213cb 22;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
3e9750c3 23;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
6800c797 24;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com>
34529f8d 25;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
7c16151a 26;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
a661e420
LC
27;;;
28;;; This file is part of GNU Guix.
29;;;
30;;; GNU Guix is free software; you can redistribute it and/or modify it
31;;; under the terms of the GNU General Public License as published by
32;;; the Free Software Foundation; either version 3 of the License, or (at
33;;; your option) any later version.
34;;;
35;;; GNU Guix is distributed in the hope that it will be useful, but
36;;; WITHOUT ANY WARRANTY; without even the implied warranty of
37;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
38;;; GNU General Public License for more details.
39;;;
40;;; You should have received a copy of the GNU General Public License
41;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
42
1fdd3ee2 43(define-module (gnu packages mail)
59a43334 44 #:use-module (gnu packages)
b0eb2af2 45 #:use-module (gnu packages aspell)
d983a14f 46 #:use-module (gnu packages autotools)
d2938d59 47 #:use-module (gnu packages base)
e8435c4d 48 #:use-module (gnu packages backup)
ee886454 49 #:use-module (gnu packages bash)
f8ae32a2 50 #:use-module (gnu packages bison)
fc9a93cb 51 #:use-module (gnu packages calendar)
944a5cdd 52 #:use-module (gnu packages crypto)
f58f767b 53 #:use-module (gnu packages curl)
4fd6bf53 54 #:use-module (gnu packages cyrus-sasl)
81ce19f4 55 #:use-module (gnu packages databases)
d983a14f 56 #:use-module (gnu packages dejagnu)
8a3741e6 57 #:use-module (gnu packages django)
8b53366c 58 #:use-module (gnu packages dns)
7a6213cb 59 #:use-module (gnu packages documentation)
d2938d59 60 #:use-module (gnu packages emacs)
e8435c4d 61 #:use-module (gnu packages enchant)
e8435c4d 62 #:use-module (gnu packages ghostscript)
aa20b004 63 #:use-module (gnu packages gettext)
d2938d59 64 #:use-module (gnu packages glib)
e8435c4d 65 #:use-module (gnu packages gnome)
524e1df6 66 #:use-module (gnu packages gnupg)
152ffe7c 67 #:use-module (gnu packages groff)
d6e941bc 68 #:use-module (gnu packages gsasl)
e8435c4d 69 #:use-module (gnu packages gtk)
1ffa7090 70 #:use-module (gnu packages guile)
f8ae32a2 71 #:use-module (gnu packages flex)
b0eb2af2 72 #:use-module (gnu packages kerberos)
e8435c4d 73 #:use-module (gnu packages libcanberra)
8b53366c 74 #:use-module (gnu packages libevent)
d6e941bc 75 #:use-module (gnu packages libidn)
d983a14f 76 #:use-module (gnu packages linux)
152ffe7c 77 #:use-module (gnu packages lua)
d983a14f 78 #:use-module (gnu packages m4)
1ffa7090 79 #:use-module (gnu packages ncurses)
b0eb2af2 80 #:use-module (gnu packages openldap)
66cc3ab2 81 #:use-module (gnu packages pcre)
13f04f48 82 #:use-module (gnu packages perl)
3919a31a 83 #:use-module (gnu packages python)
1ffa7090 84 #:use-module (gnu packages readline)
d2938d59 85 #:use-module (gnu packages search)
1ffa7090 86 #:use-module (gnu packages texinfo)
681a6588
MW
87 #:use-module (gnu packages compression)
88 #:use-module (gnu packages glib)
89 #:use-module (gnu packages pkg-config)
a7e59c50 90 #:use-module (gnu packages flex)
1bd3f849 91 #:use-module (gnu packages gdb)
6cf27c89 92 #:use-module (gnu packages man)
3e9750c3 93 #:use-module (gnu packages ruby)
1bd3f849 94 #:use-module (gnu packages samba)
6cf27c89 95 #:use-module (gnu packages screen)
b0eb2af2 96 #:use-module (gnu packages tcl)
a7fd7b68 97 #:use-module (gnu packages tls)
be0c5733
DM
98 #:use-module (gnu packages networking)
99 #:use-module (gnu packages web)
7c16151a 100 #:use-module (gnu packages webkit)
f58f767b 101 #:use-module (gnu packages xml)
e8435c4d 102 #:use-module (gnu packages xorg)
7596ddf3 103 #:use-module (gnu packages docbook)
d983a14f 104 #:use-module ((guix licenses)
61c30e9d 105 #:select (gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+
24262239 106 non-copyleft (expat . license:expat) bsd-3
8b53366c 107 public-domain bsd-4 isc (openssl . license:openssl)
2f3108ad 108 bsd-2 x11-style agpl3 asl2.0 perl-license))
a661e420
LC
109 #:use-module (guix packages)
110 #:use-module (guix download)
f8ae32a2 111 #:use-module (guix git-download)
29a7c98a 112 #:use-module (guix utils)
681a6588 113 #:use-module (guix build-system gnu)
ebda902f 114 #:use-module (guix build-system perl)
24262239
CL
115 #:use-module (guix build-system python)
116 #:use-module (guix build-system trivial))
a661e420
LC
117
118(define-public mailutils
119 (package
120 (name "mailutils")
baa6790b 121 (version "3.3")
a661e420
LC
122 (source (origin
123 (method url-fetch)
124 (uri (string-append "mirror://gnu/mailutils/mailutils-"
125 version ".tar.bz2"))
126 (sha256
127 (base32
baa6790b 128 "1v110avpdz0bvz3yh3cfvvd0dnn7sa6hrpql2h8dgnri8fww6cag"))))
a661e420
LC
129 (build-system gnu-build-system)
130 (arguments
de75f0b1
EF
131 '(#:phases
132 (modify-phases %standard-phases
baa6790b 133 (add-before 'check 'prepare-test-suite
de75f0b1
EF
134 (lambda _
135 ;; Use the right file name for `cat'.
136 (substitute* "testsuite/lib/mailutils.exp"
137 (("/bin/cat")
138 (which "cat")))
14253017 139
de75f0b1
EF
140 ;; Tests try to invoke 'maidag' such that it looks up the
141 ;; 'root' user, which does not exist in the build
142 ;; environment.
143 (substitute* "maidag/tests/testsuite"
144 (("root <") "nobody <")
145 (("spool/root") "spool/nobody")
146 (("root@localhost") "nobody@localhost"))
14253017 147
de75f0b1
EF
148 ;; The 'pipeact.at' tests generate a shell script; make
149 ;; sure it uses the right shell.
150 (substitute* '("sieve/tests/testsuite"
151 "mh/tests/testsuite")
152 (("#! /bin/sh")
153 (string-append "#!" (which "sh"))))
14253017 154
de75f0b1
EF
155 (substitute* "mh/tests/testsuite"
156 (("moreproc: /bin/cat")
157 (string-append "moreproc: " (which "cat"))))
14253017 158
de75f0b1
EF
159 ;; XXX: The comsatd tests rely on being able to open
160 ;; /dev/tty, but that gives ENODEV in the build
161 ;; environment. Thus, ignore test failures here.
162 (substitute* "comsat/tests/Makefile.in"
163 (("\\$\\(SHELL\\) \\$\\(TESTSUITE\\)" all)
164 (string-append "-" all)))
14253017 165
baa6790b
LC
166 ;; 'frm' tests expect write access to $HOME.
167 (setenv "HOME" (getcwd))
168
169 ;; Avoid the message "I'm going to create the standard MH path
170 ;; for you", which would lead to one test failure (when diffing
171 ;; stdout of 'fmtcheck'.)
172 (call-with-output-file ".mh_profile"
173 (lambda (port)
174 (format port "Path: ~a/Mail-for-tests~%"
175 (getcwd))))
176
de75f0b1
EF
177 #t)))
178 ;; TODO: Add `--with-sql'.
abe5d2dc 179 #:configure-flags '("--sysconfdir=/etc")
a661e420
LC
180 #:parallel-tests? #f))
181 (inputs
182 `(("dejagnu" ,dejagnu)
183 ("m4" ,m4)
184 ("texinfo" ,texinfo)
185 ("guile" ,guile-2.0)
186 ("gnutls" ,gnutls)
187 ("ncurses" ,ncurses)
abe5d2dc 188 ("readline" ,readline)
a661e420 189 ("linux-pam" ,linux-pam)
3246cc91 190 ("libltdl" ,libltdl)
01eafd38 191 ("gdbm" ,gdbm)))
6fd52309 192 (home-page "https://mailutils.org")
f50d2669 193 (synopsis "Utilities and library for reading and serving mail")
a661e420 194 (description
79c311b8
LC
195 "GNU Mailutils is a collection of programs for managing, viewing and
196processing electronic mail. It contains both utilities and server daemons
197and all operate in a protocol-agnostic way. The underlying libraries are
198also available, simplifying the addition of mail capabilities to new
199software.")
a661e420
LC
200 (license
201 ;; Libraries are under LGPLv3+, and programs under GPLv3+.
202 (list gpl3+ lgpl3+))))
d983a14f
AE
203
204(define-public fetchmail
205 (package
206 (name "fetchmail")
207 (version "6.3.26")
208 (source (origin
209 (method url-fetch)
210 (uri (string-append "mirror://sourceforge/fetchmail/branch_6.3/fetchmail-"
211 version ".tar.xz"))
212 (sha256
213 (base32
214 "0l78ayvi9dm8hd190gl139cs2xqsrf7r9ncilslw20mgvd6cbd3r"))))
215 (build-system gnu-build-system)
216 (inputs
217 `(("openssl" ,openssl)))
218 (arguments
219 `(#:configure-flags (list (string-append "--with-ssl="
220 (assoc-ref %build-inputs "openssl")))))
07af3e5e 221 (home-page "http://www.fetchmail.info/")
ae2189a9 222 (synopsis "Remote-mail retrieval and forwarding utility")
d983a14f
AE
223 (description
224 "Fetchmail is a full-featured, robust, well-documented remote-mail
225retrieval and forwarding utility intended to be used over on-demand
226TCP/IP links (such as SLIP or PPP connections). It supports every
227remote-mail protocol now in use on the Internet: POP2, POP3, RPOP, APOP,
228KPOP, all flavors of IMAP, ETRN, and ODMR. It can even support IPv6
229and IPSEC.
230
231Fetchmail retrieves mail from remote mail servers and forwards it via SMTP,
232so it can then be read by normal mail user agents such as mutt, elm
233or BSD Mail. It allows all your system MTA's filtering, forwarding, and
234aliasing facilities to work just as they would on normal mail.")
235 (license gpl2+))) ; most files are actually public domain or x11
13f04f48
AE
236
237(define-public mutt
238 (package
239 (name "mutt")
f120b4ab 240 (version "1.9.1")
13f04f48
AE
241 (source (origin
242 (method url-fetch)
7736bae9
LF
243 (uri (string-append "https://bitbucket.org/mutt/mutt/downloads/"
244 "mutt-" version ".tar.gz"))
13f04f48
AE
245 (sha256
246 (base32
f120b4ab 247 "1c8vv4anl555a03pbnwf8wnf0d8pcnd4p35y3q8f5ikkcflq76vl"))
fc1adab1 248 (patches (search-patches "mutt-store-references.patch"))))
13f04f48
AE
249 (build-system gnu-build-system)
250 (inputs
4fd6bf53 251 `(("cyrus-sasl" ,cyrus-sasl)
b0bb0136 252 ("gdbm" ,gdbm)
524e1df6 253 ("gpgme" ,gpgme)
4fd6bf53 254 ("ncurses" ,ncurses)
13f04f48
AE
255 ("openssl" ,openssl)
256 ("perl" ,perl)))
257 (arguments
258 `(#:configure-flags '("--enable-smtp"
259 "--enable-imap"
260 "--enable-pop"
524e1df6 261 "--enable-gpgme"
b0bb0136 262 "--enable-hcache" ; for header caching
0323fe80 263 "--enable-sidebar"
13f04f48 264 "--with-ssl"
4fd6bf53 265 "--with-sasl"
13f04f48
AE
266 ;; so that mutt does not check whether the path
267 ;; exists, which it does not in the chroot
268 "--with-mailpath=/var/mail")))
269 (home-page "http://www.mutt.org/")
270 (synopsis "Mail client")
271 (description
272 "Mutt is a small but very powerful text-based mail client for Unix
273operating systems.")
274 (license gpl2+)))
681a6588 275
7596ddf3 276(define-public neomutt
277 (package
7596ddf3 278 (name "neomutt")
7de23b02 279 (version "20171027")
7596ddf3 280 (source
281 (origin
282 (method url-fetch)
283 (uri (string-append "https://github.com/" name "/" name
284 "/archive/" name "-" version ".tar.gz"))
7596ddf3 285 (sha256
286 (base32
7de23b02 287 "10z523cy3s6syh0mwpsncl87wrvyzsk99y7nzicwvx6y3hmdw01d"))))
32fc1ec3 288 (build-system gnu-build-system)
7596ddf3 289 (inputs
290 `(("cyrus-sasl" ,cyrus-sasl)
291 ("gdbm" ,gdbm)
292 ("gpgme" ,gpgme)
293 ("ncurses" ,ncurses)
294 ("gnutls" ,gnutls)
295 ("openssl" ,openssl) ;For smime
296 ("perl" ,perl)
5c95465e 297 ("kyotocabinet" ,kyotocabinet)
7596ddf3 298 ("libxslt" ,libxslt)
299 ("libidn" ,libidn)
300 ("libxml2" ,libxml2)
5c95465e 301 ("lmdb" ,lmdb)
7596ddf3 302 ("docbook-xsl" ,docbook-xsl)
303 ("notmuch" ,notmuch)))
304 (native-inputs
305 `(("autoconf" ,autoconf)
306 ("automake" ,automake)
aa20b004 307 ("gettext-minimal" ,gettext-minimal)
7596ddf3 308 ("pkg-config" ,pkg-config)))
309 (arguments
310 `(#:configure-flags
9b134319 311 (list "--enable-gpgme"
7596ddf3 312
313 ;; database, implies header caching
91c87241 314 "--without-tokyocabinet"
7596ddf3 315 "--without-qdbm"
316 "--without-bdb"
5c95465e 317 "--with-lmdb"
318 (string-append "--with-kyotocabinet="
319 (assoc-ref %build-inputs "kyotocabinet"))
7596ddf3 320 "--with-gdbm"
321
322 "--with-gnutls"
323 "--without-ssl"
324 "--with-sasl"
325
7596ddf3 326 "--enable-smime"
327 "--enable-notmuch"
328 "--with-idn"
329
330 ;; If we do not set this, neomutt wants to check
331 ;; whether the path exists, which it does not
332 ;; in the chroot. The workaround is this.
333 "--with-mailpath=/var/mail"
334
7596ddf3 335 (string-append "--with-curses="
336 (assoc-ref %build-inputs "ncurses")))
337 #:phases
338 (modify-phases %standard-phases
339 (add-after 'unpack 'autoconf
340 (lambda _
341 (zero? (system* "sh" "autoreconf" "-vfi")))))))
342 (home-page "https://www.neomutt.org/")
343 (synopsis "Command-line mail reader based on Mutt")
344 (description
345 "NeoMutt is a command-line mail reader which is based on mutt.
32fc1ec3 346It adds a large amount of new and improved features to mutt.")
347 (license gpl2+)))
7596ddf3 348
681a6588
MW
349(define-public gmime
350 (package
351 (name "gmime")
25dee815 352 (version "2.6.23")
681a6588
MW
353 (source (origin
354 (method url-fetch)
75630043 355 (uri (string-append "mirror://gnome/sources/gmime/"
29a7c98a 356 (version-major+minor version)
681a6588
MW
357 "/gmime-" version ".tar.xz"))
358 (sha256
359 (base32
25dee815 360 "0slzlzcr3h8jikpz5a5amqd0csqh2m40gdk910ws2hnaf5m6hjbi"))))
681a6588
MW
361 (build-system gnu-build-system)
362 (native-inputs
363 `(("pkg-config" ,pkg-config)
364 ("gnupg" ,gnupg))) ; for tests only
365 (inputs `(("glib" ,glib)
366 ("gpgme" ,gpgme)
367 ("zlib" ,zlib)))
368 (arguments
369 `(#:phases
cc955356
EF
370 (modify-phases %standard-phases
371 (add-after
372 'unpack 'patch-paths-in-tests
373 (lambda _
374 ;; The test programs run several programs using 'system' with
ae83dcf6 375 ;; hard-coded paths. Here we patch them all.
376 ;; We use ISO-8859-1 here because test-iconv.c contains
cc955356
EF
377 ;; raw byte sequences in several different encodings.
378 (with-fluids ((%default-port-encoding #f))
379 (substitute* (find-files "tests" "\\.c$")
380 (("(system *\\(\")(/[^ ]*)" all pre prog-path)
381 (let* ((base (basename prog-path))
ae83dcf6 382 (prog (which base)))
cc955356
EF
383 (string-append pre
384 (or prog (error "not found: " base))))))))))))
681a6588
MW
385 (home-page "http://spruce.sourceforge.net/gmime/")
386 (synopsis "MIME message parser and creator library")
387 (description
388 "GMime provides a core library and set of utilities which may be used for
389the creation and parsing of messages using the Multipurpose Internet Mail
390Extension (MIME).")
391 (license (list lgpl2.1+ gpl2+ gpl3+))))
392
a7e59c50
LC
393(define-public bogofilter
394 (package
395 (name "bogofilter")
396 (version "1.2.4")
397 (source (origin
398 (method url-fetch)
399 (uri (string-append "mirror://sourceforge/bogofilter/bogofilter-"
400 version "/bogofilter-"
401 version ".tar.bz2"))
402 (sha256
403 (base32
404 "1d56n2m9inm8gnzm88aa27xl2a7sp7aff3484vmflpqkinjqf0p1"))))
405 (build-system gnu-build-system)
406 (arguments
c55fa42b
EF
407 '(#:phases
408 (modify-phases %standard-phases
409 (add-before 'check 'pre-check
410 (lambda _
411 (substitute* "src/tests/t.frame"
412 (("GREP=/bin/grep")
413 (string-append "GREP=" (which "grep") "\n")))
414 #t)))))
a7e59c50
LC
415 (native-inputs `(("flex" ,flex)))
416 (inputs `(("bdb" ,bdb)))
417 (home-page "http://bogofilter.sourceforge.net/")
418 (synopsis "Mail classifier based on a Bayesian filter")
419 (description
420 "Bogofilter is a mail filter that classifies mail as spam or ham
421 (non-spam) by a statistical analysis of the message's header and
422content (body). The program is able to learn from the user's classifications
423and corrections. It is based on a Bayesian filter.")
424 (license gpl2)))
425
3919a31a
EB
426(define-public offlineimap
427 (package
428 (name "offlineimap")
71b7950e 429 (version "7.1.3")
3919a31a
EB
430 (source (origin
431 (method url-fetch)
432 (uri (string-append "https://github.com/OfflineIMAP/offlineimap/"
433 "archive/v" version ".tar.gz"))
f586c877 434 (file-name (string-append name "-" version ".tar.gz"))
3919a31a
EB
435 (sha256
436 (base32
71b7950e 437 "0iaznh8q3fmia43r0600vrd3w8njis1x65ry9fv3zsyx0ili1z02"))))
3919a31a 438 (build-system python-build-system)
7a6213cb 439 (native-inputs
4b0e6367 440 `(("asciidoc" ,asciidoc)))
a4ea25d3
EF
441 (inputs `(("python2-pysqlite" ,python2-pysqlite)
442 ("python2-six" ,python2-six)))
3919a31a
EB
443 (arguments
444 ;; The setup.py script expects python-2.
445 `(#:python ,python-2
446 ;; Tests require a modifiable IMAP account.
42aa73b3
EF
447 #:tests? #f
448 #:phases
449 (modify-phases %standard-phases
7a6213cb
MB
450 (add-after 'build 'build-documentation
451 (lambda _
452 (substitute* "docs/Makefile"
453 ;; Prevent xmllint and xsltproc from downloading a DTD file.
454 (("a2x -v") "a2x --no-xmllint --xsltproc-opts=--nonet -v"))
455 (zero? (system* "make" "-C" "docs" "man"))))
456 (add-after 'install 'install-documentation
457 (lambda* (#:key outputs #:allow-other-keys)
458 (let* ((out (assoc-ref outputs "out"))
459 (man (string-append out "/share/man")))
460 (install-file "docs/offlineimap.1" (string-append man "/man1"))
461 (install-file "docs/offlineimapui.7" (string-append man "/man7"))
462 #t)))
463 (add-after 'install-documentation 'wrap-binary
464 (lambda* (#:key outputs #:allow-other-keys)
42aa73b3
EF
465 (let* ((out (assoc-ref outputs "out"))
466 (bin (string-append out "/bin/offlineimap")))
467 (wrap-program bin
468 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))))
469 #t))))))
3919a31a 470 (home-page "http://www.offlineimap.org")
31e98ca6 471 (synopsis "Sync emails between two repositories")
3919a31a
EB
472 (description
473 "OfflineImap synchronizes emails between two repositories, so that you
474can read the same mailbox from multiple computers. It supports IMAP as REMOTE
475repository and Maildir/IMAP as LOCAL repository.")
7886e23b 476 (license gpl2+)))
3919a31a 477
3e9750c3
TD
478(define-public emacs-mew
479 (package
480 (name "emacs-mew")
481 (version "6.7")
482 (source (origin
483 (method url-fetch)
484 (uri (string-append "http://mew.org/Release/mew-"
485 version ".tar.gz"))
486 (sha256
487 (base32
488 "03fzky2kz73vgx4cbps2psbbnrgqgkk5q7jwfldisymkzr9iz03y"))))
489 (native-inputs
490 `(("emacs" ,emacs)))
491 (propagated-inputs
492 `(("ruby-sqlite3" ,ruby-sqlite3) ; optional for the database of messages
493 ("ruby" ,ruby))) ; to set GEM_PATH so ruby-sqlite3 is found at runtime
494 (build-system gnu-build-system)
495 (arguments
496 (let ((elisp-dir "/share/emacs/site-lisp/guix.d/mew")
497 (icon-dir "/share/mew"))
498 `(#:modules ((guix build gnu-build-system)
499 (guix build utils)
500 (guix build emacs-utils))
501 #:imported-modules (,@%gnu-build-system-modules
502 (guix build emacs-utils))
503 #:configure-flags
504 (list (string-append "--with-elispdir=" %output ,elisp-dir)
505 (string-append "--with-etcdir=" %output ,icon-dir))
506 #:phases
507 (modify-phases %standard-phases
508 (add-after 'configure 'patch-mew-icon-directory
509 (lambda* (#:key outputs #:allow-other-keys)
510 (emacs-substitute-sexps "mew-key.el"
511 ("(def.* mew-icon-directory"
512 `(progn
513 (add-to-list 'image-load-path 'mew-icon-directory)
514 ,(string-append (assoc-ref outputs "out") ,icon-dir))))
515 #t))
516 (add-after 'install 'generate-autoloads
517 (lambda* (#:key outputs #:allow-other-keys)
518 (emacs-generate-autoloads
519 "mew" (string-append (assoc-ref outputs "out") ,elisp-dir))
520 #t)))
521 #:tests? #f)))
522 (home-page "http://www.mew.org")
523 (synopsis "Emacs e-mail client")
524 (description "Mew (Messaging in the Emacs World) is a user interface
525for text messages, multimedia messages (MIME), news articles and
526security functionality including PGP, S/MIME, SSH, and SSL.")
527 (license bsd-3)))
528
d2938d59
EB
529(define-public mu
530 (package
531 (name "mu")
e7b9da24 532 (version "0.9.18")
d2938d59
EB
533 (source (origin
534 (method url-fetch)
e7b9da24
RW
535 (uri (string-append "https://github.com/djcb/mu/releases/"
536 "download/" version "/mu-"
d2938d59
EB
537 version ".tar.gz"))
538 (sha256
539 (base32
e7b9da24 540 "02g82zvxfgn17wzy846bfxj0izjj7yklhwdnhwxy1y2kin4fqnb5"))))
d2938d59
EB
541 (build-system gnu-build-system)
542 (native-inputs
543 `(("pkg-config" ,pkg-config)
9fd571a2 544 ("glib" ,glib "bin") ; for gtester
e62e975b 545 ("emacs" ,emacs-minimal)))
d2938d59
EB
546 ;; TODO: Add webkit and gtk to build the mug GUI.
547 (inputs
548 `(("xapian" ,xapian)
d2938d59
EB
549 ("guile" ,guile-2.0)
550 ("glib" ,glib)
551 ("gmime" ,gmime)
552 ("tzdata" ,tzdata))) ;for mu/test/test-mu-query.c
553 (arguments
704f2196
AK
554 `(#:modules ((guix build gnu-build-system)
555 (guix build utils)
556 (guix build emacs-utils))
557 #:imported-modules (,@%gnu-build-system-modules
558 (guix build emacs-utils))
559 #:phases
99404fff 560 (modify-phases %standard-phases
e62e975b 561 (add-after 'unpack 'patch-configure
789bda83
AK
562 ;; By default, elisp code goes to "share/emacs/site-lisp/mu4e",
563 ;; so our Emacs package can't find it. Setting "--with-lispdir"
564 ;; configure flag doesn't help because "mu4e" will be added to
565 ;; the lispdir anyway, so we have to modify "configure.ac".
566 (lambda _
e62e975b
RW
567 (substitute* "configure"
568 (("^ +lispdir=\"\\$\\{lispdir\\}/mu4e/\".*") ""))
789bda83 569 #t))
99404fff
AK
570 (add-before 'check 'check-tz-setup
571 (lambda* (#:key inputs #:allow-other-keys)
572 ;; For mu/test/test-mu-query.c
573 (setenv "TZDIR"
574 (string-append (assoc-ref inputs "tzdata")
575 "/share/zoneinfo"))
704f2196
AK
576 #t))
577 (add-after 'install 'install-emacs-autoloads
578 (lambda* (#:key outputs #:allow-other-keys)
579 (emacs-generate-autoloads
580 "mu4e"
581 (string-append (assoc-ref outputs "out")
582 "/share/emacs/site-lisp"))
99404fff 583 #t)))))
d2938d59
EB
584 (home-page "http://www.djcbsoftware.nl/code/mu/")
585 (synopsis "Quickly find emails")
586 (description
587 "Mu is a tool for dealing with e-mail messages stored in the
588Maildir-format. Mu's purpose in life is to help you to quickly find the
589messages you need; in addition, it allows you to view messages, extract
590attachments, create new maildirs, and so on.")
591 (license gpl3+)))
592
a2cb16b0
TS
593(define-public alot
594 (package
595 (name "alot")
3f81ca32 596 (version "0.5.1")
a2cb16b0
TS
597 (source (origin
598 (method url-fetch)
1b94f182
TS
599 ;; package author intends on distributing via github rather
600 ;; than pypi:
601 ;; https://github.com/pazz/alot/issues/877#issuecomment-230173331
a2cb16b0
TS
602 (uri (string-append "https://github.com/pazz/alot/archive/"
603 version ".tar.gz"))
604 (file-name (string-append "alot-" version ".tar.gz"))
605 (sha256
606 (base32
3f81ca32 607 "0wax30hjzmkqfml7hig1dqw1v1y63yc0cgbzl96x58b9h2ggqx3a"))))
a2cb16b0
TS
608 (build-system python-build-system)
609 (arguments
3f81ca32 610 `(;; python 3 is currently unsupported, more info:
fe3b8862 611 ;; https://github.com/pazz/alot/blob/master/docs/source/faq.rst
a2cb16b0 612 #:python ,python-2))
3f81ca32
TS
613 (native-inputs
614 `(("python2-mock" ,python2-mock)))
a2cb16b0
TS
615 (inputs
616 `(("python2-magic" ,python2-magic)
617 ("python2-configobj" ,python2-configobj)
618 ("python2-twisted" ,python2-twisted)
619 ("python2-urwid" ,python2-urwid)
620 ("python2-urwidtrees" ,python2-urwidtrees)
621 ("python2-pygpgme" ,python2-pygpgme)
622 ("python2-notmuch" ,python2-notmuch)))
623 (home-page "https://github.com/pazz/alot")
624 (synopsis "Commandline MUA using notmuch")
625 (description
626 "Alot is an experimental terminal mail user agent (MUA) based on
627@code{notmuch} mail. It is written in Python using the @code{urwid} toolkit.")
628 (license gpl3+)))
629
0350a8bb
HG
630(define-public notifymuch
631 (let
632 ((commit "9d4aaf54599282ce80643b38195ff501120807f0")
633 (revision "1"))
634 (package
635 (name "notifymuch")
636 (version (string-append "0.1-" revision "." (string-take commit 7)))
637 (source
638 (origin
639 (method git-fetch)
640 (uri (git-reference
641 (url "https://github.com/kspi/notifymuch.git")
642 (commit commit)))
643 (sha256
644 (base32
645 "1lssr7iv43mp5v6nzrfbqlfzx8jcc7m636wlfyhhnd8ydd39n6k4"))
646 (file-name (string-append name "-" version "-checkout"))))
647 (build-system python-build-system)
648 (inputs
649 `(("python-notmuch" ,python-notmuch)
650 ("python-pygobject" ,python-pygobject)
651 ("gobject-introspection" ,gobject-introspection)
652 ("libnotify" ,libnotify)
653 ("gtk+" ,gtk+)))
654 (arguments
655 `(#:phases
656 (modify-phases %standard-phases
657 (add-after 'install 'wrap-binary
658 (lambda* (#:key outputs #:allow-other-keys)
659 (let* ((out (assoc-ref outputs "out"))
660 (bin (string-append out "/bin/notifymuch")))
661 (wrap-program bin
662 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
663 `("GI_TYPELIB_PATH" ":" prefix
664 (,(getenv "GI_TYPELIB_PATH")
665 ,(string-append out "/lib/girepository-1.0")))))
666 #t)))))
667 (home-page "https://github.com/kspi/notifymuch")
668 (synopsis "Displays notifications for changes in the notmuch email database")
669 (description "notifymuch displays desktop notifications for messages in
670the notmuch database. The notifications are sent using libnotify to a
671notification daemon. The query to find messages to send a notification about
672is configurable, and a notification for the same message will not be send
673within a configurable period (defaults to 48 hours). To use notifymuch, run
674@command{notifymuch} after new mail is indexed, this can be automated by
675invoking @command{notifymuch} from the post-new hook.")
676 (license gpl3))))
677
1bd3f849
DT
678(define-public notmuch
679 (package
680 (name "notmuch")
493f2cbf 681 (version "0.25.1")
1bd3f849
DT
682 (source (origin
683 (method url-fetch)
866fade9 684 (uri (string-append "https://notmuchmail.org/releases/notmuch-"
1bd3f849
DT
685 version ".tar.gz"))
686 (sha256
687 (base32
493f2cbf 688 "0c98hzwc60nb6kd15y0fl2ji3yfmr9k6v8ps0h3ihr3vkgn0kgxl"))))
1bd3f849
DT
689 (build-system gnu-build-system)
690 (arguments
6cf27c89 691 '(#:make-flags (list "V=1") ; Verbose test output.
eb537f57 692 #:phases (modify-phases %standard-phases
6cf27c89
MB
693 (add-after 'unpack 'patch-notmuch-lib.el
694 (lambda _
695 (substitute* "emacs/notmuch-lib.el"
696 (("/bin/sh") (which "sh")))
697 #t))
eb537f57
DT
698 (replace 'configure
699 (lambda* (#:key outputs #:allow-other-keys)
700 (setenv "CC" "gcc")
701 (setenv "CONFIG_SHELL" (which "sh"))
ee886454 702
eb537f57
DT
703 (let ((out (assoc-ref outputs "out")))
704 (zero? (system* "./configure"
6cf27c89
MB
705 (string-append "--prefix=" out))))))
706 (add-before 'check 'prepare-test-environment
707 (lambda _
708 (setenv "TEST_CC" "gcc")
709 ;; Patch various inline shell invocations.
710 (substitute* (find-files "test" "\\.sh$")
711 (("/bin/sh") (which "sh")))
712 #t)))))
1bd3f849 713 (native-inputs
2c5b91dc 714 `(("bash-completion" ,bash-completion)
6cf27c89 715 ("emacs" ,emacs-no-x) ; Minimal lacks libxml, needed for some tests.
2c5b91dc 716 ("pkg-config" ,pkg-config)
ee886454 717 ("python" ,python-2)
eb537f57 718 ("python-docutils" ,python2-docutils)
6cf27c89
MB
719 ("python-sphinx" ,python2-sphinx)
720
721 ;; The following are required for tests only.
722 ("which" ,which)
723 ("dtach" ,dtach)
724 ("gnupg" ,gnupg)
725 ("man" ,man-db)
726 ("perl" ,perl)))
1bd3f849 727 (inputs
2c5b91dc 728 `(("glib" ,glib)
1bd3f849
DT
729 ("gmime" ,gmime)
730 ("talloc" ,talloc)
731 ("xapian" ,xapian)
732 ("zlib" ,zlib)))
540d6cc7 733 (home-page "https://notmuchmail.org/")
1bd3f849
DT
734 (synopsis "Thread-based email index, search, and tagging")
735 (description
736 "Notmuch is a command-line based program for indexing, searching, read-
737ing, and tagging large collections of email messages.")
738 (license gpl3+)))
739
8a75c589 740(define-public notmuch-addrlookup-c
a5d6b0a3
TS
741 ;; This commit includes a compatibility fix for notmuch-0.25, and is not
742 ;; currently part of any release. Please update this package when
743 ;; notmuch-addrlookup-c-9 is released.
744 (let ((commit "88f156d04990a71c6ad6fc2757b537b44e3c4d00")
745 (revision "1")) ;Guix package revision
746 (package
747 (name "notmuch-addrlookup-c")
748 (version (string-append "8-" revision "."
749 (string-take commit 7)))
750 (source (origin
751 (method git-fetch)
752 (uri (git-reference
753 (url "https://github.com/aperezdc/notmuch-addrlookup-c.git")
754 (commit commit)))
755 (file-name (string-append name "-" version "-checkout"))
756 (sha256
757 (base32
758 "0v0wzs7qzy4n1hbql8s10qrwgalcxdzbxf8pj6cii1pv2jwmkxbm"))))
759 (build-system gnu-build-system)
760 (arguments
761 '(#:tests? #f ; no tests
762 #:make-flags (list "CC=gcc"
763 (string-append "PREFIX="
764 (assoc-ref %outputs "out")))
765 #:phases (modify-phases %standard-phases
766 (delete 'configure)
767 ;; Remove vim code completion config, it's not needed to
768 ;; build (or be patched).
769 (add-before 'patch-source-shebangs 'delete-ycm-file
770 (lambda _ (delete-file ".ycm_extra_conf.py")))
771 (replace 'install
772 (lambda* (#:key outputs #:allow-other-keys)
773 (let ((bin (string-append
774 (assoc-ref outputs "out") "/bin")))
775 (install-file "notmuch-addrlookup" bin)))))))
776 (native-inputs
777 `(("pkg-config" ,pkg-config)))
778 (inputs
779 `(("glib" ,glib)
780 ("notmuch" ,notmuch)))
781 (home-page "https://github.com/aperezdc/notmuch-addrlookup-c")
782 (synopsis "Address lookup tool for Notmuch")
783 (description "This is an address lookup tool using a Notmuch database,
8a75c589 784useful for email address completion.")
a5d6b0a3 785 (license license:expat))))
8a75c589 786
4b6909bc
TS
787(define-public python-notmuch
788 (package
789 (name "python-notmuch")
540d6cc7 790 (version (package-version notmuch))
4b6909bc
TS
791 ;; Notmuch python bindings are now unavailable on pypi. The
792 ;; bindings are distributed via the notmuch release tarball.
793 (source (package-source notmuch))
794 (build-system python-build-system)
795 (inputs `(("notmuch" ,notmuch)))
796 (arguments
797 `(#:tests? #f ; no "test" target
798 #:phases
799 (modify-phases %standard-phases
800 ;; This python package lives in a subdirectory of the notmuch source
801 ;; tree, so chdir into it before building.
802 (add-after 'unpack 'enter-python-dir
803 (lambda _ (chdir "bindings/python") #t))
804 ;; Make sure the correct notmuch shared library gets loaded.
805 (add-before 'build 'set-libnotmuch-file-name
806 (lambda* (#:key inputs #:allow-other-keys)
807 (let ((notmuch (assoc-ref inputs "notmuch")))
808 (substitute* "notmuch/globals.py"
809 (("libnotmuch\\.so\\.")
810 (string-append notmuch "/lib/libnotmuch.so.")))
811 #t))))))
540d6cc7 812 (home-page (package-home-page notmuch))
4b6909bc
TS
813 (synopsis "Python bindings of the Notmuch mail indexing library")
814 (description
815 "This package provides Python bindings to use the Notmuch mail indexing
816and search library.")
817 (license gpl3+)))
818
1c74da21 819(define-public python2-notmuch
caa6fc89 820 (package-with-python2 python-notmuch))
1c74da21 821
98e9e22f
SB
822(define-public getmail
823 (package
824 (name "getmail")
06ebba15 825 (version "5.4")
98e9e22f
SB
826 (source
827 (origin
828 (method url-fetch)
829 (uri (string-append "http://pyropus.ca/software/getmail/old-versions/"
830 name "-" version ".tar.gz"))
831 (sha256
832 (base32
06ebba15 833 "1iwss9z94p165gxr2yw7s9q12a0bn71fcdbikzkykr5s7xxnz2ds"))))
98e9e22f
SB
834 (build-system python-build-system)
835 (arguments
836 `(#:tests? #f ; no tests
837 #:python ,python-2))
838 (home-page "http://pyropus.ca/software/getmail/")
839 (synopsis "Mail retriever")
840 (description
841 "A flexible, extensible mail retrieval system with support for
842POP3, IMAP4, SSL variants of both, maildirs, mboxrd files, external MDAs,
843arbitrary message filtering, single-user and domain-mailboxes, and many other
844useful features.")
845
846 ;; License is specified in file '__init__.py'.
847 (license gpl2)))
848
f58f767b
JL
849(define-public libetpan
850 (package
851 (name "libetpan")
a979eea9 852 (version "1.8")
f58f767b
JL
853 (source (origin
854 (method url-fetch)
855 (uri (string-append "https://github.com/dinhviethoa/" name
856 "/archive/" version ".tar.gz"))
f586c877 857 (file-name (string-append name "-" version ".tar.gz"))
f58f767b 858 (sha256
a979eea9 859 (base32 "1sxnaglp5hb0z78sgnfzva4x8m4flqhicvm1dz0krkxdmfsafrsf"))))
f58f767b
JL
860 (build-system gnu-build-system)
861 (native-inputs `(("autoconf" ,(autoconf-wrapper))
862 ("automake" ,automake)
3246cc91 863 ("libtool" ,libtool)
f58f767b
JL
864 ("pkg-config" ,pkg-config)))
865 (propagated-inputs
866 ;; 'libetpan-config --libs' returns '-lssl -lcrypto -lsasl2', so these
867 ;; libraries need to be propagated.
868 `(("cyrus-sasl" ,cyrus-sasl)
869 ("openssl" ,openssl)))
870 (inputs
871 `(("curl" ,curl)
c1748912
EF
872 ("expat" ,expat)
873 ("zlib" ,zlib)))
f58f767b 874 (arguments
602460ea
EF
875 '(#:phases
876 (modify-phases %standard-phases
877 (add-after 'unpack 'autogen
878 (lambda _
879 (setenv "NOCONFIGURE" "true")
880 (zero? (system* "sh" "autogen.sh")))))
f58f767b
JL
881 #:configure-flags
882 '("--disable-static" "--disable-db")))
883 (home-page "http://www.etpan.org/libetpan.html")
884 (synopsis "Portable middleware for email access")
885 (description
886 "The purpose of this mail library is to provide a portable, efficient
887framework for different kinds of mail access: IMAP, SMTP, POP and NNTP. It
888provides an API for C language. It's the low-level API used by MailCore and
889MailCore 2.")
a979eea9 890 (license bsd-3)))
f58f767b 891
ee6e780b
DM
892(define-public compface
893 (package
894 (name "compface")
895 (version "1.5.2")
896 (source (origin
897 (method url-fetch)
898 (uri (string-append "https://ftp.heanet.ie/mirrors/"
899 "ftp.xemacs.org/aux/"
900 name "-" version ".tar.gz"))
901 (sha256
902 (base32
903 "09b89wg63hg502hsz592cd2h87wdprb1dq1k1y07n89hym2q56d6"))))
904 (build-system gnu-build-system)
905 (arguments
906 `(#:tests? #f))
907 (synopsis "Portrait image compressor")
908 (description "This packages takes your 48x48x1 portrait image and
909compresses it.")
910 (home-page "http://www.cs.indiana.edu/pub/faces/")
911 (license (x11-style "file://README"))))
912
e8435c4d
JL
913(define-public claws-mail
914 (package
915 (name "claws-mail")
cad88b85 916 (version "3.15.1")
e8435c4d
JL
917 (source (origin
918 (method url-fetch)
919 (uri (string-append
762b1971 920 "http://www.claws-mail.org/releases/" name "-" version
6ea4b094 921 ".tar.xz"))
e8435c4d 922 (sha256
ec92806a 923 (base32
cad88b85 924 "0hlm2jipyr4z6izlrpvabpz4ivh49i13avnm848kr1nv68pkq2cd"))))
e8435c4d
JL
925 (build-system gnu-build-system)
926 (native-inputs `(("pkg-config" ,pkg-config)))
927 (inputs `(("bogofilter" ,bogofilter)
928 ("curl" ,curl)
929 ("dbus-glib" ,dbus-glib)
e8435c4d
JL
930 ("enchant" ,enchant)
931 ("expat" ,expat)
932 ("ghostscript" ,ghostscript)
933 ("hicolor-icon-theme" ,hicolor-icon-theme)
934 ("gnupg" ,gnupg)
935 ("gnutls" ,gnutls)
936 ("gpgme" ,gpgme)
937 ("gtk" ,gtk+-2)
938 ("libarchive" ,libarchive)
939 ("libcanberra" ,libcanberra)
940 ("libetpan" ,libetpan)
fc9a93cb 941 ("libical" ,libical)
e8435c4d
JL
942 ("libnotify" ,libnotify)
943 ("libsm" ,libsm)
944 ("libxml2" ,libxml2)
945 ("perl" ,perl)
f6292baf
EB
946 ("python-2" ,python-2)
947 ("mime-info" ,shared-mime-info)))
e8435c4d
JL
948 (arguments
949 '(#:configure-flags
f6292baf 950 '("--enable-gnutls" "--enable-pgpmime-plugin" "--enable-enchant")
ff4192ff
DM
951 #:make-flags
952 ;; Disable updating icon cache since it's done by the profile hook.
953 ;; Conflict with other packages in the profile would be inevitable
954 ;; otherwise.
955 '("gtk_update_icon_cache=true")
f6292baf
EB
956 #:phases (modify-phases %standard-phases
957 (add-before 'build 'patch-mime
958 (lambda* (#:key inputs #:allow-other-keys)
959 (substitute* "src/procmime.c"
960 (("/usr/share/mime/globs")
961 (string-append (assoc-ref inputs "mime-info")
962 "/share/mime/globs"))))))))
e8435c4d
JL
963 (synopsis "GTK-based Email client")
964 (description
965 "Claws-Mail is an email client (and news reader) based on GTK+. The
966appearance and interface are designed to be familiar to new users coming from
967other popular email clients, as well as experienced users. Almost all commands
968are accessible with the keyboard. Plus, Claws-Mail is extensible via addons
969which can add many functionalities to the base client.")
970 (home-page "http://www.claws-mail.org/")
971 (license gpl3+))) ; most files are actually public domain or x11
972
d6e941bc
973(define-public msmtp
974 (package
975 (name "msmtp")
899358d1 976 (version "1.6.6")
d6e941bc
977 (source
978 (origin
979 (method url-fetch)
d23d1ddf
LF
980 (uri (string-append "mirror://sourceforge/msmtp/msmtp/" version
981 "/msmtp-" version ".tar.xz"))
982 (sha256
983 (base32
899358d1 984 "0ppvww0sb09bnsrpqnvlrn8vx231r24xn2iiwpy020mxc8gxn5fs"))))
d6e941bc
985 (build-system gnu-build-system)
986 (inputs
987 `(("libidn" ,libidn)
72d8b5ba 988 ("libsecret" ,libsecret)
d6e941bc
989 ("gnutls" ,gnutls)
990 ("zlib" ,zlib)
991 ("gsasl" ,gsasl)))
992 (native-inputs
993 `(("pkg-config" ,pkg-config)))
994 (home-page "http://msmtp.sourceforge.net/")
995 (arguments
996 `(#:configure-flags (list "--with-libgsasl"
997 "--with-libidn"
823e2ed4
LF
998 "--with-tls=gnutls")
999 #:phases
1000 (modify-phases %standard-phases
1001 (add-after 'install 'install-msmtpq
1002 (lambda* (#:key outputs #:allow-other-keys)
1003 (let* ((out (assoc-ref outputs "out"))
1004 (bin (string-append out "/bin"))
1005 (doc (string-append out "/share/doc/msmtp"))
1006 (msmtpq (string-append "scripts/msmtpq")))
1007 (install-file (string-append msmtpq "/msmtpq") bin)
1008 (install-file (string-append msmtpq "/msmtp-queue") bin)
1009 (install-file (string-append msmtpq "/README.msmtpq") doc)
1010 #t))))))
d6e941bc
1011 (synopsis
1012 "Simple and easy to use SMTP client with decent sendmail compatibility")
1013 (description
1014 "msmtp is an SMTP client. In the default mode, it transmits a mail to
1015an SMTP server (for example at a free mail provider) which takes care of further
1016delivery.")
1017 (license gpl3+)))
1018
66cc3ab2
TUBK
1019(define-public exim
1020 (package
1021 (name "exim")
53c2dc31 1022 (version "4.89")
66cc3ab2
TUBK
1023 (source
1024 (origin
1025 (method url-fetch)
fc6fdc05
LF
1026 (uri (list (string-append "ftp://ftp.exim.org/pub/exim/exim4/exim-"
1027 version ".tar.bz2")
1028 (string-append "ftp://ftp.exim.org/pub/exim/exim4/old/exim-"
1029 version ".tar.bz2")))
4dd8d280 1030 (patches (search-patches "exim-CVE-2017-1000369.patch"))
66cc3ab2 1031 (sha256
513f8ab4 1032 (base32
53c2dc31 1033 "1c0syp7yxngmq7y8vqsrvijinzin5m941vn0ljihdfld7kh2wbwi"))))
66cc3ab2
TUBK
1034 (build-system gnu-build-system)
1035 (inputs
1036 `(("bdb" ,bdb)
1037 ("gnutls" ,gnutls)
1038 ("gzip" ,gzip)
1039 ("bzip2" ,bzip2)
1040 ("xz" ,xz)
66cc3ab2
TUBK
1041 ("perl" ,perl)
1042 ("libxt" ,libxt)
1043 ("libxaw" ,libxaw)))
1044 (native-inputs
42773138
EF
1045 `(("pcre" ,pcre "bin")
1046 ("perl" ,perl)))
66cc3ab2
TUBK
1047 (arguments
1048 '(#:phases
dc1d3cde
KK
1049 (modify-phases %standard-phases
1050 (replace 'configure
1051 ;; We'd use #:make-flags but the top-level Makefile calls others
1052 ;; recursively, so just set all variables this way.
1053 (lambda* (#:key outputs inputs #:allow-other-keys)
1054 (substitute* '("Makefile" "OS/Makefile-Default")
1055 (("(RM_COMMAND=).*" all var)
1056 (string-append var "rm\n")))
1057 (copy-file "src/EDITME" "Local/Makefile")
1058 (copy-file "exim_monitor/EDITME" "Local/eximon.conf")
1059 (let ((out (assoc-ref outputs "out"))
1060 (gzip (assoc-ref inputs "gzip"))
1061 (bzip2 (assoc-ref inputs "bzip2"))
1062 (xz (assoc-ref inputs "xz")))
1063 (substitute* '("Local/Makefile")
1064 (("(BIN_DIRECTORY=).*" all var)
1065 (string-append var out "/bin\n"))
1066 (("(CONFIGURE_FILE=).*" all var)
1067 (string-append var out "/etc/exim.conf\n"))
1068 (("(EXIM_USER=).*" all var)
1069 (string-append var "nobody\n"))
1070 (("(FIXED_NEVER_USERS=).*" all var)
1071 (string-append var "\n")) ;XXX no root in build environment
1072 (("(COMPRESS_COMMAND=).*" all var)
1073 (string-append var gzip "/bin/gzip\n"))
1074 (("(ZCAT_COMMAND=).*" all var)
1075 (string-append var gzip "/bin/zcat\n")))
1076 ;; This file has hardcoded names for tools despite the zcat
1077 ;; configuration above.
1078 (substitute* '("src/exigrep.src")
1079 (("'zcat'") (string-append "'" gzip "/bin/zcat'"))
1080 (("'bzcat'") (string-append "'" bzip2 "/bin/bzcat'"))
1081 (("'xzcat'") (string-append "'" xz "/bin/xzcat'"))
1082 (("'lzma'") (string-append "'" xz "/bin/lzma'"))))
1083 #t))
1084 (add-before 'build 'fix-sh-paths
1085 (lambda* (#:key inputs #:allow-other-keys)
1086 (substitute* '("scripts/lookups-Makefile" "scripts/reversion")
1087 (("SHELL=/bin/sh") "SHELL=sh"))
1088 (substitute* '("scripts/Configure-config.h")
1089 (("\\| /bin/sh") "| sh"))
1090 (let ((bash (assoc-ref inputs "bash")))
1091 (substitute* '("scripts/Configure-eximon")
1092 (("#!/bin/sh") (string-append "#!" bash "/bin/sh"))))
1093 #t)))
66cc3ab2
TUBK
1094 #:make-flags '("INSTALL_ARG=-no_chown")
1095 ;; No 'check' target.
1096 #:tests? #f))
1097 (home-page "http://www.exim.org/")
1098 (synopsis
1099 "Message Transfer Agent (MTA) developed at the University of Cambridge")
1100 (description
1101 "Exim is a message transfer agent (MTA) developed at the University of
1102Cambridge for use on Unix systems connected to the Internet. In style it is
1103similar to Smail 3, but its facilities are more general. There is a great
1104deal of flexibility in the way mail can be routed, and there are extensive
1105facilities for checking incoming mail.")
1106 (license gpl2+)))
1107
7d2b784b
MW
1108(define-public dovecot
1109 (package
1110 (name "dovecot")
5a740d06 1111 (version "2.2.33.2")
7d2b784b
MW
1112 (source
1113 (origin
1114 (method url-fetch)
c8608faf 1115 (uri (string-append "https://www.dovecot.org/releases/"
7d2b784b
MW
1116 (version-major+minor version) "/"
1117 name "-" version ".tar.gz"))
4d6ce834 1118 (sha256 (base32
5a740d06 1119 "117f9i62liz2pm96zi2lpldzlj2knzj7g410zhifwmlsc1w3n7py"))))
7d2b784b
MW
1120 (build-system gnu-build-system)
1121 (native-inputs
1122 `(("pkg-config" ,pkg-config)))
1123 (inputs
1124 `(("openssl" ,openssl)
1125 ("zlib" ,zlib)
1126 ("bzip2" ,bzip2)
fd5c70f8
AW
1127 ("sqlite" ,sqlite)
1128 ("linux-pam" ,linux-pam)))
7d2b784b
MW
1129 (arguments
1130 `(#:configure-flags '("--sysconfdir=/etc"
1131 "--localstatedir=/var")
1132 #:phases (modify-phases %standard-phases
1133 (add-before
1134 'configure 'pre-configure
1135 (lambda _
1136 ;; Simple hack to avoid installing in /etc
1137 (substitute* '("doc/Makefile.in"
1138 "doc/example-config/Makefile.in")
1139 (("pkgsysconfdir = .*")
1140 "pkgsysconfdir = /tmp/etc"))
072f1e22
EF
1141 #t))
1142 (add-after
1143 'unpack 'patch-other-shebangs
1144 (lambda _
1145 (substitute*
1146 "src/lib-program-client/test-program-client-local.c"
1147 (("/bin/echo") (which "echo"))
1148 (("/bin/cat") (which "cat"))
1149 (("/bin/false") (which "false")))
7d2b784b 1150 #t)))))
c8608faf 1151 (home-page "https://www.dovecot.org")
7d2b784b
MW
1152 (synopsis "Secure POP3/IMAP server")
1153 (description
1154 "Dovecot is a mail server whose major goals are security and reliability.
1155It supports mbox/Maildir and its own dbox/mdbox formats.")
1156 ;; Most source files are covered by either lgpl2.1 or expat. The SHA code
1157 ;; is covered by a variant of BSD-3, and UnicodeData.txt is covered by the
1158 ;; Unicode, Inc. License Agreement for Data Files and Software.
1159 (license (list lgpl2.1 license:expat (non-copyleft "file://COPYING")))))
1160
944a5cdd 1161(define-public dovecot-trees
cf47a8a5 1162 (package
1163 (name "dovecot-trees")
1164 (version "2.1.0")
1165 (source
1166 (origin
1167 (method url-fetch)
1168 (uri (string-append "https://0xacab.org/riseuplabs/trees/repository/"
1169 "archive.tar.gz?ref=v" version))
1170 (file-name (string-append name "-" version ".tar.gz"))
1171 (sha256
1172 (base32
1173 "0rkk10b1bsjz979sc864vpgcdchy7yxwmyv4ik50lar1h6awdnrf"))))
1174 (build-system gnu-build-system)
1175 (native-inputs
1176 `(("automake" ,automake)
1177 ("autoconf" ,autoconf)
1178 ("libtool" ,libtool)
1179 ("dovecot" ,dovecot)
1180 ("pkg-config" ,pkg-config)))
1181 (inputs
1182 `(("libsodium" ,libsodium)))
1183 (arguments
1184 `(#:tests? #f ;No tests exist.
1185 #:configure-flags (list (string-append "--with-dovecot="
1186 (assoc-ref %build-inputs "dovecot")
1187 "/lib/dovecot"))
1188 #:phases
1189 (modify-phases %standard-phases
d10092b8 1190 (add-after 'unpack 'autogen
cf47a8a5 1191 (lambda _
d10092b8 1192 (zero? (system* "sh" "autogen.sh")))))))
cf47a8a5 1193 (home-page "https://0xacab.org/riseuplabs/trees")
1194 (synopsis "NaCL-based Dovecot email storage encryption plugin")
1195 (description
1196 "Technology for Resting Email Encrypted Storage (TREES) is a NaCL-based
944a5cdd 1197Dovecot encryption plugin. This plugin adds individually encrypted mail
1198storage to the Dovecot IMAP server. It is inspired by Posteo's scrambler
1199which uses OpenSSL and RSA keypairs. TREES works in a similar way, but uses
1200the Sodium crypto library (based on NaCL).
1201
1202How it works:
1203@enumerate
1204@item On IMAP log in, the user's cleartext password is passed to the plugin.
1205@item The plugin creates an argon2 digest from the password.
1206@item This password digest is used as a symmetric secret to decrypt a libsodium secretbox.
1207@item Inside the secretbox is stored a Curve25519 private key.
1208@item The Curve25519 private key is used to decrypt each individual message,
1209using lidsodium sealed boxes.
1210@item New mail is encrypted as it arrives using the Curve25519 public key.
1211@end enumerate\n")
cf47a8a5 1212 (license agpl3)))
944a5cdd 1213
a4651f64 1214(define-public dovecot-libsodium-plugin
1215 (let ((commit "044de73c01c35385df0105f6b387bec5d5317ce7")
1216 (revision "1"))
1217 (package
1218 (name "dovecot-libsodium-plugin")
1219 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
1220 (source
1221 (origin
1222 (method git-fetch)
1223 (uri (git-reference
1224 (url "https://github.com/LuckyFellow/dovecot-libsodium-plugin")
1225 (commit commit)))
1226 (file-name (string-append name "-" version "-checkout"))
1227 (sha256
1228 (base32
1229 "13h07l7xy713zchnj2p9fhvq7fdl4zy1ai94li3ygkqjjj8hrgas"))))
1230 (build-system gnu-build-system)
1231 (native-inputs
1232 `(("automake" ,automake)
1233 ("autoconf" ,autoconf)
1234 ("libtool" ,libtool)
1235 ("dovecot" ,dovecot)
1236 ("pkg-config" ,pkg-config)))
1237 (inputs
1238 `(("libsodium" ,libsodium)))
1239 (arguments
1240 `(#:tests? #f ;No tests exist.
1241 #:configure-flags (list (string-append "--with-dovecot="
1242 (assoc-ref %build-inputs "dovecot")
1243 "/lib/dovecot"))
1244 #:phases
1245 (modify-phases %standard-phases
d10092b8 1246 (add-after 'unpack 'autogen
a4651f64 1247 (lambda _
d10092b8 1248 (zero? (system* "sh" "autogen.sh")))))))
a4651f64 1249 (home-page "https://github.com/LuckyFellow/dovecot-libsodium-plugin")
1250 (synopsis "Libsodium password hashing schemes plugin for Dovecot")
1251 (description
1252 "@code{dovecot-libsodium-plugin} provides libsodium password
1253hashing schemes plugin for @code{Dovecot}.")
1254 (license gpl3+))))
1255
81ce19f4
1256(define-public isync
1257 (package
1258 (name "isync")
49490231 1259 (version "1.3.0")
81ce19f4
1260 (source
1261 (origin
1262 (method url-fetch)
1263 (uri (string-append "mirror://sourceforge/isync/isync/"
1264 version "/isync-" version ".tar.gz"))
1265 (sha256 (base32
49490231 1266 "173wd7x8y5sp94slzwlnb7zhgs32r57zl9xspl2rf4g3fqwmhpwd"))))
81ce19f4 1267 (build-system gnu-build-system)
49490231
LF
1268 (native-inputs
1269 `(("perl" ,perl)))
81ce19f4
1270 (inputs
1271 `(("bdb" ,bdb)
1272 ("openssl" ,openssl)))
1273 (home-page "http://isync.sourceforge.net/")
1274 (synopsis "Mailbox synchronization program")
1275 (description
1276 "isync/mbsync is command line tool for two-way synchronization of
1277mailboxes. Currently Maildir and IMAP are supported types.")
1278 (license gpl2+)))
1279
26b8de19
EB
1280(define-public perl-email-abstract
1281 (package
1282 (name "perl-email-abstract")
1283 (version "3.008")
1284 (source
1285 (origin
1286 (method url-fetch)
1287 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
1288 "Email-Abstract-" version ".tar.gz"))
1289 (sha256
1290 (base32
1291 "0h42rhvp769wb421cpbbg6v6xjp8iv86mvz70pqgfgf4nsn6jwgw"))))
1292 (build-system perl-build-system)
1293 (propagated-inputs
1294 `(("perl-email-simple" ,perl-email-simple)
a2190ccc 1295 ("perl-module-pluggable" ,perl-module-pluggable)
26b8de19
EB
1296 ("perl-mro-compat" ,perl-mro-compat)))
1297 (home-page "http://search.cpan.org/dist/Email-Abstract")
1298 (synopsis "Interface to mail representations")
1299 (description "Email::Abstract provides module writers with the ability to
1300write simple, representation-independent mail handling code.")
2f3108ad 1301 (license perl-license)))
26b8de19 1302
ebda902f
EB
1303(define-public perl-email-address
1304 (package
1305 (name "perl-email-address")
151bba2b 1306 (version "1.908")
ebda902f
EB
1307 (source
1308 (origin
1309 (method url-fetch)
1310 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
1311 "Email-Address-" version ".tar.gz"))
1312 (sha256
1313 (base32
151bba2b 1314 "0i6ljdvpy279hpbqf6lgv4figr376rb2sh4yphj86xkdzsyn1y75"))))
ebda902f
EB
1315 (build-system perl-build-system)
1316 (home-page "http://search.cpan.org/dist/Email-Address")
1317 (synopsis "Email address parsing and creation")
1318 (description "Email::Address implements a regex-based RFC 2822 parser that
1319locates email addresses in strings and returns a list of Email::Address
1320objects found. Alternatively you may construct objects manually.")
2f3108ad 1321 (license perl-license)))
ebda902f 1322
aa86a3be
EB
1323(define-public perl-email-date-format
1324 (package
1325 (name "perl-email-date-format")
1326 (version "1.005")
1327 (source
1328 (origin
1329 (method url-fetch)
1330 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
1331 "Email-Date-Format-" version ".tar.gz"))
1332 (sha256
1333 (base32
1334 "012ivfwpnbl3wr50f9c6f4azhdlxnm31pdn72528g79v61z6372p"))))
1335 (build-system perl-build-system)
1336 (home-page "http://search.cpan.org/dist/Email-Date-Format")
1337 (synopsis "Produce RFC 2822 date strings")
1338 (description "Email::Date::Format provides a means for generating an RFC
13392822 compliant datetime string.")
2f3108ad 1340 (license perl-license)))
aa86a3be 1341
08bf7095
EB
1342(define-public perl-email-messageid
1343 (package
1344 (name "perl-email-messageid")
1fb37ef0 1345 (version "1.406")
08bf7095
EB
1346 (source
1347 (origin
1348 (method url-fetch)
1349 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
1350 "Email-MessageID-" version ".tar.gz"))
1351 (sha256
1352 (base32
1fb37ef0 1353 "1f22sdnfq169qw1l0lg7y74pmiam7j9v95bggjnf3q4mygdmshpc"))))
08bf7095
EB
1354 (build-system perl-build-system)
1355 (home-page "http://search.cpan.org/dist/Email-MessageID")
1356 (synopsis "Generate world unique message-ids")
1357 (description "Email::MessageID generates recommended message-ids to
1358identify a message uniquely.")
2f3108ad 1359 (license perl-license)))
08bf7095 1360
0a4c49f6
EB
1361(define-public perl-email-mime
1362 (package
1363 (name "perl-email-mime")
e26f2c67 1364 (version "1.940")
0a4c49f6
EB
1365 (source
1366 (origin
1367 (method url-fetch)
1368 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
1369 "Email-MIME-" version ".tar.gz"))
1370 (sha256
1371 (base32
e26f2c67 1372 "0pnxbr16cn5qy96xqhp9zmd94ashc9ivqh10qbgbc3f637a0mfir"))))
0a4c49f6
EB
1373 (build-system perl-build-system)
1374 (propagated-inputs
1375 `(("perl-email-address" ,perl-email-address)
1376 ("perl-email-messageid" ,perl-email-messageid)
1377 ("perl-email-mime-contenttype" ,perl-email-mime-contenttype)
1378 ("perl-email-mime-encodings" ,perl-email-mime-encodings)
1379 ("perl-email-simple" ,perl-email-simple)
1380 ("perl-mime-types" ,perl-mime-types)))
1381 (home-page "http://search.cpan.org/dist/Email-MIME")
1382 (synopsis "MIME message handling")
1383 (description "Email::MIME is an extension of the Email::Simple module, to
1384handle MIME encoded messages. It takes a message as a string, splits it up
1385into its constituent parts, and allows you access to various parts of the
1386message. Headers are decoded from MIME encoding.")
2f3108ad 1387 (license perl-license)))
0a4c49f6 1388
55025bb5
EB
1389(define-public perl-email-mime-contenttype
1390 (package
1391 (name "perl-email-mime-contenttype")
a883ba02 1392 (version "1.018")
55025bb5
EB
1393 (source
1394 (origin
1395 (method url-fetch)
1396 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
1397 "Email-MIME-ContentType-" version ".tar.gz"))
1398 (sha256
1399 (base32
a883ba02 1400 "1y8hpwm7p5a9y2azy0cgvlv2i2d0nj66ajfa0fj51wdq4w9cs23m"))))
55025bb5
EB
1401 (build-system perl-build-system)
1402 (native-inputs
1403 `(("perl-capture-tiny" ,perl-capture-tiny)))
1404 (home-page "http://search.cpan.org/dist/Email-MIME-ContentType")
1405 (synopsis "Parse MIME Content-Type headers")
1406 (description "Email::MIME::ContentType parses a MIME Content-Type
1407header.")
2f3108ad 1408 (license perl-license)))
55025bb5 1409
02e29936
EB
1410(define-public perl-email-mime-encodings
1411 (package
1412 (name "perl-email-mime-encodings")
1413 (version "1.315")
1414 (source
1415 (origin
1416 (method url-fetch)
1417 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
1418 "Email-MIME-Encodings-" version ".tar.gz"))
1419 (sha256
1420 (base32
1421 "0p5b8g9gh35m8fqrpx60g4bp98rvwd02n5b0vm9wh7mk0xah8wac"))))
1422 (build-system perl-build-system)
1423 (native-inputs
1424 `(("perl-capture-tiny" ,perl-capture-tiny)))
1425 (home-page "http://search.cpan.org/dist/Email-MIME-Encodings")
1426 (synopsis "Unified interface to MIME encoding and decoding")
1427 (description "This module wraps MIME::Base64 and MIME::QuotedPrint.")
2f3108ad 1428 (license perl-license)))
02e29936 1429
a24c5420
EB
1430(define-public perl-email-sender
1431 (package
1432 (name "perl-email-sender")
801eb746 1433 (version "1.300031")
a24c5420
EB
1434 (source
1435 (origin
1436 (method url-fetch)
1437 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
1438 "Email-Sender-" version ".tar.gz"))
1439 (sha256
1440 (base32
801eb746 1441 "052g0slw3h2lzn93j71fi47nfawww2aph4jhr3c860ji70lkf4n4"))))
a24c5420
EB
1442 (build-system perl-build-system)
1443 (native-inputs
1444 `(("perl-capture-tiny" ,perl-capture-tiny)))
1445 (propagated-inputs
1446 `(("perl-email-abstract" ,perl-email-abstract)
1447 ("perl-email-address" ,perl-email-address)
1448 ("perl-email-simple" ,perl-email-simple)
1449 ("perl-list-moreutils" ,perl-list-moreutils)
1450 ("perl-module-runtime" ,perl-module-runtime)
1451 ("perl-moo" ,perl-moo)
1452 ("perl-moox-types-mooselike" ,perl-moox-types-mooselike)
1453 ("perl-sub-exporter" ,perl-sub-exporter)
1454 ("perl-throwable" ,perl-throwable)
1455 ("perl-try-tiny" ,perl-try-tiny)))
1456 (home-page "http://search.cpan.org/dist/Email-Sender")
1457 (synopsis "Perl library for sending email")
1458 (description "Email::Sender replaces the old and sometimes problematic
1459Email::Send library.")
2f3108ad 1460 (license perl-license)))
a24c5420 1461
151ef3ed
EB
1462(define-public perl-email-simple
1463 (package
1464 (name "perl-email-simple")
25adc006 1465 (version "2.214")
151ef3ed
EB
1466 (source
1467 (origin
1468 (method url-fetch)
1469 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
1470 "Email-Simple-" version ".tar.gz"))
1471 (sha256
1472 (base32
25adc006 1473 "14kb86hi0m0bqc7kxpm4x5kvfsyj2x86gggbvpxhx9hy8hvjpw5j"))))
151ef3ed
EB
1474 (build-system perl-build-system)
1475 (propagated-inputs
1476 `(("perl-email-date-format" ,perl-email-date-format)))
1477 (home-page "http://search.cpan.org/dist/Email-Simple")
1478 (synopsis "Parsing of RFC 2822 messages")
1479 (description "Email::Simple provides simple parsing of RFC 2822 message
1480format and headers.")
2f3108ad 1481 (license perl-license)))
151ef3ed 1482
f5dceecb
AW
1483(define-public libesmtp
1484 (package
1485 (name "libesmtp")
1486 (version "1.0.6")
1487 (source
1488 (origin
1489 (method url-fetch)
049e02ea
LF
1490 (uri (list (string-append "https://pkgs.fedoraproject.org/repo/pkgs/"
1491 "libesmtp/libesmtp-" version ".tar.bz2/"
1492 "bf3915e627fd8f35524a8fdfeed979c8/libesmtp-"
1493 version ".tar.bz2")
1494 ;; XXX This site is offline, so we fetch Fedora's cached copy
1495 ;; of the source tarball.
1496 (string-append "http://www.stafford.uklinux.net/libesmtp/libesmtp-"
1497 version ".tar.bz2")))
f5dceecb
AW
1498 (sha256
1499 (base32
1500 "02zbniyz7qys1jmx3ghx21kxmns1wc3hmv80gp7ag7yra9f1m9nh"))))
1501 (build-system gnu-build-system)
1502 (propagated-inputs
1503 `(("openssl" ,openssl)))
1504 (home-page "http://www.stafford.uklinux.net/libesmtp/")
1505 (synopsis "Library for sending mail via remote hosts using SMTP")
1506 (description "libESMTP is an SMTP client which manages posting (or
1507submission of) electronic mail via a preconfigured Mail Transport Agent (MTA).
1508It may be used as part of a Mail User Agent (MUA) or other program that must
1509be able to post electronic mail where mail functionality may not be that
1510program's primary purpose.")
1511 (license (list lgpl2.1+ gpl2+))))
1512
f8ae32a2
AW
1513(define-public esmtp
1514 (package
1515 (name "esmtp")
1516 (version "1.2")
1517 (source
1518 (origin
1519 (method git-fetch)
1520 (uri (git-reference
1521 (url "https://github.com/andywingo/esmtp.git")
1522 (commit "01bf9fc")))
1523 (sha256
1524 (base32
1525 "1ay282rrl92h0m0m8z5zzjnwiiagi7c78aq2qvhia5mw7prwfyw2"))
1526 (file-name (string-append name "-" version "-checkout"))))
1527 (arguments
1528 `(#:phases (modify-phases %standard-phases
1529 (add-before
1530 'configure 'autoconf
1531 (lambda _ (zero? (system* "autoreconf" "-vfi")))))))
1532 (build-system gnu-build-system)
1533 (native-inputs
1534 `(("bison" ,bison)
1535 ("flex" ,flex)
1536 ("autoconf" ,autoconf)
1537 ("automake" ,automake)
1538 ("libtool" ,libtool)))
1539 (inputs
718c5dd6 1540 `(("libesmtp" ,libesmtp)))
3b3b60d0 1541 (home-page "https://sourceforge.net/projects/esmtp/")
f8ae32a2
AW
1542 (synopsis "Relay-only mail transfer agent (MTA)")
1543 (description "Esmtp is a simple relay-only mail transfer agent built using
1544libESMTP. It sends e-mail via a remote SMTP server using credentials from the
1545user's @file{$HOME/.esmtprc} configuration file; see the @command{esmtprc} man
1546page for more on configuration. This package also provides minimal
1547compatibility shims for the @command{sendmail}, @command{mailq}, and
1548@command{newaliases} commands.")
1549 (license gpl2+)))
1550
34dd26af
CAW
1551(define-public fdm
1552 (package
1553 (name "fdm")
1554 (version "1.9")
1555 (source (origin
1556 (method url-fetch)
1557 (uri (string-append "https://github.com/nicm/fdm/releases/download/"
1558 version "/fdm-"
1559 version ".tar.gz"))
1560 (file-name (string-append name "-" version ".tar.gz"))
1561 (sha256
1562 (base32 "054rscijahiza5f9qha79rg3siji3bk5mk10f8c2vqx7m4w6qh8n"))))
1563 (build-system gnu-build-system)
1564 (inputs
1565 `(("tdb" ,tdb)
1566 ("openssl" ,openssl)
1567 ("zlib" ,zlib)))
1568 (home-page "https://github.com/nicm/fdm")
1569 (synopsis "Mail Retrieval Agent (MRA) and Mail Delivery Agent (MDA)")
1570 (description "fdm is a program designed to fetch mail from POP3
1571or IMAP servers, or receive local mail from stdin, and
1572deliver it in various ways.")
1573 (license
1574 ;; Why point to a source file? Well, all the individual files have a
1575 ;; copy of this license in their headers, but there's no seprate file
1576 ;; with that information.
16966d5b 1577 (non-copyleft "https://github.com/nicm/fdm/blob/master/command.c"))))
34dd26af 1578
e90819c4
LG
1579
1580(define-public procmail
1581 (package
1582 (name "procmail")
1583 (version "3.22")
1584 (source
1585 (origin
1586 (method url-fetch)
1587 (uri (string-append
1588 "ftp://ftp.fu-berlin.de/pub/unix/mail/procmail/procmail-"
1589 version
1590 ".tar.gz"))
1591 (sha256
1592 (base32
1593 "05z1c803n5cppkcq99vkyd5myff904lf9sdgynfqngfk9nrpaz08"))
1594 ;; The following patch fixes an ambiguous definition of
1595 ;; getline() in formail.c. The patch is provided by Debian as
1596 ;; patch 24.
1d982d78
LF
1597 (patches (search-patches "procmail-ambiguous-getline-debian.patch"
1598 "procmail-CVE-2014-3618.patch"))))
e90819c4
LG
1599 (arguments
1600 `(#:phases (modify-phases %standard-phases
1601 (replace 'configure
1602 (lambda _
1603 (substitute* "Makefile"
1604 (("/bin/sh")
1605 (which "sh"))
1606 (("/usr")
1607 (assoc-ref %outputs "out"))
1608 (("/bin/rm")
1609 (which "rm")))
1610 #t)))
1611 #:tests? #f)) ;; There are no tests indicating a successful
1612 ;; build. Some tests of basic locking mechanisms provided by the
8f65585b 1613 ;; file system are performed during 'make install'. However, these
e90819c4
LG
1614 ;; are performed before the actual build process.
1615 (build-system gnu-build-system)
05aa576b 1616 (inputs `(("exim" ,exim)))
e90819c4
LG
1617 (home-page "http://www.procmail.org/")
1618 (synopsis "Versatile mail delivery agent (MDA)")
1619 (description "Procmail is a mail delivery agent (MDA) featuring support
1620for a variety of mailbox formats such as mbox, mh and maildir. Incoming mail
1621can be sorted into separate files/directories and arbitrary commands can be
1622executed on mail arrival. Procmail is considered stable, but is no longer
1623maintained.")
1624 (license gpl2+))) ;; procmail allows to choose the
1625 ;; nonfree Artistic License 1.0
1626 ;; as alternative to the GPL2+.
1627 ;; This option is not listed here.
e90819c4 1628
61c30e9d
LF
1629(define-public khard
1630 (package
1631 (name "khard")
4a3495d5 1632 (version "0.11.4")
61c30e9d
LF
1633 (source (origin
1634 (method url-fetch)
1635 (uri (pypi-uri name version))
1636 (sha256
1637 (base32
4a3495d5 1638 "1shhlq6ljbd8095hd82v4mw56rjcfxf1ymmgknbgh8gix02nsxw1"))))
61c30e9d
LF
1639 (build-system python-build-system)
1640 (arguments
a57495e2 1641 `(#:phases
61c30e9d 1642 (modify-phases %standard-phases
61c30e9d
LF
1643 (add-after 'install 'install-doc
1644 (lambda* (#:key outputs #:allow-other-keys)
1645 (let* ((out (assoc-ref outputs "out"))
1646 (doc (string-append out "/share/doc/khard")))
e9eafae2
MB
1647 (copy-recursively "misc/khard" doc)
1648 #t))))
1649 ;; FIXME: check phase fails with
1650 ;; "Config file /tmp/.config/khard/khard.conf not available"
1651 #:tests? #f))
61c30e9d 1652 (propagated-inputs
a57495e2
LF
1653 `(("python-vobject" ,python-vobject)
1654 ("python-pyyaml" ,python-pyyaml)
1655 ("python-atomicwrites" ,python-atomicwrites)
1656 ("python-configobj" ,python-configobj)))
61c30e9d
LF
1657 (synopsis "Console address book using CardDAV")
1658 (description "Khard is an address book for the console. It creates, reads,
1659modifies and removes CardDAV address book entries at your local machine. For
1660synchronizing with a remote address book, @command{vdirsyncer} is recommended.
1661Khard can also be used from within the email client @command{mutt}.")
1662 (home-page "https://github.com/scheibler/khard")
1663 (license gpl3+)))
be0c5733
DM
1664
1665(define-public perl-mail-spf
1666 (package
1667 (name "perl-mail-spf")
1668 (version "v2.9.0")
1669 (source
1670 (origin
1671 (method url-fetch)
1672 (uri (string-append
1673 "mirror://cpan/authors/id/J/JM/JMEHNLE/mail-spf/Mail-SPF-"
1674 version
1675 ".tar.gz"))
1676 (sha256
1677 (base32
1678 "0qk1rfgfm5drj4iyniiabrasrpqv570vzhgz66lwgb67y4amkjv1"))))
1679 (build-system perl-build-system)
1680 (native-inputs
1681 `(("perl-module-build" ,perl-module-build)
1682 ("perl-net-dns-resolver-programmable"
1683 ,perl-net-dns-resolver-programmable)))
1684 (arguments
1685 `(#:phases (modify-phases %standard-phases
1686 (add-before 'configure 'modify-Build.PL
1687 (lambda* (#:key outputs #:allow-other-keys)
1688 (substitute* "Build.PL"
1689 (("'/usr/sbin'") (string-append "'"
1690 (assoc-ref outputs "out")
1691 "/sbin'")))
1692 #t)))))
1693 (inputs
1694 `(("perl-error" ,perl-error)
1695 ("perl-net-dns" ,perl-net-dns)
1696 ("perl-netaddr-ip" ,perl-netaddr-ip)
1697 ("perl-uri" ,perl-uri)))
1698 (home-page
1699 "http://search.cpan.org/dist/Mail-SPF")
1700 (synopsis
1701 "Perl implementation of Sender Policy Framework")
1702 (description "Mail::SPF is the Sender Policy Framework implemented
1703in Perl.")
1704 (license bsd-3)))
24262239
CL
1705
1706(define-public mb2md
1707 (package
1708 (name "mb2md")
1709 (version "3.20")
1710 (source (origin
1711 (method url-fetch)
1712 (uri (string-append
1713 "http://batleth.sapienti-sat.org/projects/mb2md/mb2md-"
1714 version ".pl.gz"))
1715 (sha256
1716 (base32
1717 "0bvkky3c90738h3skd2f1b2yy5xzhl25cbh9w2dy97rs86ssjidg"))))
1718 (build-system trivial-build-system)
1719 (arguments
1720 '(#:modules ((guix build utils))
1721 #:builder
1722 (begin
1723 (use-modules (guix build utils))
1724 (let* ((source (assoc-ref %build-inputs "source"))
1725 (out (assoc-ref %outputs "out"))
1726 (bin (string-append out "/bin"))
1727 (perl (assoc-ref %build-inputs "perl"))
1728 (gzip (assoc-ref %build-inputs "gzip"))
1729 (perl-timedate (assoc-ref %build-inputs "perl-timedate"))
1730 (perl5lib (string-append perl-timedate "/lib/perl5/site_perl")))
1731 (mkdir-p bin)
1732 (with-directory-excursion bin
1733 (copy-file source "mb2md.gz")
1734 (system* (string-append gzip "/bin/gzip") "-d" "mb2md.gz")
1735 (substitute* "mb2md"
1736 (("#!/usr/bin/perl")
1737 (string-append "#!/usr/bin/perl -I " perl5lib)))
1738 (patch-shebang "mb2md" (list (string-append perl "/bin")))
1739 (chmod "mb2md" #o555))
1740 #t))))
1741 (native-inputs `(("gzip", gzip)))
1742 (inputs `(("perl" ,perl)
1743 ("perl-timedate" ,perl-timedate)))
1744 (home-page "http://batleth.sapienti-sat.org/projects/mb2md/")
1745 (synopsis "Mbox to maildir converter")
1746 (description
1747 "Mb2md is a Perl script that takes one or more mbox format files and
1748converts them to maildir format directories.")
1749 (license public-domain)))
e0d7b421
AI
1750
1751(define-public mpop
1752 (package
1753 (name "mpop")
5837e699 1754 (version "1.2.6")
e0d7b421
AI
1755 (source
1756 (origin
1757 (method url-fetch)
175c9103
LF
1758 (uri (string-append "mirror://sourceforge/mpop/mpop/" version
1759 "/mpop-" version ".tar.xz"))
e0d7b421
AI
1760 (sha256
1761 (base32
5837e699 1762 "0p1ix63jh64dibrlccch8q7gxl9nn18wd2qpyr5z1h4gs2fpmv4z"))))
e0d7b421
AI
1763 (build-system gnu-build-system)
1764 (inputs
1765 `(("gnutls" ,gnutls)
1766 ("libidn" ,libidn)))
1767 (native-inputs
1768 `(("pkg-config" ,pkg-config)))
1769 (arguments
1770 `(#:configure-flags (list "--with-tls=gnutls")))
1771 (home-page "http://mpop.sourceforge.net/")
1772 (synopsis "POP3 mail client")
1773 (description "mpop is a small and fast POP3 client suitable as a
1774fetchmail replacement.
1775
1776mpop supports multiple accounts, header based mail filtering, delivery
1777to mbox files, maildir folders or a Mail Delivery Agent (MDA),
1778TLS/SSL, several authentication methods, Internationalized Domain
1779Names (IDN) and SOCKS proxies.")
1780 (license gpl3+)))
74c0282c 1781
1782(define-public mhonarc
1783 (package
1784 (name "mhonarc")
1785 (version "2.6.19")
1786 (source
1787 (origin
1788 (method url-fetch)
1789 (uri (string-append "mirror://cpan/authors/id/E/EH/EHOOD/MHonArc-"
1790 version ".tar.gz"))
1791 (sha256
1792 (base32
1793 "0ll3v93yji334zqp6xfzfxc0127pmjcznmai1l5q6dzawrs2igzq"))))
1794 (build-system perl-build-system)
1795 (home-page "https://www.mhonarc.org/")
1796 (synopsis "Create HTML archives of mail/news messages")
1797 (description
1798 "MHonArc is a Perl mail-to-HTML converter. MHonArc
1799provides HTML mail archiving with index, mail thread linking,
1800etc; plus other capabilities including support for MIME and
1801powerful user customization features.")
1802 (license gpl2+)))
5d87088c
JD
1803
1804
1805(define-public sendmail
1806 (package
1807 (name "sendmail")
1808 (version "8.15.2")
1809 (source
1810 (origin
1811 (method url-fetch)
1812 (uri (string-append
1813 "ftp://ftp.sendmail.org/pub/sendmail/sendmail."
1814 version ".tar.gz"))
1815 (sha256
1816 (base32
1817 "0fdl9ndmspqspdlmghzxlaqk56j3yajk52d7jxcg21b7sxglpy94"))))
1818 (build-system gnu-build-system)
1819 (arguments
1820 `(#:phases
1821 (modify-phases %standard-phases
1822 (add-before 'build 'replace-/bin/sh
1823 (lambda _
1824 (substitute*
1825 (append
1826 (list "smrsh/smrsh.c" "sendmail/conf.c" "contrib/mailprio"
1827 "contrib/mmuegel" "devtools/bin/configure.sh")
1828 (find-files "." ".*\\.m4")
1829 (find-files "." ".*\\.cf"))
19527952 1830 (("/bin/sh") (which "sh")))
5d87088c
JD
1831
1832 (substitute* "devtools/bin/Build"
19527952 1833 (("SHELL=/bin/sh") (string-append "SHELL=" (which "sh"))))
5d87088c
JD
1834 #t))
1835 (replace 'configure
1836 (lambda _
1837
1838 ;; Render harmless any attempts to chown or chgrp
1839 (substitute* "devtools/bin/install.sh"
1840 (("owner=\\$2") "owner=''")
1841 (("group=\\$2") "group=''"))
1842
1843 (with-output-to-file "devtools/Site/site.config.m4"
1844 (lambda ()
1845 (format #t "
1846define(`confCC', `gcc')
1847define(`confOPTIMIZE', `-g -O2')
1848define(`confLIBS', `-lresolv')
1849define(`confINSTALL', `~a/devtools/bin/install.sh')
1850define(`confDEPEND_TYPE', `CC-M')
1851define(`confINST_DEP', `')
1852" (getcwd))))))
1853 (replace 'build
1854 (lambda _
1855 (and (zero? (system* "sh" "Build"))
1856 (with-directory-excursion "cf/cf"
1857 (begin
1858 (copy-file "generic-linux.mc" "sendmail.mc")
1859 (zero? (system* "sh" "Build" "sendmail.cf")))))))
1860 (add-before 'install 'pre-install
1861 (lambda _
1862 (let ((out (assoc-ref %outputs "out")))
1863 (mkdir-p (string-append out "/usr/bin"))
1864 (mkdir-p (string-append out "/usr/sbin"))
1865 (mkdir-p (string-append out "/etc/mail"))
1866 (setenv "DESTDIR" out)
1867 (with-directory-excursion "cf/cf"
1868 (zero? (system* "sh" "Build" "install-cf")))))))
1869 ;; There is no make check. There are some post installation tests, but those
1870 ;; require root privileges
1871 #:tests? #f))
1872 (inputs
1873 `(("m4" ,m4)
1874 ("perl" ,perl)))
1875 (home-page "http://sendmail.org")
1876 (synopsis
1877 "Highly configurable Mail Transfer Agent (MTA)")
1878 (description
1879 "Sendmail is a mail transfer agent (MTA) originally developed by Eric
1880Allman. It is highly configurable and supports many delivery methods and many
1881transfer protocols.")
1882 (license (non-copyleft "file://LICENSE"
1883 "See LICENSE in the distribution."))))
1884
8b53366c 1885(define-public opensmtpd
1886 (package
1887 (name "opensmtpd")
eb4b3e4b 1888 (version "6.0.2p1")
8b53366c 1889 (source (origin
1890 (method url-fetch)
1891 (uri (string-append "https://www.opensmtpd.org/archives/"
1892 name "-" version ".tar.gz"))
1893 (sha256
1894 (base32
eb4b3e4b 1895 "1b4h64w45hpmfq5721smhg4s0shs64gbcjqjpx3fbiw4hz8bdy9a"))))
8b53366c 1896 (build-system gnu-build-system)
1897 (inputs
1898 `(("bdb" ,bdb)
1899 ("libressl" ,libressl)
1900 ("libevent" ,libevent)
1901 ("libasr" ,libasr)
1902 ("linux-pam" ,linux-pam)
1903 ("zlib" ,zlib)))
1904 (native-inputs
d7da7604
SB
1905 `(("bison" ,bison)
1906 ("groff" ,groff)))
8b53366c 1907 (arguments
ae1e2133
SB
1908 `(#:configure-flags
1909 (list "--with-table-db" "--localstatedir=/var"
1910 "--with-user-smtpd=smtpd" "--with-user-queue=smtpq"
1911 "--with-group-queue=smtpq"
1912 "--with-path-socket=/var/run"
1913 "--with-path-CAfile=/etc/ssl/certs/ca-certificates.crt")
8b53366c 1914 #:phases
1915 (modify-phases %standard-phases
1916 ;; OpenSMTPD provides a single utility smtpctl to control the daemon and
1917 ;; the local submission subsystem. To accomodate systems that require
1918 ;; historical interfaces such as sendmail, newaliases or makemap, the
1919 ;; smtpctl utility can operate in compatibility mode if called with the
1920 ;; historical name.
1921 (add-after 'install 'install-compabilitymode
1922 (lambda _
1923 (let* ((out (assoc-ref %outputs "out"))
1924 (sbin (string-append out "/sbin/")))
1925 (for-each (lambda (cmd)
1926 (symlink "smtpctl" (string-append sbin cmd)))
1927 '("makemap" "sendmail" "send-mail"
1928 "newaliases" "mailq")))
1929 #t)))))
1930 (synopsis "Lightweight SMTP daemon")
1931 (description
1932 "OpenSMTPD is an implementation of the server-side SMTP protocol, with
1933some additional standard extensions. It allows ordinary machines to exchange
1934e-mails with other systems speaking the SMTP protocol.")
1935 (home-page "https://www.opensmtpd.org")
1936 (license (list bsd-2 bsd-3 bsd-4 (non-copyleft "file://COPYING")
19262a71 1937 public-domain isc license:openssl))))
152ffe7c 1938
1939(define-public opensmtpd-extras
1940 (package
1941 (name "opensmtpd-extras")
1942 (version "5.7.1")
1943 (source (origin
1944 (method url-fetch)
1945 (uri (string-append "https://www.opensmtpd.org/archives/"
1946 name "-" version ".tar.gz"))
1947 (sha256
1948 (base32
1949 "1kld4hxgz792s0cb2gl7m2n618ikzqkj88w5dhaxdrxg4x2c4vdm"))))
1950 (build-system gnu-build-system)
1951 (inputs
1952 `(("libressl" ,libressl)
1953 ("libevent" ,libevent)
1954 ("libasr" ,libasr)
1955 ("python-2" ,python-2)
1956 ("opensmtpd" ,opensmtpd)
1957 ("perl" ,perl)
1958 ("lua" ,lua)
1959 ("postgresql" ,postgresql)
1960 ("sqlite" ,sqlite)
1961 ("linux-pam" ,linux-pam)))
1962 (native-inputs
1963 `(("bison" ,bison)
1964 ("pkg-config" ,pkg-config)
1965 ("groff" ,groff)
1966 ("automake" ,automake)
1967 ("autoconf" ,autoconf)))
1968 (arguments
1969 `(;; We have to configure it like this because the default checks for for example
1970 ;; python in /usr/local/bin, /usr/bin and fails otherwise.
1971 #:configure-flags (list
1972 "--with-filter-clamav" "--with-filter-dkim-signer"
1973 "--with-filter-dnsbl" "--with-filter-lua"
1974 "--with-filter-monkey" "--with-filter-pause"
1975 "--with-filter-perl" "--with-filter-python"
1976 "--with-filter-regex" "--with-filter-spamassassin"
1977 "--with-filter-stub" "--with-filter-trace"
1978 "--with-filter-void"
1979
1980 "--with-queue-null" "--with-queue-python"
1981 "--with-queue-ram" "--with-queue-stub"
1982
1983 "--with-scheduler-python" "--with-scheduler-ram"
1984 "--with-scheduler-stub"
1985
1986 "--with-table-ldap" ; "--with-table-mysql"
1987 "--with-table-passwd" "--with-table-postgres"
1988 "--with-table-python" "--with-table-socketmap"
1989 "--with-table-sqlite" "--with-table-stub"
1990 ;;"--with-table-redis" ; TODO: package hiredis
1991
1992 "--with-user=smtpd" "--with-privsep-user=smtpd"
1993 "--localstatedir=/var" "--sysconfdir=/etc"
1994 "--with-lua-type=lua" ; can use lua or luajit
1995
1996 (string-append "--with-python="
1997 (assoc-ref %build-inputs "python-2"))
1998 (string-append "--with-lua="
1999 (assoc-ref %build-inputs "lua")))))
19262a71
LC
2000 (license (list bsd-2 bsd-3 bsd-4
2001 public-domain isc license:openssl))
152ffe7c 2002 (synopsis "Extra tables, filters, and various other addons for OpenSMTPD")
2003 (description
2004 "This package provides extra tables, filters, and various other addons
2005for OpenSMTPD to extend its functionality.")
2006 (home-page "https://www.opensmtpd.org")))
6d3dda4f 2007
2008(define-public python-mailmanclient
2009 (package
2010 (name "python-mailmanclient")
2011 (version "1.0.1")
2012 (source
2013 (origin
2014 (method url-fetch)
2015 (uri (pypi-uri "mailmanclient" version))
2016 (sha256
2017 (base32
2018 "1cfjh45fgbsax5hjj2inq9nk33dhdvh63xhysc8dhnqidgqgm8c5"))))
2019 (build-system python-build-system)
2020 (arguments
2021 `(#:tests? #f)) ; Requires mailman running
f22efa01 2022 (propagated-inputs
6d3dda4f 2023 `(("python-six" ,python-six)
2024 ("python-httplib2" ,python-httplib2)))
2025 (home-page "https://launchpad.net/mailman.client")
2026 (synopsis "Python bindings for the Mailman 3 REST API")
2027 (description
2028 "The mailmanclient library provides official Python bindings for
2029the GNU Mailman 3 REST API.")
6d3dda4f 2030 (license lgpl3+)))
2031
2032(define-public python2-mailmanclient
5c31f4aa 2033 (package-with-python2 python-mailmanclient))
3163a289 2034
2035(define-public mlmmj
2036 (package
2037 (name "mlmmj")
2038 (version "1.2.19.0")
2039 (source
2040 (origin
2041 (method url-fetch)
2042 (uri (string-append "http://mlmmj.org/releases/mlmmj-"
2043 version ".tar.bz2"))
2044 (sha256
2045 (base32
2046 "1piwvcxkqadjwk5x8jicaiyz9nngmaj3w13ghdqgaki32xd7zk9v"))))
2047 (build-system gnu-build-system)
2048 (inputs
2049 `(("perl" ,perl))) ; For "contrib/web/"
2050 (native-inputs
2051 `(("pkg-config" ,pkg-config)))
2052 (arguments
2053 `(#:configure-flags
2054 ;; mlmmj-receive-strip is a replacement for mlmmj-receive
2055 ;; It opens the files control/mimedeny and control/mimestrip to get a list
2056 ;; of mimetypes for parts of multipart/mime messages that should be denied
2057 ;; or stripped. The parts then get stripped directly when the mail is
2058 ;; received. mlmmj-receive-strip also appends an extra header
2059 ;; X-ThisMailContainsUnwantedMimeParts: Y when the mail contains unwanted
2060 ;; mime parts
2061 (list "--enable-receive-strip")
2062 #:phases
2063 (modify-phases %standard-phases
2064 (add-before 'install 'install-contrib
2065 (lambda* (#:key outputs #:allow-other-keys)
2066 (let* ((out (assoc-ref outputs "out"))
2067 (share (string-append out "/share/mlmmj"))
2068 (contrib (string-append share "/contrib/web"))
2069 (texts (string-append share "/listtexts")))
2070 (copy-recursively "contrib/web/" contrib)
2071 (copy-recursively "listtexts" texts)
2072 (rename-file texts (string-append share "/texts"))
2073 #t))))))
2074 (home-page "http://mlmmj.org")
2075 (synopsis "Mailing list managing made joyful")
2076 (description
2077 "Mlmmj is a simple and slim mailing list manager (MLM) inspired by ezmlm.
2078It works with many different Mail Transport Agents (MTAs) and is simple for a
d1e4ad1b 2079system administrator to install, configure and integrate with other software.
3163a289 2080As it uses very few resources, and requires no daemons, it is ideal for
2081installation on systems where resources are limited. Its features include:
2082@enumerate
2083@item Archive, Custom headers / footer,
2084@item Fully automated bounce handling (similar to ezmlm),
2085@item Complete requeueing functionality, Moderation functionality, Subject prefix,
2086@item Subscribers only posting, Regular expression access control,
2087@item Functionality to retrieve old posts, Web interface, Digests,
2088@item No-mail subscription, VERP support,
2089@item Delivery Status Notification (RFC1891) support,
2090@item Rich and customisable texts for automated operations.
2091@end enumerate\n")
2092 (license license:expat)))
3a263368 2093
8a3741e6 2094(define-public python-django-mailman3
2095 (package
2096 (name "python-django-mailman3")
2097 (version "1.0.1")
2098 (source
2099 (origin
2100 (method url-fetch)
2101 (uri (pypi-uri "django-mailman3" version))
2102 (sha256
2103 (base32
2104 "1adxyh8knw9knjlh73xq0jpn5adml0ck4alsv0swakm95wfyx46z"))))
2105 (build-system python-build-system)
2106 (inputs
99a8c8bd 2107 `(("python-django" ,python-django)))
8a3741e6 2108 (propagated-inputs
2109 `(("python-requests" ,python-requests)
2110 ("python-requests-oauthlib" ,python-requests-oauthlib)
2111 ("python-openid" ,python-openid)
2112 ("python-mailmanclient" ,python-mailmanclient)
2113 ("python-django-allauth" ,python-django-allauth)
2114 ("python-django-gravatar2" ,python-django-gravatar2)
2115 ("python-pytz" ,python-pytz)))
2116 (home-page "https://gitlab.com/mailman/django-mailman3")
2117 (synopsis "Django library for Mailman UIs")
2118 (description
2119 "Libraries and templates for Django-based interfaces
2120interacting with Mailman.")
2121 (license gpl3+)))
2122
2123(define-public python2-django-mailman3
2124 (let ((base (package-with-python2
2125 python-django-mailman3)))
2126 (package
2127 (inherit base)
2128 (propagated-inputs
2129 `(("python2-openid" ,python2-openid)
2130 ,@(package-propagated-inputs base))))))
2131
d99a2add 2132(define-public postorius
2133 (package
2134 (name "postorius")
2135 (version "1.0.3")
2136 (source
2137 (origin
2138 (method url-fetch)
2139 (uri (pypi-uri "postorius" version "+post2.tar.gz"))
2140 (file-name (string-append name "-" version ".tar.gz"))
2141 (sha256
2142 (base32
2143 "1wymcpv2icjjy8h1ni52p6dr7wwxf71ivqgbqhzx4i82yqphcaq5"))))
2144 (build-system python-build-system)
2145 (arguments
2146 `(; One test dependency relies on Persona, which was shut down in
2147 ;; November 2016.
2148 #:tests? #f
2149 ;; The part of the frontend of Mailman is still python 2.7.
2150 #:python ,python-2))
2151 (inputs
2152 `(("python2-django" ,python2-django)
2153 ("python2-django-mailman3" ,python2-django-mailman3)
2154 ("python2-mailmanclient" ,python2-mailmanclient)))
2155 (home-page "https://gitlab.com/mailman/postorius")
2156 (synopsis "Web user interface for GNU Mailman")
2157 (description
2158 "Postorius is a Django app which provides a web user interface
2159to access GNU Mailman.")
2160 (license (list gpl3+ lgpl3+))))
2161
3a263368 2162(define-public blists
2163 (package
2164 (name "blists")
2165 (version "1.0")
2166 (source
2167 (origin
2168 (method url-fetch)
2169 (uri (string-append "http://download.openwall.net/pub/projects/"
2170 "blists/blists-" version ".tar.gz"))
2171 (sha256
2172 (base32
2173 "1gp51kmb8yv8d693wcpdslmwlbw5w2kgz4kxhrcaf7y89w8wy4qd"))))
2174 (build-system gnu-build-system)
2175 (arguments
2176 `(#:tests? #f ; No tests
2177 #:phases
2178 (modify-phases %standard-phases
2179 (delete 'configure)
2180 (replace 'install
2181 (lambda* (#:key outputs #:allow-other-keys)
2182 (let* ((out (assoc-ref outputs "out"))
2183 (bin (string-append out "/bin")))
2184 (install-file "bindex" bin)
2185 (install-file "bit" bin)
2186 #t))))))
2187 (home-page "http://www.openwall.com/blists/")
2188 (synopsis "Web interface to mailing list archives")
2189 (description
2190 "Blists is a web interface to mailing list archives that works off
2191indexed mbox files. There are two programs: @code{bindex} and @code{bit}.
2192@code{bindex} generates or updates the index file (incremental updates
2193are supported). @code{bit} is a CGI/SSI program that generates web pages
2194on the fly. Both programs are written in C and are very fast.")
2195 (license license:expat)))
ed428a58
AI
2196
2197(define-public swaks
2198 (package
2199 (name "swaks")
2200 (version "20170101.0")
2201 (source
2202 (origin
2203 (method url-fetch)
2204 (uri (string-append
2205 "http://jetmore.org/john/code/swaks/files/swaks-"
2206 version ".tar.gz"))
2207 (sha256
2208 (base32
2209 "0pli4mlhasnqqxmmxalwyg3x7n2vhcbgsnp2xgddamjavv82vrl4"))))
2210 (build-system perl-build-system)
2211 (inputs
2212 `(("perl-net-dns" ,perl-net-dns)
2213 ("perl-net-ssleay" ,perl-net-ssleay)))
2214 (arguments
2215 `(#:tests? #f ; No tests
2216 #:phases
2217 (modify-phases %standard-phases
2218 (delete 'configure)
2219 (replace 'build
2220 (lambda _
2221 (zero? (system* "pod2man" "doc/ref.pod" "swaks.1"))))
2222 (replace 'install
2223 (lambda* (#:key outputs #:allow-other-keys)
2224 (let ((out (assoc-ref outputs "out")))
2225 (install-file "swaks" (string-append out "/bin"))
2226 (install-file "swaks.1" (string-append out "/share/man/man1")))
2227 #t))
2228 (add-after 'install 'wrap-program
2229 (lambda* (#:key outputs #:allow-other-keys)
2230 (wrap-program (string-append (assoc-ref outputs "out")
2231 "/bin/swaks")
2232 `("PERL5LIB" ":" = (,(getenv "PERL5LIB"))))
2233 #t)))))
2234 (home-page "http://jetmore.org/john/code/swaks/")
2235 (synopsis "Featureful SMTP test tool")
2236 (description "Swaks is a flexible, scriptable, transaction-oriented SMTP
2237test tool. It handles SMTP features and extensions such as TLS,
2238authentication, and pipelining; multiple versions of the SMTP protocol
2239including SMTP, ESMTP, and LMTP; and multiple transport methods including
2240unix-domain sockets, internet-domain sockets, and pipes to spawned processes.
2241Options can be specified in environment variables, configuration files, and
2242the command line allowing maximum configurability and ease of use for
2243operators and scripters.")
2244 (license gpl2+)))
b0eb2af2 2245
2246(define-public alpine
2247 (package
2248 (name "alpine")
2249 (version "2.21")
2250 (source
2251 (origin
2252 (method url-fetch)
2253 ;; There are two versions: the plain continuation of Alpine without extra
2254 ;; patches and the version which adds extra fixes. Every distro uses
2255 ;; the patched version, and so do we to not break expectations.
32f9cc33 2256 ;; http://alpine.freeiz.com/alpine/readme/README.patches
2257 (uri (string-append "http://alpine.freeiz.com/alpine/patches/alpine-"
b0eb2af2 2258 version "/alpine-" version ".tar.xz"))
2259 (sha256
2260 (base32
2261 "1k9hcfjywfk3mpsl71hjza3nk6icgf1b6xxzgx10kdzg5yci5x5m"))))
2262 (build-system gnu-build-system)
2263 (arguments
2264 `(#:make-flags (list "CC=gcc")
2265 #:configure-flags (list (string-append "--with-ssl-include-dir="
2266 (assoc-ref %build-inputs "openssl")
2267 "/include/openssl")
2268 (string-append "--with-ssl-dir="
2269 (assoc-ref %build-inputs "openssl"))
2270 (string-append "--with-ssl-certs-dir="
2271 "/etc/ssl/certs/")
2272 (string-append "--with-ssl-lib-dir="
2273 (assoc-ref %build-inputs "openssl")
2274 "/lib")
2275 (string-append "--with-interactive-spellcheck="
2276 (assoc-ref %build-inputs "aspell")
2277 "/bin/aspell"))
2278 #:phases
2279 (modify-phases %standard-phases
2280 (add-after 'unpack 'make-reproducible
2281 (lambda _
2282 ;; This removes time-dependent code to make alpine reproducible.
2283 (substitute* "pico/blddate.c"
2284 (("%02d-%s-%d") "1970-01-01"))
2285 (substitute* (list "alpine/Makefile.in"
2286 "web/src/alpined.d/Makefile.in")
2287 (("`date`") "1970-01-01"))
2288 #t)))))
2289 (inputs
2290 `(("ncurses" ,ncurses)
2291 ("openssl" ,openssl)
2292 ("gnutls" ,gnutls)
2293 ("openldap" ,openldap)
2294 ("cyrus-sasl" ,cyrus-sasl)
2295 ("mit-krb5" ,mit-krb5)
2296 ("aspell" ,aspell)
2297 ("tcl" ,tcl)
2298 ("linux-pam" ,linux-pam)))
32f9cc33 2299 (home-page "http://alpine.freeiz.com/alpine/")
b0eb2af2 2300 (synopsis "Alternatively Licensed Program for Internet News and Email")
2301 (description
2302 "Alpine is a text-based mail and news client. Alpine includes several
2303tools and applications:
2304@enumerate
2305@item alpine, the Alpine mailer
2306@item pico, the standalone text editor, GNU nano's predecessor
2307@item pilot, the standalone file system navigator
2308@end enumerate\n")
2309 (license asl2.0)))
7c16151a
RS
2310
2311(define-public balsa
2312 (package
2313 (name "balsa")
2314 (version "2.5.3")
2315 (source
2316 (origin
2317 (method url-fetch)
2318 (uri (string-append "https://pawsa.fedorapeople.org/balsa/balsa-"
2319 version ".tar.bz2"))
2320 (sha256
2321 (base32
2322 "15jkwp3ylbwd8iha4dr37z1xb6mkk31ym90vv3h2a5xk2rmym5mq"))))
2323 (build-system gnu-build-system)
2324 (arguments
2325 `(#:configure-flags
2326 '(;; Balsa tries to install additional MIME icons
2327 ;; under gtk+ directory.
2328 "--enable-extra-mimeicons=no"
2329 "--with-gtksourceview"
2330 "--with-canberra"
2331 "--with-spell-checker=gtkspell"
2332 "--with-gpgme"
2333 "--with-sqlite"
2334 "--with-compface"
2335 "--with-ldap")))
2336 (inputs
2337 `(("cyrus-sasl" ,cyrus-sasl)
2338 ("enchant" ,enchant)
2339 ("gdk-pixbuf" ,gdk-pixbuf)
2340 ("gmime" ,gmime)
2341 ("gnutls" ,gnutls)
2342 ("gpgme" ,gpgme)
2343 ("gtk+" ,gtk+)
2344 ("gtksourceview" ,gtksourceview)
2345 ("gtkspell3" ,gtkspell3)
2346 ("libcanberra" ,libcanberra)
2347 ("libesmtp" ,libesmtp)
2348 ("libnotify" ,libnotify)
2349 ("openldap" ,openldap)
2350 ("sqlite" ,sqlite)
2351 ("webkitgtk" ,webkitgtk)))
2352 (native-inputs
2353 `(("compface" ,compface)
2354 ("glib" ,glib "bin")
2355 ("intltool" ,intltool)
2356 ("pkg-config" ,pkg-config)
2357 ("yelp-tools" ,yelp-tools)))
2358 (home-page "https://pawsa.fedorapeople.org/balsa")
2359 (synopsis "E-mail client for GNOME")
2360 (description "Balsa is a highly configurable and robust mail client for
2361the GNOME desktop. It supports both POP3 and IMAP servers as well as the
2362mbox, maildir and mh local mailbox formats. Balsa also supports SMTP and/or
b95d5f62 2363the use of a local MTA such as Sendmail.")
7c16151a 2364 (license gpl3+)))