[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#34752: closed ([PATCH] WIP: Update Go to 1.12.)

From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#34752: closed ([PATCH] WIP: Update Go to 1.12.)
Date: Mon, 18 Mar 2019 20:15:02 +0000

Your message dated Mon, 18 Mar 2019 16:14:19 -0400
with message-id <address@hidden>
and subject line Re: [bug#34752] Duplicated work (sorry!)
has caused the debbugs.gnu.org bug report #34752,
regarding [PATCH] WIP: Update Go to 1.12.
to be marked as done.

(If you believe you have received this mail in error, please contact

34752: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=34752
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: [PATCH] WIP: Update Go to 1.12. Date: Mon, 4 Mar 2019 17:28:00 -0500
This patch depends on the removal of Go 1.9 in bug #34280.

Any ideas about these new test failures? Something fails to find some
kernel headers for reasons that I don't understand.

* gnu/packages/golang.scm (go-1.11): Replace with ...
(go-1.12): ... new variable.
[arguments]: Remove the Go 1.11.5 'tarbomb-workaround' phase.
Move 'set-bootstrap-variables' into the 'build' phase.
Disable some more tests in the 'prebuild' phase. Set $HOME because Go
1.12 actually tries to use it.
(go): Update to go-1.12.
* guix/build/go-build-system.scm (setup-environment): Set $HOME.
 gnu/packages/golang.scm        | 39 ++++++++++++----------------------
 guix/build/go-build-system.scm |  1 +
 2 files changed, 14 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index da8ad3d7fe..ff21bcdba9 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -223,11 +223,11 @@ in the style of communicating sequential processes 
     (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux" 
     (license license:bsd-3)))
-(define-public go-1.11
+(define-public go-1.12
     (inherit go-1.4)
     (name "go")
-    (version "1.11.5")
+    (version "1.12")
        (method url-fetch)
@@ -235,23 +235,11 @@ in the style of communicating sequential processes 
                            name version ".src.tar.gz"))
-         "0gllmbjvp12iszwils8id78mvjxwviwf98lh2gdkb236n4mz07mw"))))
+         "1wl8kq21fbzmv4plnaza5acz8dhbaaq6smjzk3r6cf3l6qrkvi09"))))
      (substitute-keyword-arguments (package-arguments go-1.4)
        ((#:phases phases)
         `(modify-phases ,phases
-           ;; XXX Work around the Go 1.11.5 tarbomb.
-           ;; <https://github.com/golang/go/issues/29906>
-           (add-after 'unpack 'tarbomb-workaround
-             (lambda _
-               (chdir "..")
-               (delete-file-recursively "gocache")
-               (delete-file-recursively "tmp")
-               #t))
-           (replace 'chdir
-             (lambda _
-               (chdir "go/src")
-               #t))
            (replace 'prebuild
              (lambda* (#:key inputs outputs #:allow-other-keys)
                (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") 
@@ -276,8 +264,10 @@ in the style of communicating sequential processes 
                              ;; can not find crt1.o despite being present.
-                             ;; https://github.com/golang/go/issues/24884
-                             "os/user/user_test.go"))
+                             ;; XXX fails to find "asm/socket.h"
+                             "cmd/go/testdata/script/list_find.txt"
+                             ;; XXX fails to find "linux/errno.h"
+                             "cmd/go/testdata/script/cgo_syso_issue29253.txt"))
                  (substitute* "os/os_test.go"
                    (("/usr/bin") (getcwd))
@@ -352,19 +342,16 @@ in the style of communicating sequential processes 
                  (substitute* (find-files "cmd" "\\.go")
                    (("/lib(64)?/ld-linux.*\\.so\\.[0-9]") loader))
-           (add-before 'build 'set-bootstrap-variables
-             (lambda* (#:key outputs inputs #:allow-other-keys)
-               ;; Tell the build system where to find the bootstrap Go.
-               (let ((go  (assoc-ref inputs "go")))
-                 (setenv "GOROOT_BOOTSTRAP" go)
-                 (setenv "GOGC" "400")
-                 #t)))
            (replace 'build
              (lambda* (#:key inputs outputs #:allow-other-keys)
                ;; FIXME: Some of the .a files are not bit-reproducible.
-               (let* ((output (assoc-ref outputs "out")))
+               (let ((go (assoc-ref inputs "go"))
+                     (output (assoc-ref outputs "out")))
+                 (setenv "HOME" "/tmp")
+                 (setenv "GOGC" "400") ; XXX necessary?
                  (setenv "CC" (which "gcc"))
                  (setenv "GOOS" "linux")
+                 (setenv "GOROOT_BOOTSTRAP" go)
                  (setenv "GOROOT" (dirname (getcwd)))
                  (setenv "GOROOT_FINAL" output)
                  (setenv "CGO_ENABLED" "1")
@@ -415,7 +402,7 @@ in the style of communicating sequential processes 
        ,@(package-native-inputs go-1.4)))
     (supported-systems %supported-systems)))
-(define-public go go-1.11)
+(define-public go go-1.12)
 (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 022d4fe16b..c4f55b06ee 100644
--- a/guix/build/go-build-system.scm
+++ b/guix/build/go-build-system.scm
@@ -172,6 +172,7 @@ respectively."
     (if (getenv "GOPATH")
       (setenv "GOPATH" (string-append (getcwd) ":" (getenv "GOPATH")))
       (setenv "GOPATH" (getcwd)))
+    (setenv "HOME" "/tmp")
     ;; Where to install compiled executable files ('commands' in Go parlance').
     (setenv "GOBIN" (string-append out "/bin"))

--- End Message ---
--- Begin Message --- Subject: Re: [bug#34752] Duplicated work (sorry!) Date: Mon, 18 Mar 2019 16:14:19 -0400 User-agent: Mutt/1.11.3 (2019-02-01)
On Sat, Mar 16, 2019 at 05:57:29PM -0500, Katherine Cox-Buday wrote:
> Hey Leo, I've just submitted patch 34887. I didn't realize your patch
> existed until I had already submitted. I apologize, I don't contribute
> to projects managed in this style enough to have the workflow
> internalized :(

It's okay. Our work overlapped but we can consider it a very in-depth
code review :)

> At any rate, my patch does much the same thing except that it leaves
> 1.11 in place as default. I did that for a couple of reasons:
> - In organizations, it's very common for projects/teams to lag behind a
>   bit the newest releases, and for people installing Go through Guix,
>   it's nice to still have previous versions available. The Go team
>   officially supports LATEST-2 releases, and I think we should consider
>   doing the same.

Okay, let's do this from now on. We can make Go 1.12 the default later.

> - https://golang.org/doc/go1.12#gocache states that the build cache is
>   now required. I saw that you were experimenting with setting the home
>   directory to `/tmp`. The approach I considered taking was to modify
>   the Go build-system to override the `GOCACHE` environmental variable
>   when doing builds. Otherwise, any Go package will have to spoof the
>   home directory.

Yeah... as discussed on IRC #guix yesterday, we have some work to do to
fully support recent Go.

Attachment: signature.asc
Description: PGP signature

--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]