diff --git a/pkgs/development/perl-modules/Percona-Toolkit/default.nix b/pkgs/development/perl-modules/Percona-Toolkit/default.nix index 8a86295dc45c..d27972dff455 100644 --- a/pkgs/development/perl-modules/Percona-Toolkit/default.nix +++ b/pkgs/development/perl-modules/Percona-Toolkit/default.nix @@ -7,30 +7,63 @@ DBI, IOSocketSSL, TermReadKey, + go, + buildGoModule, + git, }: -buildPerlPackage rec { - pname = "Percona-Toolkit"; - version = "3.2.0"; +let + version = "3.7.0"; src = fetchFromGitHub { owner = "percona"; repo = "percona-toolkit"; rev = "v${version}"; - sha256 = "084ldpskvlfm32lfss5qqzm5y9b8hf029aa4i5pcnzgb53xaxkqx"; + sha256 = "sha256-fJGeL9XZHTFmpns5CE7It35HRnF3JiC6muOpOS1zboI="; + + # 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 = [ shortenPerlShebang ]; + nativeBuildInputs = [ + git + shortenPerlShebang + ]; 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 + ''; + postInstall = '' shortenPerlShebang $(grep -l "/bin/env perl" $out/bin/*) '';