;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2017 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;; Copyright © 2014 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2014 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
-;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
+;;; Copyright © 2016 Al McElrath <hello@yrns.org>
+;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
+;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
+;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
+;;; Copyright © 2016, 2017 <contact.ng0@cryptolab.net>
+;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2016 John Darrington <jmd@gnu.org>
+;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages databases)
#:use-module (gnu packages dejagnu)
+ #:use-module (gnu packages dns)
+ #:use-module (gnu packages documentation)
#:use-module (gnu packages emacs)
#:use-module (gnu packages enchant)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
+ #:use-module (gnu packages groff)
#:use-module (gnu packages gsasl)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages flex)
#:use-module (gnu packages libcanberra)
+ #:use-module (gnu packages libevent)
#:use-module (gnu packages libidn)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages lua)
#:use-module (gnu packages m4)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages flex)
#:use-module (gnu packages gdb)
+ #:use-module (gnu packages man)
+ #:use-module (gnu packages ruby)
#:use-module (gnu packages samba)
+ #:use-module (gnu packages screen)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages networking)
+ #:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
+ #:use-module (gnu packages docbook)
#:use-module ((guix licenses)
- #:select (gpl2 gpl2+ gpl3+ lgpl2.1 lgpl2.1+ lgpl3+ non-copyleft
- (expat . license:expat)))
+ #:select (gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+
+ non-copyleft (expat . license:expat) bsd-3
+ public-domain bsd-4 isc (openssl . license:openssl)
+ bsd-2 x11-style))
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system perl)
- #:use-module (guix build-system python))
+ #:use-module (guix build-system python)
+ #:use-module (guix build-system trivial))
(define-public mailutils
(package
(name "mailutils")
- (version "2.2")
+ (version "3.1.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/mailutils/mailutils-"
version ".tar.bz2"))
(sha256
(base32
- "0szbqa12zqzldqyw97lxqax3ja2adis83i7brdfsxmrfw68iaf65"))
- (patches (list (search-patch "m4-gets-undeclared.patch")))))
+ "1dpylyg79avi7brpkcmzaq7bqqkz45flp0ws6f2c8b1gyz4hdnzm"))))
(build-system gnu-build-system)
(arguments
- '(;; TODO: Add `--with-sql'.
- #:phases (alist-cons-before
- 'build 'pre-build
- (lambda _
- ;; Use Guile 2.0's public API.
- (substitute* "libmu_scm/mu_message.c"
- (("scm_i_string_length")
- "scm_c_string_length"))
-
- ;; This file should be generated to use the right
- ;; value of $(libdir) et al.
- (delete-file "libmu_scm/mailutils.scm")
-
- ;; Use the right file name for `cat'.
- (substitute* "testsuite/lib/mailutils.exp"
- (("/bin/cat")
- (which "cat"))))
- %standard-phases)
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'pre-build
+ (lambda _
+ ;; Use the right file name for `cat'.
+ (substitute* "testsuite/lib/mailutils.exp"
+ (("/bin/cat")
+ (which "cat")))
+
+ ;; Tests try to invoke 'maidag' such that it looks up the
+ ;; 'root' user, which does not exist in the build
+ ;; environment.
+ (substitute* "maidag/tests/testsuite"
+ (("root <") "nobody <")
+ (("spool/root") "spool/nobody")
+ (("root@localhost") "nobody@localhost"))
+
+ ;; The 'pipeact.at' tests generate a shell script; make
+ ;; sure it uses the right shell.
+ (substitute* '("sieve/tests/testsuite"
+ "mh/tests/testsuite")
+ (("#! /bin/sh")
+ (string-append "#!" (which "sh"))))
+
+ (substitute* "mh/tests/testsuite"
+ (("moreproc: /bin/cat")
+ (string-append "moreproc: " (which "cat"))))
+
+ ;; XXX: The comsatd tests rely on being able to open
+ ;; /dev/tty, but that gives ENODEV in the build
+ ;; environment. Thus, ignore test failures here.
+ (substitute* "comsat/tests/Makefile.in"
+ (("\\$\\(SHELL\\) \\$\\(TESTSUITE\\)" all)
+ (string-append "-" all)))
+
+ #t)))
+ ;; TODO: Add `--with-sql'.
+ #:configure-flags '("--sysconfdir=/etc")
#:parallel-tests? #f))
(inputs
`(("dejagnu" ,dejagnu)
("guile" ,guile-2.0)
("gnutls" ,gnutls)
("ncurses" ,ncurses)
-
- ;; With Readline 6.3, examples/pop3client.c fails to build because it
- ;; uses the now undefined 'CPPFunction' type.
- ("readline" ,readline-6.2)
-
+ ("readline" ,readline)
("linux-pam" ,linux-pam)
("libltdl" ,libltdl)
("gdbm" ,gdbm)))
- (home-page "http://www.gnu.org/software/mailutils/")
+ (home-page "https://www.gnu.org/software/mailutils/")
(synopsis "Utilities and library for reading and serving mail")
(description
"GNU Mailutils is a collection of programs for managing, viewing and
(define-public mutt
(package
(name "mutt")
- (version "1.5.24")
+ (version "1.8.0")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ftp.mutt.org/pub/mutt/mutt-"
version ".tar.gz"))
(sha256
(base32
- "0012njrgxf1barjksqkx7ccid2l0xyikhna9mjs9vcfpbrvcm4m2"))
- (patches (list (search-patch "mutt-store-references.patch")))))
+ "1axdcylyv0p194y6lj1jx127g5yc74zqzzxdc014cjw02bd1x125"))
+ (patches (search-patches "mutt-store-references.patch"))))
(build-system gnu-build-system)
(inputs
`(("cyrus-sasl" ,cyrus-sasl)
+ ("gdbm" ,gdbm)
("gpgme" ,gpgme)
("ncurses" ,ncurses)
("openssl" ,openssl)
"--enable-imap"
"--enable-pop"
"--enable-gpgme"
+ "--enable-hcache" ; for header caching
+ "--enable-sidebar"
"--with-ssl"
"--with-sasl"
;; so that mutt does not check whether the path
operating systems.")
(license gpl2+)))
+(define-public neomutt
+ (package
+ (inherit mutt)
+ (name "neomutt")
+ (version "20170225")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/" name "/" name
+ "/archive/" name "-" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "00ll35g9pcanzrxsjp09vrmq6flml249dipcznrq2z4jy2zd386p"))))
+ (inputs
+ `(("cyrus-sasl" ,cyrus-sasl)
+ ("gdbm" ,gdbm)
+ ("lmdb" ,lmdb)
+ ("tokyocabinet" ,tokyocabinet)
+ ("gpgme" ,gpgme)
+ ("ncurses" ,ncurses)
+ ("gnutls" ,gnutls)
+ ("openssl" ,openssl) ;For smime
+ ("perl" ,perl)
+ ("libxslt" ,libxslt)
+ ("libidn" ,libidn)
+ ("libxml2" ,libxml2)
+ ("docbook-xsl" ,docbook-xsl)
+ ("notmuch" ,notmuch)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("pkg-config" ,pkg-config)))
+ (arguments
+ `(#:configure-flags
+ (list "--enable-smtp"
+ "--enable-imap"
+ "--enable-pop"
+ "--enable-gpgme"
+
+ ;; database, implies header caching
+ ;; neomutt supports building multiple backends
+ "--with-tokyocabinet"
+ "--without-qdbm"
+ "--without-bdb"
+ "--with-lmdb"
+ "--with-gdbm"
+
+ "--with-gnutls"
+ "--without-ssl"
+ "--with-sasl"
+
+ "--with-regex"
+ "--enable-smime"
+ "--enable-notmuch"
+ "--with-idn"
+
+ ;; If we do not set this, neomutt wants to check
+ ;; whether the path exists, which it does not
+ ;; in the chroot. The workaround is this.
+ "--with-mailpath=/var/mail"
+
+ "--with-external-dotlock"
+ "--enable-nntp"
+ "--enable-compressed"
+
+ (string-append "--with-curses="
+ (assoc-ref %build-inputs "ncurses")))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'autoconf
+ (lambda _
+ (zero? (system* "sh" "autoreconf" "-vfi")))))))
+ (home-page "https://www.neomutt.org/")
+ (synopsis "Command-line mail reader based on Mutt")
+ (description
+ "NeoMutt is a command-line mail reader which is based on mutt.
+It adds a large amount of features to mutt, and they all find their way
+into mutt, so it is not a fork but a large set of feature patches.")))
+
(define-public gmime
(package
(name "gmime")
- (version "2.6.20")
+ (version "2.6.22")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/gmime/"
"/gmime-" version ".tar.xz"))
(sha256
(base32
- "0rfzbgsh8ira5p76kdghygl5i3fvmmx4wbw5rp7f8ajc4vxp18g0"))))
+ "0fjmsphvz8srsmcdl4v13p2z4jp2migaybyny444hal4snbr0py2"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
'unpack 'patch-paths-in-tests
(lambda _
;; The test programs run several programs using 'system' with
- ;; hard-coded paths. Here we patch them all. We also change "gpg"
- ;; to "gpg2". We use ISO-8859-1 here because test-iconv.c contains
+ ;; hard-coded paths. Here we patch them all.
+ ;; We use ISO-8859-1 here because test-iconv.c contains
;; raw byte sequences in several different encodings.
(with-fluids ((%default-port-encoding #f))
(substitute* (find-files "tests" "\\.c$")
(("(system *\\(\")(/[^ ]*)" all pre prog-path)
(let* ((base (basename prog-path))
- (prog (which (if (string=? base "gpg") "gpg2" base))))
+ (prog (which base)))
(string-append pre
(or prog (error "not found: " base))))))))))))
(home-page "http://spruce.sourceforge.net/gmime/")
"1d56n2m9inm8gnzm88aa27xl2a7sp7aff3484vmflpqkinjqf0p1"))))
(build-system gnu-build-system)
(arguments
- '(#:phases (alist-cons-before
- 'check 'pre-check
- (lambda _
- (substitute* "src/tests/t.frame"
- (("GREP=/bin/grep")
- (string-append "GREP=" (which "grep") "\n"))))
- %standard-phases)))
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'pre-check
+ (lambda _
+ (substitute* "src/tests/t.frame"
+ (("GREP=/bin/grep")
+ (string-append "GREP=" (which "grep") "\n")))
+ #t)))))
(native-inputs `(("flex" ,flex)))
(inputs `(("bdb" ,bdb)))
(home-page "http://bogofilter.sourceforge.net/")
(define-public offlineimap
(package
(name "offlineimap")
- (version "6.6.1")
+ (version "7.0.13")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/OfflineIMAP/offlineimap/"
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1c2b03856a78ripkpl9jjzj6yzyfb3rlrdnjx300s647l1xx8gxg"))))
+ "1kl72wcxnxb4y5lm2f7ymwjsisnnpwb4w971ajkxlsiwjhzq8i7p"))))
(build-system python-build-system)
- (native-inputs `(("python" ,python-2)))
+ (native-inputs
+ `(("asciidoc" ,asciidoc)
+ ("libxslt" ,libxslt))) ; for xsltproc
+ (inputs `(("python2-pysqlite" ,python2-pysqlite)
+ ("python2-six" ,python2-six)))
(arguments
;; The setup.py script expects python-2.
`(#:python ,python-2
;; Tests require a modifiable IMAP account.
- #:tests? #f))
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'build 'build-documentation
+ (lambda _
+ (substitute* "docs/Makefile"
+ ;; Prevent xmllint and xsltproc from downloading a DTD file.
+ (("a2x -v") "a2x --no-xmllint --xsltproc-opts=--nonet -v"))
+ (zero? (system* "make" "-C" "docs" "man"))))
+ (add-after 'install 'install-documentation
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (man (string-append out "/share/man")))
+ (install-file "docs/offlineimap.1" (string-append man "/man1"))
+ (install-file "docs/offlineimapui.7" (string-append man "/man7"))
+ #t)))
+ (add-after 'install-documentation 'wrap-binary
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin/offlineimap")))
+ (wrap-program bin
+ `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))))
+ #t))))))
(home-page "http://www.offlineimap.org")
(synopsis "Sync emails between two repositories")
(description
repository and Maildir/IMAP as LOCAL repository.")
(license gpl2+)))
-(define %mu-gtester-patch
- ;; Ensure tests have unique names, to placate GLib 2.6's gtester.
- (origin
- (method url-fetch)
- (uri "https://github.com/djcb/mu/commit/b44039ed.patch")
- (sha256
- (base32
- "165hryqqhx3wah8a4f5jaq465azx1pm9r4jid7880pys9gd88qlv"))))
+(define-public emacs-mew
+ (package
+ (name "emacs-mew")
+ (version "6.7")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://mew.org/Release/mew-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "03fzky2kz73vgx4cbps2psbbnrgqgkk5q7jwfldisymkzr9iz03y"))))
+ (native-inputs
+ `(("emacs" ,emacs)))
+ (propagated-inputs
+ `(("ruby-sqlite3" ,ruby-sqlite3) ; optional for the database of messages
+ ("ruby" ,ruby))) ; to set GEM_PATH so ruby-sqlite3 is found at runtime
+ (build-system gnu-build-system)
+ (arguments
+ (let ((elisp-dir "/share/emacs/site-lisp/guix.d/mew")
+ (icon-dir "/share/mew"))
+ `(#:modules ((guix build gnu-build-system)
+ (guix build utils)
+ (guix build emacs-utils))
+ #:imported-modules (,@%gnu-build-system-modules
+ (guix build emacs-utils))
+ #:configure-flags
+ (list (string-append "--with-elispdir=" %output ,elisp-dir)
+ (string-append "--with-etcdir=" %output ,icon-dir))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'configure 'patch-mew-icon-directory
+ (lambda* (#:key outputs #:allow-other-keys)
+ (emacs-substitute-sexps "mew-key.el"
+ ("(def.* mew-icon-directory"
+ `(progn
+ (add-to-list 'image-load-path 'mew-icon-directory)
+ ,(string-append (assoc-ref outputs "out") ,icon-dir))))
+ #t))
+ (add-after 'install 'generate-autoloads
+ (lambda* (#:key outputs #:allow-other-keys)
+ (emacs-generate-autoloads
+ "mew" (string-append (assoc-ref outputs "out") ,elisp-dir))
+ #t)))
+ #:tests? #f)))
+ (home-page "http://www.mew.org")
+ (synopsis "Emacs e-mail client")
+ (description "Mew (Messaging in the Emacs World) is a user interface
+for text messages, multimedia messages (MIME), news articles and
+security functionality including PGP, S/MIME, SSH, and SSL.")
+ (license bsd-3)))
(define-public mu
(package
(name "mu")
- (version "0.9.13")
+ (version "0.9.18")
(source (origin
(method url-fetch)
- (uri (string-append "https://github.com/djcb/mu/archive/v"
+ (uri (string-append "https://github.com/djcb/mu/releases/"
+ "download/" version "/mu-"
version ".tar.gz"))
- (file-name (string-append "mu-" version ".tar.gz"))
(sha256
(base32
- "0wj33pma8xgjvn2akk7khzbycwn4c9sshxvzdph9dnpy7gyqxj51"))
- (patches (list %mu-gtester-patch))))
+ "02g82zvxfgn17wzy846bfxj0izjj7yklhwdnhwxy1y2kin4fqnb5"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
("glib" ,glib "bin") ; for gtester
- ("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)
- ("texinfo" ,texinfo)))
+ ("emacs" ,emacs-minimal)))
;; TODO: Add webkit and gtk to build the mug GUI.
(inputs
`(("xapian" ,xapian)
- ("emacs" ,emacs-no-x)
("guile" ,guile-2.0)
("glib" ,glib)
("gmime" ,gmime)
("tzdata" ,tzdata))) ;for mu/test/test-mu-query.c
(arguments
- '(#:phases (alist-cons-after
- 'unpack 'autoreconf
- (lambda _
- (zero? (system* "autoreconf" "-vi")))
- (alist-cons-before
- 'check 'check-tz-setup
- (lambda* (#:key inputs #:allow-other-keys)
- ;; For mu/test/test-mu-query.c
- (setenv "TZDIR"
- (string-append (assoc-ref inputs "tzdata")
- "/share/zoneinfo")))
- %standard-phases))))
+ `(#:modules ((guix build gnu-build-system)
+ (guix build utils)
+ (guix build emacs-utils))
+ #:imported-modules (,@%gnu-build-system-modules
+ (guix build emacs-utils))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-configure
+ ;; By default, elisp code goes to "share/emacs/site-lisp/mu4e",
+ ;; so our Emacs package can't find it. Setting "--with-lispdir"
+ ;; configure flag doesn't help because "mu4e" will be added to
+ ;; the lispdir anyway, so we have to modify "configure.ac".
+ (lambda _
+ (substitute* "configure"
+ (("^ +lispdir=\"\\$\\{lispdir\\}/mu4e/\".*") ""))
+ #t))
+ (add-before 'check 'check-tz-setup
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; For mu/test/test-mu-query.c
+ (setenv "TZDIR"
+ (string-append (assoc-ref inputs "tzdata")
+ "/share/zoneinfo"))
+ #t))
+ (add-after 'install 'install-emacs-autoloads
+ (lambda* (#:key outputs #:allow-other-keys)
+ (emacs-generate-autoloads
+ "mu4e"
+ (string-append (assoc-ref outputs "out")
+ "/share/emacs/site-lisp"))
+ #t)))))
(home-page "http://www.djcbsoftware.nl/code/mu/")
(synopsis "Quickly find emails")
(description
attachments, create new maildirs, and so on.")
(license gpl3+)))
+(define-public alot
+ (package
+ (name "alot")
+ (version "0.4")
+ (source (origin
+ (method url-fetch)
+ ;; package author intends on distributing via github rather
+ ;; than pypi:
+ ;; https://github.com/pazz/alot/issues/877#issuecomment-230173331
+ (uri (string-append "https://github.com/pazz/alot/archive/"
+ version ".tar.gz"))
+ (file-name (string-append "alot-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0sl1kl2fhkv208llnbny4blcvrfdk4vx6bcw5pnyh9ylwb0pipi2"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f ; no tests
+ ;; python 3 is currently unsupported, more info:
+ ;; https://github.com/pazz/alot/blob/master/docs/source/faq.rst
+ #:python ,python-2))
+ (inputs
+ `(("python2-magic" ,python2-magic)
+ ("python2-configobj" ,python2-configobj)
+ ("python2-twisted" ,python2-twisted)
+ ("python2-urwid" ,python2-urwid)
+ ("python2-urwidtrees" ,python2-urwidtrees)
+ ("python2-pygpgme" ,python2-pygpgme)
+ ("python2-notmuch" ,python2-notmuch)))
+ (home-page "https://github.com/pazz/alot")
+ (synopsis "Commandline MUA using notmuch")
+ (description
+ "Alot is an experimental terminal mail user agent (MUA) based on
+@code{notmuch} mail. It is written in Python using the @code{urwid} toolkit.")
+ (license gpl3+)))
+
+(define-public notifymuch
+ (let
+ ((commit "9d4aaf54599282ce80643b38195ff501120807f0")
+ (revision "1"))
+ (package
+ (name "notifymuch")
+ (version (string-append "0.1-" revision "." (string-take commit 7)))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/kspi/notifymuch.git")
+ (commit commit)))
+ (sha256
+ (base32
+ "1lssr7iv43mp5v6nzrfbqlfzx8jcc7m636wlfyhhnd8ydd39n6k4"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (build-system python-build-system)
+ (inputs
+ `(("python-notmuch" ,python-notmuch)
+ ("python-pygobject" ,python-pygobject)
+ ("gobject-introspection" ,gobject-introspection)
+ ("libnotify" ,libnotify)
+ ("gtk+" ,gtk+)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'wrap-binary
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin/notifymuch")))
+ (wrap-program bin
+ `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
+ `("GI_TYPELIB_PATH" ":" prefix
+ (,(getenv "GI_TYPELIB_PATH")
+ ,(string-append out "/lib/girepository-1.0")))))
+ #t)))))
+ (home-page "https://github.com/kspi/notifymuch")
+ (synopsis "Displays notifications for changes in the notmuch email database")
+ (description "notifymuch displays desktop notifications for messages in
+the notmuch database. The notifications are sent using libnotify to a
+notification daemon. The query to find messages to send a notification about
+is configurable, and a notification for the same message will not be send
+within a configurable period (defaults to 48 hours). To use notifymuch, run
+@command{notifymuch} after new mail is indexed, this can be automated by
+invoking @command{notifymuch} from the post-new hook.")
+ (license gpl3))))
+
(define-public notmuch
(package
(name "notmuch")
- (version "0.21")
+ (version "0.23.7")
(source (origin
(method url-fetch)
(uri (string-append "https://notmuchmail.org/releases/notmuch-"
version ".tar.gz"))
(sha256
(base32
- "1cr53rbpkcy3pvrmhbg2gq7sjpwb0c8xd7a4zhzxbiv8s7z8yvyh"))))
+ "04w90c43zk23pys6prkqb14al408qypifcfj2qznqpwlf46v26zi"))))
(build-system gnu-build-system)
(arguments
- '(#:tests? #f ;; FIXME: 662 tests; 168 fail and 99 are skipped
- ;; with perl input: 50 fail and 99 are skipped
+ '(#:make-flags (list "V=1") ; Verbose test output.
#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'patch-notmuch-lib.el
+ (lambda _
+ (substitute* "emacs/notmuch-lib.el"
+ (("/bin/sh") (which "sh")))
+ #t))
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(setenv "CC" "gcc")
(let ((out (assoc-ref outputs "out")))
(zero? (system* "./configure"
- (string-append "--prefix=" out)))))))))
+ (string-append "--prefix=" out))))))
+ (add-before 'check 'prepare-test-environment
+ (lambda _
+ (setenv "TEST_CC" "gcc")
+ ;; Patch various inline shell invocations.
+ (substitute* (find-files "test" "\\.sh$")
+ (("/bin/sh") (which "sh")))
+ #t)))))
(native-inputs
- `(("pkg-config" ,pkg-config)
+ `(("bash-completion" ,bash-completion)
+ ("emacs" ,emacs-no-x) ; Minimal lacks libxml, needed for some tests.
+ ("pkg-config" ,pkg-config)
("python" ,python-2)
("python-docutils" ,python2-docutils)
("python-sphinx" ,python2-sphinx)
- ("bash-completion" ,bash-completion)))
+
+ ;; The following are required for tests only.
+ ("which" ,which)
+ ("dtach" ,dtach)
+ ("gnupg" ,gnupg)
+ ("man" ,man-db)
+ ("perl" ,perl)))
(inputs
- `(("emacs" ,emacs)
- ("glib" ,glib)
+ `(("glib" ,glib)
("gmime" ,gmime)
("talloc" ,talloc)
("xapian" ,xapian)
("zlib" ,zlib)))
- (home-page "http://notmuchmail.org/")
+ (home-page "https://notmuchmail.org/")
(synopsis "Thread-based email index, search, and tagging")
(description
"Notmuch is a command-line based program for indexing, searching, read-
ing, and tagging large collections of email messages.")
(license gpl3+)))
-(define-public python2-notmuch
+(define-public notmuch-addrlookup-c
(package
- (name "python2-notmuch")
- (version "0.15.2")
+ (name "notmuch-addrlookup-c")
+ (version "7")
(source (origin
(method url-fetch)
(uri (string-append
- "https://pypi.python.org/packages/source/n/notmuch/notmuch-"
- version
- ".tar.gz"))
+ "https://github.com/aperezdc/" name "/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "18g8701ibr153ngsz258kgcd42wqnbf9ifpqig1bijy6b0zx9xn5"))))
+ "0rslg2ifgyhl6asv3yr1f62m9xjfcinv7i6qb07h2k217jqlmrri"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f ; no tests
+ #:make-flags (list "CC=gcc"
+ (string-append "PREFIX="
+ (assoc-ref %outputs "out")))
+ #:phases (modify-phases %standard-phases
+ (delete 'configure)
+ ;; Remove vim code completion config, it's not needed to
+ ;; build (or be patched).
+ (add-before 'patch-source-shebangs 'delete-ycm-file
+ (lambda _ (delete-file ".ycm_extra_conf.py")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((bin (string-append
+ (assoc-ref outputs "out") "/bin")))
+ (install-file "notmuch-addrlookup" bin)))))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("glib" ,glib)
+ ("notmuch" ,notmuch)))
+ (home-page "https://github.com/aperezdc/notmuch-addrlookup-c")
+ (synopsis "Address lookup tool for Notmuch")
+ (description "This is an address lookup tool using a Notmuch database,
+useful for email address completion.")
+ (license license:expat)))
+
+(define-public python-notmuch
+ (package
+ (name "python-notmuch")
+ (version (package-version notmuch))
+ ;; Notmuch python bindings are now unavailable on pypi. The
+ ;; bindings are distributed via the notmuch release tarball.
+ (source (package-source notmuch))
(build-system python-build-system)
(inputs `(("notmuch" ,notmuch)))
(arguments
- `(#:python ,python-2
- #:phases (modify-phases %standard-phases
- (add-before
- 'build 'set-libnotmuch-file-name
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((notmuch (assoc-ref inputs "notmuch")))
- (substitute* "notmuch/globals.py"
- (("libnotmuch\\.so\\.[0-9]")
- (string-append notmuch "/lib/libnotmuch.so.4")))
- #t))))
- #:tests? #f)) ;no "test" target
- (home-page "http://notmuchmail.org/")
+ `(#:tests? #f ; no "test" target
+ #:phases
+ (modify-phases %standard-phases
+ ;; This python package lives in a subdirectory of the notmuch source
+ ;; tree, so chdir into it before building.
+ (add-after 'unpack 'enter-python-dir
+ (lambda _ (chdir "bindings/python") #t))
+ ;; Make sure the correct notmuch shared library gets loaded.
+ (add-before 'build 'set-libnotmuch-file-name
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((notmuch (assoc-ref inputs "notmuch")))
+ (substitute* "notmuch/globals.py"
+ (("libnotmuch\\.so\\.")
+ (string-append notmuch "/lib/libnotmuch.so.")))
+ #t))))))
+ (home-page (package-home-page notmuch))
(synopsis "Python bindings of the Notmuch mail indexing library")
(description
"This package provides Python bindings to use the Notmuch mail indexing
and search library.")
(license gpl3+)))
+(define-public python2-notmuch
+ (package-with-python2 python-notmuch))
+
(define-public getmail
(package
(name "getmail")
- (version "4.48.0")
+ (version "4.52.0")
(source
(origin
(method url-fetch)
name "-" version ".tar.gz"))
(sha256
(base32
- "0k5rm5kag14izng2ajcagvli9sns5mzvkyfa65ri4xymxs91wi29"))))
+ "0pzplrlxwbxydvfw4kkwn60l40hk1h5sxawaa6pi0k75c220k4ni"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ; no tests
(define-public libetpan
(package
(name "libetpan")
- (version "1.6")
+ (version "1.7.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/dinhviethoa/" name
"/archive/" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "05qyqx2c1ppb1jnrs3m52i60f9xlxfxdmb9dnwg4vqjv8kwv2qkr"))))
+ (base32 "081ixgj3skglq9i7v0jb835lmfx21zi4i5b7997igwr0lj174y9j"))))
(build-system gnu-build-system)
(native-inputs `(("autoconf" ,(autoconf-wrapper))
("automake" ,automake)
("openssl" ,openssl)))
(inputs
`(("curl" ,curl)
- ("expat" ,expat)))
+ ("expat" ,expat)
+ ("zlib" ,zlib)))
(arguments
- '(#:phases (alist-cons-after
- 'unpack 'autogen
- (lambda _
- (setenv "NOCONFIGURE" "true")
- (zero? (system* "sh" "autogen.sh")))
- %standard-phases)
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'autogen
+ (lambda _
+ (setenv "NOCONFIGURE" "true")
+ (zero? (system* "sh" "autogen.sh")))))
#:configure-flags
'("--disable-static" "--disable-db")))
(home-page "http://www.etpan.org/libetpan.html")
MailCore 2.")
(license (non-copyleft "file://COPYING"))))
+(define-public compface
+ (package
+ (name "compface")
+ (version "1.5.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://ftp.heanet.ie/mirrors/"
+ "ftp.xemacs.org/aux/"
+ name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "09b89wg63hg502hsz592cd2h87wdprb1dq1k1y07n89hym2q56d6"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f))
+ (synopsis "Portrait image compressor")
+ (description "This packages takes your 48x48x1 portrait image and
+compresses it.")
+ (home-page "http://www.cs.indiana.edu/pub/faces/")
+ (license (x11-style "file://README"))))
+
(define-public claws-mail
(package
(name "claws-mail")
- (version "3.13.1")
+ (version "3.14.1")
(source (origin
(method url-fetch)
(uri (string-append
".tar.xz"))
(sha256
(base32
- "049av7r0xhjjjm1p93l2ns3xisvn125v3ncqar23cqjzgcichg5d"))))
+ "0df34gj4r5cbb92834hph19gnh7ih9rgmmw47rliyg8b9z01v6mp"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs `(("bogofilter" ,bogofilter)
("libsm" ,libsm)
("libxml2" ,libxml2)
("perl" ,perl)
- ("python-2" ,python-2)))
+ ("python-2" ,python-2)
+ ("mime-info" ,shared-mime-info)))
(arguments
'(#:configure-flags
- '("--enable-gnutls" "--enable-pgpmime-plugin" "--enable-enchant")))
+ '("--enable-gnutls" "--enable-pgpmime-plugin" "--enable-enchant")
+ #:phases (modify-phases %standard-phases
+ (add-before 'build 'patch-mime
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/procmime.c"
+ (("/usr/share/mime/globs")
+ (string-append (assoc-ref inputs "mime-info")
+ "/share/mime/globs"))))))))
(synopsis "GTK-based Email client")
(description
"Claws-Mail is an email client (and news reader) based on GTK+. The
(define-public msmtp
(package
(name "msmtp")
- (version "1.6.3")
+ (version "1.6.6")
(source
(origin
(method url-fetch)
- (uri (string-append
- "mirror://sourceforge/msmtp/msmtp-" version ".tar.xz"))
- (sha256 (base32
- "0mbkflxv2swjz4185inis83v6pxcblpmapwjhgpc6wh7kh3bx0pr"))))
+ (uri (string-append "mirror://sourceforge/msmtp/msmtp/" version
+ "/msmtp-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0ppvww0sb09bnsrpqnvlrn8vx231r24xn2iiwpy020mxc8gxn5fs"))))
(build-system gnu-build-system)
(inputs
`(("libidn" ,libidn)
(arguments
`(#:configure-flags (list "--with-libgsasl"
"--with-libidn"
- "--with-tls=gnutls")))
+ "--with-tls=gnutls")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-msmtpq
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (doc (string-append out "/share/doc/msmtp"))
+ (msmtpq (string-append "scripts/msmtpq")))
+ (install-file (string-append msmtpq "/msmtpq") bin)
+ (install-file (string-append msmtpq "/msmtp-queue") bin)
+ (install-file (string-append msmtpq "/README.msmtpq") doc)
+ #t))))))
(synopsis
"Simple and easy to use SMTP client with decent sendmail compatibility")
(description
(define-public exim
(package
(name "exim")
- (version "4.86")
+ (version "4.87.1")
(source
(origin
(method url-fetch)
version ".tar.bz2")))
(sha256
(base32
- "0mn4bxih9slrmll5262ayhf41ji43pjf1rv0y6xpy6x55v7g5k7i"))))
+ "050m2gjzpc6vyik458h1j0vi8bxplkzjsyndkyd2y394i569kdyl"))))
(build-system gnu-build-system)
(inputs
`(("bdb" ,bdb)
("gzip" ,gzip)
("bzip2" ,bzip2)
("xz" ,xz)
- ("pcre" ,pcre)
("perl" ,perl)
("libxt" ,libxt)
("libxaw" ,libxaw)))
(native-inputs
- `(("perl" ,perl)))
+ `(("pcre" ,pcre "bin")
+ ("perl" ,perl)))
(arguments
'(#:phases
(alist-replace
(define-public dovecot
(package
(name "dovecot")
- (version "2.2.19")
+ (version "2.2.27")
(source
(origin
(method url-fetch)
- (uri (string-append "http://www.dovecot.org/releases/"
+ (uri (string-append "https://www.dovecot.org/releases/"
(version-major+minor version) "/"
name "-" version ".tar.gz"))
(sha256 (base32
- "17sf5aancad4pg1vx1606k99389wg76blpqzmnmxlz4hklzix7km"))))
+ "1s8qvr6fa9d0n179kdwgpsi72zkvpbh9q57q8fr2fjysgjl94zw9"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
"doc/example-config/Makefile.in")
(("pkgsysconfdir = .*")
"pkgsysconfdir = /tmp/etc"))
+ #t))
+ (add-after
+ 'unpack 'patch-other-shebangs
+ (lambda _
+ (substitute*
+ "src/lib-program-client/test-program-client-local.c"
+ (("/bin/echo") (which "echo"))
+ (("/bin/cat") (which "cat"))
+ (("/bin/false") (which "false")))
#t)))))
- (home-page "http://www.dovecot.org")
+ (home-page "https://www.dovecot.org")
(synopsis "Secure POP3/IMAP server")
(description
"Dovecot is a mail server whose major goals are security and reliability.
(build-system perl-build-system)
(propagated-inputs
`(("perl-email-simple" ,perl-email-simple)
+ ("perl-module-pluggable" ,perl-module-pluggable)
("perl-mro-compat" ,perl-mro-compat)))
(home-page "http://search.cpan.org/dist/Email-Abstract")
(synopsis "Interface to mail representations")
(define-public perl-email-address
(package
(name "perl-email-address")
- (version "1.907")
+ (version "1.908")
(source
(origin
(method url-fetch)
"Email-Address-" version ".tar.gz"))
(sha256
(base32
- "1ai4r149pzjv9dc2vddir8zylj0z1pii93rm4g591lx7avim71hx"))))
+ "0i6ljdvpy279hpbqf6lgv4figr376rb2sh4yphj86xkdzsyn1y75"))))
(build-system perl-build-system)
(home-page "http://search.cpan.org/dist/Email-Address")
(synopsis "Email address parsing and creation")
(define-public perl-email-messageid
(package
(name "perl-email-messageid")
- (version "1.405")
+ (version "1.406")
(source
(origin
(method url-fetch)
"Email-MessageID-" version ".tar.gz"))
(sha256
(base32
- "09216naz21x99ff33wdm3j3zq1zhdbxhrsmx8bvavjrw3gjsvrq3"))))
+ "1f22sdnfq169qw1l0lg7y74pmiam7j9v95bggjnf3q4mygdmshpc"))))
(build-system perl-build-system)
(home-page "http://search.cpan.org/dist/Email-MessageID")
(synopsis "Generate world unique message-ids")
(define-public perl-email-mime
(package
(name "perl-email-mime")
- (version "1.929")
+ (version "1.937")
(source
(origin
(method url-fetch)
"Email-MIME-" version ".tar.gz"))
(sha256
(base32
- "1sf7dldg4dvicyw6dl1vx6s1gjq3fcppi0103ikl0vi6v5xjdjdh"))))
+ "0s50i3nxi9dr81p4rn017nrarc40yrwz0qcw34q8k3pvdf46fr9n"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-email-address" ,perl-email-address)
(define-public perl-email-mime-contenttype
(package
(name "perl-email-mime-contenttype")
- (version "1.017")
+ (version "1.018")
(source
(origin
(method url-fetch)
"Email-MIME-ContentType-" version ".tar.gz"))
(sha256
(base32
- "1cl1l97lg690dh7i704hqi7yhxalq1chy7ylld5yc5v38jqa6gcn"))))
+ "1y8hpwm7p5a9y2azy0cgvlv2i2d0nj66ajfa0fj51wdq4w9cs23m"))))
(build-system perl-build-system)
(native-inputs
`(("perl-capture-tiny" ,perl-capture-tiny)))
(define-public perl-email-sender
(package
(name "perl-email-sender")
- (version "1.300016")
+ (version "1.300028")
(source
(origin
(method url-fetch)
"Email-Sender-" version ".tar.gz"))
(sha256
(base32
- "18x26fjh399q3s2g8dajb9r10633c46jrnbvycpnpclgnzhjs100"))))
+ "0c5dv1x9856nryj5mcbgb67a4irmadz80g0qnf4van3bd8wbj72a"))))
(build-system perl-build-system)
(native-inputs
`(("perl-capture-tiny" ,perl-capture-tiny)))
(define-public perl-email-simple
(package
(name "perl-email-simple")
- (version "2.206")
+ (version "2.211")
(source
(origin
(method url-fetch)
"Email-Simple-" version ".tar.gz"))
(sha256
(base32
- "19dpy3j5na2k9qw1jcpc8ia25038068r9j1bn34f9yyrisz7s522"))))
+ "1if4a2wh4iwlcycqrd2fhkx04ngmd75q444gh43w0r9p15ym5f8w"))))
(build-system perl-build-system)
(propagated-inputs
`(("perl-email-date-format" ,perl-email-date-format)))
("libtool" ,libtool)))
(inputs
`(("libesmtp" ,libesmtp)))
- (home-page "http://sourceforge.net/projects/esmtp/")
+ (home-page "https://sourceforge.net/projects/esmtp/")
(synopsis "Relay-only mail transfer agent (MTA)")
(description "Esmtp is a simple relay-only mail transfer agent built using
libESMTP. It sends e-mail via a remote SMTP server using credentials from the
@command{newaliases} commands.")
(license gpl2+)))
-;;; mail.scm ends here
+(define-public fdm
+ (package
+ (name "fdm")
+ (version "1.9")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/nicm/fdm/releases/download/"
+ version "/fdm-"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "054rscijahiza5f9qha79rg3siji3bk5mk10f8c2vqx7m4w6qh8n"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("tdb" ,tdb)
+ ("openssl" ,openssl)
+ ("zlib" ,zlib)))
+ (home-page "https://github.com/nicm/fdm")
+ (synopsis "Mail Retrieval Agent (MRA) and Mail Delivery Agent (MDA)")
+ (description "fdm is a program designed to fetch mail from POP3
+or IMAP servers, or receive local mail from stdin, and
+deliver it in various ways.")
+ (license
+ ;; Why point to a source file? Well, all the individual files have a
+ ;; copy of this license in their headers, but there's no seprate file
+ ;; with that information.
+ (non-copyleft "https://github.com/nicm/fdm/blob/master/command.c"))))
+
+
+(define-public procmail
+ (package
+ (name "procmail")
+ (version "3.22")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "ftp://ftp.fu-berlin.de/pub/unix/mail/procmail/procmail-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "05z1c803n5cppkcq99vkyd5myff904lf9sdgynfqngfk9nrpaz08"))
+ ;; The following patch fixes an ambiguous definition of
+ ;; getline() in formail.c. The patch is provided by Debian as
+ ;; patch 24.
+ (patches (search-patches "procmail-ambiguous-getline-debian.patch"
+ "procmail-CVE-2014-3618.patch"))))
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (substitute* "Makefile"
+ (("/bin/sh")
+ (which "sh"))
+ (("/usr")
+ (assoc-ref %outputs "out"))
+ (("/bin/rm")
+ (which "rm")))
+ #t)))
+ #:tests? #f)) ;; There are no tests indicating a successful
+ ;; build. Some tests of basic locking mechanisms provided by the
+ ;; file system are performed during 'make install'. However, these
+ ;; are performed before the actual build process.
+ (build-system gnu-build-system)
+ (inputs `(("exim" ,exim)))
+ (home-page "http://www.procmail.org/")
+ (synopsis "Versatile mail delivery agent (MDA)")
+ (description "Procmail is a mail delivery agent (MDA) featuring support
+for a variety of mailbox formats such as mbox, mh and maildir. Incoming mail
+can be sorted into separate files/directories and arbitrary commands can be
+executed on mail arrival. Procmail is considered stable, but is no longer
+maintained.")
+ (license gpl2+))) ;; procmail allows to choose the
+ ;; nonfree Artistic License 1.0
+ ;; as alternative to the GPL2+.
+ ;; This option is not listed here.
+
+(define-public khard
+ (package
+ (name "khard")
+ (version "0.11.3")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri name version))
+ (sha256
+ (base32
+ "1v66khq5w17xdbkpb00pf9xbl84dlzx4lq286fvzskb949b3y4yn"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (doc (string-append out "/share/doc/khard")))
+ (copy-recursively "misc/khard" doc)
+ #t))))
+ ;; FIXME: check phase fails with
+ ;; "Config file /tmp/.config/khard/khard.conf not available"
+ #:tests? #f))
+ (propagated-inputs
+ `(("python-vobject" ,python-vobject)
+ ("python-pyyaml" ,python-pyyaml)
+ ("python-atomicwrites" ,python-atomicwrites)
+ ("python-configobj" ,python-configobj)))
+ (synopsis "Console address book using CardDAV")
+ (description "Khard is an address book for the console. It creates, reads,
+modifies and removes CardDAV address book entries at your local machine. For
+synchronizing with a remote address book, @command{vdirsyncer} is recommended.
+Khard can also be used from within the email client @command{mutt}.")
+ (home-page "https://github.com/scheibler/khard")
+ (license gpl3+)))
+
+(define-public perl-mail-spf
+ (package
+ (name "perl-mail-spf")
+ (version "v2.9.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/J/JM/JMEHNLE/mail-spf/Mail-SPF-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0qk1rfgfm5drj4iyniiabrasrpqv570vzhgz66lwgb67y4amkjv1"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-module-build" ,perl-module-build)
+ ("perl-net-dns-resolver-programmable"
+ ,perl-net-dns-resolver-programmable)))
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (add-before 'configure 'modify-Build.PL
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "Build.PL"
+ (("'/usr/sbin'") (string-append "'"
+ (assoc-ref outputs "out")
+ "/sbin'")))
+ #t)))))
+ (inputs
+ `(("perl-error" ,perl-error)
+ ("perl-net-dns" ,perl-net-dns)
+ ("perl-netaddr-ip" ,perl-netaddr-ip)
+ ("perl-uri" ,perl-uri)))
+ (home-page
+ "http://search.cpan.org/dist/Mail-SPF")
+ (synopsis
+ "Perl implementation of Sender Policy Framework")
+ (description "Mail::SPF is the Sender Policy Framework implemented
+in Perl.")
+ (license bsd-3)))
+
+(define-public mb2md
+ (package
+ (name "mb2md")
+ (version "3.20")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://batleth.sapienti-sat.org/projects/mb2md/mb2md-"
+ version ".pl.gz"))
+ (sha256
+ (base32
+ "0bvkky3c90738h3skd2f1b2yy5xzhl25cbh9w2dy97rs86ssjidg"))))
+ (build-system trivial-build-system)
+ (arguments
+ '(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let* ((source (assoc-ref %build-inputs "source"))
+ (out (assoc-ref %outputs "out"))
+ (bin (string-append out "/bin"))
+ (perl (assoc-ref %build-inputs "perl"))
+ (gzip (assoc-ref %build-inputs "gzip"))
+ (perl-timedate (assoc-ref %build-inputs "perl-timedate"))
+ (perl5lib (string-append perl-timedate "/lib/perl5/site_perl")))
+ (mkdir-p bin)
+ (with-directory-excursion bin
+ (copy-file source "mb2md.gz")
+ (system* (string-append gzip "/bin/gzip") "-d" "mb2md.gz")
+ (substitute* "mb2md"
+ (("#!/usr/bin/perl")
+ (string-append "#!/usr/bin/perl -I " perl5lib)))
+ (patch-shebang "mb2md" (list (string-append perl "/bin")))
+ (chmod "mb2md" #o555))
+ #t))))
+ (native-inputs `(("gzip", gzip)))
+ (inputs `(("perl" ,perl)
+ ("perl-timedate" ,perl-timedate)))
+ (home-page "http://batleth.sapienti-sat.org/projects/mb2md/")
+ (synopsis "Mbox to maildir converter")
+ (description
+ "Mb2md is a Perl script that takes one or more mbox format files and
+converts them to maildir format directories.")
+ (license public-domain)))
+
+(define-public mpop
+ (package
+ (name "mpop")
+ (version "1.2.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/mpop/mpop/" version
+ "/mpop-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0p1ix63jh64dibrlccch8q7gxl9nn18wd2qpyr5z1h4gs2fpmv4z"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("gnutls" ,gnutls)
+ ("libidn" ,libidn)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (arguments
+ `(#:configure-flags (list "--with-tls=gnutls")))
+ (home-page "http://mpop.sourceforge.net/")
+ (synopsis "POP3 mail client")
+ (description "mpop is a small and fast POP3 client suitable as a
+fetchmail replacement.
+
+mpop supports multiple accounts, header based mail filtering, delivery
+to mbox files, maildir folders or a Mail Delivery Agent (MDA),
+TLS/SSL, several authentication methods, Internationalized Domain
+Names (IDN) and SOCKS proxies.")
+ (license gpl3+)))
+
+(define-public mhonarc
+ (package
+ (name "mhonarc")
+ (version "2.6.19")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/E/EH/EHOOD/MHonArc-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0ll3v93yji334zqp6xfzfxc0127pmjcznmai1l5q6dzawrs2igzq"))))
+ (build-system perl-build-system)
+ (home-page "https://www.mhonarc.org/")
+ (synopsis "Create HTML archives of mail/news messages")
+ (description
+ "MHonArc is a Perl mail-to-HTML converter. MHonArc
+provides HTML mail archiving with index, mail thread linking,
+etc; plus other capabilities including support for MIME and
+powerful user customization features.")
+ (license gpl2+)))
+
+
+(define-public sendmail
+ (package
+ (name "sendmail")
+ (version "8.15.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "ftp://ftp.sendmail.org/pub/sendmail/sendmail."
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0fdl9ndmspqspdlmghzxlaqk56j3yajk52d7jxcg21b7sxglpy94"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'replace-/bin/sh
+ (lambda _
+ (substitute*
+ (append
+ (list "smrsh/smrsh.c" "sendmail/conf.c" "contrib/mailprio"
+ "contrib/mmuegel" "devtools/bin/configure.sh")
+ (find-files "." ".*\\.m4")
+ (find-files "." ".*\\.cf"))
+ (("/bin/sh") (which "sh")))
+
+ (substitute* "devtools/bin/Build"
+ (("SHELL=/bin/sh") (string-append "SHELL=" (which "sh"))))
+ #t))
+ (replace 'configure
+ (lambda _
+
+ ;; Render harmless any attempts to chown or chgrp
+ (substitute* "devtools/bin/install.sh"
+ (("owner=\\$2") "owner=''")
+ (("group=\\$2") "group=''"))
+
+ (with-output-to-file "devtools/Site/site.config.m4"
+ (lambda ()
+ (format #t "
+define(`confCC', `gcc')
+define(`confOPTIMIZE', `-g -O2')
+define(`confLIBS', `-lresolv')
+define(`confINSTALL', `~a/devtools/bin/install.sh')
+define(`confDEPEND_TYPE', `CC-M')
+define(`confINST_DEP', `')
+" (getcwd))))))
+ (replace 'build
+ (lambda _
+ (and (zero? (system* "sh" "Build"))
+ (with-directory-excursion "cf/cf"
+ (begin
+ (copy-file "generic-linux.mc" "sendmail.mc")
+ (zero? (system* "sh" "Build" "sendmail.cf")))))))
+ (add-before 'install 'pre-install
+ (lambda _
+ (let ((out (assoc-ref %outputs "out")))
+ (mkdir-p (string-append out "/usr/bin"))
+ (mkdir-p (string-append out "/usr/sbin"))
+ (mkdir-p (string-append out "/etc/mail"))
+ (setenv "DESTDIR" out)
+ (with-directory-excursion "cf/cf"
+ (zero? (system* "sh" "Build" "install-cf")))))))
+ ;; There is no make check. There are some post installation tests, but those
+ ;; require root privileges
+ #:tests? #f))
+ (inputs
+ `(("m4" ,m4)
+ ("perl" ,perl)))
+ (home-page "http://sendmail.org")
+ (synopsis
+ "Highly configurable Mail Transfer Agent (MTA)")
+ (description
+ "Sendmail is a mail transfer agent (MTA) originally developed by Eric
+Allman. It is highly configurable and supports many delivery methods and many
+transfer protocols.")
+ (license (non-copyleft "file://LICENSE"
+ "See LICENSE in the distribution."))))
+
+(define-public opensmtpd
+ (package
+ (name "opensmtpd")
+ (version "6.0.2p1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://www.opensmtpd.org/archives/"
+ name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1b4h64w45hpmfq5721smhg4s0shs64gbcjqjpx3fbiw4hz8bdy9a"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("bdb" ,bdb)
+ ("libressl" ,libressl)
+ ("libevent" ,libevent)
+ ("libasr" ,libasr)
+ ("linux-pam" ,linux-pam)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("bison" ,bison)
+ ("groff" ,groff)))
+ (arguments
+ `(#:configure-flags
+ (list "--with-table-db" "--localstatedir=/var"
+ "--with-user-smtpd=smtpd" "--with-user-queue=smtpq"
+ "--with-group-queue=smtpq"
+ "--with-path-socket=/var/run"
+ "--with-path-CAfile=/etc/ssl/certs/ca-certificates.crt")
+ #:phases
+ (modify-phases %standard-phases
+ ;; OpenSMTPD provides a single utility smtpctl to control the daemon and
+ ;; the local submission subsystem. To accomodate systems that require
+ ;; historical interfaces such as sendmail, newaliases or makemap, the
+ ;; smtpctl utility can operate in compatibility mode if called with the
+ ;; historical name.
+ (add-after 'install 'install-compabilitymode
+ (lambda _
+ (let* ((out (assoc-ref %outputs "out"))
+ (sbin (string-append out "/sbin/")))
+ (for-each (lambda (cmd)
+ (symlink "smtpctl" (string-append sbin cmd)))
+ '("makemap" "sendmail" "send-mail"
+ "newaliases" "mailq")))
+ #t)))))
+ (synopsis "Lightweight SMTP daemon")
+ (description
+ "OpenSMTPD is an implementation of the server-side SMTP protocol, with
+some additional standard extensions. It allows ordinary machines to exchange
+e-mails with other systems speaking the SMTP protocol.")
+ (home-page "https://www.opensmtpd.org")
+ (license (list bsd-2 bsd-3 bsd-4 (non-copyleft "file://COPYING")
+ public-domain isc license:openssl))))
+
+(define-public opensmtpd-extras
+ (package
+ (name "opensmtpd-extras")
+ (version "5.7.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://www.opensmtpd.org/archives/"
+ name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1kld4hxgz792s0cb2gl7m2n618ikzqkj88w5dhaxdrxg4x2c4vdm"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("libressl" ,libressl)
+ ("libevent" ,libevent)
+ ("libasr" ,libasr)
+ ("python-2" ,python-2)
+ ("opensmtpd" ,opensmtpd)
+ ("perl" ,perl)
+ ("lua" ,lua)
+ ("postgresql" ,postgresql)
+ ("sqlite" ,sqlite)
+ ("linux-pam" ,linux-pam)))
+ (native-inputs
+ `(("bison" ,bison)
+ ("pkg-config" ,pkg-config)
+ ("groff" ,groff)
+ ("automake" ,automake)
+ ("autoconf" ,autoconf)))
+ (arguments
+ `(;; We have to configure it like this because the default checks for for example
+ ;; python in /usr/local/bin, /usr/bin and fails otherwise.
+ #:configure-flags (list
+ "--with-filter-clamav" "--with-filter-dkim-signer"
+ "--with-filter-dnsbl" "--with-filter-lua"
+ "--with-filter-monkey" "--with-filter-pause"
+ "--with-filter-perl" "--with-filter-python"
+ "--with-filter-regex" "--with-filter-spamassassin"
+ "--with-filter-stub" "--with-filter-trace"
+ "--with-filter-void"
+
+ "--with-queue-null" "--with-queue-python"
+ "--with-queue-ram" "--with-queue-stub"
+
+ "--with-scheduler-python" "--with-scheduler-ram"
+ "--with-scheduler-stub"
+
+ "--with-table-ldap" ; "--with-table-mysql"
+ "--with-table-passwd" "--with-table-postgres"
+ "--with-table-python" "--with-table-socketmap"
+ "--with-table-sqlite" "--with-table-stub"
+ ;;"--with-table-redis" ; TODO: package hiredis
+
+ "--with-user=smtpd" "--with-privsep-user=smtpd"
+ "--localstatedir=/var" "--sysconfdir=/etc"
+ "--with-lua-type=lua" ; can use lua or luajit
+
+ (string-append "--with-python="
+ (assoc-ref %build-inputs "python-2"))
+ (string-append "--with-lua="
+ (assoc-ref %build-inputs "lua")))))
+ (license (list bsd-2 bsd-3 bsd-4
+ public-domain isc license:openssl))
+ (synopsis "Extra tables, filters, and various other addons for OpenSMTPD")
+ (description
+ "This package provides extra tables, filters, and various other addons
+for OpenSMTPD to extend its functionality.")
+ (home-page "https://www.opensmtpd.org")))
+
+(define-public python-mailmanclient
+ (package
+ (name "python-mailmanclient")
+ (version "1.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "mailmanclient" version))
+ (sha256
+ (base32
+ "1cfjh45fgbsax5hjj2inq9nk33dhdvh63xhysc8dhnqidgqgm8c5"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ; Requires mailman running
+ (propagated-inputs
+ `(("python-six" ,python-six)
+ ("python-httplib2" ,python-httplib2)))
+ (home-page "https://launchpad.net/mailman.client")
+ (synopsis "Python bindings for the Mailman 3 REST API")
+ (description
+ "The mailmanclient library provides official Python bindings for
+the GNU Mailman 3 REST API.")
+ (license lgpl3+)))
+
+(define-public python2-mailmanclient
+ (package-with-python2 python-mailmanclient))
+
+(define-public mlmmj
+ (package
+ (name "mlmmj")
+ (version "1.2.19.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://mlmmj.org/releases/mlmmj-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "1piwvcxkqadjwk5x8jicaiyz9nngmaj3w13ghdqgaki32xd7zk9v"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("perl" ,perl))) ; For "contrib/web/"
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (arguments
+ `(#:configure-flags
+ ;; mlmmj-receive-strip is a replacement for mlmmj-receive
+ ;; It opens the files control/mimedeny and control/mimestrip to get a list
+ ;; of mimetypes for parts of multipart/mime messages that should be denied
+ ;; or stripped. The parts then get stripped directly when the mail is
+ ;; received. mlmmj-receive-strip also appends an extra header
+ ;; X-ThisMailContainsUnwantedMimeParts: Y when the mail contains unwanted
+ ;; mime parts
+ (list "--enable-receive-strip")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'install 'install-contrib
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (share (string-append out "/share/mlmmj"))
+ (contrib (string-append share "/contrib/web"))
+ (texts (string-append share "/listtexts")))
+ (copy-recursively "contrib/web/" contrib)
+ (copy-recursively "listtexts" texts)
+ (rename-file texts (string-append share "/texts"))
+ #t))))))
+ (home-page "http://mlmmj.org")
+ (synopsis "Mailing list managing made joyful")
+ (description
+ "Mlmmj is a simple and slim mailing list manager (MLM) inspired by ezmlm.
+It works with many different Mail Transport Agents (MTAs) and is simple for a
+system adminstrator to install, configure and integrate with other software.
+As it uses very few resources, and requires no daemons, it is ideal for
+installation on systems where resources are limited. Its features include:
+@enumerate
+@item Archive, Custom headers / footer,
+@item Fully automated bounce handling (similar to ezmlm),
+@item Complete requeueing functionality, Moderation functionality, Subject prefix,
+@item Subscribers only posting, Regular expression access control,
+@item Functionality to retrieve old posts, Web interface, Digests,
+@item No-mail subscription, VERP support,
+@item Delivery Status Notification (RFC1891) support,
+@item Rich and customisable texts for automated operations.
+@end enumerate\n")
+ (license license:expat)))
+
+(define-public blists
+ (package
+ (name "blists")
+ (version "1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://download.openwall.net/pub/projects/"
+ "blists/blists-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1gp51kmb8yv8d693wcpdslmwlbw5w2kgz4kxhrcaf7y89w8wy4qd"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; No tests
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (install-file "bindex" bin)
+ (install-file "bit" bin)
+ #t))))))
+ (home-page "http://www.openwall.com/blists/")
+ (synopsis "Web interface to mailing list archives")
+ (description
+ "Blists is a web interface to mailing list archives that works off
+indexed mbox files. There are two programs: @code{bindex} and @code{bit}.
+@code{bindex} generates or updates the index file (incremental updates
+are supported). @code{bit} is a CGI/SSI program that generates web pages
+on the fly. Both programs are written in C and are very fast.")
+ (license license:expat)))