84 lines
1.8 KiB
Nix
84 lines
1.8 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchFromGitHub,
|
|
automake,
|
|
autoconf,
|
|
libtool,
|
|
|
|
# Optional Dependencies
|
|
lz4 ? null,
|
|
snappy ? null,
|
|
zlib ? null,
|
|
bzip2 ? null,
|
|
db ? null,
|
|
gperftools ? null,
|
|
leveldb ? null,
|
|
}:
|
|
|
|
let
|
|
shouldUsePkg =
|
|
pkg: if pkg != null && lib.meta.availableOn stdenv.hostPlatform pkg then pkg else null;
|
|
|
|
optLz4 = shouldUsePkg lz4;
|
|
optSnappy = shouldUsePkg snappy;
|
|
optZlib = shouldUsePkg zlib;
|
|
optBzip2 = shouldUsePkg bzip2;
|
|
optDb = shouldUsePkg db;
|
|
optGperftools = shouldUsePkg gperftools;
|
|
optLeveldb = shouldUsePkg leveldb;
|
|
in
|
|
stdenv.mkDerivation rec {
|
|
pname = "wiredtiger";
|
|
version = "3.2.1";
|
|
|
|
src = fetchFromGitHub {
|
|
repo = "wiredtiger";
|
|
owner = "wiredtiger";
|
|
rev = version;
|
|
sha256 = "04j2zw8b9jym43r682rh4kpdippxx7iw3ry16nxlbybzar9kgk83";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
automake
|
|
autoconf
|
|
libtool
|
|
];
|
|
buildInputs = [
|
|
optLz4
|
|
optSnappy
|
|
optZlib
|
|
optBzip2
|
|
optDb
|
|
optGperftools
|
|
optLeveldb
|
|
];
|
|
|
|
configureFlags = [
|
|
(lib.withFeature false "attach")
|
|
(lib.withFeatureAs true "builtins" "")
|
|
(lib.enableFeature (optBzip2 != null) "bzip2")
|
|
(lib.enableFeature false "diagnostic")
|
|
(lib.enableFeature false "java")
|
|
(lib.enableFeature (optLeveldb != null) "leveldb")
|
|
(lib.enableFeature false "python")
|
|
(lib.enableFeature (optSnappy != null) "snappy")
|
|
(lib.enableFeature (optLz4 != null) "lz4")
|
|
(lib.enableFeature (optGperftools != null) "tcmalloc")
|
|
(lib.enableFeature (optZlib != null) "zlib")
|
|
(lib.withFeatureAs (optDb != null) "berkeleydb" optDb)
|
|
(lib.withFeature false "helium")
|
|
];
|
|
|
|
preConfigure = ''
|
|
./autogen.sh
|
|
'';
|
|
|
|
meta = with lib; {
|
|
homepage = "http://wiredtiger.com/";
|
|
description = "";
|
|
mainProgram = "wt";
|
|
license = licenses.gpl2;
|
|
platforms = intersectLists platforms.unix platforms.x86_64;
|
|
};
|
|
}
|