about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/compilers/go/go_no_vendor_checks-1.22.patch
blob: bd545d50948f058091ba8960c4dbe93dd7edaa0f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Starting from go1.14, go verifes that vendor/modules.txt matches the requirements
and replacements listed in the main module go.mod file, and it is a hard failure if
vendor/modules.txt is missing.

Relax module consistency checks and switch back to pre go1.14 behaviour if
vendor/modules.txt is missing regardless of go version requirement in go.mod.

This has been ported from FreeBSD: https://reviews.freebsd.org/D24122
See https://github.com/golang/go/issues/37948 for discussion.

diff --git a/src/cmd/go/internal/modload/vendor.go b/src/cmd/go/internal/modload/vendor.go
index b2cb44100e..05bf3829d5 100644
--- a/src/cmd/go/internal/modload/vendor.go
+++ b/src/cmd/go/internal/modload/vendor.go
@@ -159,7 +159,7 @@ func checkVendorConsistency(indexes []*modFileIndex, modFiles []*modfile.File, m
 			panic(fmt.Errorf("not in workspace mode but number of indexes is %v, not 1", len(indexes)))
 		}
 		index := indexes[0]
-		if gover.Compare(index.goVersion, "1.14") < 0 {
+		if gover.Compare(index.goVersion, "1.14") < 0 || (os.Getenv("GO_NO_VENDOR_CHECKS") == "1" && len(vendorMeta) == 0) {
 			// Go versions before 1.14 did not include enough information in
 			// vendor/modules.txt to check for consistency.
 			// If we know that we're on an earlier version, relax the consistency check.