diff options
author | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2018-06-26 23:58:00 +0200 |
---|---|---|
committer | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2018-07-02 23:12:40 +0200 |
commit | 929d4d2f4ad8f7d1c04793ac2e436e7e0c14edd5 (patch) | |
tree | 4ad3a1d87d87bbc785f4e25b9e112400b932a936 | |
parent | 84be0e9a74e08b33e6a89caf61ec179308e7347e (diff) | |
download | patches-929d4d2f4ad8f7d1c04793ac2e436e7e0c14edd5.tar patches-929d4d2f4ad8f7d1c04793ac2e436e7e0c14edd5.tar.gz |
gnu: python-pylibscrypt: Improve speed.
* gnu/packages/python-crypto.scm (python-pylibscrypt): Use "libscrypt"
implementation instead of "openssl".
"hashlib.scrypt" requires Python 3.6+ and OpenSSL 1.1+. Since Python is built
with OpenSSL 1.0, the library is unavailable. "pylibscrypt" defaults to a slow
pure Python implementation. Instead, rely on the much faster "libscrypt".
-rw-r--r-- | gnu/packages/python-crypto.scm | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index 1d1e495d9f..80875ad45a 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -884,14 +884,29 @@ through the Engine interface.") "1b3rgzl6dbzs08vhv41b6y4n5189wv7lr27acxn104hs45745abs")))) (build-system python-build-system) (arguments - `(#:tests? #f)) ;FIXME: unable to find libraries + `(#:phases + (modify-phases %standard-phases + (add-before 'build 'hard-code-path-to-libscrypt + (lambda* (#:key inputs #:allow-other-keys) + (let ((libscrypt (assoc-ref inputs "libscrypt"))) + (substitute* "pylibscrypt/pylibscrypt.py" + (("find_library\\('scrypt'\\)") + (string-append "'" libscrypt "/lib/libscrypt.so'"))) + #t)))) + ;; The library can use various scrypt implementations and tests all of + ;; them. Since we only provide a single implementation, most tests + ;; fail. Simply skip them. + #:tests? #f)) + ;; FIXME: Using "libscrypt" is the second best choice. The best one + ;; requires "hashlib.scrypt", provided by Python 3.6+ built with OpenSSL + ;; 1.1+. Use that as soon as Guix provides it. (inputs - `(("openssl" ,openssl))) + `(("libscrypt" ,libscrypt))) (home-page "https://github.com/jvarho/pylibscrypt") (synopsis "Scrypt for Python") (description "There are a lot of different scrypt modules for Python, but none of them have everything that I'd like, so here's one more. It uses -hashlib.scrypt on Python 3.6 and OpenSSL 1.1.") +@code{libscrypt}.") (license license:isc))) (define-public python-libnacl |