Filed https://golang.org/issue/34628

On Fri, 2019-09-27 at 15:19 +0930, Dan Kortschak wrote:
> Looking into it it appears that there's active work in
> go/build.defaultGOPATH that makes returning an informative error
> message impossible.
> 
> This made sense when it was done in 428df5e39c0[1], but since then
> 57568958774[2] has gone in which changes the message from something
> that was useful to something that is now almost devoid of
> information.
> 
> was:
> ```
> go install: no install location for directory
> /home/user/src/path.org/to/package outside GOPATH
>       For more details see: 'go help gopath'
> ```
> 
> now:
> ```
> missing $GOPATH
> ```
> 
> ISTM that the warning provided before 428df5e39c0 is now the better
> option in terms of confusion. Perhaps that warning could be an error
> so
> that functional behaviour that exists now would remain, but with an
> actual explanation. Stopping with this error would be helpful:
> 
> ```
> warning: GOPATH set to GOROOT (/home/user/go) has no effect
> ```
> 
> 
> [1]https://go-review.googlesource.com/c/go/+/33105/
> [2]https://go-review.googlesource.com/c/go/+/118095/
> 
> 
> On Fri, 2019-09-27 at 12:51 +0930, Dan Kortschak wrote:
> > Yes, that explains it. Perhaps the error could be more informative.
> > 
> > On Thu, 2019-09-26 at 20:19 -0700, Ian Lance Taylor wrote:
> > > On Thu, Sep 26, 2019 at 7:36 PM Dan Kortschak <d...@kortschak.io>
> > > wrote:
> > > > 
> > > > I am looking at some changes we have made to make code
> > > > generation
> > > > independent of GOPATH since from the SettingGOPATH page of the
> > > > wiki
> > > > says "If no GOPATH is set, it is assumed to be $HOME/go on Unix
> > > > systems
> > > > and %USERPROFILE%\go on Windows."
> > > > 
> > > > However, when I run `go env` I see `missing $GOPATH` in
> > > > response.
> > > > 
> > > > ```
> > > > ~ $ go env
> > > > GO111MODULE="on"
> > > > GOARCH="amd64"
> > > > GOBIN="/home/user/bin"
> > > > GOCACHE="/home/user/.cache/go-build"
> > > > GOENV="/home/user/.config/go/env"
> > > > GOEXE=""
> > > > GOFLAGS=""
> > > > GOHOSTARCH="amd64"
> > > > GOHOSTOS="linux"
> > > > GONOPROXY=""
> > > > GONOSUMDB=""
> > > > GOOS="linux"
> > > > GOPATH="/home/user"
> > > > GOPRIVATE=""
> > > > GOPROXY="https://proxy.golang.org,direct";
> > > > GOROOT="/home/user/go"
> > > > GOSUMDB="sum.golang.org"
> > > > GOTMPDIR=""
> > > > GOTOOLDIR="/home/user/go/pkg/tool/linux_amd64"
> > > > GCCGO="gccgo"
> > > > AR="ar"
> > > > CC="gcc"
> > > > CXX="g++"
> > > > CGO_ENABLED="1"
> > > > GOMOD="/dev/null"
> > > > CGO_CFLAGS="-g -O2"
> > > > CGO_CPPFLAGS=""
> > > > CGO_CXXFLAGS="-g -O2"
> > > > CGO_FFLAGS="-g -O2"
> > > > CGO_LDFLAGS="-g -O2"
> > > > PKG_CONFIG="pkg-config"
> > > > GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-
> > > > prefix-
> > > > map=/tmp/go-build038144482=/tmp/go-build -gno-record-gcc-
> > > > switches"
> > > > ~ $ unset GOPATH
> > > > ~ $ go env
> > > > missing $GOPATH
> > > > ```
> > > > 
> > > > Is this expected now?
> > > 
> > > The problem you are encountering is that /home/user/go is already
> > > being used for GOROOT, so it can't be used for GOPATH.  If the
> > > default
> > > location is unavailable, there is no fallback, so you get
> > > "missing
> > > $GOPATH".
> > > 
> > > Ian
> > 
> > 
> 
> 

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/a08470225fa8e0ccf7c1ab7f252277474ae6a2b0.camel%40kortschak.io.

Reply via email to