| 1 | ;;; GNU Guix --- Functional package management for GNU |
| 2 | ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> |
| 3 | ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> |
| 4 | ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net> |
| 5 | ;;; Copyright © 2014 Sou Bunnbu <iyzsong@gmail.com> |
| 6 | ;;; Copyright © 2014 Julien Lepiller <julien@lepiller.eu> |
| 7 | ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> |
| 8 | ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> |
| 9 | ;;; |
| 10 | ;;; This file is part of GNU Guix. |
| 11 | ;;; |
| 12 | ;;; GNU Guix is free software; you can redistribute it and/or modify it |
| 13 | ;;; under the terms of the GNU General Public License as published by |
| 14 | ;;; the Free Software Foundation; either version 3 of the License, or (at |
| 15 | ;;; your option) any later version. |
| 16 | ;;; |
| 17 | ;;; GNU Guix is distributed in the hope that it will be useful, but |
| 18 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of |
| 19 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 20 | ;;; GNU General Public License for more details. |
| 21 | ;;; |
| 22 | ;;; You should have received a copy of the GNU General Public License |
| 23 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. |
| 24 | |
| 25 | (define-module (gnu packages mail) |
| 26 | #:use-module (gnu packages) |
| 27 | #:use-module (gnu packages autotools) |
| 28 | #:use-module (gnu packages base) |
| 29 | #:use-module (gnu packages backup) |
| 30 | #:use-module (gnu packages curl) |
| 31 | #:use-module (gnu packages cyrus-sasl) |
| 32 | #:use-module (gnu packages databases) |
| 33 | #:use-module (gnu packages dejagnu) |
| 34 | #:use-module (gnu packages emacs) |
| 35 | #:use-module (gnu packages enchant) |
| 36 | #:use-module (gnu packages gdbm) |
| 37 | #:use-module (gnu packages ghostscript) |
| 38 | #:use-module (gnu packages glib) |
| 39 | #:use-module (gnu packages gnome) |
| 40 | #:use-module (gnu packages gnupg) |
| 41 | #:use-module (gnu packages gnutls) |
| 42 | #:use-module (gnu packages gsasl) |
| 43 | #:use-module (gnu packages gtk) |
| 44 | #:use-module (gnu packages guile) |
| 45 | #:use-module (gnu packages libcanberra) |
| 46 | #:use-module (gnu packages libidn) |
| 47 | #:use-module (gnu packages linux) |
| 48 | #:use-module (gnu packages m4) |
| 49 | #:use-module (gnu packages databases) |
| 50 | #:use-module (gnu packages ncurses) |
| 51 | #:use-module (gnu packages openssl) |
| 52 | #:use-module (gnu packages pcre) |
| 53 | #:use-module (gnu packages perl) |
| 54 | #:use-module (gnu packages python) |
| 55 | #:use-module (gnu packages readline) |
| 56 | #:use-module (gnu packages search) |
| 57 | #:use-module (gnu packages texinfo) |
| 58 | #:use-module (gnu packages compression) |
| 59 | #:use-module (gnu packages glib) |
| 60 | #:use-module (gnu packages pkg-config) |
| 61 | #:use-module (gnu packages flex) |
| 62 | #:use-module (gnu packages gdb) |
| 63 | #:use-module (gnu packages samba) |
| 64 | #:use-module (gnu packages xml) |
| 65 | #:use-module (gnu packages xorg) |
| 66 | #:use-module ((guix licenses) |
| 67 | #:select (gpl2 gpl2+ gpl3+ lgpl2.1+ lgpl3+ non-copyleft)) |
| 68 | #:use-module (guix packages) |
| 69 | #:use-module (guix download) |
| 70 | #:use-module (guix utils) |
| 71 | #:use-module (guix build-system gnu) |
| 72 | #:use-module (guix build-system python)) |
| 73 | |
| 74 | (define-public mailutils |
| 75 | (package |
| 76 | (name "mailutils") |
| 77 | (version "2.2") |
| 78 | (source (origin |
| 79 | (method url-fetch) |
| 80 | (uri (string-append "mirror://gnu/mailutils/mailutils-" |
| 81 | version ".tar.bz2")) |
| 82 | (sha256 |
| 83 | (base32 |
| 84 | "0szbqa12zqzldqyw97lxqax3ja2adis83i7brdfsxmrfw68iaf65")) |
| 85 | (patches (list (search-patch "m4-gets-undeclared.patch"))))) |
| 86 | (build-system gnu-build-system) |
| 87 | (arguments |
| 88 | '(;; TODO: Add `--with-sql'. |
| 89 | #:phases (alist-cons-before |
| 90 | 'build 'pre-build |
| 91 | (lambda _ |
| 92 | ;; Use Guile 2.0's public API. |
| 93 | (substitute* "libmu_scm/mu_message.c" |
| 94 | (("scm_i_string_length") |
| 95 | "scm_c_string_length")) |
| 96 | |
| 97 | ;; This file should be generated to use the right |
| 98 | ;; value of $(libdir) et al. |
| 99 | (delete-file "libmu_scm/mailutils.scm") |
| 100 | |
| 101 | ;; Use the right file name for `cat'. |
| 102 | (substitute* "testsuite/lib/mailutils.exp" |
| 103 | (("/bin/cat") |
| 104 | (which "cat")))) |
| 105 | %standard-phases) |
| 106 | #:parallel-tests? #f)) |
| 107 | (inputs |
| 108 | `(("dejagnu" ,dejagnu) |
| 109 | ("m4" ,m4) |
| 110 | ("texinfo" ,texinfo) |
| 111 | ("guile" ,guile-2.0) |
| 112 | ("gnutls" ,gnutls) |
| 113 | ("ncurses" ,ncurses) |
| 114 | |
| 115 | ;; With Readline 6.3, examples/pop3client.c fails to build because it |
| 116 | ;; uses the now undefined 'CPPFunction' type. |
| 117 | ("readline" ,readline-6.2) |
| 118 | |
| 119 | ("linux-pam" ,linux-pam) |
| 120 | ("libltdl" ,libltdl) |
| 121 | ("gdbm" ,gdbm))) |
| 122 | (home-page "http://www.gnu.org/software/mailutils/") |
| 123 | (synopsis "Utilities and library for reading and serving mail") |
| 124 | (description |
| 125 | "GNU Mailutils is a collection of programs for managing, viewing and |
| 126 | processing electronic mail. It contains both utilities and server daemons |
| 127 | and all operate in a protocol-agnostic way. The underlying libraries are |
| 128 | also available, simplifying the addition of mail capabilities to new |
| 129 | software.") |
| 130 | (license |
| 131 | ;; Libraries are under LGPLv3+, and programs under GPLv3+. |
| 132 | (list gpl3+ lgpl3+)))) |
| 133 | |
| 134 | (define-public fetchmail |
| 135 | (package |
| 136 | (name "fetchmail") |
| 137 | (version "6.3.26") |
| 138 | (source (origin |
| 139 | (method url-fetch) |
| 140 | (uri (string-append "mirror://sourceforge/fetchmail/branch_6.3/fetchmail-" |
| 141 | version ".tar.xz")) |
| 142 | (sha256 |
| 143 | (base32 |
| 144 | "0l78ayvi9dm8hd190gl139cs2xqsrf7r9ncilslw20mgvd6cbd3r")))) |
| 145 | (build-system gnu-build-system) |
| 146 | (inputs |
| 147 | `(("openssl" ,openssl))) |
| 148 | (arguments |
| 149 | `(#:configure-flags (list (string-append "--with-ssl=" |
| 150 | (assoc-ref %build-inputs "openssl"))))) |
| 151 | (home-page "http://www.fetchmail.info/") |
| 152 | (synopsis "Remote-mail retrieval and forwarding utility") |
| 153 | (description |
| 154 | "Fetchmail is a full-featured, robust, well-documented remote-mail |
| 155 | retrieval and forwarding utility intended to be used over on-demand |
| 156 | TCP/IP links (such as SLIP or PPP connections). It supports every |
| 157 | remote-mail protocol now in use on the Internet: POP2, POP3, RPOP, APOP, |
| 158 | KPOP, all flavors of IMAP, ETRN, and ODMR. It can even support IPv6 |
| 159 | and IPSEC. |
| 160 | |
| 161 | Fetchmail retrieves mail from remote mail servers and forwards it via SMTP, |
| 162 | so it can then be read by normal mail user agents such as mutt, elm |
| 163 | or BSD Mail. It allows all your system MTA's filtering, forwarding, and |
| 164 | aliasing facilities to work just as they would on normal mail.") |
| 165 | (license gpl2+))) ; most files are actually public domain or x11 |
| 166 | |
| 167 | (define-public mutt |
| 168 | (package |
| 169 | (name "mutt") |
| 170 | (version "1.5.23") |
| 171 | (source (origin |
| 172 | (method url-fetch) |
| 173 | (uri (list ;; Temporarily put bitbucket first, because |
| 174 | ;; ftp.mutt.org has been down for a while. |
| 175 | (string-append "https://bitbucket.org/mutt/mutt/downloads/mutt-" |
| 176 | version ".tar.gz") |
| 177 | (string-append "ftp://ftp.mutt.org/mutt/devel/mutt-" |
| 178 | version ".tar.gz"))) |
| 179 | (sha256 |
| 180 | (base32 |
| 181 | "0dzx4qk50pjfsb6cs5jahng96a52k12f7pm0sc78iqdrawg71w1s")) |
| 182 | (patches (list (search-patch "mutt-CVE-2014-9116.patch"))))) |
| 183 | (build-system gnu-build-system) |
| 184 | (inputs |
| 185 | `(("cyrus-sasl" ,cyrus-sasl) |
| 186 | ("gpgme" ,gpgme) |
| 187 | ("ncurses" ,ncurses) |
| 188 | ("openssl" ,openssl) |
| 189 | ("perl" ,perl))) |
| 190 | (arguments |
| 191 | `(#:configure-flags '("--enable-smtp" |
| 192 | "--enable-imap" |
| 193 | "--enable-pop" |
| 194 | "--enable-gpgme" |
| 195 | "--with-ssl" |
| 196 | "--with-sasl" |
| 197 | ;; so that mutt does not check whether the path |
| 198 | ;; exists, which it does not in the chroot |
| 199 | "--with-mailpath=/var/mail"))) |
| 200 | (home-page "http://www.mutt.org/") |
| 201 | (synopsis "Mail client") |
| 202 | (description |
| 203 | "Mutt is a small but very powerful text-based mail client for Unix |
| 204 | operating systems.") |
| 205 | (license gpl2+))) |
| 206 | |
| 207 | (define-public gmime |
| 208 | (package |
| 209 | (name "gmime") |
| 210 | (version "2.6.19") |
| 211 | (source (origin |
| 212 | (method url-fetch) |
| 213 | (uri (string-append "mirror://gnome/sources/gmime/" |
| 214 | (version-major+minor version) |
| 215 | "/gmime-" version ".tar.xz")) |
| 216 | (sha256 |
| 217 | (base32 |
| 218 | "0jm1fgbjgh496rsc0il2y46qd4bqq2ln9168p4zzh68mk4ml1yxg")))) |
| 219 | (build-system gnu-build-system) |
| 220 | (native-inputs |
| 221 | `(("pkg-config" ,pkg-config) |
| 222 | ("gnupg" ,gnupg))) ; for tests only |
| 223 | (inputs `(("glib" ,glib) |
| 224 | ("gpgme" ,gpgme) |
| 225 | ("zlib" ,zlib))) |
| 226 | (arguments |
| 227 | `(#:phases |
| 228 | (alist-cons-after |
| 229 | 'unpack 'patch-paths-in-tests |
| 230 | (lambda _ |
| 231 | ;; The test programs run several programs using 'system' with |
| 232 | ;; hard-coded paths. Here we patch them all. We also change "gpg" |
| 233 | ;; to "gpg2". We use ISO-8859-1 here because test-iconv.c contains |
| 234 | ;; raw byte sequences in several different encodings. |
| 235 | (with-fluids ((%default-port-encoding #f)) |
| 236 | (substitute* (find-files "tests" "\\.c$") |
| 237 | (("(system *\\(\")(/[^ ]*)" all pre prog-path) |
| 238 | (let* ((base (basename prog-path)) |
| 239 | (prog (which (if (string=? base "gpg") "gpg2" base)))) |
| 240 | (string-append pre (or prog (error "not found: " base)))))))) |
| 241 | %standard-phases))) |
| 242 | (home-page "http://spruce.sourceforge.net/gmime/") |
| 243 | (synopsis "MIME message parser and creator library") |
| 244 | (description |
| 245 | "GMime provides a core library and set of utilities which may be used for |
| 246 | the creation and parsing of messages using the Multipurpose Internet Mail |
| 247 | Extension (MIME).") |
| 248 | (license (list lgpl2.1+ gpl2+ gpl3+)))) |
| 249 | |
| 250 | (define-public bogofilter |
| 251 | (package |
| 252 | (name "bogofilter") |
| 253 | (version "1.2.4") |
| 254 | (source (origin |
| 255 | (method url-fetch) |
| 256 | (uri (string-append "mirror://sourceforge/bogofilter/bogofilter-" |
| 257 | version "/bogofilter-" |
| 258 | version ".tar.bz2")) |
| 259 | (sha256 |
| 260 | (base32 |
| 261 | "1d56n2m9inm8gnzm88aa27xl2a7sp7aff3484vmflpqkinjqf0p1")))) |
| 262 | (build-system gnu-build-system) |
| 263 | (arguments |
| 264 | '(#:phases (alist-cons-before |
| 265 | 'check 'pre-check |
| 266 | (lambda _ |
| 267 | (substitute* "src/tests/t.frame" |
| 268 | (("GREP=/bin/grep") |
| 269 | (string-append "GREP=" (which "grep") "\n")))) |
| 270 | %standard-phases))) |
| 271 | (native-inputs `(("flex" ,flex))) |
| 272 | (inputs `(("bdb" ,bdb))) |
| 273 | (home-page "http://bogofilter.sourceforge.net/") |
| 274 | (synopsis "Mail classifier based on a Bayesian filter") |
| 275 | (description |
| 276 | "Bogofilter is a mail filter that classifies mail as spam or ham |
| 277 | (non-spam) by a statistical analysis of the message's header and |
| 278 | content (body). The program is able to learn from the user's classifications |
| 279 | and corrections. It is based on a Bayesian filter.") |
| 280 | (license gpl2))) |
| 281 | |
| 282 | (define-public offlineimap |
| 283 | (package |
| 284 | (name "offlineimap") |
| 285 | (version "6.5.5") |
| 286 | (source (origin |
| 287 | (method url-fetch) |
| 288 | (uri (string-append "https://github.com/OfflineIMAP/offlineimap/" |
| 289 | "archive/v" version ".tar.gz")) |
| 290 | (file-name (string-append name "-" version ".tar.gz")) |
| 291 | (sha256 |
| 292 | (base32 |
| 293 | "00k84qagph3xnxss6rkxm61x07ngz8fvffx4z9jyw5baf3cdd32p")))) |
| 294 | (build-system python-build-system) |
| 295 | (native-inputs `(("python" ,python-2))) |
| 296 | (arguments |
| 297 | ;; The setup.py script expects python-2. |
| 298 | `(#:python ,python-2 |
| 299 | ;; Tests require a modifiable IMAP account. |
| 300 | #:tests? #f)) |
| 301 | (home-page "http://www.offlineimap.org") |
| 302 | (synopsis "Synch emails between two repositories") |
| 303 | (description |
| 304 | "OfflineImap synchronizes emails between two repositories, so that you |
| 305 | can read the same mailbox from multiple computers. It supports IMAP as REMOTE |
| 306 | repository and Maildir/IMAP as LOCAL repository.") |
| 307 | (license gpl2+))) |
| 308 | |
| 309 | (define-public mu |
| 310 | (package |
| 311 | (name "mu") |
| 312 | (version "0.9.12") |
| 313 | (source (origin |
| 314 | (method url-fetch) |
| 315 | (uri (string-append "https://github.com/djcb/mu/archive/v" |
| 316 | version ".tar.gz")) |
| 317 | (file-name (string-append "mu-" version ".tar.gz")) |
| 318 | (sha256 |
| 319 | (base32 |
| 320 | "1bxryacmas2llj68m2dv8dr1vwx8f5k2i2azh69jajkpqx7i4wdq")))) |
| 321 | (build-system gnu-build-system) |
| 322 | (native-inputs |
| 323 | `(("pkg-config" ,pkg-config) |
| 324 | ("glib" ,glib "bin") ; for gtester |
| 325 | ("autoconf" ,autoconf) |
| 326 | ("automake" ,automake) |
| 327 | ("libtool" ,libtool) |
| 328 | ("texinfo" ,texinfo))) |
| 329 | ;; TODO: Add webkit and gtk to build the mug GUI. |
| 330 | (inputs |
| 331 | `(("xapian" ,xapian) |
| 332 | ("emacs" ,emacs-no-x) |
| 333 | ("guile" ,guile-2.0) |
| 334 | ("glib" ,glib) |
| 335 | ("gmime" ,gmime) |
| 336 | ("tzdata" ,tzdata))) ;for mu/test/test-mu-query.c |
| 337 | (arguments |
| 338 | '(#:phases (alist-cons-after |
| 339 | 'unpack 'autoreconf |
| 340 | (lambda _ |
| 341 | (zero? (system* "autoreconf" "-vi"))) |
| 342 | (alist-cons-before |
| 343 | 'check 'check-tz-setup |
| 344 | (lambda* (#:key inputs #:allow-other-keys) |
| 345 | ;; For mu/test/test-mu-query.c |
| 346 | (setenv "TZDIR" |
| 347 | (string-append (assoc-ref inputs "tzdata") |
| 348 | "/share/zoneinfo"))) |
| 349 | %standard-phases)))) |
| 350 | (home-page "http://www.djcbsoftware.nl/code/mu/") |
| 351 | (synopsis "Quickly find emails") |
| 352 | (description |
| 353 | "Mu is a tool for dealing with e-mail messages stored in the |
| 354 | Maildir-format. Mu's purpose in life is to help you to quickly find the |
| 355 | messages you need; in addition, it allows you to view messages, extract |
| 356 | attachments, create new maildirs, and so on.") |
| 357 | (license gpl3+))) |
| 358 | |
| 359 | (define-public notmuch |
| 360 | (package |
| 361 | (name "notmuch") |
| 362 | (version "0.18.1") |
| 363 | (source (origin |
| 364 | (method url-fetch) |
| 365 | (uri (string-append "http://notmuchmail.org/releases/notmuch-" |
| 366 | version ".tar.gz")) |
| 367 | (sha256 |
| 368 | (base32 |
| 369 | "1pdp9l7yv71d3fjb30qyccva8h03hvg88q4a00yi50v2j70kvmgj")))) |
| 370 | (build-system gnu-build-system) |
| 371 | (arguments |
| 372 | '(#:tests? #f ;; FIXME: Test suite hangs and times out. |
| 373 | #:phases (alist-replace |
| 374 | 'configure |
| 375 | (lambda* (#:key outputs #:allow-other-keys) |
| 376 | (setenv "CONFIG_SHELL" (which "sh")) |
| 377 | (let ((out (assoc-ref outputs "out"))) |
| 378 | (zero? (system* "./configure" |
| 379 | (string-append "--prefix=" out))))) |
| 380 | %standard-phases))) |
| 381 | (native-inputs |
| 382 | `(("pkg-config" ,pkg-config))) |
| 383 | (inputs |
| 384 | `(("emacs" ,emacs) |
| 385 | ("glib" ,glib) |
| 386 | ("gmime" ,gmime) |
| 387 | ("talloc" ,talloc) |
| 388 | ("xapian" ,xapian) |
| 389 | ("zlib" ,zlib))) |
| 390 | (home-page "http://notmuchmail.org/") |
| 391 | (synopsis "Thread-based email index, search, and tagging") |
| 392 | (description |
| 393 | "Notmuch is a command-line based program for indexing, searching, read- |
| 394 | ing, and tagging large collections of email messages.") |
| 395 | (license gpl3+))) |
| 396 | |
| 397 | (define-public getmail |
| 398 | (package |
| 399 | (name "getmail") |
| 400 | (version "4.46.0") |
| 401 | (source |
| 402 | (origin |
| 403 | (method url-fetch) |
| 404 | (uri (string-append "http://pyropus.ca/software/getmail/old-versions/" |
| 405 | name "-" version ".tar.gz")) |
| 406 | (sha256 |
| 407 | (base32 |
| 408 | "15rqmm25pq6ll8aaqh8h6pfdkpqs7y6yismb3h3w1bz8j292c8zl")))) |
| 409 | (build-system python-build-system) |
| 410 | (arguments |
| 411 | `(#:tests? #f ; no tests |
| 412 | #:python ,python-2)) |
| 413 | (home-page "http://pyropus.ca/software/getmail/") |
| 414 | (synopsis "Mail retriever") |
| 415 | (description |
| 416 | "A flexible, extensible mail retrieval system with support for |
| 417 | POP3, IMAP4, SSL variants of both, maildirs, mboxrd files, external MDAs, |
| 418 | arbitrary message filtering, single-user and domain-mailboxes, and many other |
| 419 | useful features.") |
| 420 | |
| 421 | ;; License is specified in file '__init__.py'. |
| 422 | (license gpl2))) |
| 423 | |
| 424 | (define-public libetpan |
| 425 | (package |
| 426 | (name "libetpan") |
| 427 | (version "1.6") |
| 428 | (source (origin |
| 429 | (method url-fetch) |
| 430 | (uri (string-append "https://github.com/dinhviethoa/" name |
| 431 | "/archive/" version ".tar.gz")) |
| 432 | (file-name (string-append name "-" version ".tar.gz")) |
| 433 | (sha256 |
| 434 | (base32 "05qyqx2c1ppb1jnrs3m52i60f9xlxfxdmb9dnwg4vqjv8kwv2qkr")))) |
| 435 | (build-system gnu-build-system) |
| 436 | (native-inputs `(("autoconf" ,(autoconf-wrapper)) |
| 437 | ("automake" ,automake) |
| 438 | ("libtool" ,libtool) |
| 439 | ("pkg-config" ,pkg-config))) |
| 440 | (propagated-inputs |
| 441 | ;; 'libetpan-config --libs' returns '-lssl -lcrypto -lsasl2', so these |
| 442 | ;; libraries need to be propagated. |
| 443 | `(("cyrus-sasl" ,cyrus-sasl) |
| 444 | ("openssl" ,openssl))) |
| 445 | (inputs |
| 446 | `(("curl" ,curl) |
| 447 | ("expat" ,expat))) |
| 448 | (arguments |
| 449 | '(#:phases (alist-cons-after |
| 450 | 'unpack 'autogen |
| 451 | (lambda _ |
| 452 | (setenv "NOCONFIGURE" "true") |
| 453 | (zero? (system* "sh" "autogen.sh"))) |
| 454 | %standard-phases) |
| 455 | #:configure-flags |
| 456 | '("--disable-static" "--disable-db"))) |
| 457 | (home-page "http://www.etpan.org/libetpan.html") |
| 458 | (synopsis "Portable middleware for email access") |
| 459 | (description |
| 460 | "The purpose of this mail library is to provide a portable, efficient |
| 461 | framework for different kinds of mail access: IMAP, SMTP, POP and NNTP. It |
| 462 | provides an API for C language. It's the low-level API used by MailCore and |
| 463 | MailCore 2.") |
| 464 | (license (non-copyleft "file://COPYING")))) |
| 465 | |
| 466 | (define-public claws-mail |
| 467 | (package |
| 468 | (name "claws-mail") |
| 469 | (version "3.11.1") |
| 470 | (source (origin |
| 471 | (method url-fetch) |
| 472 | (uri (string-append |
| 473 | "mirror://sourceforge/claws-mail/claws-mail-" version |
| 474 | ".tar.xz")) |
| 475 | (sha256 |
| 476 | (base32 "0cyixz1jgfpi8abh9fbb8ylx9mcvw4jqj81cms666wpqr6v828yp")))) |
| 477 | (build-system gnu-build-system) |
| 478 | (native-inputs `(("pkg-config" ,pkg-config))) |
| 479 | (inputs `(("bogofilter" ,bogofilter) |
| 480 | ("curl" ,curl) |
| 481 | ("dbus-glib" ,dbus-glib) |
| 482 | ("dbus" ,dbus) |
| 483 | ("enchant" ,enchant) |
| 484 | ("expat" ,expat) |
| 485 | ("ghostscript" ,ghostscript) |
| 486 | ("hicolor-icon-theme" ,hicolor-icon-theme) |
| 487 | ("gnupg" ,gnupg) |
| 488 | ("gnutls" ,gnutls) |
| 489 | ("gpgme" ,gpgme) |
| 490 | ("gtk" ,gtk+-2) |
| 491 | ("libarchive" ,libarchive) |
| 492 | ("libcanberra" ,libcanberra) |
| 493 | ("libetpan" ,libetpan) |
| 494 | ("libnotify" ,libnotify) |
| 495 | ("libsm" ,libsm) |
| 496 | ("libxml2" ,libxml2) |
| 497 | ("perl" ,perl) |
| 498 | ("python-2" ,python-2))) |
| 499 | (arguments |
| 500 | '(#:configure-flags |
| 501 | '("--enable-gnutls" "--enable-pgpmime-plugin" "--enable-enchant"))) |
| 502 | (synopsis "GTK-based Email client") |
| 503 | (description |
| 504 | "Claws-Mail is an email client (and news reader) based on GTK+. The |
| 505 | appearance and interface are designed to be familiar to new users coming from |
| 506 | other popular email clients, as well as experienced users. Almost all commands |
| 507 | are accessible with the keyboard. Plus, Claws-Mail is extensible via addons |
| 508 | which can add many functionalities to the base client.") |
| 509 | (home-page "http://www.claws-mail.org/") |
| 510 | (license gpl3+))) ; most files are actually public domain or x11 |
| 511 | |
| 512 | (define-public msmtp |
| 513 | (package |
| 514 | (name "msmtp") |
| 515 | (version "1.4.32") |
| 516 | (source |
| 517 | (origin |
| 518 | (method url-fetch) |
| 519 | (uri (string-append |
| 520 | "mirror://sourceforge/msmtp/msmtp-" version ".tar.bz2")) |
| 521 | (sha256 (base32 |
| 522 | "122z38pv4q03w3mbnhrhg4w85a51258sfdg2ips0b6cgwz3wbw1b")))) |
| 523 | (build-system gnu-build-system) |
| 524 | (inputs |
| 525 | `(("libidn" ,libidn) |
| 526 | ("gnutls" ,gnutls) |
| 527 | ("zlib" ,zlib) |
| 528 | ("gsasl" ,gsasl))) |
| 529 | (native-inputs |
| 530 | `(("pkg-config" ,pkg-config))) |
| 531 | (home-page "http://msmtp.sourceforge.net/") |
| 532 | (arguments |
| 533 | `(#:configure-flags (list "--with-libgsasl" |
| 534 | "--with-libidn" |
| 535 | "--with-ssl=gnutls"))) |
| 536 | (synopsis |
| 537 | "Simple and easy to use SMTP client with decent sendmail compatibility") |
| 538 | (description |
| 539 | "msmtp is an SMTP client. In the default mode, it transmits a mail to |
| 540 | an SMTP server (for example at a free mail provider) which takes care of further |
| 541 | delivery.") |
| 542 | (license gpl3+))) |
| 543 | |
| 544 | (define-public exim |
| 545 | (package |
| 546 | (name "exim") |
| 547 | (version "4.85") |
| 548 | (source |
| 549 | (origin |
| 550 | (method url-fetch) |
| 551 | (uri (string-append |
| 552 | "ftp://ftp.exim.org/pub/exim/exim4/exim-" version ".tar.bz2")) |
| 553 | (sha256 |
| 554 | (base32 "195a3ll5ck9viazf9pvgcyc0sziln5g0ggmlm6ax002lphmiy88k")))) |
| 555 | (build-system gnu-build-system) |
| 556 | (inputs |
| 557 | `(("bdb" ,bdb) |
| 558 | ("gnutls" ,gnutls) |
| 559 | ("gzip" ,gzip) |
| 560 | ("bzip2" ,bzip2) |
| 561 | ("xz" ,xz) |
| 562 | ("pcre" ,pcre) |
| 563 | ("perl" ,perl) |
| 564 | ("libxt" ,libxt) |
| 565 | ("libxaw" ,libxaw))) |
| 566 | (native-inputs |
| 567 | `(("perl" ,perl))) |
| 568 | (arguments |
| 569 | '(#:phases |
| 570 | (alist-replace |
| 571 | 'configure |
| 572 | ;; We'd use #:make-flags but the top-level Makefile calls others |
| 573 | ;; recursively, so just set all variables this way. |
| 574 | (lambda* (#:key outputs inputs #:allow-other-keys) |
| 575 | (substitute* '("Makefile" "OS/Makefile-Default") |
| 576 | (("(RM_COMMAND=).*" all var) |
| 577 | (string-append var "rm\n"))) |
| 578 | (copy-file "src/EDITME" "Local/Makefile") |
| 579 | (copy-file "exim_monitor/EDITME" "Local/eximon.conf") |
| 580 | (let ((out (assoc-ref outputs "out")) |
| 581 | (gzip (assoc-ref inputs "gzip")) |
| 582 | (bzip2 (assoc-ref inputs "bzip2")) |
| 583 | (xz (assoc-ref inputs "xz"))) |
| 584 | (substitute* '("Local/Makefile") |
| 585 | (("(BIN_DIRECTORY=).*" all var) |
| 586 | (string-append var out "/bin\n")) |
| 587 | (("(CONFIGURE_FILE=).*" all var) |
| 588 | (string-append var out "/etc/exim.conf\n")) |
| 589 | (("(EXIM_USER=).*" all var) |
| 590 | (string-append var "nobody\n")) |
| 591 | (("(FIXED_NEVER_USERS=).*" all var) |
| 592 | (string-append var "\n")) ;XXX no root in build environment |
| 593 | (("(COMPRESS_COMMAND=).*" all var) |
| 594 | (string-append var gzip "/bin/gzip\n")) |
| 595 | (("(ZCAT_COMMAND=).*" all var) |
| 596 | (string-append var gzip "/bin/zcat\n"))) |
| 597 | ;; This file has hardcoded names for tools despite the zcat |
| 598 | ;; configuration above. |
| 599 | (substitute* '("src/exigrep.src") |
| 600 | (("'zcat'") (string-append "'" gzip "/bin/zcat'")) |
| 601 | (("'bzcat'") (string-append "'" bzip2 "/bin/bzcat'")) |
| 602 | (("'xzcat'") (string-append "'" xz "/bin/xzcat'")) |
| 603 | (("'lzma'") (string-append "'" xz "/bin/lzma'"))))) |
| 604 | (alist-cons-before |
| 605 | 'build 'fix-sh-paths |
| 606 | (lambda* (#:key inputs #:allow-other-keys) |
| 607 | (substitute* '("scripts/lookups-Makefile" "scripts/reversion") |
| 608 | (("SHELL=/bin/sh") "SHELL=sh")) |
| 609 | (substitute* '("scripts/Configure-config.h") |
| 610 | (("\\| /bin/sh") "| sh")) |
| 611 | (let ((bash (assoc-ref inputs "bash"))) |
| 612 | (substitute* '("scripts/Configure-eximon") |
| 613 | (("#!/bin/sh") (string-append "#!" bash "/bin/sh"))))) |
| 614 | %standard-phases)) |
| 615 | #:make-flags '("INSTALL_ARG=-no_chown") |
| 616 | ;; No 'check' target. |
| 617 | #:tests? #f)) |
| 618 | (home-page "http://www.exim.org/") |
| 619 | (synopsis |
| 620 | "Message Transfer Agent (MTA) developed at the University of Cambridge") |
| 621 | (description |
| 622 | "Exim is a message transfer agent (MTA) developed at the University of |
| 623 | Cambridge for use on Unix systems connected to the Internet. In style it is |
| 624 | similar to Smail 3, but its facilities are more general. There is a great |
| 625 | deal of flexibility in the way mail can be routed, and there are extensive |
| 626 | facilities for checking incoming mail.") |
| 627 | (license gpl2+))) |
| 628 | |
| 629 | (define-public isync |
| 630 | (package |
| 631 | (name "isync") |
| 632 | (version "1.1.2") |
| 633 | (source |
| 634 | (origin |
| 635 | (method url-fetch) |
| 636 | (uri (string-append "mirror://sourceforge/isync/isync/" |
| 637 | version "/isync-" version ".tar.gz")) |
| 638 | (sha256 (base32 |
| 639 | "1960ah3fmp75cakd06lcx50n5q0yvfsadjh3lffhyvjvj7ava9d2")))) |
| 640 | (build-system gnu-build-system) |
| 641 | (inputs |
| 642 | `(("bdb" ,bdb) |
| 643 | ("openssl" ,openssl))) |
| 644 | (home-page "http://isync.sourceforge.net/") |
| 645 | (synopsis "Mailbox synchronization program") |
| 646 | (description |
| 647 | "isync/mbsync is command line tool for two-way synchronization of |
| 648 | mailboxes. Currently Maildir and IMAP are supported types.") |
| 649 | (license gpl2+))) |
| 650 | |
| 651 | ;;; mail.scm ends here |