biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / servers / redpanda / server.nix
blobec4250820d3a6e209d32f81d24fc73149c4dc39f
1 { abseil-cpp_202206
2 , avro-cpp
3 , callPackage
4 , ccache
5 , cmake
6 , crc32c
7 , croaring
8 , ctre
9 , curl
10 , dpdk
11 , git
12 , lib
13 , llvmPackages_14
14 , llvm_14
15 , ninja
16 , p11-kit
17 , pkg-config
18 , procps
19 , protobuf_21
20 , python3
21 , snappy
22 , src
23 , unzip
24 , version
25 , writeShellScriptBin
26 , xxHash
27 , zip
28 , zstd
30 let
31   pname = "redpanda";
32   pythonPackages = p: with p; [ jinja2 ];
33   seastar = callPackage ./seastar.nix { };
34   base64 = callPackage ./base64.nix { };
35   hdr-histogram = callPackage ./hdr-histogram.nix { };
36   kafka-codegen-venv = python3.withPackages (ps: [
37     ps.jinja2
38     ps.jsonschema
39   ]);
40   rapidjson = callPackage ./rapidjson.nix { };
42 llvmPackages_14.stdenv.mkDerivation rec {
43   inherit pname version src;
45   preConfigure = ''
46     # setup sccache
47     export CCACHE_DIR=$TMPDIR/sccache-redpanda
48     mkdir -p $CCACHE_DIR
49   '';
50   patches = [
51     ./redpanda.patch
52   ];
53   postPatch = ''
54     # Fix 'error: use of undeclared identifier 'roaring'; did you mean 'Roaring
55     #      qualified reference to 'Roaring' is a constructor name rather than a type in this context'
56     substituteInPlace \
57         ./src/v/storage/compacted_offset_list.h \
58         ./src/v/storage/compaction_reducers.cc \
59         ./src/v/storage/compaction_reducers.h \
60         ./src/v/storage/segment_utils.h \
61         ./src/v/storage/segment_utils.cc \
62         --replace 'roaring::Roaring' 'Roaring'
64     patchShebangs ./src/v/rpc/rpc_compiler.py
65   '';
67   doCheck = false;
69   nativeBuildInputs = [
70     (python3.withPackages pythonPackages)
71     (writeShellScriptBin "kafka-codegen-venv" "exec -a $0 ${kafka-codegen-venv}/bin/python3 $@")
72     ccache
73     cmake
74     curl
75     git
76     llvm_14
77     ninja
78     pkg-config
79     procps
80     seastar
81     unzip
82     zip
83   ];
85   cmakeFlags = [
86     "-DREDPANDA_DEPS_SKIP_BUILD=ON"
87     "-DRP_ENABLE_TESTS=OFF"
88     "-Wno-dev"
89     "-DGIT_VER=${version}"
90     "-DGIT_CLEAN_DIRTY=\"\""
91   ];
93   buildInputs = [
94     abseil-cpp_202206
95     avro-cpp
96     base64
97     crc32c
98     croaring
99     ctre
100     dpdk
101     hdr-histogram
102     p11-kit
103     protobuf_21
104     rapidjson
105     seastar
106     snappy
107     xxHash
108     zstd
109   ];
111   meta = with lib; {
112     broken = true;
113     description = "Kafka-compatible streaming platform.";
114     license = licenses.bsl11;
115     longDescription = ''
116       Redpanda is a Kafka-compatible streaming data platform that is
117       proven to be 10x faster and 6x lower in total costs. It is also JVM-free,
118       ZooKeeper-free, Jepsen-tested and source available.
119     '';
120     homepage = "https://redpanda.com/";
121     maintainers = with maintainers; [ avakhrenev happysalada ];
122     platforms = platforms.linux;
123   };