gnu: Add Email-MessageID.
[jackhill/guix/guix.git] / gnu / packages / mail.scm
index a3ea778..1121ea9 100644 (file)
@@ -1,11 +1,12 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014, 2015 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>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -29,6 +30,7 @@
   #:use-module (gnu packages backup)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
+  #:use-module (gnu packages databases)
   #:use-module (gnu packages dejagnu)
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages enchant)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module ((guix licenses)
-                #:select (gpl2 gpl2+ gpl3+ lgpl2.1+ lgpl3+ bsd-style))
+                #:select (gpl2 gpl2+ gpl3+ lgpl2.1+ lgpl3+ non-copyleft))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system perl)
   #:use-module (guix build-system python))
 
 (define-public mailutils
@@ -227,14 +230,16 @@ operating systems.")
        (alist-cons-after
         '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".
-          (substitute* (find-files "tests" "\\.c$")
-            (("(system *\\(\")(/[^ ]*)" all pre prog-path)
-             (let* ((base (basename prog-path))
-                    (prog (which (if (string=? base "gpg") "gpg2" base))))
-              (string-append pre (or prog (error "not found: " base)))))))
+          ;; 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
+          ;; 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))))
+                 (string-append pre (or prog (error "not found: " base))))))))
         %standard-phases)))
     (home-page "http://spruce.sourceforge.net/gmime/")
     (synopsis "MIME message parser and creator library")
@@ -284,6 +289,7 @@ and corrections.  It is based on a Bayesian filter.")
               (method url-fetch)
               (uri (string-append "https://github.com/OfflineIMAP/offlineimap/"
                                   "archive/v" version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
                 "00k84qagph3xnxss6rkxm61x07ngz8fvffx4z9jyw5baf3cdd32p"))))
@@ -305,7 +311,7 @@ repository and Maildir/IMAP as LOCAL repository.")
 (define-public mu
   (package
     (name "mu")
-    (version "0.9.11")
+    (version "0.9.12")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/djcb/mu/archive/v"
@@ -313,7 +319,7 @@ repository and Maildir/IMAP as LOCAL repository.")
               (file-name (string-append "mu-" version ".tar.gz"))
               (sha256
                (base32
-                "01n1lzq4pfsm5pn932p948d1z55yqc7kkm1ifjxjchb3k8lr66fh"))))
+                "1bxryacmas2llj68m2dv8dr1vwx8f5k2i2azh69jajkpqx7i4wdq"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -325,7 +331,7 @@ repository and Maildir/IMAP as LOCAL repository.")
     ;; TODO: Add webkit and gtk to build the mug GUI.
     (inputs
      `(("xapian" ,xapian)
-       ("emacs" ,emacs)
+       ("emacs" ,emacs-no-x)
        ("guile" ,guile-2.0)
        ("glib" ,glib)
        ("gmime" ,gmime)
@@ -425,6 +431,7 @@ useful features.")
              (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"))))
     (build-system gnu-build-system)
@@ -441,14 +448,11 @@ useful features.")
      `(("curl" ,curl)
        ("expat" ,expat)))
     (arguments
-      '(#:phases (alist-cons-before
-                  'configure 'autogen
+      '(#:phases (alist-cons-after
+                  'unpack 'autogen
                   (lambda _
-                    (system* "./autogen.sh")) ;; Note: this fails because the
-                         ;; generated configure script uses /bin/sh. It is
-                         ;; replaced in the configure phase by the correct
-                         ;; value. TODO: replace the configure phase by the
-                         ;; autogen phase and have the SHELL variable be replaced
+                    (setenv "NOCONFIGURE" "true")
+                    (zero? (system* "sh" "autogen.sh")))
                   %standard-phases)
         #:configure-flags
         '("--disable-static" "--disable-db")))
@@ -459,7 +463,7 @@ useful features.")
 framework for different kinds of mail access: IMAP, SMTP, POP and NNTP.  It
 provides an API for C language.  It's the low-level API used by MailCore and
 MailCore 2.")
-    (license (bsd-style "file://COPYING"))))
+    (license (non-copyleft "file://COPYING"))))
 
 (define-public claws-mail
   (package
@@ -468,8 +472,8 @@ MailCore 2.")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "http://downloads.sourceforge.net/project/claws-mail/"
-                    "Claws Mail/" version "/" name "-" version ".tar.xz"))
+                    "mirror://sourceforge/claws-mail/claws-mail-" version
+                    ".tar.xz"))
               (sha256
                (base32 "0cyixz1jgfpi8abh9fbb8ylx9mcvw4jqj81cms666wpqr6v828yp"))))
     (build-system gnu-build-system)
@@ -515,8 +519,7 @@ which can add many functionalities to the base client.")
      (origin
        (method url-fetch)
        (uri (string-append
-             "http://downloads.sourceforge.net/project/msmtp/msmtp/" version
-             "/msmtp-" version ".tar.bz2"))
+             "mirror://sourceforge/msmtp/msmtp-" version ".tar.bz2"))
        (sha256 (base32
                 "122z38pv4q03w3mbnhrhg4w85a51258sfdg2ips0b6cgwz3wbw1b"))))
     (build-system gnu-build-system)
@@ -625,4 +628,65 @@ deal of flexibility in the way mail can be routed, and there are extensive
 facilities for checking incoming mail.")
     (license gpl2+)))
 
+(define-public isync
+  (package
+    (name "isync")
+    (version "1.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/isync/isync/"
+                           version "/isync-" version ".tar.gz"))
+       (sha256 (base32
+                "1960ah3fmp75cakd06lcx50n5q0yvfsadjh3lffhyvjvj7ava9d2"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("bdb" ,bdb)
+       ("openssl" ,openssl)))
+    (home-page "http://isync.sourceforge.net/")
+    (synopsis "Mailbox synchronization program")
+    (description
+     "isync/mbsync is command line tool for two-way synchronization of
+mailboxes.  Currently Maildir and IMAP are supported types.")
+    (license gpl2+)))
+
+(define-public perl-email-address
+  (package
+    (name "perl-email-address")
+    (version "1.907")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
+                           "Email-Address-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1ai4r149pzjv9dc2vddir8zylj0z1pii93rm4g591lx7avim71hx"))))
+    (build-system perl-build-system)
+    (home-page "http://search.cpan.org/dist/Email-Address")
+    (synopsis "Email address parsing and creation")
+    (description "Email::Address implements a regex-based RFC 2822 parser that
+locates email addresses in strings and returns a list of Email::Address
+objects found.  Alternatively you may construct objects manually.")
+    (license (package-license perl))))
+
+(define-public perl-email-messageid
+  (package
+    (name "perl-email-messageid")
+    (version "1.405")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
+                           "Email-MessageID-" version ".tar.gz"))
+       (sha256
+        (base32
+         "09216naz21x99ff33wdm3j3zq1zhdbxhrsmx8bvavjrw3gjsvrq3"))))
+    (build-system perl-build-system)
+    (home-page "http://search.cpan.org/dist/Email-MessageID")
+    (synopsis "Generate world unique message-ids")
+    (description "Email::MessageID generates recommended message-ids to
+identify a message uniquely.")
+    (license (package-license perl))))
+
 ;;; mail.scm ends here