~ruther/guix-local

944a5cdd0d8a659b675ec73e7cfa983048c96ed5 — ng0 9 years ago ae196fa
gnu: Add dovecot-trees.

* gnu/packages/mail.scm (dovecot-trees): New variable.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
1 files changed, 58 insertions(+), 1 deletions(-)

M gnu/packages/mail.scm
M gnu/packages/mail.scm => gnu/packages/mail.scm +58 -1
@@ 44,6 44,7 @@
  #:use-module (gnu packages backup)
  #:use-module (gnu packages bash)
  #:use-module (gnu packages bison)
  #:use-module (gnu packages crypto)
  #:use-module (gnu packages curl)
  #:use-module (gnu packages cyrus-sasl)
  #:use-module (gnu packages databases)


@@ 93,7 94,7 @@
                #: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))
                           bsd-2 x11-style agpl3))
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix git-download)


@@ 1130,6 1131,62 @@ It supports mbox/Maildir and its own dbox/mdbox formats.")
    ;; Unicode, Inc. License Agreement for Data Files and Software.
    (license (list lgpl2.1 license:expat (non-copyleft "file://COPYING")))))

(define-public dovecot-trees
  (let ((commit "006059c8a47d68f14f73c09743e45b9a73014dbf")
        (revision "1"))
    (package
      (name "dovecot-trees")
      (version (string-append "2.0.0-" revision "." (string-take commit 7)))
      (source
       (origin
         (method git-fetch)
         (uri (git-reference
               (url "https://0xacab.org/riseuplabs/trees.git")
               (commit commit)))
         (file-name (string-append name "-" version "-checkout"))
         (sha256
          (base32
           "0ax90bzc66x179wi1m7ywqwa8nssyhjngs7ij109hqqxg5ymfp73"))))
      (build-system gnu-build-system)
      (native-inputs
       `(("automake" ,automake)
         ("autoconf" ,autoconf)
         ("libtool" ,libtool)
         ("dovecot" ,dovecot)
         ("pkg-config" ,pkg-config)))
      (inputs
       `(("libsodium" ,libsodium)))
      (arguments
       `(#:tests? #f ;No tests exist.
         #:configure-flags (list (string-append "--with-dovecot="
                                                (assoc-ref %build-inputs "dovecot")
                                                "/lib/dovecot"))
         #:phases
         (modify-phases %standard-phases
           (add-before 'configure 'autogen
             (lambda _
               (zero? (system* "./autogen.sh")))))))
      (home-page "https://0xacab.org/riseuplabs/trees")
      (synopsis "NaCL-based Dovecot email storage encryption plugin")
      (description
       "Technology for Resting Email Encrypted Storage (TREES) is a NaCL-based
Dovecot encryption plugin.  This plugin adds individually encrypted mail
storage to the Dovecot IMAP server.  It is inspired by Posteo's scrambler
which uses OpenSSL and RSA keypairs.  TREES works in a similar way, but uses
the Sodium crypto library (based on NaCL).

How it works:
@enumerate
@item On IMAP log in, the user's cleartext password is passed to the plugin.
@item The plugin creates an argon2 digest from the password.
@item This password digest is used as a symmetric secret to decrypt a libsodium secretbox.
@item Inside the secretbox is stored a Curve25519 private key.
@item The Curve25519 private key is used to decrypt each individual message,
using lidsodium sealed boxes.
@item New mail is encrypted as it arrives using the Curve25519 public key.
@end enumerate\n")
      (license agpl3))))

(define-public isync
  (package
    (name "isync")