Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ lib, stdenv, fetchFromGitHub, bison, boost, cmake, makeWrapper, pkg-config
2, curl, cyrus_sasl, libaio, libedit, libev, libevent, libgcrypt, libgpg-error, lz4
3, ncurses, numactl, openssl, protobuf, valgrind, xxd, zlib
4, perlPackages
5, version, sha256, fetchSubmodules ? false, extraPatches ? [], extraPostInstall ? "", ...
6}:
7
8stdenv.mkDerivation rec {
9 pname = "percona-xtrabackup";
10 inherit version;
11
12 src = fetchFromGitHub {
13 owner = "percona";
14 repo = "percona-xtrabackup";
15 rev = "${pname}-${version}";
16 inherit sha256 fetchSubmodules;
17 };
18
19 nativeBuildInputs = [ bison boost cmake makeWrapper pkg-config ];
20
21 buildInputs = [
22 (curl.override { inherit openssl; }) cyrus_sasl libaio libedit libevent libev libgcrypt libgpg-error lz4
23 ncurses numactl openssl protobuf valgrind xxd zlib
24 ] ++ (with perlPackages; [ perl DBI DBDmysql ]);
25
26 patches = extraPatches;
27
28 cmakeFlags = [
29 "-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock"
30 "-DBUILD_CONFIG=xtrabackup_release"
31 "-DINSTALL_MYSQLTESTDIR=OFF"
32 "-DWITH_BOOST=system"
33 "-DWITH_CURL=system"
34 "-DWITH_EDITLINE=system"
35 "-DWITH_LIBEVENT=system"
36 "-DWITH_LZ4=system"
37 "-DWITH_PROTOBUF=system"
38 "-DWITH_SASL=system"
39 "-DWITH_SSL=system"
40 "-DWITH_ZLIB=system"
41 "-DWITH_VALGRIND=ON"
42 "-DWITH_MAN_PAGES=OFF"
43 ];
44
45 postInstall = ''
46 wrapProgram "$out"/bin/xtrabackup --prefix PERL5LIB : $PERL5LIB
47 rm -r "$out"/lib/plugin/debug
48 '' + extraPostInstall;
49
50 meta = with lib; {
51 description = "Non-blocking backup tool for MySQL";
52 homepage = "http://www.percona.com/software/percona-xtrabackup";
53 license = licenses.lgpl2;
54 platforms = platforms.linux;
55 maintainers = with maintainers; [ izorkin ];
56 };
57}