Subject: [bug#40394] [PATCH] gnu: Add muchsync.

From: Justus Winter <[email-masked]>
Date: Fri, 3 Apr 2020 00:24:41 +0200

* gnu/packages/mail.scm (muchsync): New variable.
---
 gnu/packages/mail.scm | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index ed14360066..061dc237f3 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -30,6 +30,7 @@
 ;;; Copyright © 2018, 2019, 2020 Ricardo Wurmus <[email-masked]>
 ;;; Copyright © 2019 Tanguy Le Carrour <[email-masked]>
 ;;; Copyright © 2020 Vincent Legoll <[email-masked]>
+;;; Copyright © 2020 Justus Winter <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -82,6 +83,7 @@
   #:use-module (gnu packages guile)
   #:use-module (gnu packages guile-xyz)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages haskell-xyz)
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages libevent)
@@ -1074,6 +1076,38 @@ and search library.")
 (define-public python2-notmuch
   (package-with-python2 python-notmuch))
 
+(define-public muchsync
+  (package
+    (name "muchsync")
+    (version "5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.muchsync.org/src/muchsync-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "1k2m44pj5i6vfhp9icdqs42chsp208llanc666p3d9nww8ngq2lb"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("ghc-pandoc" ,ghc-pandoc)))
+    (inputs
+     `(("notmuch" ,notmuch)
+       ("sqlite" ,sqlite)
+       ("xapian" ,xapian)
+       ("libcrypto" ,openssl)))
+    (home-page "https://www.muchsync.org/")
+    (synopsis "Synchronize notmuch mail across machines")
+    (description
+     "Muchsync brings notmuch to all of your computers by synchronizing your
+mail messages and notmuch tags across machines.  The protocol is heavily
+pipelined to work efficiently over high-latency networks such as mobile
+broadband.  Muchsync supports arbitrary pairwise synchronization among
+replicas.  A version-vector-based algorithm allows it to exchange only the
+minimum information necessary to bring replicas up to date regardless of which
+pairs have previously synchronized.")
+    (license gpl2+)))
+
 (define-public getmail
   (package
     (name "getmail")
-- 
2.26.0