GNU bug report logs - #39570
[PATCH] go: update to 1.13

Previous Next

Package: guix-patches;

Reported by: Jack Hill <jackhill <at> jackhill.us>

Date: Tue, 11 Feb 2020 19:46:01 UTC

Severity: normal

Tags: patch

Done: "Alex Griffin" <a <at> ajgrf.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 39570 in the body.
You can then email your comments to 39570 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#39570; Package guix-patches. (Tue, 11 Feb 2020 19:46:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Jack Hill <jackhill <at> jackhill.us>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Tue, 11 Feb 2020 19:46:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Jack Hill <jackhill <at> jackhill.us>
To: guix-patches <at> gnu.org
Subject: go: update to 1.13
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




Information forwarded to guix-patches <at> gnu.org:
bug#39570; Package guix-patches. (Tue, 11 Feb 2020 19:49:02 GMT) Full text and rfc822 format available.

Message #8 received at 39570 <at> debbugs.gnu.org (full text, mbox):

From: Jack Hill <jackhill <at> jackhill.us>
To: 39570 <at> debbugs.gnu.org
Cc: jackhill <at> jackhill.us
Subject: [PATCH] gnu: go: update to 1.13.2
Date: Tue, 11 Feb 2020 14:48:20 -0500
* gnu/packages/golang.scm (go-1.12): Rename to go-1.13, [version]: Update to
  1.13.7
  (go): Update to go-1.13
* guix/build/go-build-system.scm (setup-go-environment): Set GO111MODULE to
  off.
---
 gnu/packages/golang.scm        | 9 ++++-----
 guix/build/go-build-system.scm | 4 ++++
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 9102469749..798600f680 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -216,11 +216,11 @@ in the style of communicating sequential processes (@dfn{CSP}).")
     (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux"))
     (license license:bsd-3)))
 
