* [bug#34752] [PATCH] WIP: Update Go to 1.12.
@ 2019-03-04 22:28 Leo Famulari
2019-03-16 22:57 ` [bug#34752] Duplicated work (sorry!) Katherine Cox-Buday
0 siblings, 1 reply; 3+ messages in thread
From: Leo Famulari @ 2019-03-04 22:28 UTC (permalink / raw)
To: 34752
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 (@dfn{CSP}).")
(supported-systems '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux"))
(license license:bsd-3)))
-(define-public go-1.11
+(define-public go-1.12
(package
(inherit go-1.4)
(name "go")
- (version "1.11.5")
+ (version "1.12")
(source
(origin
(method url-fetch)
@@ -235,23 +235,11 @@ in the style of communicating sequential processes (@dfn{CSP}).")
name version ".src.tar.gz"))
(sha256
(base32
- "0gllmbjvp12iszwils8id78mvjxwviwf98lh2gdkb236n4mz07mw"))))
+ "1wl8kq21fbzmv4plnaza5acz8dhbaaq6smjzk3r6cf3l6qrkvi09"))))
(arguments
(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") "/lib"))
@@ -276,8 +264,10 @@ in the style of communicating sequential processes (@dfn{CSP}).")
;; can not find crt1.o despite being present.
"cmd/go/testdata/script/list_compiled_imports.txt"
"cmd/go/testdata/script/mod_case_cgo.txt"
- ;; 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 (@dfn{CSP}).")
(substitute* (find-files "cmd" "\\.go")
(("/lib(64)?/ld-linux.*\\.so\\.[0-9]") loader))
#t)))
- (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 (@dfn{CSP}).")
,@(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"))
#t))
--
2.21.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [bug#34752] Duplicated work (sorry!)
2019-03-04 22:28 [bug#34752] [PATCH] WIP: Update Go to 1.12 Leo Famulari
@ 2019-03-16 22:57 ` Katherine Cox-Buday
2019-03-18 20:14 ` bug#34752: " Leo Famulari
0 siblings, 1 reply; 3+ messages in thread
From: Katherine Cox-Buday @ 2019-03-16 22:57 UTC (permalink / raw)
To: 34752
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 :(
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.
- 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.
Regarding your question about the test failures. I tried to resolve
these in 1.11 and the new ones that cropped up in 1.12. The issue is
that these "scripts" are effectively running in a custom little
script-engine that was custom built. I made some attempts at correcting
this which you can read about in patch 32768. You can find out more
about this scripting engine here:
https://github.com/golang/go/blob/release-branch.go1.12/src/cmd/go/testdata/script/README
--
Katherine
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#34752: Duplicated work (sorry!)
2019-03-16 22:57 ` [bug#34752] Duplicated work (sorry!) Katherine Cox-Buday
@ 2019-03-18 20:14 ` Leo Famulari
0 siblings, 0 replies; 3+ messages in thread
From: Leo Famulari @ 2019-03-18 20:14 UTC (permalink / raw)
To: Katherine Cox-Buday; +Cc: 34752-done
[-- Attachment #1: Type: text/plain, Size: 1415 bytes --]
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 #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-03-18 20:15 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-04 22:28 [bug#34752] [PATCH] WIP: Update Go to 1.12 Leo Famulari
2019-03-16 22:57 ` [bug#34752] Duplicated work (sorry!) Katherine Cox-Buday
2019-03-18 20:14 ` bug#34752: " Leo Famulari
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.