summary refs log tree commit diff
path: root/gnu/packages/mail.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/mail.scm')
-rw-r--r--gnu/packages/mail.scm127
1 files changed, 44 insertions, 83 deletions
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 64f679e662..0538342977 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 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>
@@ -87,6 +87,7 @@
   #:use-module (gnu packages libidn)
   #:use-module (gnu packages libunistring)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages lsof)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages m4)
   #:use-module (gnu packages man)
@@ -136,7 +137,9 @@
   #:use-module (guix build-system guile)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
-  #:use-module (guix build-system trivial))
+  #:use-module (guix build-system trivial)
+  #:use-module (srfi srfi-1)
+  #:use-module (ice-9 match))
 
 (define-public mailutils
   (package
@@ -151,7 +154,7 @@
                "1wkn9ch664477r4d8jk9153w5msljsbj99907k7zgzpmywbs6ba7"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-before 'check 'prepare-test-suite
            (lambda _
@@ -199,12 +202,18 @@
 
              #t)))
        ;; TODO: Add `--with-sql'.
-       #:configure-flags (list "--sysconfdir=/etc"
-
-                               ;; Add "/2.2" to the installation directory.
-                               (string-append "--with-guile-site-dir="
-                                              (assoc-ref %outputs "out")
-                                              "/share/guile/site/2.2"))
+       #:configure-flags
+       (list "--sysconfdir=/etc"
+
+             ;; Add "/X.Y" to the installation directory.
+             (string-append "--with-guile-site-dir="
+                            (assoc-ref %outputs "out")
+                            "/share/guile/site/"
+                            ,(match (assoc "guile"
+                                           (package-inputs this-package))
+                               (("guile" guile)
+                                (version-major+minor
+                                 (package-version guile))))))
 
        #:parallel-tests? #f))
     (native-inputs
@@ -237,6 +246,14 @@ software.")
      ;; Libraries are under LGPLv3+, and programs under GPLv3+.
      (list gpl3+ lgpl3+))))
 
+(define-public guile3.0-mailutils
+  (package
+    (inherit mailutils)
+    (name "guile3.0-mailutils")
+    (inputs
+     `(("guile" ,guile-3.0)
+       ,@(alist-delete "guile" (package-inputs mailutils))))))
+
 (define-public nullmailer
   (package
     (name "nullmailer")
@@ -2284,80 +2301,14 @@ transfer protocols.")
 (define-public opensmtpd
   (package
     (name "opensmtpd")
-    (version "6.0.3p1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://www.opensmtpd.org/archives/"
-                                  name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "10bsfsnlg9d9i6l2izdnxp05s3ri8fvwzqxvx1jmarc852382619"))
-              ;; Fixed upstream: <github.com/OpenSMTPD/OpenSMTPD/pull/835>.
-              (patches (search-patches "opensmtpd-fix-crash.patch"))))
-    (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" "--with-auth-pam" "--localstatedir=/var"
-             "--with-user-smtpd=smtpd" "--with-user-queue=smtpq"
-             "--with-group-queue=smtpq"
-             "--with-path-socket=/var/run" ; not default (./configure lies)
-             "--with-path-CAfile=/etc/ssl/certs/ca-certificates.crt")
-       #:phases
-       (modify-phases %standard-phases
-         ;; Fix some incorrectly hard-coded external tool file names.
-         (add-after 'unpack 'patch-FHS-file-names
-           (lambda _
-             (substitute* "smtpd/smtpctl.c"
-               (("/bin/cat") (which "cat"))
-               (("/bin/sh") (which "sh")))
-             #t))
-         ;; 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-compability-links
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out  (assoc-ref outputs "out"))
-                    (sbin (string-append out "/sbin/")))
-               (for-each (lambda (command)
-                           (symlink "smtpctl" (string-append sbin command)))
-                         '("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))))
-
-;; OpenSMTPd 6.4 introduced a new and incompatible configuration file format.
-;; Use a different name, for now, to avoid auto-upgrades and broken mail boxes.
-;; OPENSMTP-CONFIGURATION in (gnu services mail) will also need an overhaul.
-(define-public opensmtpd-next
-  (package
-    (name "opensmtpd-next")
-    (version "6.6.1p1")
+    (version "6.6.2p1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.opensmtpd.org/archives/"
                            "opensmtpd-" version ".tar.gz"))
        (sha256
-        (base32 "1ngil8j13m2rq07g94j4yjr6zmaimzy8wbfr17shi7rxnazys6zb"))))
+        (base32 "16nz2n4s3djlasd6m6dqfwggf6igyfxzq5igny5i0qb8lnn13f33"))))
     (build-system gnu-build-system)
     (inputs
      `(("bdb" ,bdb)
@@ -3120,11 +3071,11 @@ related tools to process winmail.dat files.")
     (license gpl2+)))
 
 (define-public public-inbox
-  (let ((commit "3cf66514aea9e958999973b9f104473b6d800fbe")
+  (let ((commit "05a06f3262a2ddbf46adb85169e13ce9127e4524")
         (revision "0"))
     (package
      (name "public-inbox")
-     (version (git-version "1.0.0" revision commit))
+     (version (git-version "1.2.0" revision commit))
      (source
       (origin (method git-fetch)
               (uri (git-reference
@@ -3132,7 +3083,7 @@ related tools to process winmail.dat files.")
                     (commit commit)))
               (sha256
                (base32
-                "1sxycwlm2n6p544gn9f0vf3xs6gz8vdswdhs2ha6fka8mgabvmdh"))
+                "06cclxg46gsls3x19l9s8s9x8gkjghm6gd4jb1v9ng6fds6xi2fg"))
               (file-name (git-file-name name version))))
      (build-system perl-build-system)
      (arguments
@@ -3149,6 +3100,13 @@ related tools to process winmail.dat files.")
             (lambda _
               (substitute* "t/spawn.t"
                 (("\\['env'\\]") (string-append "['" (which "env") "']")))
+              (substitute* "t/ds-leak.t"
+                (("/bin/sh") (which "sh")))
+              (invoke "./certs/create-certs.perl")
+              ;; XXX: This test fails due to zombie process is not reaped by
+              ;; the builder.
+              (substitute* "t/httpd-unix.t"
+                (("^SKIP: \\{") "SKIP: { skip('Guix');"))
               #t))
           (add-after 'install 'wrap-programs
             (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -3168,15 +3126,18 @@ related tools to process winmail.dat files.")
               #t)))))
      (native-inputs
       `(("git" ,git)
-        ("xapian" ,xapian)))
+        ("xapian" ,xapian)
+        ;; For testing.
+        ("lsof" ,lsof)
+        ("openssl" ,openssl)))
      (inputs
-      `(("perl-danga-socket" ,perl-danga-socket)
-        ("perl-dbd-sqlite" ,perl-dbd-sqlite)
+      `(("perl-dbd-sqlite" ,perl-dbd-sqlite)
         ("perl-dbi" ,perl-dbi)
         ("perl-email-address-xs" ,perl-email-address-xs)
         ("perl-email-mime-contenttype" ,perl-email-mime-contenttype)
         ("perl-email-mime" ,perl-email-mime)
         ("perl-email-simple" ,perl-email-simple)
+        ("perl-net-server" ,perl-net-server)
         ("perl-filesys-notify-simple" ,perl-filesys-notify-simple)
         ("perl-plack-middleware-deflater" ,perl-plack-middleware-deflater)
         ("perl-plack-middleware-reverseproxy" ,perl-plack-middleware-reverseproxy)