MFH: r530387

lang/go: relax module consistency checks if vendor/modules.txt is missing

Starting from go1.14, go verifies 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 and GO_NO_VENDOR_CHECKS=1 is set in the
environment regardless of go version requirement in go.mod.

Upstream PR: https://github.com/golang/go/issues/37948

PR:		244783
Reported by:	Christopher Hall <hsw@bitmark.com>
Reviewed by:	mikael swills yuri
Approved by:	jlaffaye (maintainer timeout, 2 weeks)
Differential Revision:	https://reviews.freebsd.org/D24122

Approved by:	ports-secteam (joneum)
This commit is contained in:
Dmitri Goutnik 2020-04-03 12:51:25 +00:00
parent 4d048e6bc7
commit 060b4585d5
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/branches/2020Q2/; revision=530488
2 changed files with 13 additions and 0 deletions

View File

@ -3,6 +3,7 @@
PORTNAME= go
PORTVERSION= 1.14.1
PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= lang
MASTER_SITES= https://golang.org/dl/ \

View File

@ -0,0 +1,12 @@
Upstream PR: https://github.com/golang/go/issues/37948
--- src/cmd/go/internal/modload/init.go.orig 2020-02-25 18:32:50 UTC
+++ src/cmd/go/internal/modload/init.go
@@ -562,7 +562,7 @@ func checkVendorConsistency() {
readVendorList()
pre114 := false
- if modFile.Go == nil || semver.Compare("v"+modFile.Go.Version, "v1.14") < 0 {
+ if modFile.Go == nil || semver.Compare("v"+modFile.Go.Version, "v1.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.