gnu: Add botan.

* gnu/packages/crypto.scm (botan): New variable.
This commit is contained in:
Leo Famulari 2018-03-28 16:02:51 -04:00
parent d4e0ebd016
commit b6beda1d6b
No known key found for this signature in database
GPG key ID: 2646FA30BACA7F08

View file

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 David Thompson <davet@gnu.org>
;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017, 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox>
;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
@ -34,10 +34,10 @@ (define-module (gnu packages crypto)
#:use-module (gnu packages boost)
#:use-module (gnu packages compression)
#:use-module (gnu packages cryptsetup)
#:use-module (gnu packages databases)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages image)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages libbsd)
#:use-module (gnu packages libffi)
#:use-module (gnu packages linux)
@ -45,6 +45,8 @@ (define-module (gnu packages crypto)
#:use-module (gnu packages password-utils)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages readline)
#:use-module (gnu packages search)
#:use-module (gnu packages serialization)
@ -711,3 +713,56 @@ (define-public rhash
SHA256, SHA512, SHA3, AICH, ED2K, Tiger, DC++ TTH, BitTorrent BTIH, GOST R
34.11-94, RIPEMD-160, HAS-160, EDON-R, Whirlpool and Snefru.")
(license (license:non-copyleft "file://COPYING"))))
(define-public botan
(package
(name "botan")
(version "2.4.0")
(source (origin
(method url-fetch)
(uri (string-append "https://botan.randombit.net/releases/"
"Botan-" version ".tgz"))
(sha256
(base32
"1988crh5lipmfcd1icldf6hchi9vcy08yymxv79lrvnglpi6957d"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-before 'build 'fix-rst2man-invocation
(lambda _
;; XXX Reported upstream:
;; <https://github.com/randombit/botan/issues/1516>
(substitute* "src/scripts/build_docs.py"
(("'rst2man'")"'rst2man.py'"))
#t))
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref %outputs "out"))
(lib (string-append out "/lib")))
(invoke "python" "./configure.py"
(string-append "--prefix=" out)
;; Otherwise, the `botan` executable cannot find
;; libbotan.
(string-append "--ldflags=-Wl,-rpath=" lib)
"--with-rst2man"
;; Recommended by upstream
"--with-zlib" "--with-bzip2" "--with-sqlite3"))))
(replace 'check
(lambda _ (invoke "./botan-test"))))))
(native-inputs
`(("python" ,python-minimal-wrapper)
("python-docutils" ,python-docutils)))
(inputs
`(("sqlite" ,sqlite)
("bzip2" ,bzip2)
("zlib" ,zlib)))
(synopsis "Cryptographic library in C++11")
(description "Botan is a cryptography library, written in C++11, offering
the tools necessary to implement a range of practical systems, such as TLS/DTLS,
PKIX certificate handling, PKCS#11 and TPM hardware support, password hashing,
and post-quantum crypto schemes. In addition to the C++, botan has a C89 API
specifically designed to be easy to call from other languages. A Python binding
using ctypes is included, and several other language bindings are available.")
(home-page "https://botan.randombit.net")
(license license:bsd-2)))