forked from mirrors/nixpkgs
b5c1deca8a
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.
87 lines
2.2 KiB
Nix
87 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 ];
|
|
};
|
|
}
|