summary refs log tree commit diff
diff options
context:
space:
mode:
authorJames Thomas <jimjoe@gmx.net>2021-10-11 05:14:12 +0530
committerLudovic Courtès <ludo@gnu.org>2021-11-14 00:19:38 +0100
commit704bd694d198ed568349e4772bc6488a58f15d8b (patch)
tree99010e6a4ff90ab687d79605410e440f9e901946
parent2a05676873ccdbbbdbeb89129f23a6e1412f219f (diff)
downloadguix-704bd694d198ed568349e4772bc6488a58f15d8b.tar.gz
gnu: Add purple-lurch.
* gnu/packages/messaging.scm (purple-lurch): New variable

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--gnu/packages/messaging.scm52
1 files changed, 52 insertions, 0 deletions
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 6294b89a17..40da7def84 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -2685,6 +2685,58 @@ support for high performance Telegram Bot creation.")
     (home-page "https://source.puri.sm/Librem5/purple-mm-sms")
     (license license:gpl2+)))
 
+(define-public purple-lurch
+  (package
+    (name "purple-lurch")
+    (version "0.7.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference (url "https://github.com/gkdr/lurch")
+                       (commit (string-append "v" version))))
+       (modules '((guix build utils)))
+       (snippet
+        `(begin
+           ;; Submodules
+           (delete-file-recursively "lib")))
+       (file-name
+        (git-file-name name version))
+       (sha256
+        (base32 "1ipd9gwh04wbqv6c10yxi02lc2yjsr02hwjycgxhl4r9x8b33psd"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'configure
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out")))
+                        (substitute* "Makefile"
+                          (("^PURPLE_PLUGIN_DIR = .*")
+                           (string-append "PURPLE_PLUGIN_DIR = " out
+                                          "/lib/purple-2\n")))
+                        (setenv "CC" "gcc")))))
+       #:parallel-tests? #f))
+    (native-inputs `(("cmocka" ,cmocka)
+                     ("pkg-config" ,pkg-config)))
+    (inputs `(("axc" ,axc)
+              ("glib" ,glib)
+              ("libgcrypt" ,libgcrypt)
+              ("libomemo" ,libomemo)
+              ("libsignal-protocol-c" ,libsignal-protocol-c)
+              ("libxml2" ,libxml2)
+              ("minixml" ,minixml)
+              ("pidgin" ,pidgin)
+              ("sqlite" ,sqlite)))
+    (synopsis "OMEMO Encryption for libpurple")
+    (description "Purple-lurch plugin adds end-to-end encryption support
+through the Double Ratchet (Axolotl) algorithm, to @code{libpurple}
+applications using @acronym{XMPP, Extensible Messaging and Presence Protocol},
+through its standard XEP-0384: @acronym{OMEMO, OMEMO Multi-End Message and
+Object Encryption} Encryption.  It provides confidentiality, (weak) forward
+secrecy, break-in recovery, authentication, integrity, deniability, and
+asynchronicity.")
+    (home-page "https://github.com/gkdr/lurch")
+    (license license:gpl3+)))
+
 (define-public chatty
  (package
    (name "chatty")