nixpkgs-suyu/pkgs/development/libraries/rocksdb/default.nix
Jörg Thalheim b5c1deca8a
treewide: remove wkennington as maintainer
He prefers to contribute to his own nixpkgs fork triton.
Since he is still marked as maintainer in many packages
this leaves the wrong impression he still maintains those.
2019-01-26 10:05:32 +00:00

86 lines
2.2 KiB
Nix

{ stdenv
, fetchFromGitHub
, fixDarwinDylibNames
, which, perl
# Optional Arguments
, snappy ? null, google-gflags ? null, zlib ? null, bzip2 ? null, lz4 ? null
# Malloc implementation
, jemalloc ? null, gperftools ? null
, enableLite ? false
}:
let
malloc = if jemalloc != null then jemalloc else gperftools;
tools = [ "sst_dump" "ldb" "rocksdb_dump" "rocksdb_undump" "blob_dump" ];
in
stdenv.mkDerivation rec {
name = "rocksdb-${version}";
version = "5.11.3";
outputs = [ "dev" "out" "static" "bin" ];
src = fetchFromGitHub {
owner = "facebook";
repo = "rocksdb";
rev = "v${version}";
sha256 = "15x2r7aib1xinwcchl32wghs8g96k4q5xgv6z97mxgp35475x01p";
};
nativeBuildInputs = [ which perl ];
buildInputs = [ snappy google-gflags zlib bzip2 lz4 malloc fixDarwinDylibNames ];
postPatch = ''
# Hack to fix typos
sed -i 's,#inlcude,#include,g' build_tools/build_detect_platform
'';
# Environment vars used for building certain configurations
PORTABLE = "1";
USE_SSE = "1";
CMAKE_CXX_FLAGS = "-std=gnu++11";
JEMALLOC_LIB = stdenv.lib.optionalString (malloc == jemalloc) "-ljemalloc";
LIBNAME = "librocksdb${stdenv.lib.optionalString enableLite "_lite"}";
${if enableLite then "CXXFLAGS" else null} = "-DROCKSDB_LITE=1";
buildAndInstallFlags = [
"USE_RTTI=1"
"DEBUG_LEVEL=0"
"DISABLE_WARNING_AS_ERROR=1"
];
buildFlags = buildAndInstallFlags ++ [
"shared_lib"
"static_lib"
] ++ tools ;
installFlags = buildAndInstallFlags ++ [
"INSTALL_PATH=\${out}"
"install-shared"
"install-static"
];
postInstall = ''
# Might eventually remove this when we are confident in the build process
echo "BUILD CONFIGURATION FOR SANITY CHECKING"
cat make_config.mk
mkdir -pv $static/lib/
mv -vi $out/lib/${LIBNAME}.a $static/lib/
install -d ''${!outputBin}/bin
install -D ${stdenv.lib.concatStringsSep " " tools} ''${!outputBin}/bin
'';
enableParallelBuilding = true;
meta = with stdenv.lib; {
homepage = https://rocksdb.org;
description = "A library that provides an embeddable, persistent key-value store for fast storage";
license = licenses.bsd3;
platforms = platforms.x86_64;
maintainers = with maintainers; [ adev ];
};
}