Re: [go-nuts] missing $GOPATH
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 > > > 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.
Re: [go-nuts] missing $GOPATH
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 > > 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/9e977076b90f6d1f0477f9dbc3ac48dc74bb9e69.camel%40kortschak.io.
Re: [go-nuts] missing $GOPATH
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 > 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/ba564b7a07a05c703cca949c7c807cd9aa0c0bb7.camel%40kortschak.io.
Re: [go-nuts] missing $GOPATH
On Thu, Sep 26, 2019 at 7:36 PM Dan Kortschak 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/CAOyqgcXj-DG3XwjmvN9s53s7gzxjextQHmW-y4xi7iSTqNATzg%40mail.gmail.com.
[go-nuts] missing $GOPATH
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? -- 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/7536d03f16ae4e8fbac04aec18c1f9c7bb5d369e.camel%40kortschak.io.