Files

77 lines
1.5 KiB
Nix

{
lib,
fetchFromGitHub,
buildPerlPackage,
DBDmysql,
DBI,
IOSocketSSL,
TermReadKey,
go,
buildGoModule,
git,
}:
let
version = "3.7.1-4";
src = fetchFromGitHub {
owner = "percona";
repo = "percona-toolkit";
tag = "v${version}";
hash = "sha256-5mdRkdRSXhqdhJ0+pgQD18DS30WyvY2h6oImO4Fhljs=";
# needed for build script
leaveDotGit = true;
};
goDeps =
(buildGoModule {
pname = "Percona-Toolkit go-bindings";
inherit src version;
vendorHash = "sha256-LdUWZdoKVsYcL6DO0U18pHMmF4D+5PwMdlJf416H4hA=";
}).goModules;
in
buildPerlPackage {
pname = "Percona-Toolkit";
inherit src version;
outputs = [ "out" ];
nativeBuildInputs = [
git
go
];
buildInputs = [
DBDmysql
DBI
IOSocketSSL
TermReadKey
];
strictDeps = true;
postPatch = ''
cp -r --reflink=auto ${goDeps} vendor
chmod -R u+rw vendor
substituteInPlace src/go/Makefile \
--replace-fail "go get ./..." "echo 'Skipping go get due to offline build'"
'';
preBuild = ''
export HOME=$TMPDIR
'';
__structuredAttrs = true;
meta = {
description = "Collection of advanced command-line tools to perform a variety of MySQL and system tasks";
homepage = "https://www.percona.com/software/database-tools/percona-toolkit";
changelog = "https://docs.percona.com/percona-toolkit/release_notes.html";
license = lib.licenses.gpl2Only;
maintainers = with lib.maintainers; [ izorkin ];
};
}