Files
nixpkgs/pkgs/development/perl-modules/Percona-Toolkit/default.nix
T
2025-12-23 00:18:10 +00:00

73 lines
1.4 KiB
Nix

{
lib,
fetchFromGitHub,
buildPerlPackage,
DBDmysql,
DBI,
IOSocketSSL,
TermReadKey,
go,
buildGoModule,
git,
}:
let
version = "3.7.0";
src = fetchFromGitHub {
owner = "percona";
repo = "percona-toolkit";
rev = "v${version}";
sha256 = "sha256-NpLUHIdGnuNJmSYBYErU7yzFkxKRFQVWJHJqJ2q4U5E=";
# needed for build script
leaveDotGit = true;
};
goDeps =
(buildGoModule {
pname = "Percona-Toolkit go-bindings";
inherit src version;
vendorHash = "sha256-HAaoVYK6av085zSG0ZRpbmUgEA2UEt7CGWF/834e+z4=";
}).goModules;
in
buildPerlPackage {
pname = "Percona-Toolkit";
inherit src version;
outputs = [ "out" ];
nativeBuildInputs = [
git
];
buildInputs = [
DBDmysql
go
DBI
IOSocketSSL
TermReadKey
];
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
'';
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 = with lib.licenses; [ gpl2Only ];
maintainers = with lib.maintainers; [ izorkin ];
};
}