gnu: Add sqlcipher.

* gnu/packages/database.scm (sqlcipher): New variable.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
This commit is contained in:
Andy Patterson 2016-09-21 23:58:28 -04:00 committed by Efraim Flashner
parent 0c60cc5346
commit 62ea44fc89
No known key found for this signature in database
GPG Key ID: F4C1D3917EACEE93
1 changed files with 53 additions and 0 deletions

View File

@ -12,6 +12,7 @@
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
;;;
;;; This file is part of GNU Guix.
;;;
@ -34,11 +35,13 @@
#:use-module (gnu packages avahi)
#:use-module (gnu packages bash)
#:use-module (gnu packages boost)
#:use-module (gnu packages crypto)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages perl)
#:use-module (gnu packages language)
#:use-module (gnu packages linux)
#:use-module (gnu packages tcl)
#:use-module (gnu packages tls)
#:use-module (gnu packages compression)
#:use-module (gnu packages ncurses)
@ -1152,3 +1155,53 @@ can autogenerate peewee models using @code{pwiz}, a model generator.")
(define-public python2-peewee
(package-with-python2 python-peewee))
(define-public sqlcipher
(package
(name "sqlcipher")
(version "3.3.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/sqlcipher/" name
"/archive/v" version ".tar.gz"))
(sha256
(base32 "1gv58dlbpzrmznly52yqbxgvii0ib88zr3aszla1bsypwjr6flff"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system gnu-build-system)
(inputs
`(("libcrypto" ,openssl)
("libtcl8.6" ,tcl))) ; required for running the tests
(native-inputs
`(("tcl" ,tcl)))
(arguments
'(#:configure-flags
'("--enable-tempstore=yes"
"CFLAGS=-DSQLITE_HAS_CODEC -DSQLITE_ENABLE_FTS3"
"LDFLAGS=-lcrypto -ltcl8.6"
"--disable-tcl")
;; tests cannot be run from the Makefile
;; see: <https://github.com/sqlcipher/sqlcipher/issues/172>
#:test-target "testfixture"
#:phases
(modify-phases %standard-phases
(add-before 'check 'build-test-runner
(assoc-ref %standard-phases 'check))
(replace 'check
(lambda _
(zero?
(system* "./testfixture" "test/crypto.test")))))))
(home-page "https://www.zetetic.net/sqlcipher/")
(synopsis
"Library providing transparent encryption of SQLite database files")
(description "SQLCipher is an implementation of SQLite, extended to
provide transparent 256-bit AES encryption of database files. Pages are
encrypted before being written to disk and are decrypted when read back. Its
well suited for protecting embedded application databases and for mobile
development.")
;; The source files
;; src/{crypto.c,crypto_impl.c,crypto.h,crypto_cc.c,crypto_libtomcrypt.c},
;; src/{crypto_openssl.c,sqlcipher.h}, tool/crypto-speedtest.tcl,
;; test/crypto.test are licensed under a 3-clause BSD license. All other
;; source files are in the public domain.
(license (list license:public-domain license:bsd-3))))