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