[PATCH] gnu: Remove go-1.14.

  • Done
  • quality assurance status badge
Details
3 participants
  • Efraim Flashner
  • Maxim Cournoyer
  • Sharlatan Hellseher
Owner
unassigned
Submitted by
Efraim Flashner
Severity
normal
E
E
Efraim Flashner wrote on 7 Jan 11:39 +0100
(address . guix-patches@gnu.org)(name . Efraim Flashner)(address . efraim@flashner.co.il)
6dd5f6b5e031333fcfb06b666d4344389a9db595.1704623488.git.efraim@flashner.co.il
* gnu/packages/golang.scm (go-1.14, go-std-1.14): Remove variables.
(go-1.16): Inherit from go-1.4.

Change-Id: Ie92019e3aa733a8c6f12dfefbc7b140eb1b76c5c
---
gnu/packages/golang.scm | 250 +++++++---------------------------------
1 file changed, 41 insertions(+), 209 deletions(-)

Toggle diff (349 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 36e2c4b23e..f84389427c 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -259,11 +259,11 @@ (define-public go-1.4
(supported-systems '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux"))
(license license:bsd-3)))
-(define-public go-1.14
+(define-public go-1.16
(package
(inherit go-1.4)
(name "go")
- (version "1.14.15")
+ (version "1.16.15")
(source
(origin
(method git-fetch)
@@ -273,63 +273,39 @@ (define-public go-1.14
(file-name (git-file-name name version))
(sha256
(base32
- "1crh90qkvhlx23hwsi4wxy3l3h8973lr18135y6h1nnzzwr3n3ps"))))
+ "0vlk0r4600ah9fg5apdd93g7i369k0rkzcgn7cs8h6qq2k6hpxjl"))))
(arguments
- (substitute-keyword-arguments (package-arguments go-1.4)
- ((#:system system)
- (if (string-prefix? "aarch64-linux" (or (%current-system)
- (%current-target-system)))
- "aarch64-linux"
- system))
+ (substitute-keyword-arguments
+ (strip-keyword-arguments '(#:tests? #:system) (package-arguments go-1.4))
((#:phases phases)
`(modify-phases ,phases
+ (add-after 'unpack 'remove-unused-sourcecode-generators
+ (lambda _
+ ;; Prevent perl from inclusion in closure through unused files
+ (for-each delete-file (find-files "src" "\\.pl$"))))
(replace 'prebuild
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
- (ld (string-append (assoc-ref inputs "libc") "/lib"))
- (loader (car (append (find-files ld "^ld-linux.+")
- (find-files ld "^ld(64)?\\.so.+"))))
(net-base (assoc-ref inputs "net-base"))
(tzdata-path
- (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
- (output (assoc-ref outputs "out")))
+ (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo")))
;; Having the patch in the 'patches' field of <origin> breaks
;; the 'TestServeContent' test due to the fact that
;; timestamps are reset. Thus, apply it from here.
(invoke "patch" "-p2" "--force" "-i"
(assoc-ref inputs "go-skip-gc-test.patch"))
-
- ;; A side effect of these test scripts is testing
- ;; cgo. Attempts at using cgo flags and directives with these
- ;; scripts as specified here (https://golang.org/cmd/cgo/)
- ;; have not worked. The tests continue to state that they can
- ;; not find object files/headers despite being present.
- (for-each
- delete-file
- '("cmd/go/testdata/script/mod_case_cgo.txt"
- "cmd/go/testdata/script/list_find.txt"
- "cmd/go/testdata/script/list_compiled_imports.txt"
- "cmd/go/testdata/script/cgo_syso_issue29253.txt"
- "cmd/go/testdata/script/cover_cgo.txt"
- "cmd/go/testdata/script/cover_cgo_xtest.txt"
- "cmd/go/testdata/script/cover_cgo_extra_test.txt"
- "cmd/go/testdata/script/cover_cgo_extra_file.txt"
- "cmd/go/testdata/script/cgo_path_space.txt"
- "cmd/go/testdata/script/ldflag.txt"
- "cmd/go/testdata/script/cgo_path.txt"))
+ (invoke "patch" "-p2" "--force" "-i"
+ (assoc-ref inputs "go-fix-script-tests.patch"))
(for-each make-file-writable (find-files "."))
(substitute* "os/os_test.go"
(("/usr/bin") (getcwd))
- (("/bin/pwd") (which "pwd"))
(("/bin/sh") (which "sh")))
- ;; Backport fix for go-1.14 with GCC 9+
- ;; https://github.com/golang/go/issues/39157
- (substitute* "cmd/go/note_test.go"
- (("cannot find 'ld'") "cannot find [‘']ld[’']"))
+ (substitute* "cmd/go/testdata/script/cgo_path_space.txt"
+ (("/bin/sh") (which "sh")))
;; Add libgcc to runpath
(substitute* "cmd/link/internal/ld/lib.go"
@@ -337,7 +313,7 @@ (define-public go-1.14
(substitute* "cmd/go/internal/work/gccgo.go"
(("cgoldflags := \\[\\]string\\{\\}")
(string-append "cgoldflags := []string{"
- "\"-rpath=" gcclib "\""
+ "\"-Wl,-rpath=" gcclib "\""
"}"))
(("\"-lgcc_s\", ")
(string-append
@@ -406,28 +382,42 @@ (define-public go-1.14
(substitute* "net/port_unix.go"
(("/etc/services") (string-append net-base "/etc/services")))
(substitute* "time/zoneinfo_unix.go"
- (("/usr/share/zoneinfo/") tzdata-path))
- (substitute* (find-files "cmd" "\\.go")
- (("/lib(64)?/ld-linux.*\\.so\\.[0-9]") loader))
- #t)))
+ (("/usr/share/zoneinfo/") tzdata-path)))))
(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)))
+ (setenv "GOGC" "400"))))
(replace 'build
- (lambda* (#:key inputs outputs #:allow-other-keys)
+ (lambda* (#:key inputs outputs (parallel-build? #t)
+ #:allow-other-keys)
;; FIXME: Some of the .a files are not bit-reproducible.
- (let* ((output (assoc-ref outputs "out")))
+ ;; (Is this still true?)
+ (let* ((njobs (if parallel-build? (parallel-job-count) 1))
+ (output (assoc-ref outputs "out"))
+ (loader (string-append (assoc-ref inputs "libc")
+ ,(glibc-dynamic-linker))))
(setenv "CC" (which "gcc"))
+ (setenv "GO_LDSO" loader)
(setenv "GOOS" "linux")
(setenv "GOROOT" (dirname (getcwd)))
(setenv "GOROOT_FINAL" output)
(setenv "GOCACHE" "/tmp/go-cache")
- (setenv "CGO_ENABLED" "1")
- (invoke "sh" "all.bash"))))
+ (setenv "GOMAXPROCS" (number->string njobs))
+ (invoke "sh" "make.bash" "--no-banner"))))
+ (replace 'check
+ (lambda* (#:key target (tests? (not target)) (parallel-tests? #t)
+ #:allow-other-keys)
+ (let* ((njobs (if parallel-tests? (parallel-job-count) 1)))
+ (when tests?
+ (setenv "GOMAXPROCS" (number->string njobs))
+ (invoke "sh" "run.bash" "--no-rebuild")))))
+ (add-before 'install 'unpatch-perl-shebangs
+ (lambda _
+ ;; Rewrite references to perl input in test scripts
+ (substitute* "net/http/cgi/testdata/test.cgi"
+ (("^#!.*") "#!/usr/bin/env perl\n"))))
(replace 'install
;; TODO: Most of this could be factorized with Go 1.4.
(lambda* (#:key outputs #:allow-other-keys)
@@ -461,8 +451,7 @@ (define-public go-1.14
'("README.md" "CONTRIBUTORS" "AUTHORS" "PATENTS"
"LICENSE" "VERSION" "CONTRIBUTING.md" "robots.txt"))
- (copy-recursively "../" output)
- #t)))))))
+ (copy-recursively "../" output))))))))
(native-inputs
`(,@(if (member (%current-system) (package-supported-systems go-1.4))
`(("go" ,go-1.4))
@@ -472,167 +461,11 @@ (define-public go-1.14
((or "armhf-linux" "aarch64-linux")
`(("gold" ,binutils-gold)))
(_ `()))
+ ("go-fix-script-tests.patch" ,(search-patch "go-fix-script-tests.patch"))
,@(package-native-inputs go-1.4)))
(supported-systems (fold delete %supported-systems
(list "powerpc-linux" "i586-gnu")))))
-(define-public go-1.16
- (package
- (inherit go-1.14)
- (name "go")
- (version "1.16.15")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/golang/go")
- (commit (string-append "go" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0vlk0r4600ah9fg5apdd93g7i369k0rkzcgn7cs8h6qq2k6hpxjl"))))
- (arguments
- (substitute-keyword-arguments
- (strip-keyword-arguments '(#:tests?) (package-arguments go-1.14))
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'remove-unused-sourcecode-generators
- (lambda _
- ;; Prevent perl from inclusion in closure through unused files
- (for-each delete-file (find-files "src" "\\.pl$"))))
- (replace 'prebuild
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
- (net-base (assoc-ref inputs "net-base"))
- (tzdata-path
- (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo")))
-
- ;; Having the patch in the 'patches' field of <origin> breaks
- ;; the 'TestServeContent' test due to the fact that
- ;; timestamps are reset. Thus, apply it from here.
- (invoke "patch" "-p2" "--force" "-i"
- (assoc-ref inputs "go-skip-gc-test.patch"))
- (invoke "patch" "-p2" "--force" "-i"
- (assoc-ref inputs "go-fix-script-tests.patch"))
-
- (for-each make-file-writable (find-files "."))
-
- (substitute* "os/os_test.go"
- (("/usr/bin") (getcwd))
- (("/bin/sh") (which "sh")))
-
- (substitute* "cmd/go/testdata/script/cgo_path_space.txt"
- (("/bin/sh") (which "sh")))
-
- ;; Add libgcc to runpath
- (substitute* "cmd/link/internal/ld/lib.go"
- (("!rpath.set") "true"))
- (substitute* "cmd/go/internal/work/gccgo.go"
- (("cgoldflags := \\[\\]string\\{\\}")
- (string-append "cgoldflags := []string{"
- "\"-Wl,-rpath=" gcclib "\""
- "}"))
- (("\"-lgcc_s\", ")
- (string-append
- "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
- (substitute* "cmd/go/internal/work/gc.go"
- (("ldflags = setextld\\(ldflags, compiler\\)")
- (string-append
- "ldflags = setextld(ldflags, compiler)\n"
- "ldflags = append(ldflags, \"-r\")\n"
- "ldflags = append(ldflags, \"" gcclib "\")\n")))
-
- ;; Disable failing tests: these tests attempt to access
- ;; commands or network resources which are neither available
- ;; nor necessary for the build to succeed.
- (for-each
- (match-lambda
- ((file regex)
- (substitute* file
- ((regex all before test_name)
- (string-append before "Disabled" test_name)))))
- '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
- ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
- ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPort.+)")
- ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPortWithCancel.+)")
- ;; 127.0.0.1 doesn't exist
- ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPTR.+)")
- ;; 127.0.0.1 doesn't exist
- ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPTRWithCancel.+)")
- ;; /etc/services doesn't exist
- ("net/parse_test.go" "(.+)(TestReadLine.+)")
- ("os/os_test.go" "(.+)(TestHostname.+)")
- ;; The user's directory doesn't exist
- ("os/os_test.go" "(.+)(TestUserHomeDir.+)")
- ("time/format_test.go" "(.+)(TestParseInSydney.+)")
- ("time/format_test.go" "(.+)(TestParseInLocation.+)")
- ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
- ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
- ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
- ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
- ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
- ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
- ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
- ("os/exec/exec_test.go" "(.+)(TestIgnorePipeErrorOnSuccess.+)")
- ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
- ("os/exec/exec_test.go" "(.+)(TestExtraFiles/areturn.+)")
- ("cmd/go/go_test.go" "(.+)(TestCoverageWithCgo.+)")
- ("cmd/go/go_test.go" "(.+)(TestTwoPkgConfigs.+)")
- ("os/exec/exec_test.go" "(.+)(TestOutputStderrCapture.+)")
- ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")
- ("os/exec/exec_test.go" "(.+)(TestExtraFilesRace.+)")
- ("net/lookup_test.go" "(.+)(TestLookupPort.+)")
- ("syscall/exec_linux_test.go"
- "(.+)(TestCloneNEWUSERAndRemapNoRootDisableSetgroups.+)")))
-
- ;; These tests fail on aarch64-linux
- (substitute* "cmd/dist/test.go"
- (("t.registerHostTest\\(\"testsanitizers/msan.*") ""))
-
- ;; fix shebang for testar script
- ;; note the target script is generated at build time.
- (substitute* "../misc/cgo/testcarchive/carchive_test.go"
- (("#!/usr/bin/env") (string-append "#!" (which "env"))))
-
- (substitute* "net/lookup_unix.go"
- (("/etc/protocols") (string-append net-base "/etc/protocols")))
- (substitute* "net/port_unix.go"
- (("/etc/services") (string-append net-base "/etc/services")))
- (substitute* "time/zoneinfo_unix.go"
- (("/usr/share/zoneinfo/") tzdata-path)))))
- (replace 'build
- (lambda* (#:key inputs outputs (parallel-build? #t)
- #:allow-other-keys)
- ;; FIXME: Some of the .a files are not bit-reproducible.
- ;; (Is this still true?)
- (let* ((njobs (if parallel-build? (parallel-job-count) 1))
- (output (assoc-ref outputs "out"))
- (loader (string-append (assoc-ref inputs "libc")
- ,(glibc-dynamic-linker))))
- (setenv "CC" (which "gcc"))
- (setenv "GO_LDSO" loader)
- (setenv "GOOS" "linux")
- (setenv "GOROOT" (dirname (getcwd)))
- (setenv "GOROOT_FINAL" output)
- (setenv "GOCACHE" "/tmp/go-cache")
- (setenv "GOMAXPROCS" (number->string njobs))
- (invoke "sh" "make.bash" "--no-banner"))))
- (replace 'check
- (lambda* (#:key target (tests? (not target)) (parallel-tests? #t)
- #:allow-other-keys)
- (let* ((njobs (if parallel-tests? (parallel-job-count) 1)))
- (when tests?
- (setenv "GOMAXPROCS" (number->string njobs))
- (invoke "sh" "run.bash" "--no-rebuild")))))
- (add-before 'install 'unpatch-perl-shebangs
- (lambda _
- ;; Rewrite references to perl input in test scripts
- (substitute* "net/http/cgi/testdata/test.cgi"
- (("^#!.*") "#!/usr/bin/env perl\n"))))))))
- (native-inputs
- `(("go-fix-script-tests.patch" ,(search-patch "go-fix-script-tests.patch"))
- ,@(package-native-inputs go-1.14)))))
-
;; https://github.com/golang/go/wiki/MinimumRequirements#microarchitecture-support
(define %go-1.17-arm-micro-architectures
(list "armv5" "armv6" "armv7"))
@@ -1142,7 +975,6 @@ (define make-go-std
(export make-go-std)
;; Make those public so they have a corresponding Cuirass job.
-(define-public go-std-1.14 (make-go-std go-1.14))
(define-public go-std-1.16 (make-go-std go-1.16))
(define-public go-std-1.17 (make-go-std go-1.17))
(define-public go-std-1.18 (make-go-std go-1.18))

base-commit: 25bcf4eda05b501758b11a53823867dc500ac7d1
--
Efraim Flashner <efraim@flashner.co.il> ????? ?????
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
M
M
Maxim Cournoyer wrote on 10 Jan 15:34 +0100
(name . Efraim Flashner)(address . efraim@flashner.co.il)
87sf35s1do.fsf@gmail.com
Hello,

Efraim Flashner <efraim@flashner.co.il> writes:

Toggle quote (5 lines)
> * gnu/packages/golang.scm (go-1.14, go-std-1.14): Remove variables.
> (go-1.16): Inherit from go-1.4.
>
> Change-Id: Ie92019e3aa733a8c6f12dfefbc7b140eb1b76c5c

Casually reviewed, but LGTM! I don't think it's a big deal to rebuild
all go packages; these are quick to build.

Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail>

--
Thanks,
Maxim
S
S
Sharlatan Hellseher wrote on 31 Jan 20:27 +0100
[PATCH] gnu: Remove go-1.14.
(address . 68300@debbugs.gnu.org)
CAO+9K5ruEJqvFJiS+OiidNXpdeWuf-2o76T7sW0T31tprB2d0Q@mail.gmail.com
Hi Efraim,

It looks all reasonable changes for me.
May you initiate a go-team branch please?

I would need it to test other patches in issues with low level
improvements on go-build-system, see <

Thanks,
Oleaginous.
Attachment: file
S
S
Sharlatan Hellseher wrote on 21 Feb 22:10 +0100
(address . 68300-done@debbugs.gnu.org)
878r3d8qwu.fsf@gmail.com
Hi Efraim,

I've pushed it as 07962429da5fe11e9c366cbaf314e0db53a8fff5 to go-team.

--
Oleg
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEmEeB3micIcJkGAhndtcnv/Ys0rUFAmXWZsEACgkQdtcnv/Ys
0rXtIBAAszkpRlPvcgcBJ6AFcVCCEciv9Lv+Z0/BojsJqCgimtst0PVRkAgkXWon
ySj3OLZx6twE1TebaiH9r81TLfxT+/ZuHKfxlpORKh0ZCS/GUbL/VDCKlUDwZ6e4
XbJCMivHqnFToGhCP5iHE0r+sxbhCpMadY7T0STIFN4vl8KjtaFRKw9J41q1SLVs
CNaPx0Soil1N3MtXsFjy7e6jvO6ElWIdbx2SAsuerFp5O7b6aCKdv/az/xBQNRud
Bw+VnRxfVJ12SbspM/8ouINRP7Mng3OrRft+ttJYuFivMCgVk9iA6cIIrQyMCP3z
McyaZR3+Z/yvbmqgk5CD7uZhYr9wB5XY4x8UmBGxOy5ts5Geq0tZd7D5bzKfYqxy
n7uV1ZXi3fsOSmu5qQQwPLYxCl/PNNpmZj42lRf1zYf6SSH55/HLS7fU1i8Pj6BZ
rLdDZNTCq/a9W2tBev0oNkT3l/wFt/HODcsd0M30Ev4ClpfGR1BHebIeM6FiJVcO
tptTglRqH+iaLIONuQqA8y7nXjxjDwXwtKNlIGLf9IIBUene+/p7WqTHBbiB09K2
LgtKXLFzL+0EGyxHfpG/bMGWsqaEr0LA0yuRRoxNW/8DXmy+Syggrv6B+YyMoeSd
XUuRrf3swqur+ulEfdShQS6MOXBbRRtQU5ymbadJ4+6ett42CcU=
=XJnp
-----END PGP SIGNATURE-----

Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 68300@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 68300
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch