From b7935c9d32d652144b48dafb1445782696f870fc Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Sat, 16 Oct 2021 10:56:48 +0200 Subject: [PATCH v2 21/26] gnu: Add python-olm. * gnu/packages/crypto.scm (python-olm): New variable. --- gnu/packages/crypto.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index 64cdf48d5d..823b888b82 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -72,6 +72,7 @@ (define-module (gnu packages crypto) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages python-check) #:use-module (gnu packages readline) #:use-module (gnu packages search) #:use-module (gnu packages serialization) @@ -91,6 +92,7 @@ (define-module (gnu packages crypto) #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix build-system perl) + #:use-module (guix build-system python) #:use-module (guix utils) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26)) @@ -1280,6 +1282,39 @@ (define-public libolm (home-page "https://matrix.org/docs/projects/other/olm/") (license license:asl2.0))) +(define-public python-olm + (package + ;; python-olm is part of libolm and must be updated at the same time. + (inherit libolm) + (name "python-olm") + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "python"))) + (add-before 'build 'set-preprocessor + (lambda* (#:key inputs #:allow-other-keys) + (setenv "CPP" "gcc -E"))) + (replace 'check + (lambda* (#:key tests? inputs outputs #:allow-other-keys) + (when tests? + (add-installed-pythonpath inputs outputs) + (invoke "pytest"))))))) + (inputs `(("libolm" ,libolm))) + (propagated-inputs + `(("python-cffi" ,python-cffi) + ("python-future" ,python-future))) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-pytest-benchmark" ,python-pytest-benchmark) + ("python-aspectlib" ,python-aspectlib))) + (synopsis "Python bindings for libolm") + (description "The libolm library implements the Double Ratchet +cryptographic ratchet. It is written in C and C++11, and exposed as a C +API. This package contains its Python bindings."))) + (define-public hash-extender (let ((commit "cb8aaee49f93e9c0d2f03eb3cafb429c9eed723d") (revision "2")) -- 2.32.0