gnu: offlineimap: Add sqlite support.
[jackhill/guix/guix.git] / gnu / packages / mail.scm
index e4fc65f..e5eefc7 100644 (file)
@@ -12,6 +12,7 @@
 ;;; 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>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -70,8 +71,8 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #: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)))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -176,18 +177,19 @@ aliasing facilities to work just as they would on normal mail.")
 (define-public mutt
   (package
     (name "mutt")
-    (version "1.5.24")
+    (version "1.6.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "ftp://ftp.mutt.org/pub/mutt/mutt-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "0012njrgxf1barjksqkx7ccid2l0xyikhna9mjs9vcfpbrvcm4m2"))
+               "06bc2drbgalkk68rzg7hq2v5m5qgjxff5357wg0419dpi8ivdbr9"))
              (patches (list (search-patch "mutt-store-references.patch")))))
     (build-system gnu-build-system)
     (inputs
      `(("cyrus-sasl" ,cyrus-sasl)
+       ("gdbm" ,gdbm)
        ("gpgme" ,gpgme)
        ("ncurses" ,ncurses)
        ("openssl" ,openssl)
@@ -197,6 +199,7 @@ aliasing facilities to work just as they would on normal mail.")
                            "--enable-imap"
                            "--enable-pop"
                            "--enable-gpgme"
+                           "--enable-hcache" ; for header caching
                            "--with-ssl"
                            "--with-sasl"
                            ;; so that mutt does not check whether the path
@@ -288,7 +291,7 @@ and corrections.  It is based on a Bayesian filter.")
 (define-public offlineimap
   (package
     (name "offlineimap")
-    (version "6.6.1")
+    (version "6.7.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/OfflineIMAP/offlineimap/"
@@ -296,14 +299,24 @@ and corrections.  It is based on a Bayesian filter.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1c2b03856a78ripkpl9jjzj6yzyfb3rlrdnjx300s647l1xx8gxg"))))
+                "0462mal2fxvavxhwjk1a6vsnspx07yniifa687dwg46aplqznin4"))))
     (build-system python-build-system)
     (native-inputs `(("python" ,python-2)))
+    (inputs `(("python2-pysqlite" ,python2-pysqlite)))
     (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 'install 'wrap-binary
+           (lambda* (#:key inputs 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
@@ -654,7 +667,7 @@ delivery.")
 (define-public exim
   (package
     (name "exim")
-    (version "4.86")
+    (version "4.86.2")
     (source
      (origin
        (method url-fetch)
@@ -664,7 +677,7 @@ delivery.")
                                  version ".tar.bz2")))
        (sha256
         (base32
-         "0mn4bxih9slrmll5262ayhf41ji43pjf1rv0y6xpy6x55v7g5k7i"))))
+         "1cvfcc1hi60lydv8h3a2rxlfc0v2nflwpvzjj7h7cdsqs2pxwmkp"))))
     (build-system gnu-build-system)
     (inputs
      `(("bdb" ,bdb)
@@ -1098,4 +1111,97 @@ deliver it in various ways.")
      ;; with that information.
      (non-copyleft "https://github.com/nicm/fdm/blob/master/command.c"))))
 
-;;; mail.scm ends here
+
+(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
+        (list
+         (search-patch "procmail-ambiguous-getline-debian.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
+    ;; filesystem are performed during 'make install'.  However, these
+    ;; are performed before the actual build process.
+    (build-system gnu-build-system)
+    (inputs `(("glibc" ,glibc)
+              ("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.8.1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri name version))
+              (sha256
+               (base32
+                "098gs94qmnspdfn6ar8lycx7dbsz9bcff90aps0cmn47mw7llch0"))))
+    (build-system python-build-system)
+    (arguments
+      `(#:python ,python-2 ; only python-2 is supported.
+        #:phases
+        (modify-phases %standard-phases
+          (add-before 'build 'disable-egg-compression
+            ;; Do not compress the egg.
+            (lambda _
+              (let ((port (open-file "setup.cfg" "a")))
+                (display "\n[easy_install]\nzip_ok = 0\n"
+                         port)
+                (close-port port)
+                #t)))
+          (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)))))))
+    (native-inputs
+     `(("python2-setuptools" ,python2-setuptools)))
+    (propagated-inputs
+     `(("python2-vobject" ,python2-vobject)
+       ("python2-pyyaml" ,python2-pyyaml)
+       ("python2-atomicwrites" ,python2-atomicwrites)
+       ("python2-configobj" ,python2-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+)))