From cc6f49121bcf2c5d342045f76c94f452f96e5f78 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 15 Nov 2017 14:10:30 +0100 Subject: gnu: Move crypto packages from python to python-crypto. * gnu/packages/python.scm (python-passlib, python2-passlib) (python-py-bcrypt, python2-py-bcrypt) (python-paramiko, python2-paramiko, python-ecdsa, python2-ecdsa) (python-pycrypto, python2-pycrypto, python-keyring, python2-keyring) (python-certifi, python2-certifi) (python-cryptography-vectors, python2-cryptography-vectors) (python-cryptography, python2-cryptography) (python-pyopenssl, python2-pyopenssl) (python-axolotl-curve25519, python2-axolotl-curve25519) (python-axolotl, python2-axolotl, python2-slowaes) (python-pyaes, python2-pyaes): Move to... * gnu/packages/python-crypto.scm: ... here. New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu/packages/admin.scm, gnu/packages/backup.scm, gnu/packages/crypto.scm, gnu/packages/finance.scm, gnu/packages/irc.scm, gnu/packages/jrnl.scm, gnu/packages/messaging.scm, gnu/packages/openstack.scm, gnu/packages/python-web.scm, gnu/packages/tls.scm, gnu/packages/xorg.scm: Adjust accordingly. --- gnu/packages/messaging.scm | 1 + 1 file changed, 1 insertion(+) (limited to 'gnu/packages/messaging.scm') diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 72dbbcd1e9..c0db36585b 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -69,6 +69,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages glib) #:use-module (gnu packages python) + #:use-module (gnu packages python-crypto) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages tcl) -- cgit v1.2.3 From 0d549f60df0c51653eb9784a55d32d0d5efc7c90 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Wed, 15 Nov 2017 08:26:17 +0100 Subject: gnu: messaging: Add libsignal-protocol-c. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/messaging.scm (libsignal-protocol-c): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/messaging.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'gnu/packages/messaging.scm') diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index c0db36585b..397b96c5b0 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2017 Arun Isaac ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 Theodoros Foradis +;;; Copyright © 2017 Rutger Helling ;;; ;;; This file is part of GNU Guix. ;;; @@ -125,6 +126,35 @@ keys, no previous conversation is compromised.") (home-page "https://otr.cypherpunks.ca/") (license (list license:lgpl2.1 license:gpl2)))) +(define-public libsignal-protocol-c + (package + (name "libsignal-protocol-c") + (version "2.3.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/WhisperSystems/" + "libsignal-protocol-c/archive/v" version + ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1klz9jvbnmfc3qy2x6qcswzw14a7kyzs51dlg18yllvir1f1kz0s")))) + (arguments + `(;; Required for proper linking and for tests to run. + #:configure-flags '("-DBUILD_SHARED_LIBS=on" "-DBUILD_TESTING=1"))) + (build-system cmake-build-system) + (inputs `( ;; Required for tests: + ("check", check) + ("openssl", openssl))) + (native-inputs `(("pkg-config", pkg-config))) + (home-page "https://github.com/WhisperSystems/libsignal-protocol-c") + (synopsis "Implementation of a ratcheting forward secrecy protocol") + (description "libsignal-protocol-c is an implementation of a ratcheting +forward secrecy protocol that works in synchronous and asynchronous +messaging environments. It can be used with messaging software to provide +end-to-end encryption.") + (license license:gpl3+))) + (define-public bitlbee (package (name "bitlbee") -- cgit v1.2.3 From d9cd1c2272d2e1eb595f9676571e9ce01d134a21 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Wed, 8 Nov 2017 11:18:38 +0100 Subject: gnu: messaging: Enable OMEMO for dino. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/messaging.scm (dino): Update to commit f6ac5bbd26638412a2289fd1d28ef12de1d7e8b5. [inputs]: Add libsignal-protocol-c and libgcrypt. [arguments]: Change #configure-flags to "-DSHARED_SIGNAL_PROTOCOL=yes". Signed-off-by: Ludovic Courtès --- gnu/packages/messaging.scm | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'gnu/packages/messaging.scm') diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 397b96c5b0..a38004b0bf 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -567,7 +567,7 @@ end-to-end encryption support; XML console.") (define-public dino ;; The only release tarball is for version 0.0, but it is very old and fails ;; to build. - (let ((commit "54a25fd926070a977138cec94908c55806e22f4a") + (let ((commit "f6ac5bbd26638412a2289fd1d28ef12de1d7e8b5") (revision "1")) (package (name "dino") @@ -576,19 +576,19 @@ end-to-end encryption support; XML console.") (method git-fetch) (uri (git-reference (url "https://github.com/dino/dino.git") - (commit commit))) + (commit commit) + (recursive? #t))) ; Needed for the 'libsignal-protocol-c' + ; submodule. (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "1m100wzr5xqaj3r4vprxj0961833wqk0p7z94nmjsf2f0s67v5r3")))) + "14vk5jmvn8igjikrvg7pinrzahw8gryysb1v9y3vw47ncyic8b7p")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; there are no tests #:parallel-build? #f ; not supported - #:configure-flags - ;; FIXME: we disable the omemo plugin because it needs - ;; libsignal-protocol, for which we don't have a package yet. - '("-DDISABLED_PLUGINS=omemo") + ; Use our libsignal-protocol-c instead of the git submodule. + #:configure-flags '("-DSHARED_SIGNAL_PROTOCOL=yes") #:modules ((guix build cmake-build-system) ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:) (guix build utils)) @@ -601,6 +601,8 @@ end-to-end encryption support; XML console.") (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))))) (inputs `(("libgee" ,libgee) + ("libsignal-protocol-c", libsignal-protocol-c) + ("libgcrypt", libgcrypt) ("libsoup" ,libsoup) ("sqlite" ,sqlite) ("gpgme" ,gpgme) -- cgit v1.2.3 From b3b07df403a86f3ccb28a0fb1b3ab3a3b8b1e9aa Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 17 Nov 2017 23:26:03 +0100 Subject: gnu: dino: Update to 0.0-2-2a514d096. * gnu/packages/messaging.scm (dino): Update to 0.0-2-2a514d096. [source]: Do not fetch libsignal-protocol-c submodule. [arguments]: Add phase "unpack-sources" to unpack our sources for libsignal-protocol-c. [native-inputs]: Add "libsignal-protocol-c-source". --- gnu/packages/messaging.scm | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'gnu/packages/messaging.scm') diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index a38004b0bf..a9a77ae711 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -567,8 +567,8 @@ end-to-end encryption support; XML console.") (define-public dino ;; The only release tarball is for version 0.0, but it is very old and fails ;; to build. - (let ((commit "f6ac5bbd26638412a2289fd1d28ef12de1d7e8b5") - (revision "1")) + (let ((commit "2a514d0969f5c25d5e2d14421125a47df6b14974") + (revision "2")) (package (name "dino") (version (string-append "0.0-" revision "." (string-take commit 9))) @@ -576,13 +576,11 @@ end-to-end encryption support; XML console.") (method git-fetch) (uri (git-reference (url "https://github.com/dino/dino.git") - (commit commit) - (recursive? #t))) ; Needed for the 'libsignal-protocol-c' - ; submodule. + (commit commit))) (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "14vk5jmvn8igjikrvg7pinrzahw8gryysb1v9y3vw47ncyic8b7p")))) + "0v9fqikxvamdw7bxbwc4s01x0vf30vl77149y16krijaqnq6kzv0")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; there are no tests @@ -597,6 +595,18 @@ end-to-end encryption support; XML console.") (guix build glib-or-gtk-build-system)) #:phases (modify-phases %standard-phases + ;; The signal-protocol plugin accesses internal headers of + ;; libsignal-protocol-c, so we need to put the sources there. + (add-after 'unpack 'unpack-sources + (lambda* (#:key inputs #:allow-other-keys) + (let ((unpack (lambda (source target) + (with-directory-excursion target + (zero? (system* "tar" "xvf" + (assoc-ref inputs source) + "--strip-components=1")))))) + (unpack "libsignal-protocol-c-source" + "plugins/signal-protocol/libsignal-protocol-c") + #t))) (add-after 'install 'glib-or-gtk-wrap (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))))) (inputs @@ -611,6 +621,7 @@ end-to-end encryption support; XML console.") ("gsettings-desktop-schemas" ,gsettings-desktop-schemas))) (native-inputs `(("pkg-config" ,pkg-config) + ("libsignal-protocol-c-source", (package-source libsignal-protocol-c)) ("glib" ,glib "bin") ("vala" ,vala) ("gettext" ,gettext-minimal))) -- cgit v1.2.3