{ stdenv, fetchurl, tcl, readline ? null, ncurses ? null }: assert readline != null -> ncurses != null; stdenv.mkDerivation { # I try to keep a version no newer than default.nix, and similar CFLAGS, # for this to be compatible with it. name = "sqlite-3.7.9-full"; src = fetchurl { url = "http://www.sqlite.org/cgi/src/tarball/SQLite-3.7.9.tar.gz?uuid=version-3.7.9"; sha256 = "0v11slxgjpx2nv7wp8c76wk2pa1dijs9v6zlcn2dj9jblp3bx8fk"; }; buildInputs = [ readline ncurses ]; nativeBuildInputs = [ tcl ]; doCheck = true; checkTarget = "test"; configureFlags = "--enable-threadsafe --enable-tempstore"; preConfigure = '' ${ # The tests oserror-1.1.{1,2,3} need the fd limit < 2000 # and on the builders in NixOS we have 4096 now. if stdenv.isLinux then "ulimit -n 1024" else ""} export TCLLIBDIR=$out/${tcl.libdir} ''; CFLAGS = "-DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_SECURE_DELETE=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY=1"; LDFLAGS = if readline != null then "-lncurses" else ""; postInstall = '' make sqlite3_analyzer cp sqlite3_analyzer $out/bin ''; meta = { homepage = http://www.sqlite.org/; description = "A self-contained, serverless, zero-configuration, transactional SQL database engine"; maintainers = with stdenv.lib.maintainers; [viric]; platforms = with stdenv.lib.platforms; all; }; }