diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index bad774aa03..7084c3a4ec 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -61,6 +61,7 @@ (define-module (gnu packages python-crypto) #:use-module (gnu packages swig) #:use-module (gnu packages time) #:use-module (gnu packages tls) + #:use-module (gnu packages xml) #:use-module ((guix licenses) #:prefix license:) #:use-module (srfi srfi-1)) @@ -1060,6 +1061,53 @@ (define-public python2-m2crypto (propagated-inputs `(("python2-typing" ,python2-typing)))))) +(define-public python-pykeepass + (package + (name "python-pykeepass") + (version "3.2.0") + (source + (origin + (method git-fetch) + ;; Source tarball on PyPI doesn't include tests. + (uri (git-reference + (url "https://github.com/libkeepass/pykeepass") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1wxbfpy7467mlnfsvmh685fhfnq4fki9y7yc9cylp30r5n3hisaj")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'make-kdbx-writable + ;; Tests have to write to the .kdbx files in the test directory. + (lambda _ + (with-directory-excursion "tests" + (for-each make-file-writable (find-files ".")) + #t))) + (add-before 'build 'patch-requirements + (lambda _ + ;; Update requirements from dependency==version + ;; to dependency>=version. + (substitute* "setup.py" + (("==") ">=")) + #t))))) + (propagated-inputs + `(("python-argon2-cffi" ,python-argon2-cffi) + ("python-construct" ,python-construct) + ("python-dateutil" ,python-dateutil) + ("python-future" ,python-future) + ("python-lxml" ,python-lxml) + ("python-pycryptodome" ,python-pycryptodome))) + (home-page "https://github.com/libkeepass/pykeepass") + (synopsis "Python library to interact with keepass databases") + (description + "This library allows you to write entries to a KeePass database. It +supports KDBX3 and KDBX4.") + ;; There are no copyright headers in the source code. The LICENSE file + ;; indicates GPL3. + (license license:gpl3+))) + (define-public python-pylibscrypt (package (name "python-pylibscrypt")