nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 102 lines 2.9 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchFromGitHub, 5 openssl, 6 tcl, 7 buildPackages, 8 readline, 9 ncurses, 10 zlib, 11 sqlite, 12 util-linux, 13}: 14 15stdenv.mkDerivation (finalAttrs: { 16 pname = "sqlcipher"; 17 version = "4.13.0"; 18 19 src = fetchFromGitHub { 20 owner = "sqlcipher"; 21 repo = "sqlcipher"; 22 tag = "v${finalAttrs.version}"; 23 hash = "sha256-3Qt7nOB0iMyNXfENC3gv3F6sENU7OUTZ3n2mo0M2CSA="; 24 }; 25 26 nativeBuildInputs = [ 27 tcl 28 util-linux 29 ]; 30 31 buildInputs = [ 32 readline 33 ncurses 34 openssl 35 zlib 36 ]; 37 38 depsBuildBuild = [ 39 buildPackages.stdenv.cc 40 ]; 41 42 configureFlags = [ 43 "--enable-threadsafe" 44 "--with-readline-inc=-I${lib.getDev readline}/include" 45 "--enable-load-extension" 46 ]; 47 48 env = { 49 NIX_CFLAGS_COMPILE = toString [ 50 # We want feature parity with sqlite 51 sqlite.NIX_CFLAGS_COMPILE 52 "-DSQLITE_HAS_CODEC" 53 "-DSQLITE_EXTRA_INIT=sqlcipher_extra_init" 54 "-DSQLITE_EXTRA_SHUTDOWN=sqlcipher_extra_shutdown" 55 "-DSQLITE_TEMP_STORE=3" 56 ]; 57 LDFLAGS = toString [ 58 "-lssl" 59 "-lcrypto" 60 ]; 61 BUILD_CC = "$(CC_FOR_BUILD)"; 62 TCLLIBDIR = "${placeholder "out"}/lib/tcl${lib.versions.majorMinor tcl.version}"; 63 }; 64 65 # Rename files from sqlite3 to sqlcipher to prevent file collisons 66 postInstall = '' 67 mv $out/bin/{sqlite3,sqlcipher} 68 mkdir $out/include/sqlcipher 69 mv $out/include/sqlite3.h $out/include/sqlcipher/sqlite3.h 70 mv $out/include/sqlite3ext.h $out/include/sqlcipher/sqlite3ext.h 71 mv $out/lib/lib{sqlite3,sqlcipher}.a 72 rm -f $out/lib/libsqlite3.0.dylib $out/lib/libsqlite3.dylib $out/lib/libsqlite3.so $out/lib/libsqlite3.so.0 73 rename libsqlite3 libsqlcipher $out/lib/libsqlite3* 74 mv $out/lib/pkgconfig/{sqlite3,sqlcipher}.pc 75 mv $out/share/man/man1/{sqlite3,sqlcipher}.1 76 substituteInPlace $out/lib/pkgconfig/sqlcipher.pc \ 77 --replace-fail "-lsqlite3" "-lsqlcipher" \ 78 --replace-fail "-lz" "-lz -lcrypto" \ 79 --replace-fail "includedir}" "includedir}/sqlcipher" 80 '' 81 + lib.optionalString stdenv.hostPlatform.isDarwin '' 82 f=$(echo $out/lib/libsqlcipher.*.dylib) 83 ln --symbolic --force "$f" $out/lib/libsqlcipher.0.dylib 84 ln --symbolic --force "$f" $out/lib/libsqlcipher.dylib 85 ln --symbolic --force "$f" $out/lib/libsqlite3.dylib 86 '' 87 + lib.optionalString stdenv.hostPlatform.isLinux '' 88 f=$(echo $out/lib/libsqlcipher.so.*) 89 ln --symbolic --force "$f" $out/lib/libsqlcipher.so.0 90 ln --symbolic --force "$f" $out/lib/libsqlcipher.so 91 ''; 92 93 meta = { 94 changelog = "https://github.com/sqlcipher/sqlcipher/blob/${finalAttrs.src.rev}/CHANGELOG.md"; 95 description = "SQLite extension that provides 256 bit AES encryption of database files"; 96 mainProgram = "sqlcipher"; 97 homepage = "https://www.zetetic.net/sqlcipher/"; 98 license = lib.licenses.bsd3; 99 maintainers = [ ]; 100 platforms = lib.platforms.unix; 101 }; 102})