1{ stdenv, lib, fetchFromGitHub, openssl, tcl, installShellFiles, readline ? null, ncurses ? null }:
2
3assert readline != null -> ncurses != null;
4
5stdenv.mkDerivation rec {
6 pname = "sqlcipher";
7 version = "4.4.0";
8
9 src = fetchFromGitHub {
10 owner = "sqlcipher";
11 repo = "sqlcipher";
12 rev = "v${version}";
13 sha256 = "0mx0n5n3s39r25b31sdkrd4psxjqqgcv6rpm9d57w5rlk75g2fiv";
14 };
15
16 nativeBuildInputs = [ installShellFiles ];
17
18 buildInputs = [ readline ncurses openssl tcl ];
19
20 configureFlags = [ "--enable-threadsafe" "--disable-tcl" ];
21
22 CFLAGS = [ "-DSQLITE_ENABLE_COLUMN_METADATA=1" "-DSQLITE_SECURE_DELETE=1" "-DSQLITE_ENABLE_UNLOCK_NOTIFY=1" "-DSQLITE_HAS_CODEC" ];
23 LDFLAGS = lib.optional (readline != null) "-lncurses";
24
25 doCheck = false; # fails. requires tcl?
26
27 postInstall = ''
28 installManPage sqlcipher.1
29 '';
30
31 meta = with stdenv.lib; {
32 homepage = "https://www.zetetic.net/sqlcipher/";
33 description = "SQLite extension that provides 256 bit AES encryption of database files";
34 platforms = platforms.unix;
35 license = licenses.bsd3;
36 };
37}