Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{
2 lib,
3 fetchFromGitHub,
4 python3Packages,
5 pkg-config,
6 gcc8Stdenv,
7 boost,
8 git,
9 systemd,
10 gnutls,
11 cmake,
12 makeWrapper,
13 ninja,
14 ragel,
15 hwloc,
16 jsoncpp,
17 antlr3,
18 numactl,
19 protobuf,
20 cryptopp,
21 libxfs,
22 yaml-cpp,
23 libsystemtap,
24 lksctp-tools,
25 lz4,
26 libxml2,
27 zlib,
28 libpciaccess,
29 snappy,
30 libtool,
31 thrift
32}:
33gcc8Stdenv.mkDerivation {
34 pname = "scylladb";
35 version = "3.0.5";
36
37 src = fetchFromGitHub {
38 owner = "scylladb";
39 repo = "scylla";
40 rev = "403f66ecad6bc773712c69c4a80ebd172eb48b13";
41 sha256 = "sha256-UXOPLA2dhspbH40/se0r+jCdiW82BR895rvnef8Er5I=";
42 fetchSubmodules = true;
43 };
44
45 patches = [ ./seastar-configure-script-paths.patch ./configure-etc-osrelease.patch ];
46
47 nativeBuildInputs = [
48 pkg-config
49 cmake
50 makeWrapper
51 ninja
52 ];
53
54 buildInputs = [
55 antlr3
56 python3Packages.pyparsing
57 boost
58 git
59 systemd
60 gnutls
61 ragel
62 jsoncpp
63 numactl
64 protobuf
65 cryptopp
66 libxfs
67 yaml-cpp
68 libsystemtap
69 lksctp-tools
70 lz4
71 libxml2
72 zlib
73 libpciaccess
74 snappy
75 libtool
76 thrift
77 ];
78
79 postPatch = ''
80 patchShebangs ./configure.py
81 patchShebangs seastar/json/json2code.py
82 '';
83
84 configurePhase = ''
85 ./configure.py --mode=release
86 '';
87
88 installPhase = ''
89 mkdir $out
90 cp -r * $out/
91 '';
92
93 requiredSystemFeatures = [ "big-parallel" ];
94
95 meta = with lib; {
96 description = "NoSQL data store using the seastar framework, compatible with Apache Cassandra";
97 homepage = "https://scylladb.com";
98 license = licenses.agpl3;
99 platforms = lib.platforms.linux;
100 hydraPlatforms = []; # It's huge ATM, about 18 GB.
101 maintainers = [ lib.maintainers.farlion ];
102 broken = true;
103 };
104}