[PATCH 0/3] Add lurch.

  • Done
  • quality assurance status badge
Details
2 participants
  • James Thomas
  • Ludovic Courtès
Owner
unassigned
Submitted by
James Thomas
Severity
normal
J
J
James Thomas wrote on 10 Oct 2021 11:01
(address . guix-patches@gnu.org)
87mtnhfe3i.fsf@gmx.net
This patchset adds lurch for OMEMO encryption support in libpurple based
programs such as Pidgin. I have tested it (not on Pidgin, but) on a
feature branch of bitlbee-purple:

James Thomas (3):
gnu: Add axc.
gnu: Add libomemo.
gnu: Add purple-lurch.

gnu/packages/messaging.scm | 128 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 128 insertions(+)

--
2.32.0
J
J
James Thomas wrote on 11 Oct 2021 01:39
[PATCH 1/3] Add axc.
(address . 51115@debbugs.gnu.org)
871r4sjvpg.fsf@gmx.net
* gnu/packages/messaging.scm (axc): New variable
---
gnu/packages/messaging.scm | 41 ++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)

Toggle diff (52 lines)
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 6b4f26880c..13909cca4c 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -547,6 +547,47 @@ messaging environments. It can be used with messaging software to provide
end-to-end encryption.")
(license license:gpl3+)))

+(define-public axc
+ (package
+ (name "axc")
+ (version "0.3.6")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gkdr/axc")
+ (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 "05sv7l6lk0xk4wb2bspc2sdpygrb1f0szzi82a1kyfm0fjz887b3"))))
+ (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")))
+ (setenv "CC" "gcc")
+ (setenv "PREFIX" out)))))
+ #:parallel-tests? #f))
+ (native-inputs `(("cmocka" ,cmocka)
+ ("pkg-config" ,pkg-config)))
+ (inputs `(("glib" ,glib)
+ ("libgcrypt" ,libgcrypt)
+ ("libsignal-protocol-c" ,libsignal-protocol-c)
+ ("sqlite" ,sqlite)))
+ (synopsis "Client library for libsignal-protocol-c")
+ (description "This is a client library for @code{libsignal-protocol-c}.
+It implements the necessary interfaces using @code{libgcrypt} and
+@code{sqlite}.")
+ (home-page "https://github.com/gkdr/axc")
+ (license license:gpl3+)))
+
(define-public bitlbee
(package
(name "bitlbee")
--
2.32.0
J
J
James Thomas wrote on 11 Oct 2021 01:42
[PATCH 2/3] Add libomemo.
(address . 51115@debbugs.gnu.org)
87wnmkigzy.fsf_-_@gmx.net
* gnu/packages/messaging.scm (libomemo): New variable
---
gnu/packages/messaging.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (46 lines)
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 13909cca4c..35ca61be81 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -588,6 +588,41 @@ It implements the necessary interfaces using @code{libgcrypt} and
(home-page "https://github.com/gkdr/axc")
(license license:gpl3+)))

+(define-public libomemo
+ (package
+ (name "libomemo")
+ (version "0.7.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gkdr/libomemo")
+ (commit (string-append "v" version))))
+ (file-name
+ (git-file-name name version))
+ (sha256
+ (base32 "1q3vyj8zk3vm0a4v6w8qya5dhk2yw04bga8799a0zl6907nf122k"))))
+ (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")))
+ (setenv "CC" "gcc")
+ (setenv "PREFIX" out)))))
+ #:parallel-tests? #f))
+ (native-inputs `(("cmocka" ,cmocka)
+ ("pkg-config" ,pkg-config)))
+ (inputs `(("glib" ,glib)
+ ("libgcrypt" ,libgcrypt)
+ ("minixml" ,minixml)
+ ("sqlite" ,sqlite)))
+ (synopsis "OMEMO C library")
+ (description "This library implements @acronym{OMEMO, OMEMO Multi-End
+Message and Object Encryption} of XMPP (XEP-0384) in C.")
+ (home-page "https://github.com/gkdr/libomemo")
+ (license license:expat)))
+
(define-public bitlbee
(package
(name "bitlbee")
--
2.32.0
J
J
James Thomas wrote on 11 Oct 2021 01:44
Re: [PATCH 3/3] Add purple-lurch.
(address . 51115@debbugs.gnu.org)
87sfx8igxf.fsf_-_@gmx.net
* gnu/packages/messaging.scm (purple-lurch): New variable
---
gnu/packages/messaging.scm | 52 ++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)

Toggle diff (63 lines)
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 35ca61be81..5671d36a57 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -2700,6 +2700,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")
--
2.32.0
L
L
Ludovic Courtès wrote on 14 Nov 2021 19:35
Re: bug#51115: [PATCH 0/3] Add lurch.
(name . James Thomas)(address . jimjoe@gmx.net)(address . 51115-done@debbugs.gnu.org)
877ddaa8mf.fsf@gnu.org
Hi,

James Thomas <jimjoe@gmx.net> skribis:

Toggle quote (4 lines)
> gnu: Add axc.
> gnu: Add libomemo.
> gnu: Add purple-lurch.

Pushed as 704bd694d198ed568349e4772bc6488a58f15d8b, thanks!

Ludo’.
Closed
?