diff --git a/pkgs/development/tools/vend/default.nix b/pkgs/development/tools/vend/default.nix new file mode 100644 index 000000000000..13aa8aeb6ad5 --- /dev/null +++ b/pkgs/development/tools/vend/default.nix @@ -0,0 +1,26 @@ +{ stdenv, buildGoModule, fetchFromGitHub }: + +buildGoModule { + pname = "vend"; + version = "unstable-2020-06-04"; + + patches = [./remove_tidy.patch]; + + # A permanent fork from master is maintained to avoid non deterministic go tidy + src = fetchFromGitHub { + owner = "c00w"; + repo = "vend"; + rev = "24fdebfdb2c3cc0516321a9cf33a3fd81c209c04"; + sha256 = "112p9dz9by2h2m3jha2bv1bvzn2a86bpg1wphgmf9gksjpwy835l"; + }; + + vendorSha256 = null; + + meta = with stdenv.lib; { + homepage = "https://github.com/c00w/vend"; + description = "A utility which vendors go code including c dependencies"; + maintainers = with maintainers; [ c00w ]; + license = licenses.mit; + platforms = platforms.all; + }; +} diff --git a/pkgs/development/tools/vend/remove_tidy.patch b/pkgs/development/tools/vend/remove_tidy.patch new file mode 100644 index 000000000000..d5db74a1bd70 --- /dev/null +++ b/pkgs/development/tools/vend/remove_tidy.patch @@ -0,0 +1,13 @@ +diff --git a/cli/cmd.go b/cli/cmd.go +index c766559..3a133fd 100644 +--- a/cli/cmd.go ++++ b/cli/cmd.go +@@ -12,7 +12,7 @@ import ( + // UpdateModule makes sure the module is updated ready to vendor the + // dependencies. + func UpdateModule() { +- var commands = []string{"tidy", "download", "vendor"} ++ var commands = []string{"download", "vendor"} + + for _, command := range commands { + cmd := exec.Command("go", "mod", command)