diff --git a/pkgs/tools/backup/percona-xtrabackup/2_4.nix b/pkgs/tools/backup/percona-xtrabackup/2_4.nix new file mode 100644 index 00000000000..5c9ce70e5b9 --- /dev/null +++ b/pkgs/tools/backup/percona-xtrabackup/2_4.nix @@ -0,0 +1,6 @@ +{ callPackage, ... } @ args: + +callPackage ./generic.nix (args // { + version = "2.4.20"; + sha256 = "0awdpkcgvx2aq7pwxy8jyzkin6cyrrh3d576x9ldm851kis9n5ii"; +}) diff --git a/pkgs/tools/backup/percona-xtrabackup/8_0.nix b/pkgs/tools/backup/percona-xtrabackup/8_0.nix new file mode 100644 index 00000000000..2878e93fe70 --- /dev/null +++ b/pkgs/tools/backup/percona-xtrabackup/8_0.nix @@ -0,0 +1,14 @@ +{ callPackage, ... } @ args: + +callPackage ./generic.nix (args // { + version = "8.0.13"; + sha256 = "0cj0fnjimv22ykfl0yk6w29wcjvqp8y8j2g1c6gcml65qazrswyr"; + + extraPatches = [ + ./../../../servers/sql/mysql/abi-check.patch + ]; + + extraPostInstall = '' + rm -r "$out"/docs + ''; +}) diff --git a/pkgs/tools/backup/percona-xtrabackup/default.nix b/pkgs/tools/backup/percona-xtrabackup/generic.nix similarity index 91% rename from pkgs/tools/backup/percona-xtrabackup/default.nix rename to pkgs/tools/backup/percona-xtrabackup/generic.nix index 3f8c5e6e659..9339e8155ea 100644 --- a/pkgs/tools/backup/percona-xtrabackup/default.nix +++ b/pkgs/tools/backup/percona-xtrabackup/generic.nix @@ -2,17 +2,18 @@ , curl, cyrus_sasl, libaio, libedit, libev, libevent, libgcrypt, libgpgerror, lz4 , ncurses, numactl, openssl, protobuf, valgrind, xxd, zlib , perlPackages +, version, sha256, extraPatches ? [], extraPostInstall ? "", ... }: stdenv.mkDerivation rec { pname = "percona-xtrabackup"; - version = "2.4.20"; + inherit version; src = fetchFromGitHub { owner = "percona"; repo = "percona-xtrabackup"; rev = "${pname}-${version}"; - sha256 = "0awdpkcgvx2aq7pwxy8jyzkin6cyrrh3d576x9ldm851kis9n5ii"; + inherit sha256; }; nativeBuildInputs = [ bison boost cmake makeWrapper pkgconfig ]; @@ -22,6 +23,8 @@ stdenv.mkDerivation rec { ncurses numactl openssl protobuf valgrind xxd zlib ] ++ (with perlPackages; [ perl DBI DBDmysql ]); + patches = extraPatches; + cmakeFlags = [ "-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock" "-DBUILD_CONFIG=xtrabackup_release" @@ -43,7 +46,7 @@ stdenv.mkDerivation rec { postInstall = '' wrapProgram "$out"/bin/xtrabackup --prefix PERL5LIB : $PERL5LIB rm -r "$out"/lib/plugin/debug - ''; + '' + extraPostInstall; meta = with stdenv.lib; { description = "Non-blocking backup tool for MySQL"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 474b1079252..f98faff0dae 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5902,9 +5902,13 @@ in perceptualdiff = callPackage ../tools/graphics/perceptualdiff { }; - percona-xtrabackup = callPackage ../tools/backup/percona-xtrabackup { + percona-xtrabackup = percona-xtrabackup_8_0; + percona-xtrabackup_2_4 = callPackage ../tools/backup/percona-xtrabackup/2_4.nix { boost = boost159; }; + percona-xtrabackup_8_0 = callPackage ../tools/backup/percona-xtrabackup/8_0.nix { + boost = boost170; + }; pick = callPackage ../tools/misc/pick { };