Subject: [bug#39570] go: update to 1.13

From: Jack Hill <[email-masked]>
Date: Tue, 11 Feb 2020 14:45:27 -0500 (EST)

Hi Guix,

The following is the minimal patch to update Go to 1.13. I'm motivated to 
do this, in part, because of the go modules transition [0]. In the short 
term, this will allow users of the go tooling to use the newest modules 
behavior. The Guix go tooling, however, is not ready for modules [1], so 
in this commit, I configure the go-build-system to use the old behavior. 
Eventually the switch to do so will go away upstream, so we'll need to 
update the build system.

Some things to be aware of when reviewing:

I believe that in Go 1.13, the upstream issued that lead to excessive 
references being maintained in go programs [2] has been fixed, but I did 
not undo our workaround.

With 1.13 the behavior of `go get` changed to download packages from 
Google's mirror at proxy.golang.org by default [3] as opposed to directly 
from upstream. This is configurable by users, and I don't think it is a 
FSDG issue (if it is, I think it would be on privacy grounds), but we 
could change the default behavior if needed.

I replaced the go-1.12 package with go-1.13, rather than having both.

guix refresh -l go says that "Building the following 51 packages would 
ensure 175 dependent packages are rebuilt," so I have prepared the commit 
against master.

I tested the commit by building syncthing and restic on my x86_64 system.

[0] https://blog.golang.org/v2-go-modules
[1] https://lists.gnu.org/archive/html/guix-devel/2020-02/msg00110.html
[2] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=33620
[3] https://golang.org/doc/go1.13#modules

Thanks,
Jack