gnu: offlineimap: Update to 7.1.4.
[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")
8de54944 429 (version "7.1.4")
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
8de54944 437 "0m34iks3l9p6shqkgfhfpiccglm6gk5nj98x20pvahl58nclmzn6"))))
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")
4f50fd75 1364 (version "1.946")
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
4f50fd75 1372 "0z1k3i0lzp2k421gc8f3wq0jbqflkbw2xqd2k7n7pmv56417kvk8"))))
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)
4f50fd75
TGR
1380 ("perl-mime-types" ,perl-mime-types)
1381 ("perl-module-runtime" ,perl-module-runtime)))
0a4c49f6
EB
1382 (home-page "http://search.cpan.org/dist/Email-MIME")
1383 (synopsis "MIME message handling")
1384 (description "Email::MIME is an extension of the Email::Simple module, to
1385handle MIME encoded messages. It takes a message as a string, splits it up
1386into its constituent parts, and allows you access to various parts of the
1387message. Headers are decoded from MIME encoding.")
2f3108ad 1388 (license perl-license)))
0a4c49f6 1389
55025bb5
EB
1390(define-public perl-email-mime-contenttype
1391 (package
1392 (name "perl-email-mime-contenttype")
9b5fc20c 1393 (version "1.022")
55025bb5
EB
1394 (source
1395 (origin
1396 (method url-fetch)
1397 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
1398 "Email-MIME-ContentType-" version ".tar.gz"))
1399 (sha256
1400 (base32
9b5fc20c 1401 "042kxhs3bp1ab9z0mbr1wy21ld4lxd6v2a2mmrashqnsn2075fws"))))
55025bb5
EB
1402 (build-system perl-build-system)
1403 (native-inputs
1404 `(("perl-capture-tiny" ,perl-capture-tiny)))
1405 (home-page "http://search.cpan.org/dist/Email-MIME-ContentType")
1406 (synopsis "Parse MIME Content-Type headers")
1407 (description "Email::MIME::ContentType parses a MIME Content-Type
1408header.")
2f3108ad 1409 (license perl-license)))
55025bb5 1410
02e29936
EB
1411(define-public perl-email-mime-encodings
1412 (package
1413 (name "perl-email-mime-encodings")
1414 (version "1.315")
1415 (source
1416 (origin
1417 (method url-fetch)
1418 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
1419 "Email-MIME-Encodings-" version ".tar.gz"))
1420 (sha256
1421 (base32
1422 "0p5b8g9gh35m8fqrpx60g4bp98rvwd02n5b0vm9wh7mk0xah8wac"))))
1423 (build-system perl-build-system)
1424 (native-inputs
1425 `(("perl-capture-tiny" ,perl-capture-tiny)))
1426 (home-page "http://search.cpan.org/dist/Email-MIME-Encodings")
1427 (synopsis "Unified interface to MIME encoding and decoding")
1428 (description "This module wraps MIME::Base64 and MIME::QuotedPrint.")
2f3108ad 1429 (license perl-license)))
02e29936 1430
a24c5420
EB
1431(define-public perl-email-sender
1432 (package
1433 (name "perl-email-sender")
801eb746 1434 (version "1.300031")
a24c5420
EB
1435 (source
1436 (origin
1437 (method url-fetch)
1438 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
1439 "Email-Sender-" version ".tar.gz"))
1440 (sha256
1441 (base32
801eb746 1442 "052g0slw3h2lzn93j71fi47nfawww2aph4jhr3c860ji70lkf4n4"))))
a24c5420
EB
1443 (build-system perl-build-system)
1444 (native-inputs
1445 `(("perl-capture-tiny" ,perl-capture-tiny)))
1446 (propagated-inputs
1447 `(("perl-email-abstract" ,perl-email-abstract)
1448 ("perl-email-address" ,perl-email-address)
1449 ("perl-email-simple" ,perl-email-simple)
1450 ("perl-list-moreutils" ,perl-list-moreutils)
1451 ("perl-module-runtime" ,perl-module-runtime)
1452 ("perl-moo" ,perl-moo)
1453 ("perl-moox-types-mooselike" ,perl-moox-types-mooselike)
1454 ("perl-sub-exporter" ,perl-sub-exporter)
1455 ("perl-throwable" ,perl-throwable)
1456 ("perl-try-tiny" ,perl-try-tiny)))
1457 (home-page "http://search.cpan.org/dist/Email-Sender")
1458 (synopsis "Perl library for sending email")
1459 (description "Email::Sender replaces the old and sometimes problematic
1460Email::Send library.")
2f3108ad 1461 (license perl-license)))
a24c5420 1462
151ef3ed
EB
1463(define-public perl-email-simple
1464 (package
1465 (name "perl-email-simple")
25adc006 1466 (version "2.214")
151ef3ed
EB
1467 (source
1468 (origin
1469 (method url-fetch)
1470 (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
1471 "Email-Simple-" version ".tar.gz"))
1472 (sha256
1473 (base32
25adc006 1474 "14kb86hi0m0bqc7kxpm4x5kvfsyj2x86gggbvpxhx9hy8hvjpw5j"))))
151ef3ed
EB
1475 (build-system perl-build-system)
1476 (propagated-inputs
1477 `(("perl-email-date-format" ,perl-email-date-format)))
1478 (home-page "http://search.cpan.org/dist/Email-Simple")
1479 (synopsis "Parsing of RFC 2822 messages")
1480 (description "Email::Simple provides simple parsing of RFC 2822 message
1481format and headers.")
2f3108ad 1482 (license perl-license)))
151ef3ed 1483
f5dceecb
AW
1484(define-public libesmtp
1485 (package
1486 (name "libesmtp")
1487 (version "1.0.6")
1488 (source
1489 (origin
1490 (method url-fetch)
049e02ea
LF
1491 (uri (list (string-append "https://pkgs.fedoraproject.org/repo/pkgs/"
1492 "libesmtp/libesmtp-" version ".tar.bz2/"
1493 "bf3915e627fd8f35524a8fdfeed979c8/libesmtp-"
1494 version ".tar.bz2")
1495 ;; XXX This site is offline, so we fetch Fedora's cached copy
1496 ;; of the source tarball.
1497 (string-append "http://www.stafford.uklinux.net/libesmtp/libesmtp-"
1498 version ".tar.bz2")))
f5dceecb
AW
1499 (sha256
1500 (base32
1501 "02zbniyz7qys1jmx3ghx21kxmns1wc3hmv80gp7ag7yra9f1m9nh"))))
1502 (build-system gnu-build-system)
1503 (propagated-inputs
1504 `(("openssl" ,openssl)))
1505 (home-page "http://www.stafford.uklinux.net/libesmtp/")
1506 (synopsis "Library for sending mail via remote hosts using SMTP")
1507 (description "libESMTP is an SMTP client which manages posting (or
1508submission of) electronic mail via a preconfigured Mail Transport Agent (MTA).
1509It may be used as part of a Mail User Agent (MUA) or other program that must
1510be able to post electronic mail where mail functionality may not be that
1511program's primary purpose.")
1512 (license (list lgpl2.1+ gpl2+))))
1513
f8ae32a2
AW
1514(define-public esmtp
1515 (package
1516 (name "esmtp")
1517 (version "1.2")
1518 (source
1519 (origin
1520 (method git-fetch)
1521 (uri (git-reference
1522 (url "https://github.com/andywingo/esmtp.git")
1523 (commit "01bf9fc")))
1524 (sha256
1525 (base32
1526 "1ay282rrl92h0m0m8z5zzjnwiiagi7c78aq2qvhia5mw7prwfyw2"))
1527 (file-name (string-append name "-" version "-checkout"))))
1528 (arguments
1529 `(#:phases (modify-phases %standard-phases
1530 (add-before
1531 'configure 'autoconf
1532 (lambda _ (zero? (system* "autoreconf" "-vfi")))))))
1533 (build-system gnu-build-system)
1534 (native-inputs
1535 `(("bison" ,bison)
1536 ("flex" ,flex)
1537 ("autoconf" ,autoconf)
1538 ("automake" ,automake)
1539 ("libtool" ,libtool)))
1540 (inputs
718c5dd6 1541 `(("libesmtp" ,libesmtp)))
3b3b60d0 1542 (home-page "https://sourceforge.net/projects/esmtp/")
f8ae32a2
AW
1543 (synopsis "Relay-only mail transfer agent (MTA)")
1544 (description "Esmtp is a simple relay-only mail transfer agent built using
1545libESMTP. It sends e-mail via a remote SMTP server using credentials from the
1546user's @file{$HOME/.esmtprc} configuration file; see the @command{esmtprc} man
1547page for more on configuration. This package also provides minimal
1548compatibility shims for the @command{sendmail}, @command{mailq}, and
1549@command{newaliases} commands.")
1550 (license gpl2+)))
1551
34dd26af
CAW
1552(define-public fdm
1553 (package
1554 (name "fdm")
1555 (version "1.9")
1556 (source (origin
1557 (method url-fetch)
1558 (uri (string-append "https://github.com/nicm/fdm/releases/download/"
1559 version "/fdm-"
1560 version ".tar.gz"))
1561 (file-name (string-append name "-" version ".tar.gz"))
1562 (sha256
1563 (base32 "054rscijahiza5f9qha79rg3siji3bk5mk10f8c2vqx7m4w6qh8n"))))
1564 (build-system gnu-build-system)
1565 (inputs
1566 `(("tdb" ,tdb)
1567 ("openssl" ,openssl)
1568 ("zlib" ,zlib)))
1569 (home-page "https://github.com/nicm/fdm")
1570 (synopsis "Mail Retrieval Agent (MRA) and Mail Delivery Agent (MDA)")
1571 (description "fdm is a program designed to fetch mail from POP3
1572or IMAP servers, or receive local mail from stdin, and
1573deliver it in various ways.")
1574 (license
1575 ;; Why point to a source file? Well, all the individual files have a
1576 ;; copy of this license in their headers, but there's no seprate file
1577 ;; with that information.
16966d5b 1578 (non-copyleft "https://github.com/nicm/fdm/blob/master/command.c"))))
34dd26af 1579
e90819c4
LG
1580
1581(define-public procmail
1582 (package
1583 (name "procmail")
1584 (version "3.22")
1585 (source
1586 (origin
1587 (method url-fetch)
1588 (uri (string-append
1589 "ftp://ftp.fu-berlin.de/pub/unix/mail/procmail/procmail-"
1590 version
1591 ".tar.gz"))
1592 (sha256
1593 (base32
1594 "05z1c803n5cppkcq99vkyd5myff904lf9sdgynfqngfk9nrpaz08"))
1595 ;; The following patch fixes an ambiguous definition of
1596 ;; getline() in formail.c. The patch is provided by Debian as
1597 ;; patch 24.
1d982d78
LF
1598 (patches (search-patches "procmail-ambiguous-getline-debian.patch"
1599 "procmail-CVE-2014-3618.patch"))))
e90819c4
LG
1600 (arguments
1601 `(#:phases (modify-phases %standard-phases
1602 (replace 'configure
1603 (lambda _
1604 (substitute* "Makefile"
1605 (("/bin/sh")
1606 (which "sh"))
1607 (("/usr")
1608 (assoc-ref %outputs "out"))
1609 (("/bin/rm")
1610 (which "rm")))
1611 #t)))
1612 #:tests? #f)) ;; There are no tests indicating a successful
1613 ;; build. Some tests of basic locking mechanisms provided by the
8f65585b 1614 ;; file system are performed during 'make install'. However, these
e90819c4
LG
1615 ;; are performed before the actual build process.
1616 (build-system gnu-build-system)
05aa576b 1617 (inputs `(("exim" ,exim)))
e90819c4
LG
1618 (home-page "http://www.procmail.org/")
1619 (synopsis "Versatile mail delivery agent (MDA)")
1620 (description "Procmail is a mail delivery agent (MDA) featuring support
1621for a variety of mailbox formats such as mbox, mh and maildir. Incoming mail
1622can be sorted into separate files/directories and arbitrary commands can be
1623executed on mail arrival. Procmail is considered stable, but is no longer
1624maintained.")
1625 (license gpl2+))) ;; procmail allows to choose the
1626 ;; nonfree Artistic License 1.0
1627 ;; as alternative to the GPL2+.
1628 ;; This option is not listed here.
e90819c4 1629
61c30e9d
LF
1630(define-public khard
1631 (package
1632 (name "khard")
4a3495d5 1633 (version "0.11.4")
61c30e9d
LF
1634 (source (origin
1635 (method url-fetch)
1636 (uri (pypi-uri name version))
1637 (sha256
1638 (base32
4a3495d5 1639 "1shhlq6ljbd8095hd82v4mw56rjcfxf1ymmgknbgh8gix02nsxw1"))))
61c30e9d
LF
1640 (build-system python-build-system)
1641 (arguments
a57495e2 1642 `(#:phases
61c30e9d 1643 (modify-phases %standard-phases
61c30e9d
LF
1644 (add-after 'install 'install-doc
1645 (lambda* (#:key outputs #:allow-other-keys)
1646 (let* ((out (assoc-ref outputs "out"))
1647 (doc (string-append out "/share/doc/khard")))
e9eafae2
MB
1648 (copy-recursively "misc/khard" doc)
1649 #t))))
1650 ;; FIXME: check phase fails with
1651 ;; "Config file /tmp/.config/khard/khard.conf not available"
1652 #:tests? #f))
61c30e9d 1653 (propagated-inputs
a57495e2
LF
1654 `(("python-vobject" ,python-vobject)
1655 ("python-pyyaml" ,python-pyyaml)
1656 ("python-atomicwrites" ,python-atomicwrites)
1657 ("python-configobj" ,python-configobj)))
61c30e9d
LF
1658 (synopsis "Console address book using CardDAV")
1659 (description "Khard is an address book for the console. It creates, reads,
1660modifies and removes CardDAV address book entries at your local machine. For
1661synchronizing with a remote address book, @command{vdirsyncer} is recommended.
1662Khard can also be used from within the email client @command{mutt}.")
1663 (home-page "https://github.com/scheibler/khard")
1664 (license gpl3+)))
be0c5733
DM
1665
1666(define-public perl-mail-spf
1667 (package
1668 (name "perl-mail-spf")
1669 (version "v2.9.0")
1670 (source
1671 (origin
1672 (method url-fetch)
1673 (uri (string-append
1674 "mirror://cpan/authors/id/J/JM/JMEHNLE/mail-spf/Mail-SPF-"
1675 version
1676 ".tar.gz"))
1677 (sha256
1678 (base32
1679 "0qk1rfgfm5drj4iyniiabrasrpqv570vzhgz66lwgb67y4amkjv1"))))
1680 (build-system perl-build-system)
1681 (native-inputs
1682 `(("perl-module-build" ,perl-module-build)
1683 ("perl-net-dns-resolver-programmable"
1684 ,perl-net-dns-resolver-programmable)))
1685 (arguments
1686 `(#:phases (modify-phases %standard-phases
1687 (add-before 'configure 'modify-Build.PL
1688 (lambda* (#:key outputs #:allow-other-keys)
1689 (substitute* "Build.PL"
1690 (("'/usr/sbin'") (string-append "'"
1691 (assoc-ref outputs "out")
1692 "/sbin'")))
1693 #t)))))
1694 (inputs
1695 `(("perl-error" ,perl-error)
1696 ("perl-net-dns" ,perl-net-dns)
1697 ("perl-netaddr-ip" ,perl-netaddr-ip)
1698 ("perl-uri" ,perl-uri)))
1699 (home-page
1700 "http://search.cpan.org/dist/Mail-SPF")
1701 (synopsis
1702 "Perl implementation of Sender Policy Framework")
1703 (description "Mail::SPF is the Sender Policy Framework implemented
1704in Perl.")
1705 (license bsd-3)))
24262239
CL
1706
1707(define-public mb2md
1708 (package
1709 (name "mb2md")
1710 (version "3.20")
1711 (source (origin
1712 (method url-fetch)
1713 (uri (string-append
1714 "http://batleth.sapienti-sat.org/projects/mb2md/mb2md-"
1715 version ".pl.gz"))
1716 (sha256
1717 (base32
1718 "0bvkky3c90738h3skd2f1b2yy5xzhl25cbh9w2dy97rs86ssjidg"))))
1719 (build-system trivial-build-system)
1720 (arguments
1721 '(#:modules ((guix build utils))
1722 #:builder
1723 (begin
1724 (use-modules (guix build utils))
1725 (let* ((source (assoc-ref %build-inputs "source"))
1726 (out (assoc-ref %outputs "out"))
1727 (bin (string-append out "/bin"))
1728 (perl (assoc-ref %build-inputs "perl"))
1729 (gzip (assoc-ref %build-inputs "gzip"))
1730 (perl-timedate (assoc-ref %build-inputs "perl-timedate"))
1731 (perl5lib (string-append perl-timedate "/lib/perl5/site_perl")))
1732 (mkdir-p bin)
1733 (with-directory-excursion bin
1734 (copy-file source "mb2md.gz")
1735 (system* (string-append gzip "/bin/gzip") "-d" "mb2md.gz")
1736 (substitute* "mb2md"
1737 (("#!/usr/bin/perl")
1738 (string-append "#!/usr/bin/perl -I " perl5lib)))
1739 (patch-shebang "mb2md" (list (string-append perl "/bin")))
1740 (chmod "mb2md" #o555))
1741 #t))))
1742 (native-inputs `(("gzip", gzip)))
1743 (inputs `(("perl" ,perl)
1744 ("perl-timedate" ,perl-timedate)))
1745 (home-page "http://batleth.sapienti-sat.org/projects/mb2md/")
1746 (synopsis "Mbox to maildir converter")
1747 (description
1748 "Mb2md is a Perl script that takes one or more mbox format files and
1749converts them to maildir format directories.")
1750 (license public-domain)))
e0d7b421
AI
1751
1752(define-public mpop
1753 (package
1754 (name "mpop")
5837e699 1755 (version "1.2.6")
e0d7b421
AI
1756 (source
1757 (origin
1758 (method url-fetch)
175c9103
LF
1759 (uri (string-append "mirror://sourceforge/mpop/mpop/" version
1760 "/mpop-" version ".tar.xz"))
e0d7b421
AI
1761 (sha256
1762 (base32
5837e699 1763 "0p1ix63jh64dibrlccch8q7gxl9nn18wd2qpyr5z1h4gs2fpmv4z"))))
e0d7b421
AI
1764 (build-system gnu-build-system)
1765 (inputs
1766 `(("gnutls" ,gnutls)
1767 ("libidn" ,libidn)))
1768 (native-inputs
1769 `(("pkg-config" ,pkg-config)))
1770 (arguments
1771 `(#:configure-flags (list "--with-tls=gnutls")))
1772 (home-page "http://mpop.sourceforge.net/")
1773 (synopsis "POP3 mail client")
1774 (description "mpop is a small and fast POP3 client suitable as a
1775fetchmail replacement.
1776
1777mpop supports multiple accounts, header based mail filtering, delivery
1778to mbox files, maildir folders or a Mail Delivery Agent (MDA),
1779TLS/SSL, several authentication methods, Internationalized Domain
1780Names (IDN) and SOCKS proxies.")
1781 (license gpl3+)))
74c0282c 1782
1783(define-public mhonarc
1784 (package
1785 (name "mhonarc")
1786 (version "2.6.19")
1787 (source
1788 (origin
1789 (method url-fetch)
1790 (uri (string-append "mirror://cpan/authors/id/E/EH/EHOOD/MHonArc-"
1791 version ".tar.gz"))
1792 (sha256
1793 (base32
1794 "0ll3v93yji334zqp6xfzfxc0127pmjcznmai1l5q6dzawrs2igzq"))))
1795 (build-system perl-build-system)
1796 (home-page "https://www.mhonarc.org/")
1797 (synopsis "Create HTML archives of mail/news messages")
1798 (description
1799 "MHonArc is a Perl mail-to-HTML converter. MHonArc
1800provides HTML mail archiving with index, mail thread linking,
1801etc; plus other capabilities including support for MIME and
1802powerful user customization features.")
1803 (license gpl2+)))
5d87088c
JD
1804
1805
1806(define-public sendmail
1807 (package
1808 (name "sendmail")
1809 (version "8.15.2")
1810 (source
1811 (origin
1812 (method url-fetch)
1813 (uri (string-append
1814 "ftp://ftp.sendmail.org/pub/sendmail/sendmail."
1815 version ".tar.gz"))
1816 (sha256
1817 (base32
1818 "0fdl9ndmspqspdlmghzxlaqk56j3yajk52d7jxcg21b7sxglpy94"))))
1819 (build-system gnu-build-system)
1820 (arguments
1821 `(#:phases
1822 (modify-phases %standard-phases
1823 (add-before 'build 'replace-/bin/sh
1824 (lambda _
1825 (substitute*
1826 (append
1827 (list "smrsh/smrsh.c" "sendmail/conf.c" "contrib/mailprio"
1828 "contrib/mmuegel" "devtools/bin/configure.sh")
1829 (find-files "." ".*\\.m4")
1830 (find-files "." ".*\\.cf"))
19527952 1831 (("/bin/sh") (which "sh")))
5d87088c
JD
1832
1833 (substitute* "devtools/bin/Build"
19527952 1834 (("SHELL=/bin/sh") (string-append "SHELL=" (which "sh"))))
5d87088c
JD
1835 #t))
1836 (replace 'configure
1837 (lambda _
1838
1839 ;; Render harmless any attempts to chown or chgrp
1840 (substitute* "devtools/bin/install.sh"
1841 (("owner=\\$2") "owner=''")
1842 (("group=\\$2") "group=''"))
1843
1844 (with-output-to-file "devtools/Site/site.config.m4"
1845 (lambda ()
1846 (format #t "
1847define(`confCC', `gcc')
1848define(`confOPTIMIZE', `-g -O2')
1849define(`confLIBS', `-lresolv')
1850define(`confINSTALL', `~a/devtools/bin/install.sh')
1851define(`confDEPEND_TYPE', `CC-M')
1852define(`confINST_DEP', `')
1853" (getcwd))))))
1854 (replace 'build
1855 (lambda _
1856 (and (zero? (system* "sh" "Build"))
1857 (with-directory-excursion "cf/cf"
1858 (begin
1859 (copy-file "generic-linux.mc" "sendmail.mc")
1860 (zero? (system* "sh" "Build" "sendmail.cf")))))))
1861 (add-before 'install 'pre-install
1862 (lambda _
1863 (let ((out (assoc-ref %outputs "out")))
1864 (mkdir-p (string-append out "/usr/bin"))
1865 (mkdir-p (string-append out "/usr/sbin"))
1866 (mkdir-p (string-append out "/etc/mail"))
1867 (setenv "DESTDIR" out)
1868 (with-directory-excursion "cf/cf"
1869 (zero? (system* "sh" "Build" "install-cf")))))))
1870 ;; There is no make check. There are some post installation tests, but those
1871 ;; require root privileges
1872 #:tests? #f))
1873 (inputs
1874 `(("m4" ,m4)
1875 ("perl" ,perl)))
1876 (home-page "http://sendmail.org")
1877 (synopsis
1878 "Highly configurable Mail Transfer Agent (MTA)")
1879 (description
1880 "Sendmail is a mail transfer agent (MTA) originally developed by Eric
1881Allman. It is highly configurable and supports many delivery methods and many
1882transfer protocols.")
1883 (license (non-copyleft "file://LICENSE"
1884 "See LICENSE in the distribution."))))
1885
8b53366c 1886(define-public opensmtpd
1887 (package
1888 (name "opensmtpd")
eb4b3e4b 1889 (version "6.0.2p1")
8b53366c 1890 (source (origin
1891 (method url-fetch)
1892 (uri (string-append "https://www.opensmtpd.org/archives/"
1893 name "-" version ".tar.gz"))
1894 (sha256
1895 (base32
eb4b3e4b 1896 "1b4h64w45hpmfq5721smhg4s0shs64gbcjqjpx3fbiw4hz8bdy9a"))))
8b53366c 1897 (build-system gnu-build-system)
1898 (inputs
1899 `(("bdb" ,bdb)
1900 ("libressl" ,libressl)
1901 ("libevent" ,libevent)
1902 ("libasr" ,libasr)
1903 ("linux-pam" ,linux-pam)
1904 ("zlib" ,zlib)))
1905 (native-inputs
d7da7604
SB
1906 `(("bison" ,bison)
1907 ("groff" ,groff)))
8b53366c 1908 (arguments
ae1e2133
SB
1909 `(#:configure-flags
1910 (list "--with-table-db" "--localstatedir=/var"
1911 "--with-user-smtpd=smtpd" "--with-user-queue=smtpq"
1912 "--with-group-queue=smtpq"
1913 "--with-path-socket=/var/run"
1914 "--with-path-CAfile=/etc/ssl/certs/ca-certificates.crt")
8b53366c 1915 #:phases
1916 (modify-phases %standard-phases
1917 ;; OpenSMTPD provides a single utility smtpctl to control the daemon and
1918 ;; the local submission subsystem. To accomodate systems that require
1919 ;; historical interfaces such as sendmail, newaliases or makemap, the
1920 ;; smtpctl utility can operate in compatibility mode if called with the
1921 ;; historical name.
1922 (add-after 'install 'install-compabilitymode
1923 (lambda _
1924 (let* ((out (assoc-ref %outputs "out"))
1925 (sbin (string-append out "/sbin/")))
1926 (for-each (lambda (cmd)
1927 (symlink "smtpctl" (string-append sbin cmd)))
1928 '("makemap" "sendmail" "send-mail"
1929 "newaliases" "mailq")))
1930 #t)))))
1931 (synopsis "Lightweight SMTP daemon")
1932 (description
1933 "OpenSMTPD is an implementation of the server-side SMTP protocol, with
1934some additional standard extensions. It allows ordinary machines to exchange
1935e-mails with other systems speaking the SMTP protocol.")
1936 (home-page "https://www.opensmtpd.org")
1937 (license (list bsd-2 bsd-3 bsd-4 (non-copyleft "file://COPYING")
19262a71 1938 public-domain isc license:openssl))))
152ffe7c 1939
1940(define-public opensmtpd-extras
1941 (package
1942 (name "opensmtpd-extras")
1943 (version "5.7.1")
1944 (source (origin
1945 (method url-fetch)
1946 (uri (string-append "https://www.opensmtpd.org/archives/"
1947 name "-" version ".tar.gz"))
1948 (sha256
1949 (base32
1950 "1kld4hxgz792s0cb2gl7m2n618ikzqkj88w5dhaxdrxg4x2c4vdm"))))
1951 (build-system gnu-build-system)
1952 (inputs
1953 `(("libressl" ,libressl)
1954 ("libevent" ,libevent)
1955 ("libasr" ,libasr)
1956 ("python-2" ,python-2)
1957 ("opensmtpd" ,opensmtpd)
1958 ("perl" ,perl)
1959 ("lua" ,lua)
1960 ("postgresql" ,postgresql)
1961 ("sqlite" ,sqlite)
1962 ("linux-pam" ,linux-pam)))
1963 (native-inputs
1964 `(("bison" ,bison)
1965 ("pkg-config" ,pkg-config)
1966 ("groff" ,groff)
1967 ("automake" ,automake)
1968 ("autoconf" ,autoconf)))
1969 (arguments
1970 `(;; We have to configure it like this because the default checks for for example
1971 ;; python in /usr/local/bin, /usr/bin and fails otherwise.
1972 #:configure-flags (list
1973 "--with-filter-clamav" "--with-filter-dkim-signer"
1974 "--with-filter-dnsbl" "--with-filter-lua"
1975 "--with-filter-monkey" "--with-filter-pause"
1976 "--with-filter-perl" "--with-filter-python"
1977 "--with-filter-regex" "--with-filter-spamassassin"
1978 "--with-filter-stub" "--with-filter-trace"
1979 "--with-filter-void"
1980
1981 "--with-queue-null" "--with-queue-python"
1982 "--with-queue-ram" "--with-queue-stub"
1983
1984 "--with-scheduler-python" "--with-scheduler-ram"
1985 "--with-scheduler-stub"
1986
1987 "--with-table-ldap" ; "--with-table-mysql"
1988 "--with-table-passwd" "--with-table-postgres"
1989 "--with-table-python" "--with-table-socketmap"
1990 "--with-table-sqlite" "--with-table-stub"
1991 ;;"--with-table-redis" ; TODO: package hiredis
1992
1993 "--with-user=smtpd" "--with-privsep-user=smtpd"
1994 "--localstatedir=/var" "--sysconfdir=/etc"
1995 "--with-lua-type=lua" ; can use lua or luajit
1996
1997 (string-append "--with-python="
1998 (assoc-ref %build-inputs "python-2"))
1999 (string-append "--with-lua="
2000 (assoc-ref %build-inputs "lua")))))
19262a71
LC
2001 (license (list bsd-2 bsd-3 bsd-4
2002 public-domain isc license:openssl))
152ffe7c 2003 (synopsis "Extra tables, filters, and various other addons for OpenSMTPD")
2004 (description
2005 "This package provides extra tables, filters, and various other addons
2006for OpenSMTPD to extend its functionality.")
2007 (home-page "https://www.opensmtpd.org")))
6d3dda4f 2008
2009(define-public python-mailmanclient
2010 (package
2011 (name "python-mailmanclient")
2012 (version "1.0.1")
2013 (source
2014 (origin
2015 (method url-fetch)
2016 (uri (pypi-uri "mailmanclient" version))
2017 (sha256
2018 (base32
2019 "1cfjh45fgbsax5hjj2inq9nk33dhdvh63xhysc8dhnqidgqgm8c5"))))
2020 (build-system python-build-system)
2021 (arguments
2022 `(#:tests? #f)) ; Requires mailman running
f22efa01 2023 (propagated-inputs
6d3dda4f 2024 `(("python-six" ,python-six)
2025 ("python-httplib2" ,python-httplib2)))
2026 (home-page "https://launchpad.net/mailman.client")
2027 (synopsis "Python bindings for the Mailman 3 REST API")
2028 (description
2029 "The mailmanclient library provides official Python bindings for
2030the GNU Mailman 3 REST API.")
6d3dda4f 2031 (license lgpl3+)))
2032
2033(define-public python2-mailmanclient
5c31f4aa 2034 (package-with-python2 python-mailmanclient))
3163a289 2035
2036(define-public mlmmj
2037 (package
2038 (name "mlmmj")
2039 (version "1.2.19.0")
2040 (source
2041 (origin
2042 (method url-fetch)
2043 (uri (string-append "http://mlmmj.org/releases/mlmmj-"
2044 version ".tar.bz2"))
2045 (sha256
2046 (base32
2047 "1piwvcxkqadjwk5x8jicaiyz9nngmaj3w13ghdqgaki32xd7zk9v"))))
2048 (build-system gnu-build-system)
2049 (inputs
2050 `(("perl" ,perl))) ; For "contrib/web/"
2051 (native-inputs
2052 `(("pkg-config" ,pkg-config)))
2053 (arguments
2054 `(#:configure-flags
2055 ;; mlmmj-receive-strip is a replacement for mlmmj-receive
2056 ;; It opens the files control/mimedeny and control/mimestrip to get a list
2057 ;; of mimetypes for parts of multipart/mime messages that should be denied
2058 ;; or stripped. The parts then get stripped directly when the mail is
2059 ;; received. mlmmj-receive-strip also appends an extra header
2060 ;; X-ThisMailContainsUnwantedMimeParts: Y when the mail contains unwanted
2061 ;; mime parts
2062 (list "--enable-receive-strip")
2063 #:phases
2064 (modify-phases %standard-phases
2065 (add-before 'install 'install-contrib
2066 (lambda* (#:key outputs #:allow-other-keys)
2067 (let* ((out (assoc-ref outputs "out"))
2068 (share (string-append out "/share/mlmmj"))
2069 (contrib (string-append share "/contrib/web"))
2070 (texts (string-append share "/listtexts")))
2071 (copy-recursively "contrib/web/" contrib)
2072 (copy-recursively "listtexts" texts)
2073 (rename-file texts (string-append share "/texts"))
2074 #t))))))
2075 (home-page "http://mlmmj.org")
2076 (synopsis "Mailing list managing made joyful")
2077 (description
2078 "Mlmmj is a simple and slim mailing list manager (MLM) inspired by ezmlm.
2079It works with many different Mail Transport Agents (MTAs) and is simple for a
d1e4ad1b 2080system administrator to install, configure and integrate with other software.
3163a289 2081As it uses very few resources, and requires no daemons, it is ideal for
2082installation on systems where resources are limited. Its features include:
2083@enumerate
2084@item Archive, Custom headers / footer,
2085@item Fully automated bounce handling (similar to ezmlm),
2086@item Complete requeueing functionality, Moderation functionality, Subject prefix,
2087@item Subscribers only posting, Regular expression access control,
2088@item Functionality to retrieve old posts, Web interface, Digests,
2089@item No-mail subscription, VERP support,
2090@item Delivery Status Notification (RFC1891) support,
2091@item Rich and customisable texts for automated operations.
2092@end enumerate\n")
2093 (license license:expat)))
3a263368 2094
8a3741e6 2095(define-public python-django-mailman3
2096 (package
2097 (name "python-django-mailman3")
2098 (version "1.0.1")
2099 (source
2100 (origin
2101 (method url-fetch)
2102 (uri (pypi-uri "django-mailman3" version))
2103 (sha256
2104 (base32
2105 "1adxyh8knw9knjlh73xq0jpn5adml0ck4alsv0swakm95wfyx46z"))))
2106 (build-system python-build-system)
2107 (inputs
99a8c8bd 2108 `(("python-django" ,python-django)))
8a3741e6 2109 (propagated-inputs
2110 `(("python-requests" ,python-requests)
2111 ("python-requests-oauthlib" ,python-requests-oauthlib)
2112 ("python-openid" ,python-openid)
2113 ("python-mailmanclient" ,python-mailmanclient)
2114 ("python-django-allauth" ,python-django-allauth)
2115 ("python-django-gravatar2" ,python-django-gravatar2)
2116 ("python-pytz" ,python-pytz)))
2117 (home-page "https://gitlab.com/mailman/django-mailman3")
2118 (synopsis "Django library for Mailman UIs")
2119 (description
2120 "Libraries and templates for Django-based interfaces
2121interacting with Mailman.")
2122 (license gpl3+)))
2123
2124(define-public python2-django-mailman3
2125 (let ((base (package-with-python2
2126 python-django-mailman3)))
2127 (package
2128 (inherit base)
2129 (propagated-inputs
2130 `(("python2-openid" ,python2-openid)
2131 ,@(package-propagated-inputs base))))))
2132
d99a2add 2133(define-public postorius
2134 (package
2135 (name "postorius")
2136 (version "1.0.3")
2137 (source
2138 (origin
2139 (method url-fetch)
2140 (uri (pypi-uri "postorius" version "+post2.tar.gz"))
2141 (file-name (string-append name "-" version ".tar.gz"))
2142 (sha256
2143 (base32
2144 "1wymcpv2icjjy8h1ni52p6dr7wwxf71ivqgbqhzx4i82yqphcaq5"))))
2145 (build-system python-build-system)
2146 (arguments
2147 `(; One test dependency relies on Persona, which was shut down in
2148 ;; November 2016.
2149 #:tests? #f
2150 ;; The part of the frontend of Mailman is still python 2.7.
2151 #:python ,python-2))
2152 (inputs
2153 `(("python2-django" ,python2-django)
2154 ("python2-django-mailman3" ,python2-django-mailman3)
2155 ("python2-mailmanclient" ,python2-mailmanclient)))
2156 (home-page "https://gitlab.com/mailman/postorius")
2157 (synopsis "Web user interface for GNU Mailman")
2158 (description
2159 "Postorius is a Django app which provides a web user interface
2160to access GNU Mailman.")
2161 (license (list gpl3+ lgpl3+))))
2162
3a263368 2163(define-public blists
2164 (package
2165 (name "blists")
2166 (version "1.0")
2167 (source
2168 (origin
2169 (method url-fetch)
2170 (uri (string-append "http://download.openwall.net/pub/projects/"
2171 "blists/blists-" version ".tar.gz"))
2172 (sha256
2173 (base32
2174 "1gp51kmb8yv8d693wcpdslmwlbw5w2kgz4kxhrcaf7y89w8wy4qd"))))
2175 (build-system gnu-build-system)
2176 (arguments
2177 `(#:tests? #f ; No tests
2178 #:phases
2179 (modify-phases %standard-phases
2180 (delete 'configure)
2181 (replace 'install
2182 (lambda* (#:key outputs #:allow-other-keys)
2183 (let* ((out (assoc-ref outputs "out"))
2184 (bin (string-append out "/bin")))
2185 (install-file "bindex" bin)
2186 (install-file "bit" bin)
2187 #t))))))
2188 (home-page "http://www.openwall.com/blists/")
2189 (synopsis "Web interface to mailing list archives")
2190 (description
2191 "Blists is a web interface to mailing list archives that works off
2192indexed mbox files. There are two programs: @code{bindex} and @code{bit}.
2193@code{bindex} generates or updates the index file (incremental updates
2194are supported). @code{bit} is a CGI/SSI program that generates web pages
2195on the fly. Both programs are written in C and are very fast.")
2196 (license license:expat)))
ed428a58
AI
2197
2198(define-public swaks
2199 (package
2200 (name "swaks")
2201 (version "20170101.0")
2202 (source
2203 (origin
2204 (method url-fetch)
2205 (uri (string-append
2206 "http://jetmore.org/john/code/swaks/files/swaks-"
2207 version ".tar.gz"))
2208 (sha256
2209 (base32
2210 "0pli4mlhasnqqxmmxalwyg3x7n2vhcbgsnp2xgddamjavv82vrl4"))))
2211 (build-system perl-build-system)
2212 (inputs
2213 `(("perl-net-dns" ,perl-net-dns)
2214 ("perl-net-ssleay" ,perl-net-ssleay)))
2215 (arguments
2216 `(#:tests? #f ; No tests
2217 #:phases
2218 (modify-phases %standard-phases
2219 (delete 'configure)
2220 (replace 'build
2221 (lambda _
2222 (zero? (system* "pod2man" "doc/ref.pod" "swaks.1"))))
2223 (replace 'install
2224 (lambda* (#:key outputs #:allow-other-keys)
2225 (let ((out (assoc-ref outputs "out")))
2226 (install-file "swaks" (string-append out "/bin"))
2227 (install-file "swaks.1" (string-append out "/share/man/man1")))
2228 #t))
2229 (add-after 'install 'wrap-program
2230 (lambda* (#:key outputs #:allow-other-keys)
2231 (wrap-program (string-append (assoc-ref outputs "out")
2232 "/bin/swaks")
2233 `("PERL5LIB" ":" = (,(getenv "PERL5LIB"))))
2234 #t)))))
2235 (home-page "http://jetmore.org/john/code/swaks/")
2236 (synopsis "Featureful SMTP test tool")
2237 (description "Swaks is a flexible, scriptable, transaction-oriented SMTP
2238test tool. It handles SMTP features and extensions such as TLS,
2239authentication, and pipelining; multiple versions of the SMTP protocol
2240including SMTP, ESMTP, and LMTP; and multiple transport methods including
2241unix-domain sockets, internet-domain sockets, and pipes to spawned processes.
2242Options can be specified in environment variables, configuration files, and
2243the command line allowing maximum configurability and ease of use for
2244operators and scripters.")
2245 (license gpl2+)))
b0eb2af2 2246
2247(define-public alpine
2248 (package
2249 (name "alpine")
2250 (version "2.21")
2251 (source
2252 (origin
2253 (method url-fetch)
2254 ;; There are two versions: the plain continuation of Alpine without extra
2255 ;; patches and the version which adds extra fixes. Every distro uses
2256 ;; the patched version, and so do we to not break expectations.
32f9cc33 2257 ;; http://alpine.freeiz.com/alpine/readme/README.patches
2258 (uri (string-append "http://alpine.freeiz.com/alpine/patches/alpine-"
b0eb2af2 2259 version "/alpine-" version ".tar.xz"))
2260 (sha256
2261 (base32
2262 "1k9hcfjywfk3mpsl71hjza3nk6icgf1b6xxzgx10kdzg5yci5x5m"))))
2263 (build-system gnu-build-system)
2264 (arguments
2265 `(#:make-flags (list "CC=gcc")
2266 #:configure-flags (list (string-append "--with-ssl-include-dir="
2267 (assoc-ref %build-inputs "openssl")
2268 "/include/openssl")
2269 (string-append "--with-ssl-dir="
2270 (assoc-ref %build-inputs "openssl"))
2271 (string-append "--with-ssl-certs-dir="
2272 "/etc/ssl/certs/")
2273 (string-append "--with-ssl-lib-dir="
2274 (assoc-ref %build-inputs "openssl")
2275 "/lib")
2276 (string-append "--with-interactive-spellcheck="
2277 (assoc-ref %build-inputs "aspell")
2278 "/bin/aspell"))
2279 #:phases
2280 (modify-phases %standard-phases
2281 (add-after 'unpack 'make-reproducible
2282 (lambda _
2283 ;; This removes time-dependent code to make alpine reproducible.
2284 (substitute* "pico/blddate.c"
2285 (("%02d-%s-%d") "1970-01-01"))
2286 (substitute* (list "alpine/Makefile.in"
2287 "web/src/alpined.d/Makefile.in")
2288 (("`date`") "1970-01-01"))
2289 #t)))))
2290 (inputs
2291 `(("ncurses" ,ncurses)
2292 ("openssl" ,openssl)
2293 ("gnutls" ,gnutls)
2294 ("openldap" ,openldap)
2295 ("cyrus-sasl" ,cyrus-sasl)
2296 ("mit-krb5" ,mit-krb5)
2297 ("aspell" ,aspell)
2298 ("tcl" ,tcl)
2299 ("linux-pam" ,linux-pam)))
32f9cc33 2300 (home-page "http://alpine.freeiz.com/alpine/")
b0eb2af2 2301 (synopsis "Alternatively Licensed Program for Internet News and Email")
2302 (description
2303 "Alpine is a text-based mail and news client. Alpine includes several
2304tools and applications:
2305@enumerate
2306@item alpine, the Alpine mailer
2307@item pico, the standalone text editor, GNU nano's predecessor
2308@item pilot, the standalone file system navigator
2309@end enumerate\n")
2310 (license asl2.0)))
7c16151a
RS
2311
2312(define-public balsa
2313 (package
2314 (name "balsa")
2315 (version "2.5.3")
2316 (source
2317 (origin
2318 (method url-fetch)
2319 (uri (string-append "https://pawsa.fedorapeople.org/balsa/balsa-"
2320 version ".tar.bz2"))
2321 (sha256
2322 (base32
2323 "15jkwp3ylbwd8iha4dr37z1xb6mkk31ym90vv3h2a5xk2rmym5mq"))))
2324 (build-system gnu-build-system)
2325 (arguments
2326 `(#:configure-flags
2327 '(;; Balsa tries to install additional MIME icons
2328 ;; under gtk+ directory.
2329 "--enable-extra-mimeicons=no"
2330 "--with-gtksourceview"
2331 "--with-canberra"
2332 "--with-spell-checker=gtkspell"
2333 "--with-gpgme"
2334 "--with-sqlite"
2335 "--with-compface"
2336 "--with-ldap")))
2337 (inputs
2338 `(("cyrus-sasl" ,cyrus-sasl)
2339 ("enchant" ,enchant)
2340 ("gdk-pixbuf" ,gdk-pixbuf)
2341 ("gmime" ,gmime)
2342 ("gnutls" ,gnutls)
2343 ("gpgme" ,gpgme)
2344 ("gtk+" ,gtk+)
2345 ("gtksourceview" ,gtksourceview)
2346 ("gtkspell3" ,gtkspell3)
2347 ("libcanberra" ,libcanberra)
2348 ("libesmtp" ,libesmtp)
2349 ("libnotify" ,libnotify)
2350 ("openldap" ,openldap)
2351 ("sqlite" ,sqlite)
2352 ("webkitgtk" ,webkitgtk)))
2353 (native-inputs
2354 `(("compface" ,compface)
2355 ("glib" ,glib "bin")
2356 ("intltool" ,intltool)
2357 ("pkg-config" ,pkg-config)
2358 ("yelp-tools" ,yelp-tools)))
2359 (home-page "https://pawsa.fedorapeople.org/balsa")
2360 (synopsis "E-mail client for GNOME")
2361 (description "Balsa is a highly configurable and robust mail client for
2362the GNOME desktop. It supports both POP3 and IMAP servers as well as the
2363mbox, maildir and mh local mailbox formats. Balsa also supports SMTP and/or
b95d5f62 2364the use of a local MTA such as Sendmail.")
7c16151a 2365 (license gpl3+)))