go-module.eclass: fix regression with -mod=vendor setting
authorWilliam Hubbs <william.hubbs@sony.com>
Tue, 10 Mar 2020 16:35:38 +0000 (11:35 -0500)
committerWilliam Hubbs <williamh@gentoo.org>
Tue, 10 Mar 2020 16:43:29 +0000 (11:43 -0500)
If EGO_VENDOR is tested in global scope, it needs to be set before the
eclass is inherited. Several ebuilds do not do this, so we need to
perform this test and set -mod=vendor in the appropriate phase function.

Signed-off-by: William Hubbs <williamh@gentoo.org>
eclass/go-module.eclass

index 51484332335b7b4a3b9eb413dc9c2968c9b06acb..c3ad5159bad80fb00a339672f3b7e89d2c1a0b1e 100644 (file)
@@ -78,7 +78,6 @@ export GOCACHE="${T}/go-build"
 # -mod=readonly do not update go.mod/go.sum but fail if updates are needed
 # -mod=vendor use the vendor directory instead of downloading dependencies
 export GOFLAGS="-v -x -mod=readonly"
-[[ ${#EGO_VENDOR[@]} -gt 0 ]] && GOFLAGS+=" -mod=vendor"
 
 # Do not complain about CFLAGS etc since go projects do not use them.
 QA_FLAGS_IGNORED='.*'
@@ -389,6 +388,7 @@ _go-module_src_unpack_vendor() {
                        -f "${DISTDIR}/${tarball}" || die
                eend
        done
+       [[ ${#EGO_VENDOR[@]} -gt 0 ]] && GOFLAGS+=" -mod=vendor"
        eqawarn "${P}.ebuild: EGO_VENDOR will be removed in the future."
        eqawarn "Please request that the author migrate to EGO_SUM."
 }