-(define-public go-1.12
+(define-public go-1.13
   (package
     (inherit go-1.4)
     (name "go")
-    (version "1.12.16")
+    (version "1.13.7")
     (source
      (origin
        (method url-fetch)
@@ -228,7 +228,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
                            name version ".src.tar.gz"))
        (sha256
         (base32
-         "1y0x10fsvgpc1x24b9q9y6kv9b0kwf7879am3p0gym2abgc5wvnf"))))
+         "1x21kfpzfkvmqd42pan6nl862m7jjl4niqxxpcgm46awbz645bg4"))))
     (arguments
      (substitute-keyword-arguments (package-arguments go-1.4)
        ((#:phases phases)
@@ -367,7 +367,6 @@ in the style of communicating sequential processes (@dfn{CSP}).")
                       (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
                       (src (string-append
                             (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
-                 (delete-file-recursively "../pkg/bootstrap")
                  ;; Prevent installation of the build cache, which contains
                  ;; store references to most of the tools used to build Go and
                  ;; would unnecessarily increase the size of Go's closure if it
@@ -405,7 +404,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
        ,@(package-native-inputs go-1.4)))
     (supported-systems %supported-systems)))
 
-(define-public go go-1.12)
+(define-public go go-1.13)
 
 (define-public go-github-com-alsm-ioprogress
   (let ((commit "063c3725f436e7fba0c8f588547bee21ffec7ac5")
diff --git a/guix/build/go-build-system.scm b/guix/build/go-build-system.scm
index 4bc0156a88..3337552d96 100644
--- a/guix/build/go-build-system.scm
+++ b/guix/build/go-build-system.scm
@@ -141,6 +141,10 @@ dependencies, so it should be self-contained."
   ;; Using the current working directory as GOPATH makes it easier for packagers
   ;; who need to manipulate the unpacked source code.
   (setenv "GOPATH" (getcwd))
+  ;; Go 1.13 uses go modules by default. The go build system does not
+  ;; currently support modules, so turn modules off to continue using the old
+  ;; GOPATH behavior.
+  (setenv "GO111MODULE" "off")
   (setenv "GOBIN" (string-append (assoc-ref outputs "out") "/bin"))
   (let ((tmpdir (tmpnam)))
     (match (go-inputs inputs)
-- 
2.25.0





Changed bug title to '[PATCH] go: update to 1.13' from 'go: update to 1.13' Request was from "Alex Griffin" <a <at> ajgrf.com> to control <at> debbugs.gnu.org. (Tue, 11 Feb 2020 20:25:01 GMT) Full text and rfc822 format available.

Added tag(s) patch. Request was from "Alex Griffin" <a <at> ajgrf.com> to control <at> debbugs.gnu.org. (Tue, 11 Feb 2020 20:25:01 GMT) Full text and rfc822 format available.

Reply sent to "Alex Griffin" <a <at> ajgrf.com>:
You have taken responsibility. (Tue, 11 Feb 2020 22:56:02 GMT) Full text and rfc822 format available.

Notification sent to Jack Hill <jackhill <at> jackhill.us>:
bug acknowledged by developer. (Tue, 11 Feb 2020 22:56:02 GMT) Full text and rfc822 format available.

Message #17 received at 39570-done <at> debbugs.gnu.org (full text, mbox):

From: "Alex Griffin" <a <at> ajgrf.com>
To: 39570-done <at> debbugs.gnu.org
Subject: Re: [PATCH] go: update to 1.13
Date: Tue, 11 Feb 2020 22:55:19 +0000
I just split this up into 2 patches and committed to master. Thanks for contributing!

-- 
Alex Griffin




Information forwarded to guix-patches <at> gnu.org:
bug#39570; Package guix-patches. (Wed, 12 Feb 2020 02:46:01 GMT) Full text and rfc822 format available.

Message #20 received at 39570 <at> debbugs.gnu.org (full text, mbox):

From: Jack Hill <jackhill <at> jackhill.us>
To: 39570 <at> debbugs.gnu.org
Subject: [PATCH] go: update to 1.13
Date: Tue, 11 Feb 2020 21:45:26 -0500 (EST)
Alex,

Awesome, thanks for fixing it up and pushing.

Best,
Jack




Information forwarded to guix-patches <at> gnu.org:
bug#39570; Package guix-patches. (Wed, 12 Feb 2020 21:44:02 GMT) Full text and rfc822 format available.

Message #23 received at 39570 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Jack Hill <jackhill <at> jackhill.us>
Cc: 39570 <at> debbugs.gnu.org
Subject: Re: [bug#39570] go: update to 1.13
Date: Wed, 12 Feb 2020 16:43:02 -0500
On Tue, Feb 11, 2020 at 02:45:27PM -0500, Jack Hill wrote:
> 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.

I wonder, should it be a goal to undo it?  It's not idiomatic for Guix,
but it is for Go. I had stopped thinking of it as a 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 don't see any issues here.




Information forwarded to guix-patches <at> gnu.org:
bug#39570; Package guix-patches. (Wed, 12 Feb 2020 22:02:02 GMT) Full text and rfc822 format available.

Message #26 received at 39570 <at> debbugs.gnu.org (full text, mbox):

From: Jack Hill <jackhill <at> jackhill.us>
To: Leo Famulari <leo <at> famulari.name>
Cc: 39570 <at> debbugs.gnu.org
Subject: Re: [bug#39570] go: update to 1.13
Date: Wed, 12 Feb 2020 17:01:37 -0500 (EST)
On Wed, 12 Feb 2020, Leo Famulari wrote:

> On Tue, Feb 11, 2020 at 02:45:27PM -0500, Jack Hill wrote:
>> 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.
>
> I wonder, should it be a goal to undo it?  It's not idiomatic for Guix,
> but it is for Go. I had stopped thinking of it as a workaround.

Perhaps not. I don't see a strong need to revert, but wanted to point out 
that the original reason for doing that had changed.

Best,
Jack




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 12 Mar 2020 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 5 years and 158 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.