build-bazel-package: added rm of extra local folders for toolchain configuration...
[NixPkgs.git] / pkgs / servers / nosql / rethinkdb / default.nix
blob686ad7eadc747234ca969acda1153891c3c6989b
2   lib,
3   stdenv,
4   fetchurl,
5   which,
6   m4,
7   protobuf,
8   boost,
9   zlib,
10   curl,
11   openssl,
12   icu,
13   jemalloc,
14   libtool,
15   python3Packages,
16   makeWrapper,
19 stdenv.mkDerivation rec {
20   pname = "rethinkdb";
21   version = "2.4.4";
23   src = fetchurl {
24     url = "https://download.rethinkdb.com/repository/raw/dist/${pname}-${version}.tgz";
25     hash = "sha256-UJEjdgK2KDDbLLParKarNGMjI3QeZxDC8N5NhPRCcR8=";
26   };
28   postPatch = ''
29     substituteInPlace external/quickjs_*/Makefile \
30       --replace "gcc-ar" "${stdenv.cc.targetPrefix}ar" \
31       --replace "gcc" "${stdenv.cc.targetPrefix}cc"
32   '';
34   preConfigure = ''
35     export ALLOW_WARNINGS=1
36     patchShebangs .
37   '';
39   configureFlags = lib.optionals (!stdenv.hostPlatform.isDarwin) [
40     "--with-jemalloc"
41     "--lib-path=${jemalloc}/lib"
42   ];
44   makeFlags = [ "rethinkdb" ];
46   buildInputs =
47     [
48       protobuf
49       boost
50       zlib
51       curl
52       openssl
53       icu
54     ]
55     ++ lib.optional (!stdenv.hostPlatform.isDarwin) jemalloc
56     ++ lib.optional stdenv.hostPlatform.isDarwin libtool;
58   nativeBuildInputs = [
59     which
60     m4
61     python3Packages.python
62     makeWrapper
63   ];
65   enableParallelBuilding = true;
67   postInstall = ''
68     wrapProgram $out/bin/rethinkdb \
69       --prefix PATH ":" "${python3Packages.rethinkdb}/bin"
70   '';
72   meta = {
73     description = "Open-source distributed database built with love";
74     mainProgram = "rethinkdb";
75     longDescription = ''
76       RethinkDB is built to store JSON documents, and scale to
77       multiple machines with very little effort. It has a pleasant
78       query language that supports really useful queries like table
79       joins and group by, and is easy to setup and learn.
80     '';
81     homepage = "https://rethinkdb.com";
82     license = lib.licenses.asl20;
83     platforms = lib.platforms.unix;
84     maintainers = with lib.maintainers; [
85       thoughtpolice
86       bluescreen303
87     ];
88   };