Problems building Istio

I’m trying to build Istio following the instructions at Preparing for Development · istio/istio Wiki (github.com) + Using the Code Base · istio/istio Wiki (github.com).

I can get as far as make build, but I keep failing at the next step:

$ go run ./istioctl/cmd/istioctl install
build istio.io/istio/istioctl/cmd/istioctl: cannot load embed: malformed module path "embed": missing dot in first path element

I’m very inexperienced with go, and completely inexperienced with building Istio, so don’t really know how to go about fixing things. Anyone able to help/recommend how to fix it?

Full output:

$ git log -1
commit 16ce8a4fbdcea59b65b8579d662c15e74bbfd665 (HEAD -> master, origin/master, origin/HEAD)
Author: Rama Chavali <rama.rao@salesforce.com>
Date:   Wed Jul 6 07:14:28 2022 +0530

    minor refactor in cluster builder (#39757)

    * fix cluster nack for strict dns clusters

    Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

    * add comments and tests

    Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

    * add additional condition

    Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

    * rearrange

    Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean
$ echo $HUB
docker.io/hottea773
$ echo $TAG
hottea773
$ echo $ISTIO
/home/developer/istio.io
$ echo $GOPATH
/home/developer/go
$ go env GOPATH
/home/developer/go
$ pwd
/home/developer/go/src/istio.io/istio
$ go version
go version go1.13.8 linux/amd64
$ make build
TARGET_OUT=/work/out/linux_amd64 ISTIO_BIN=/gobin GOOS_LOCAL=linux bin/retry.sh SSL_ERROR_SYSCALL bin/init.sh
Skipping envoy debug. Set DEBUG_IMAGE to download.
/work/out/linux_amd64/release /work
Downloading envoy: https://storage.googleapis.com/istio-build/proxy/envoy-alpha-38a4d882ed90d91f95b86939bb75f4ab9c3f270e.tar.gz to /work/out/linux_amd64/release/envoy-38a4d882ed90d91f95b86939bb75f4ab9c3f270e

real    0m15.291s
user    0m1.398s
sys     0m0.723s
Copying /work/out/linux_amd64/release/envoy-38a4d882ed90d91f95b86939bb75f4ab9c3f270e to /work/out/linux_amd64/release/envoy
/work
/work/out/linux_amd64/release /work
Downloading envoy: https://storage.googleapis.com/istio-build/proxy/envoy-centos-alpha-38a4d882ed90d91f95b86939bb75f4ab9c3f270e.tar.gz to /work/out/linux_amd64/release/envoy-centos-38a4d882ed90d91f95b86939bb75f4ab9c3f270e

real    0m7.227s
user    0m1.112s
sys     0m0.887s
Copying /work/out/linux_amd64/release/envoy-centos-38a4d882ed90d91f95b86939bb75f4ab9c3f270e to /work/out/linux_amd64/release/envoy-centos
/work
/work/out/linux_amd64/release /work
Downloading WebAssembly file: https://storage.googleapis.com/istio-build/proxy/stats-38a4d882ed90d91f95b86939bb75f4ab9c3f270e.wasm to /work/out/linux_amd64/release/stats-38a4d882ed90d91f95b86939bb75f4ab9c3f270e.wasm

real    0m0.620s
user    0m0.081s
sys     0m0.018s
/work
/work/out/linux_amd64/release /work
Downloading WebAssembly file: https://storage.googleapis.com/istio-build/proxy/stats-38a4d882ed90d91f95b86939bb75f4ab9c3f270e.compiled.wasm to /work/out/linux_amd64/release/stats-38a4d882ed90d91f95b86939bb75f4ab9c3f270e.compiled.wasm

real    0m0.976s
user    0m0.102s
sys     0m0.010s
/work
/work/out/linux_amd64/release /work
Downloading WebAssembly file: https://storage.googleapis.com/istio-build/proxy/metadata_exchange-38a4d882ed90d91f95b86939bb75f4ab9c3f270e.wasm to /work/out/linux_amd64/release/metadata_exchange-38a4d882ed90d91f95b86939bb75f4ab9c3f270e.wasm

real    0m0.809s
user    0m0.136s
sys     0m0.000s
/work
/work/out/linux_amd64/release /work
Downloading WebAssembly file: https://storage.googleapis.com/istio-build/proxy/metadata_exchange-38a4d882ed90d91f95b86939bb75f4ab9c3f270e.compiled.wasm to /work/out/linux_amd64/release/metadata_exchange-38a4d882ed90d91f95b86939bb75f4ab9c3f270e.compiled.wasm

real    0m2.023s
user    0m0.123s
sys     0m0.037s
/work
Copying /work/out/linux_amd64/release/envoy-38a4d882ed90d91f95b86939bb75f4ab9c3f270e to /work/out/linux_amd64/envoy
Copying /work/out/linux_amd64/release/envoy-centos-38a4d882ed90d91f95b86939bb75f4ab9c3f270e to /work/out/linux_amd64/envoy-centos
touch /work/out/linux_amd64/istio_is_init
GOOS=linux GOARCH=amd64 LDFLAGS='-extldflags -static -s -w' common/scripts/gobuild.sh /work/out/linux_amd64/ ./istioctl/cmd/istioctl ./pilot/cmd/pilot-discovery ./pkg/test/echo/cmd/client ./pkg/test/echo/cmd/server ./samples/extauthz/cmd/extauthz ./operator/cmd/operator ./cni/cmd/istio-cni ./cni/cmd/istio-cni-taint ./cni/cmd/install-cni ./tools/istio-iptables ./tools/bug-report
go: downloading istio.io/api v0.0.0-20220705134728-d233ac5e1275
go: downloading istio.io/client-go v1.12.0-alpha.5.0.20220705135128-ae3be2de4ddb

real    0m33.198s
user    2m51.714s
sys     0m21.852s
GOOS=linux GOARCH=amd64 LDFLAGS='-extldflags -static -s -w' common/scripts/gobuild.sh /work/out/linux_amd64/ -tags=agent ./pilot/cmd/pilot-agent

real    0m8.435s
user    0m25.393s
sys     0m4.770s
$ go run ./istioctl/cmd/istioctl install
go: downloading istio.io/api v0.0.0-20220705134728-d233ac5e1275
go: extracting istio.io/api v0.0.0-20220705134728-d233ac5e1275
go: downloading istio.io/client-go v1.12.0-alpha.5.0.20220705135128-ae3be2de4ddb
go: extracting istio.io/client-go v1.12.0-alpha.5.0.20220705135128-ae3be2de4ddb
go: finding istio.io/api v0.0.0-20220705134728-d233ac5e1275
go: finding istio.io/client-go v1.12.0-alpha.5.0.20220705135128-ae3be2de4ddb
build istio.io/istio/istioctl/cmd/istioctl: cannot load embed: malformed module path "embed": missing dot in first path element

Edit: I’m building on Ubuntu 20.04 in WSL in case that effects anything.