gnu: Add go-github-com-google-gofuzz.
[jackhill/guix/guix.git] / gnu / packages / golang.scm
CommitLineData
7a2941a8 1;;; GNU Guix --- Functional package management for GNU
dda785f6 2;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
7a2941a8
MJ
3;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
4;;; Copyright © 2016 Andy Wingo <wingo@igalia.com>
ec91bcb5 5;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
c04ef86e 6;;; Copyright © 2016, 2017 Petter <petter@mykolab.ch>
17399545 7;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
c04ef86e 8;;; Copyright © 2017 Sergei Trofimovich <slyfox@inbox.ru>
eaca9ff0 9;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
247064c3 10;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
c4d2cffa 11;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
e60352e4 12;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
fb50664f 13;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
7a2941a8 14;;;
8a610eb6 15;;; This file is part of GNU Guix.
7a2941a8
MJ
16;;;
17;;; GNU Guix is free software; you can redistribute it and/or modify it
18;;; under the terms of the GNU General Public License as published by
19;;; the Free Software Foundation; either version 3 of the License, or (at
20;;; your option) any later version.
21;;;
22;;; GNU Guix is distributed in the hope that it will be useful, but
23;;; WITHOUT ANY WARRANTY; without even the implied warranty of
24;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25;;; GNU General Public License for more details.
26;;;
27;;; You should have received a copy of the GNU General Public License
28;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
29
30(define-module (gnu packages golang)
31 #:use-module ((guix licenses) #:prefix license:)
32 #:use-module (guix utils)
33 #:use-module (guix download)
d3878e88 34 #:use-module (guix git-download)
7a2941a8
MJ
35 #:use-module (guix packages)
36 #:use-module (guix build-system gnu)
d3878e88 37 #:use-module (guix build-system go)
7a2941a8
MJ
38 #:use-module (gnu packages admin)
39 #:use-module (gnu packages gcc)
40 #:use-module (gnu packages base)
41 #:use-module (gnu packages perl)
42 #:use-module (gnu packages pkg-config)
43 #:use-module (gnu packages pcre)
44 #:use-module (ice-9 match)
45 #:use-module (srfi srfi-1))
46
47;; According to https://golang.org/doc/install/gccgo, gccgo-4.8.2 includes a
48;; complete go-1.1.2 implementation, gccgo-4.9 includes a complete go-1.2
49;; implementation, and gccgo-5 a complete implementation of go-1.4. Ultimately
50;; we hope to build go-1.5+ with a bootstrap process using gccgo-5. As of
51;; go-1.5, go cannot be bootstrapped without go-1.4, so we need to use go-1.4 or
52;; gccgo-5. Mips is not officially supported, but it should work if it is
53;; bootstrapped.
54
55(define-public go-1.4
56 (package
57 (name "go")
58 (version "1.4.3")
59 (source (origin
60 (method url-fetch)
61 (uri (string-append "https://storage.googleapis.com/golang/"
62 name version ".src.tar.gz"))
63 (sha256
64 (base32
65 "0na9yqilzpvq0bjndbibfp07wr796gf252y471cip10bbdqgqiwr"))))
66 (build-system gnu-build-system)
67 (outputs '("out"
68 "doc"
69 "tests"))
70 (arguments
71 `(#:modules ((ice-9 match)
72 (guix build gnu-build-system)
1d698a8b
ST
73 (guix build utils)
74 (srfi srfi-1))
7a2941a8
MJ
75 #:tests? #f ; Tests are run by the all.bash script.
76 #:phases
77 (modify-phases %standard-phases
78 (delete 'configure)
79 (add-after 'patch-generated-file-shebangs 'chdir
80 (lambda _
81 (chdir "src")))
82 (add-before 'build 'prebuild
83 (lambda* (#:key inputs outputs #:allow-other-keys)
84 (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
85 (ld (string-append (assoc-ref inputs "libc") "/lib"))
86 (loader (car (find-files ld "^ld-linux.+")))
87 (net-base (assoc-ref inputs "net-base"))
88 (tzdata-path
89 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
90 (output (assoc-ref outputs "out")))
91
92 ;; Removing net/ tests, which fail when attempting to access
93 ;; network resources not present in the build container.
94 (for-each delete-file
95 '("net/multicast_test.go" "net/parse_test.go"
96 "net/port_test.go"))
97
98 ;; Add libgcc to the RUNPATH.
99 (substitute* "cmd/go/build.go"
100 (("cgoldflags := \\[\\]string\\{\\}")
101 (string-append "cgoldflags := []string{"
102 "\"-rpath=" gcclib "\"}"))
103 (("ldflags := buildLdflags")
104 (string-append
105 "ldflags := buildLdflags\n"
106 "ldflags = append(ldflags, \"-r\")\n"
107 "ldflags = append(ldflags, \"" gcclib "\")\n")))
108
109 (substitute* "os/os_test.go"
110 (("/usr/bin") (getcwd))
111 (("/bin/pwd") (which "pwd")))
112
113 ;; Disable failing tests: these tests attempt to access
114 ;; commands or network resources which are neither available or
115 ;; necessary for the build to succeed.
116 (for-each
117 (match-lambda
118 ((file regex)
119 (substitute* file
120 ((regex all before test_name)
121 (string-append before "Disabled" test_name)))))
122 '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
123 ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
124 ("os/os_test.go" "(.+)(TestHostname.+)")
125 ("time/format_test.go" "(.+)(TestParseInSydney.+)")
4b0bac4b
LF
126
127 ;; Tzdata 2016g changed the name of the time zone used in this
128 ;; test, and the patch for Go 1.7 does not work for 1.4.3:
129 ;; https://github.com/golang/go/issues/17545
130 ;; https://github.com/golang/go/issues/17276
131 ("time/time_test.go" "(.+)(TestLoadFixed.+)")
f826c8c7 132 ("time/format_test.go" "(.+)(TestParseInLocation.+)")
4b0bac4b 133
7a2941a8
MJ
134 ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
135 ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
136 ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
137 ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
138 ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
139 ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
140 ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
141 ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
142 ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")))
143
144 (substitute* "net/lookup_unix.go"
145 (("/etc/protocols") (string-append net-base "/etc/protocols")))
146 (substitute* "time/zoneinfo_unix.go"
147 (("/usr/share/zoneinfo/") tzdata-path))
148 (substitute* (find-files "cmd" "asm.c")
149 (("/lib/ld-linux.*\\.so\\.[0-9]") loader))
150 #t)))
151
152 (replace 'build
153 (lambda* (#:key inputs outputs #:allow-other-keys)
154 ;; FIXME: Some of the .a files are not bit-reproducible.
155 (let* ((output (assoc-ref outputs "out")))
156 (setenv "CC" (which "gcc"))
157 (setenv "GOOS" "linux")
158 (setenv "GOROOT" (dirname (getcwd)))
159 (setenv "GOROOT_FINAL" output)
04a95a4f
LF
160 ;; Go 1.4's cgo will not work with binutils >= 2.27:
161 ;; https://github.com/golang/go/issues/16906
162 (setenv "CGO_ENABLED" "0")
7a2941a8
MJ
163 (zero? (system* "sh" "all.bash")))))
164
165 (replace 'install
166 (lambda* (#:key outputs inputs #:allow-other-keys)
167 (let* ((output (assoc-ref outputs "out"))
168 (doc_out (assoc-ref outputs "doc"))
169 (bash (string-append (assoc-ref inputs "bash") "bin/bash"))
170 (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
171 (tests (string-append
172 (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
173 (mkdir-p tests)
174 (copy-recursively "../test" (string-append tests "/test"))
175 (delete-file-recursively "../test")
176 (mkdir-p docs)
177 (copy-recursively "../api" (string-append docs "/api"))
178 (delete-file-recursively "../api")
179 (copy-recursively "../doc" (string-append docs "/doc"))
180 (delete-file-recursively "../doc")
181
182 (for-each (lambda (file)
183 (let ((file (string-append "../" file)))
184 (install-file file docs)
185 (delete-file file)))
186 '("README" "CONTRIBUTORS" "AUTHORS" "PATENTS"
187 "LICENSE" "VERSION" "robots.txt"))
188 (copy-recursively "../" output)
189 #t))))))
190 (inputs
191 `(("tzdata" ,tzdata)
192 ("pcre" ,pcre)
fcbb8461
LF
193 ;; Building Go 1.10 with the Go 1.4 bootstrap, Thread Sanitizer from GCC
194 ;; 5 finds a data race during the the test suite of Go 1.10. With GCC 6,
195 ;; the race doesn't seem to be present:
196 ;; https://github.com/golang/go/issues/24046
197 ("gcc:lib" ,gcc-6 "lib")))
7a2941a8 198 (native-inputs
3f0ec617 199 `(("pkg-config" ,pkg-config)
7a2941a8
MJ
200 ("which" ,which)
201 ("net-base" ,net-base)
202 ("perl" ,perl)))
203
204 (home-page "https://golang.org/")
205 (synopsis "Compiler and libraries for Go, a statically-typed language")
206 (description "Go, also commonly referred to as golang, is an imperative
247064c3
TGR
207programming language designed primarily for systems programming. Go is a
208compiled, statically typed language in the tradition of C and C++, but adds
209garbage collection, various safety features, and concurrent programming features
210in the style of communicating sequential processes (@dfn{CSP}).")
dda785f6 211 (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux"))
7a2941a8 212 (license license:bsd-3)))
ec91bcb5 213
35131bab 214(define-public go-1.9
ec91bcb5
MJ
215 (package
216 (inherit go-1.4)
217 (name "go")
9dc0cf83 218 (version "1.9.6")
ec91bcb5
MJ
219 (source
220 (origin
221 (method url-fetch)
222 (uri (string-append "https://storage.googleapis.com/golang/"
223 name version ".src.tar.gz"))
224 (sha256
225 (base32
9dc0cf83 226 "0a2qkvzr0g5cbd66wi7b6r40qyp9p55y0zz2j5qg1xsqwsdhbx1n"))))
ec91bcb5
MJ
227 (arguments
228 (substitute-keyword-arguments (package-arguments go-1.4)
229 ((#:phases phases)
230 `(modify-phases ,phases
231 (replace 'prebuild
232 ;; TODO: Most of this could be factorized with Go 1.4.
233 (lambda* (#:key inputs outputs #:allow-other-keys)
234 (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
235 (ld (string-append (assoc-ref inputs "libc") "/lib"))
236 (loader (car (find-files ld "^ld-linux.+")))
237 (net-base (assoc-ref inputs "net-base"))
238 (tzdata-path
239 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
240 (output (assoc-ref outputs "out")))
241
242 ;; Removing net/ tests, which fail when attempting to access
243 ;; network resources not present in the build container.
244 (for-each delete-file
a6169621
P
245 '("net/listen_test.go"
246 "net/parse_test.go"
247 "net/cgo_unix_test.go"))
ec91bcb5
MJ
248
249 (substitute* "os/os_test.go"
250 (("/usr/bin") (getcwd))
a6169621
P
251 (("/bin/pwd") (which "pwd"))
252 (("/bin/sh") (which "sh")))
ec91bcb5
MJ
253
254 ;; Add libgcc to runpath
255 (substitute* "cmd/link/internal/ld/lib.go"
256 (("!rpath.set") "true"))
35131bab 257 (substitute* "cmd/go/internal/work/build.go"
ec91bcb5
MJ
258 (("cgoldflags := \\[\\]string\\{\\}")
259 (string-append "cgoldflags := []string{"
260 "\"-rpath=" gcclib "\""
261 "}"))
262 (("ldflags = setextld\\(ldflags, compiler\\)")
263 (string-append
264 "ldflags = setextld(ldflags, compiler)\n"
265 "ldflags = append(ldflags, \"-r\")\n"
266 "ldflags = append(ldflags, \"" gcclib "\")\n"))
267 (("\"-lgcc_s\", ")
268 (string-append
269 "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
270
271 ;; Disable failing tests: these tests attempt to access
1c797d4b
LF
272 ;; commands or network resources which are neither available
273 ;; nor necessary for the build to succeed.
ec91bcb5
MJ
274 (for-each
275 (match-lambda
276 ((file regex)
277 (substitute* file
278 ((regex all before test_name)
279 (string-append before "Disabled" test_name)))))
280 '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
281 ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
282 ("os/os_test.go" "(.+)(TestHostname.+)")
283 ("time/format_test.go" "(.+)(TestParseInSydney.+)")
f826c8c7 284 ("time/format_test.go" "(.+)(TestParseInLocation.+)")
ec91bcb5
MJ
285 ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
286 ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
287 ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
288 ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
289 ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
290 ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
291 ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
292 ("os/exec/exec_test.go" "(.+)(TestIgnorePipeErrorOnSuccess.+)")
293 ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
294 ("os/exec/exec_test.go" "(.+)(TestExtraFiles/areturn.+)")
295 ("cmd/go/go_test.go" "(.+)(TestCoverageWithCgo.+)")
3f157443 296 ("cmd/go/go_test.go" "(.+)(TestTwoPkgConfigs.+)")
ec91bcb5
MJ
297 ("os/exec/exec_test.go" "(.+)(TestOutputStderrCapture.+)")
298 ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")
299 ("os/exec/exec_test.go" "(.+)(TestExtraFilesRace.+)")
300 ("net/lookup_test.go" "(.+)(TestLookupPort.+)")
301 ("syscall/exec_linux_test.go"
17399545 302 "(.+)(TestCloneNEWUSERAndRemapNoRootDisableSetgroups.+)")))
ec91bcb5
MJ
303
304 (substitute* "../misc/cgo/testsanitizers/test.bash"
305 (("(CC=)cc" all var) (string-append var "gcc")))
306
307 ;; fix shebang for testar script
308 ;; note the target script is generated at build time.
a6169621 309 (substitute* "../misc/cgo/testcarchive/carchive_test.go"
ec91bcb5
MJ
310 (("#!/usr/bin/env") (string-append "#!" (which "env"))))
311
312 (substitute* "net/lookup_unix.go"
313 (("/etc/protocols") (string-append net-base "/etc/protocols")))
314 (substitute* "net/port_unix.go"
315 (("/etc/services") (string-append net-base "/etc/services")))
316 (substitute* "time/zoneinfo_unix.go"
317 (("/usr/share/zoneinfo/") tzdata-path))
c04ef86e
P
318 (substitute* (find-files "cmd" "\\.go")
319 (("/lib(64)?/ld-linux.*\\.so\\.[0-9]") loader))
ec91bcb5
MJ
320 #t)))
321 (add-before 'build 'set-bootstrap-variables
322 (lambda* (#:key outputs inputs #:allow-other-keys)
323 ;; Tell the build system where to find the bootstrap Go.
324 (let ((go (assoc-ref inputs "go"))
325 (out (assoc-ref outputs "out")))
326 (setenv "GOROOT_BOOTSTRAP" go)
327 (setenv "PATH"
328 (string-append out "/bin:"
329 (dirname (getcwd)) "/bin:"
330 (getenv "PATH")))
331
332 ;; XXX: The following variables seem unrelated.
333 (setenv "GOGC" "400")
334 (setenv "GO_TEST_TIMEOUT_SCALE" "9999")
335 #t)))
04a95a4f
LF
336
337 (replace 'build
338 (lambda* (#:key inputs outputs #:allow-other-keys)
339 ;; FIXME: Some of the .a files are not bit-reproducible.
340 (let* ((output (assoc-ref outputs "out")))
341 (setenv "CC" (which "gcc"))
342 (setenv "GOOS" "linux")
343 (setenv "GOROOT" (dirname (getcwd)))
344 (setenv "GOROOT_FINAL" output)
345 (setenv "CGO_ENABLED" "1")
346 (zero? (system* "sh" "all.bash")))))
347
ec91bcb5
MJ
348 (replace 'install
349 ;; TODO: Most of this could be factorized with Go 1.4.
350 (lambda* (#:key outputs #:allow-other-keys)
351 (let* ((output (assoc-ref outputs "out"))
352 (doc_out (assoc-ref outputs "doc"))
353 (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
354 (src (string-append
355 (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
356 (delete-file-recursively "../pkg/bootstrap")
357
358 (mkdir-p src)
359 (copy-recursively "../test" (string-append src "/test"))
360 (delete-file-recursively "../test")
361 (mkdir-p docs)
362 (copy-recursively "../api" (string-append docs "/api"))
363 (delete-file-recursively "../api")
364 (copy-recursively "../doc" (string-append docs "/doc"))
365 (delete-file-recursively "../doc")
366
367 (for-each
368 (lambda (file)
369 (let* ((filein (string-append "../" file))
370 (fileout (string-append docs "/" file)))
371 (copy-file filein fileout)
372 (delete-file filein)))
373 ;; Note the slightly different file names compared to 1.4.
374 '("README.md" "CONTRIBUTORS" "AUTHORS" "PATENTS"
375 "LICENSE" "VERSION" "CONTRIBUTING.md" "robots.txt"))
376
377 (copy-recursively "../" output))))))))
378 (native-inputs
379 `(("go" ,go-1.4)
dda785f6
EF
380 ,@(package-native-inputs go-1.4)))
381 (supported-systems %supported-systems)))
ec91bcb5 382
fcbb8461
LF
383(define-public go-1.10
384 (package
385 (inherit go-1.9)
386 (name "go")
fb6357ce 387 (version "1.10.2")
fcbb8461
LF
388 (source
389 (origin
390 (method url-fetch)
391 (uri (string-append "https://storage.googleapis.com/golang/"
392 name version ".src.tar.gz"))
393 (sha256
394 (base32
fb6357ce 395 "1gcqbac3wbhbcr0ri9zgfj6qkqbwf9fn116a0a7fvn4wdff60r32"))))
fcbb8461
LF
396 (arguments
397 (substitute-keyword-arguments (package-arguments go-1.9)
398 ((#:phases phases)
399 `(modify-phases ,phases
400 (replace 'prebuild
401 (lambda* (#:key inputs outputs #:allow-other-keys)
402 (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
403 (ld (string-append (assoc-ref inputs "libc") "/lib"))
404 (loader (car (find-files ld "^ld-linux.+")))
405 (net-base (assoc-ref inputs "net-base"))
406 (tzdata-path
407 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
408 (output (assoc-ref outputs "out")))
409
410 ;; Removing net/ tests, which fail when attempting to access
411 ;; network resources not present in the build container.
412 (for-each delete-file
413 '("net/listen_test.go"
414 "net/parse_test.go"
415 "net/cgo_unix_test.go"))
416
417 (substitute* "os/os_test.go"
418 (("/usr/bin") (getcwd))
419 (("/bin/pwd") (which "pwd"))
420 (("/bin/sh") (which "sh")))
421
422 ;; Add libgcc to runpath
423 (substitute* "cmd/link/internal/ld/lib.go"
424 (("!rpath.set") "true"))
425 (substitute* "cmd/go/internal/work/gccgo.go"
426 (("cgoldflags := \\[\\]string\\{\\}")
427 (string-append "cgoldflags := []string{"
428 "\"-rpath=" gcclib "\""
429 "}"))
430 (("\"-lgcc_s\", ")
431 (string-append
432 "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
433 (substitute* "cmd/go/internal/work/gc.go"
434 (("ldflags = setextld\\(ldflags, compiler\\)")
435 (string-append
436 "ldflags = setextld(ldflags, compiler)\n"
437 "ldflags = append(ldflags, \"-r\")\n"
438 "ldflags = append(ldflags, \"" gcclib "\")\n")))
439
440 ;; Disable failing tests: these tests attempt to access
441 ;; commands or network resources which are neither available
442 ;; nor necessary for the build to succeed.
443 (for-each
444 (match-lambda
445 ((file regex)
446 (substitute* file
447 ((regex all before test_name)
448 (string-append before "Disabled" test_name)))))
449 '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
450 ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
451 ("os/os_test.go" "(.+)(TestHostname.+)")
452 ("time/format_test.go" "(.+)(TestParseInSydney.+)")
453 ("time/format_test.go" "(.+)(TestParseInLocation.+)")
454 ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
455 ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
456 ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
457 ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
458 ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
459 ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
460 ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
461 ("os/exec/exec_test.go" "(.+)(TestIgnorePipeErrorOnSuccess.+)")
462 ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
463 ("os/exec/exec_test.go" "(.+)(TestExtraFiles/areturn.+)")
464 ("cmd/go/go_test.go" "(.+)(TestCoverageWithCgo.+)")
f0b85055 465 ("cmd/go/go_test.go" "(.+)(TestTwoPkgConfigs.+)")
fcbb8461
LF
466 ("os/exec/exec_test.go" "(.+)(TestOutputStderrCapture.+)")
467 ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")
468 ("os/exec/exec_test.go" "(.+)(TestExtraFilesRace.+)")
469 ("net/lookup_test.go" "(.+)(TestLookupPort.+)")
470 ("syscall/exec_linux_test.go"
471 "(.+)(TestCloneNEWUSERAndRemapNoRootDisableSetgroups.+)")))
472
473 ;; fix shebang for testar script
474 ;; note the target script is generated at build time.
475 (substitute* "../misc/cgo/testcarchive/carchive_test.go"
476 (("#!/usr/bin/env") (string-append "#!" (which "env"))))
477
478 (substitute* "net/lookup_unix.go"
479 (("/etc/protocols") (string-append net-base "/etc/protocols")))
480 (substitute* "net/port_unix.go"
481 (("/etc/services") (string-append net-base "/etc/services")))
482 (substitute* "time/zoneinfo_unix.go"
483 (("/usr/share/zoneinfo/") tzdata-path))
484 (substitute* (find-files "cmd" "\\.go")
485 (("/lib(64)?/ld-linux.*\\.so\\.[0-9]") loader))
486 #t)))
487 (replace 'set-bootstrap-variables
488 (lambda* (#:key outputs inputs #:allow-other-keys)
489 ;; Tell the build system where to find the bootstrap Go.
490 (let ((go (assoc-ref inputs "go")))
491 (setenv "GOROOT_BOOTSTRAP" go)
492 (setenv "GOGC" "400")
493 ;; Go 1.10 tries to write to $HOME in a test
494 (setenv "HOME" "/tmp")
495 #t)))))))))
496
35131bab 497(define-public go go-1.9)
d3878e88
LF
498
499(define-public go-github-com-alsm-ioprogress
500 (let ((commit "063c3725f436e7fba0c8f588547bee21ffec7ac5")
501 (revision "0"))
502 (package
503 (name "go-github-com-alsm-ioprogress")
504 (version (git-version "0.0.0" revision commit))
505 (source (origin
506 (method git-fetch)
507 (uri (git-reference
508 (url "https://github.com/alsm/ioprogress.git")
509 (commit commit)))
fdbece74 510 (file-name (git-file-name name version))
d3878e88
LF
511 (sha256
512 (base32
513 "10ym5qlq77nynmkxbk767f2hfwyxg2k7hrzph05hvgzv833dhivh"))))
514 (build-system go-build-system)
515 (arguments
516 '(#:import-path "github.com/alsm/ioprogress"))
517 (synopsis "Textual progress bars in Go")
518 (description "@code{ioprogress} is a Go library with implementations of
519@code{io.Reader} and @code{io.Writer} that draws progress bars. The primary use
520case for these are for command-line applications but alternate progress bar
521writers can be supplied for alternate environments.")
522 (home-page "https://github.com/alsm/ioprogress")
523 (license license:expat))))
11b12655
LF
524
525(define-public go-github-com-aki237-nscjar
526 (let ((commit "e2df936ddd6050d30dd90c7214c02b5019c42f06")
527 (revision "0"))
528 (package
529 (name "go-github-com-aki237-nscjar")
530 (version (git-version "0.0.0" revision commit))
531 (source (origin
532 (method git-fetch)
533 (uri (git-reference
534 (url "https://github.com/aki237/nscjar.git")
535 (commit commit)))
82f09c0e 536 (file-name (git-file-name name version))
11b12655
LF
537 (sha256
538 (base32
539 "03y7zzq12qvhsq86lb06sgns8xrkblbn7i7wd886wk3zr5574b96"))))
540 (build-system go-build-system)
541 (arguments
542 '(#:import-path "github.com/aki237/nscjar"))
543 (synopsis "Handle Netscape / Mozilla cookies")
544 (description "@code{nscjar} is a Go library used to parse and output
545Netscape/Mozilla's old-style cookie files. It also implements a simple cookie
546jar struct to manage the cookies added to the cookie jar.")
547 (home-page "https://github.com/aki237/nscjar")
548 (license license:expat))))
12f496ba
LF
549
550(define-public go-github-com-davidjpeacock-cli
551 (let ((commit "8ba6f23b6e36d03666a14bd9421f5e3efcb59aca")
552 (revision "0"))
553 (package
554 (name "go-github-com-davidjpeacock-cli")
555 (version (git-version "1.19.1" revision commit))
556 (source (origin
557 (method git-fetch)
558 (uri (git-reference
559 (url "https://github.com/davidjpeacock/cli.git")
560 (commit commit)))
6de107b0 561 (file-name (git-file-name name version))
12f496ba
LF
562 (sha256
563 (base32
564 "01s53ny3p0fdx64rnwcnmjj4xpc5adihnh6islsfq5z1ph2phhnj"))))
565 (build-system go-build-system)
566 (arguments
567 '(#:import-path "github.com/davidjpeacock/cli"))
568 (synopsis "Build command-line interfaces in Go")
569 (description "@code{cli} is a package for building command line
570interfaces in Go. The goal is to enable developers to write fast and
571distributable command line applications in an expressive way.")
572 (home-page "https://github.com/davidjpeacock/cli")
573 (license license:expat))))
60a8cbc4
CB
574
575(define-public go-github.com-jessevdk-go-flags
576 (package
577 (name "go-github.com-jessevdk-go-flags")
578 (version "1.3.0")
579 (source (origin
580 (method git-fetch)
581 (uri (git-reference
582 (url "https://github.com/jessevdk/go-flags")
583 (commit (string-append "v" version))))
584 (file-name (git-file-name name version))
585 (sha256
586 (base32
587 "1jk2k2l10lwrn1r3nxdvbs0yz656830j4khzirw8p4ahs7c5zz36"))))
588 (build-system go-build-system)
589 (arguments
590 '(#:import-path "github.com/jessevdk/go-flags"))
591 (synopsis "Go library for parsing command line arguments")
592 (description
593 "The @code{flags} package provides a command line option parser. The
594functionality is similar to the go builtin @code{flag} package, but
595@code{flags} provides more options and uses reflection to provide a succinct
596way of specifying command line options.")
597 (home-page "https://github.com/jessevdk/go-flags")
598 (license license:bsd-3)))
210c6d95
CB
599
600(define-public go-gopkg.in-tomb.v2
601 (let ((commit "d5d1b5820637886def9eef33e03a27a9f166942c")
602 (revision "0"))
603 (package
604 (name "go-gopkg.in-tomb.v2")
605 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
606 (source (origin
607 (method git-fetch)
608 (uri (git-reference
609 (url "https://github.com/go-tomb/tomb.git")
610 (commit commit)))
611 (file-name (string-append name "-" version ".tar.gz"))
612 (sha256
613 (base32
614 "1sv15sri99szkdz1bkh0ir46w9n8prrwx5hfai13nrhkawfyfy10"))))
615 (build-system go-build-system)
616 (arguments
617 '(#:import-path "gopkg.in/tomb.v2"))
618 (synopsis "@code{tomb} handles clean goroutine tracking and termination")
619 (description
620 "The @code{tomb} package handles clean goroutine tracking and
621termination.")
622 (home-page "https://gopkg.in/tomb.v2")
623 (license license:bsd-3))))
da6f9d41
CB
624
625(define-public go-github.com-jtolds-gls
626 (package
627 (name "go-github.com-jtolds-gls")
628 (version "4.2.1")
629 (source (origin
630 (method git-fetch)
631 (uri (git-reference
632 (url "https://github.com/jtolds/gls")
633 (commit (string-append "v" version))))
634 (file-name (git-file-name name version))
635 (sha256
636 (base32
637 "1vm37pvn0k4r6d3m620swwgama63laz8hhj3pyisdhxwam4m2g1h"))))
638 (build-system go-build-system)
639 (arguments
640 '(#:import-path "github.com/jtolds/gls"))
641 (synopsis "@code{gls} provides Goroutine local storage")
642 (description
643 "The @code{gls} package provides a way to store a retrieve values
644per-goroutine.")
645 (home-page "https://github.com/jtolds/gls")
646 (license license:expat)))
c4d2cffa
CB
647
648(define-public go-github-com-tj-docopt
649 (package
650 (name "go-github-com-tj-docopt")
651 (version "1.0.0")
652 (source (origin
653 (method git-fetch)
654 (uri (git-reference
655 (url "https://github.com/tj/docopt")
656 (commit (string-append "v" version))))
657 (file-name (git-file-name name version))
658 (sha256
659 (base32
660 "06h8hdg1mh3s78zqlr01g4si7k0f0g6pr7fj7lnvfg446hgc7080"))))
661 (build-system go-build-system)
662 (arguments
663 '(#:import-path "github.com/tj/docopt"))
664 (synopsis "Go implementation of docopt")
665 (description
666 "This library allows the user to define a command-line interface from a
667program's help message rather than specifying it programatically with
668command-line parsers.")
669 (home-page "https://github.com/tj/docopt")
670 (license license:expat)))
ed0c6a76
CB
671
672(define-public go-github-com-hashicorp-hcl
673 (let ((commit "23c074d0eceb2b8a5bfdbb271ab780cde70f05a8")
674 (revision "0"))
675 (package
676 (name "go-github-com-hashicorp-hcl")
677 (version (git-version "0.0.0" revision commit))
678 (source (origin
679 (method git-fetch)
680 (uri (git-reference
681 (url "https://github.com/hashicorp/hcl")
682 (commit commit)))
683 (file-name (git-file-name name version))
684 (sha256
685 (base32
686 "0db4lpqb5m130rmfy3s3gjjf4dxllypmyrzxv6ggqhkmwmc7w4mc"))))
687 (build-system go-build-system)
688 (arguments
689 '(#:tests? #f
690 #:import-path "github.com/hashicorp/hcl"))
691 (synopsis "Go implementation of HashiCorp Configuration Language")
692 (description
693 "This package contains the main implementation of the @acronym{HCL,
694HashiCorp Configuration Language}. HCL is designed to be a language for
695expressing configuration which is easy for both humans and machines to read.")
696 (home-page "https://github.com/hashicorp/hcl")
697 (license license:mpl2.0))))
269d0858
LF
698
699(define-public go-golang-org-x-crypto-bcrypt
700 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
701 (revision "1"))
702 (package
703 (name "go-golang-org-x-crypto-bcrypt")
704 (version (git-version "0.0.0" revision commit))
705 (source (origin
706 (method git-fetch)
707 (uri (git-reference
708 (url "https://go.googlesource.com/crypto")
709 (commit commit)))
710 (file-name (string-append "go.googlesource.com-crypto-"
711 version "-checkout"))
712 (sha256
713 (base32
714 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
715 (build-system go-build-system)
716 (arguments
717 `(#:import-path "golang.org/x/crypto/bcrypt"
718 #:unpack-path "golang.org/x/crypto"
719 #:phases
720 (modify-phases %standard-phases
721 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
722 (lambda* (#:key outputs #:allow-other-keys)
723 (map (lambda (file)
724 (make-file-writable file))
725 (find-files
726 (string-append (assoc-ref outputs "out")
727 "/src/golang.org/x/crypto/ed25519/testdata")
728 ".*\\.gz$"))
729 #t)))))
730 (synopsis "Bcrypt in Go")
731 (description "This package provides a Go implementation of the bcrypt
732password hashing function.")
733 (home-page "https://go.googlesource.com/crypto/")
734 (license license:bsd-3))))
735
736(define-public go-golang-org-x-crypto-blowfish
737 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
738 (revision "1"))
739 (package
740 (name "go-golang-org-x-crypto-blowfish")
741 (version (git-version "0.0.0" revision commit))
742 (source (origin
743 (method git-fetch)
744 (uri (git-reference
745 (url "https://go.googlesource.com/crypto")
746 (commit commit)))
747 (file-name (string-append "go.googlesource.com-crypto-"
748 version "-checkout"))
749 (sha256
750 (base32
751 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
752 (build-system go-build-system)
753 (arguments
754 `(#:import-path "golang.org/x/crypto/blowfish"
755 #:unpack-path "golang.org/x/crypto"
756 #:phases
757 (modify-phases %standard-phases
758 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
759 (lambda* (#:key outputs #:allow-other-keys)
760 (map (lambda (file)
761 (make-file-writable file))
762 (find-files
763 (string-append (assoc-ref outputs "out")
764 "/src/golang.org/x/crypto/ed25519/testdata")
765 ".*\\.gz$"))
766 #t)))))
767 (synopsis "Blowfish in Go")
768 (description "This package provides a Go implementation of the Blowfish
769symmetric-key block cipher.")
770 (home-page "https://go.googlesource.com/crypto/")
771 (license license:bsd-3))))
772
773(define-public go-golang-org-x-crypto-pbkdf2
774 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
775 (revision "1"))
776 (package
777 (name "go-golang-org-x-crypto-pbkdf2")
778 (version (git-version "0.0.0" revision commit))
779 (source (origin
780 (method git-fetch)
781 (uri (git-reference
782 (url "https://go.googlesource.com/crypto")
783 (commit commit)))
784 (file-name (string-append "go.googlesource.com-crypto-"
785 version "-checkout"))
786 (sha256
787 (base32
788 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
789 (build-system go-build-system)
790 (arguments
791 `(#:import-path "golang.org/x/crypto/pbkdf2"
792 #:unpack-path "golang.org/x/crypto"
793 #:phases
794 (modify-phases %standard-phases
795 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
796 (lambda* (#:key outputs #:allow-other-keys)
797 (map (lambda (file)
798 (make-file-writable file))
799 (find-files
800 (string-append (assoc-ref outputs "out")
801 "/src/golang.org/x/crypto/ed25519/testdata")
802 ".*\\.gz$"))
803 #t)))))
804 (synopsis "PBKDF2 in Go")
805 (description "This package provides a Go implementation of the PBKDF2 key
806derivation function.")
807 (home-page "https://go.googlesource.com/crypto/")
808 (license license:bsd-3))))
809
810(define-public go-golang-org-x-crypto-tea
811 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
812 (revision "1"))
813 (package
814 (name "go-golang-org-x-crypto-tea")
815 (version (git-version "0.0.0" revision commit))
816 (source (origin
817 (method git-fetch)
818 (uri (git-reference
819 (url "https://go.googlesource.com/crypto")
820 (commit commit)))
821 (file-name (string-append "go.googlesource.com-crypto-"
822 version "-checkout"))
823 (sha256
824 (base32
825 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
826 (build-system go-build-system)
827 (arguments
828 `(#:import-path "golang.org/x/crypto/tea"
829 #:unpack-path "golang.org/x/crypto"
830 #:phases
831 (modify-phases %standard-phases
832 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
833 (lambda* (#:key outputs #:allow-other-keys)
834 (map (lambda (file)
835 (make-file-writable file))
836 (find-files
837 (string-append (assoc-ref outputs "out")
838 "/src/golang.org/x/crypto/ed25519/testdata")
839 ".*\\.gz$"))
840 #t)))))
841 (synopsis "Tiny Encryption Algorithm (TEA) in Go")
842 (description "This packages a Go implementation of the Tiny Encryption
843Algorithm (TEA) block cipher.")
844 (home-page "https://go.googlesource.com/crypto/")
845 (license license:bsd-3))))
846
847(define-public go-golang-org-x-crypto-salsa20
848 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
849 (revision "1"))
850 (package
851 (name "go-golang-org-x-crypto-salsa20")
852 (version (git-version "0.0.0" revision commit))
853 (source (origin
854 (method git-fetch)
855 (uri (git-reference
856 (url "https://go.googlesource.com/crypto")
857 (commit commit)))
858 (file-name (string-append "go.googlesource.com-crypto-"
859 version "-checkout"))
860 (sha256
861 (base32
862 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
863 (build-system go-build-system)
864 (arguments
865 `(#:import-path "golang.org/x/crypto/salsa20"
866 #:unpack-path "golang.org/x/crypto"
867 #:phases
868 (modify-phases %standard-phases
869 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
870 (lambda* (#:key outputs #:allow-other-keys)
871 (map (lambda (file)
872 (make-file-writable file))
873 (find-files
874 (string-append (assoc-ref outputs "out")
875 "/src/golang.org/x/crypto/ed25519/testdata")
876 ".*\\.gz$"))
877 #t)))))
878 (synopsis "Salsa20 in Go")
879 (description "This packages provides a Go implementation of the Salsa20
880stream cipher.")
881 (home-page "https://go.googlesource.com/crypto/")
882 (license license:bsd-3))))
883
884(define-public go-golang-org-x-crypto-cast5
885 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
886 (revision "1"))
887 (package
888 (name "go-golang-org-x-crypto-cast5")
889 (version (git-version "0.0.0" revision commit))
890 (source (origin
891 (method git-fetch)
892 (uri (git-reference
893 (url "https://go.googlesource.com/crypto")
894 (commit commit)))
895 (file-name (string-append "go.googlesource.com-crypto-"
896 version "-checkout"))
897 (sha256
898 (base32
899 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
900 (build-system go-build-system)
901 (arguments
902 `(#:import-path "golang.org/x/crypto/cast5"
903 #:unpack-path "golang.org/x/crypto"
904 #:phases
905 (modify-phases %standard-phases
906 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
907 (lambda* (#:key outputs #:allow-other-keys)
908 (map (lambda (file)
909 (make-file-writable file))
910 (find-files
911 (string-append (assoc-ref outputs "out")
912 "/src/golang.org/x/crypto/ed25519/testdata")
913 ".*\\.gz$"))
914 #t)))))
915 (synopsis "Cast5 in Go")
916 (description "This packages provides a Go implementation of the Cast5
917symmetric-key block cipher.")
918 (home-page "https://go.googlesource.com/crypto/")
919 (license license:bsd-3))))
920
921(define-public go-golang-org-x-crypto-twofish
922 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
923 (revision "1"))
924 (package
925 (name "go-golang-org-x-crypto-twofish")
926 (version (git-version "0.0.0" revision commit))
927 (source (origin
928 (method git-fetch)
929 (uri (git-reference
930 (url "https://go.googlesource.com/crypto")
931 (commit commit)))
932 (file-name (string-append "go.googlesource.com-crypto-"
933 version "-checkout"))
934 (sha256
935 (base32
936 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
937 (build-system go-build-system)
938 (arguments
939 `(#:import-path "golang.org/x/crypto/twofish"
940 #:unpack-path "golang.org/x/crypto"
941 #:phases
942 (modify-phases %standard-phases
943 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
944 (lambda* (#:key outputs #:allow-other-keys)
945 (map (lambda (file)
946 (make-file-writable file))
947 (find-files
948 (string-append (assoc-ref outputs "out")
949 "/src/golang.org/x/crypto/ed25519/testdata")
950 ".*\\.gz$"))
951 #t)))))
952 (synopsis "Twofish in Go")
953 (description "This packages provides a Go implementation of the Twofish
954symmetric-key block cipher.")
955 (home-page "https://go.googlesource.com/crypto/")
956 (license license:bsd-3))))
957
958(define-public go-golang-org-x-crypto-xtea
959 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
960 (revision "1"))
961 (package
962 (name "go-golang-org-x-crypto-xtea")
963 (version (git-version "0.0.0" revision commit))
964 (source (origin
965 (method git-fetch)
966 (uri (git-reference
967 (url "https://go.googlesource.com/crypto")
968 (commit commit)))
969 (file-name (string-append "go.googlesource.com-crypto-"
970 version "-checkout"))
971 (sha256
972 (base32
973 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
974 (build-system go-build-system)
975 (arguments
976 `(#:import-path "golang.org/x/crypto/xtea"
977 #:unpack-path "golang.org/x/crypto"
978 #:phases
979 (modify-phases %standard-phases
980 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
981 (lambda* (#:key outputs #:allow-other-keys)
982 (map (lambda (file)
983 (make-file-writable file))
984 (find-files
985 (string-append (assoc-ref outputs "out")
986 "/src/golang.org/x/crypto/ed25519/testdata")
987 ".*\\.gz$"))
988 #t)))))
989 (synopsis "eXtended Tiny Encryption Algorithm (XTEA) in Go")
990 (description "This package provides a Go implementation of the eXtended
991Tiny Encryption Algorithm (XTEA) block cipher.")
992 (home-page "https://go.googlesource.com/crypto/")
993 (license license:bsd-3))))
994
995(define-public go-golang-org-x-net-ipv4
996 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
997 (revision "1"))
998 (package
999 (name "go-golang-org-x-net-ipv4")
1000 (version (git-version "0.0.0" revision commit))
1001 (source (origin
1002 (method git-fetch)
1003 (uri (git-reference
1004 (url "https://go.googlesource.com/net")
1005 (commit commit)))
1006 (file-name (git-file-name name version))
1007 (sha256
1008 (base32
1009 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1010 (build-system go-build-system)
1011 (arguments
1012 `(#:import-path "golang.org/x/net/ipv4"
1013 #:unpack-path "golang.org/x/net"))
1014 (synopsis "Go IPv4 support")
1015 (description "This package provides @code{ipv4}, which implements IP-level
1016socket options for the Internet Protocol version 4.")
1017 (home-page "https://go.googlesource.com/net")
1018 (license license:bsd-3))))
1019
1020(define-public go-golang-org-x-net-bpf
1021 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1022 (revision "1"))
1023 (package
1024 (name "go-golang-org-x-net-bpf")
1025 (version (git-version "0.0.0" revision commit))
1026 (source (origin
1027 (method git-fetch)
1028 (uri (git-reference
1029 (url "https://go.googlesource.com/net")
1030 (commit commit)))
1031 (file-name (string-append "go.googlesource.com-net-"
1032 version "-checkout"))
1033 (sha256
1034 (base32
1035 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1036 (build-system go-build-system)
1037 (arguments
1038 `(#:import-path "golang.org/x/net/bpf"
1039 #:unpack-path "golang.org/x/net"))
1040 (synopsis "Berkeley Packet Filters (BPF) in Go")
1041 (description "This packages provides a Go implementation of the Berkeley
1042Packet Filter (BPF) virtual machine.")
1043 (home-page "https://go.googlesource.com/net/")
1044 (license license:bsd-3))))
1045
1046(define-public go-golang-org-x-net-context
1047 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1048 (revision "1"))
1049 (package
1050 (name "go-golang-org-x-net-context")
1051 (version (git-version "0.0.0" revision commit))
1052 (source (origin
1053 (method git-fetch)
1054 (uri (git-reference
1055 (url "https://go.googlesource.com/net")
1056 (commit commit)))
1057 (file-name (string-append "go.googlesource.com-net-"
1058 version "-checkout"))
1059 (sha256
1060 (base32
1061 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1062 (build-system go-build-system)
1063 (arguments
1064 `(#:import-path "golang.org/x/net/context"
1065 #:unpack-path "golang.org/x/net"))
1066 (synopsis "Golang Context type")
1067 (description "This packages provides @code{context}, which defines the
1068Context type, which carries deadlines, cancelation signals, and other
1069request-scoped values across API boundaries and between processes.")
1070 (home-page "https://go.googlesource.com/net/")
1071 (license license:bsd-3))))
1072
1073(define-public go-golang-org-x-net-internal-iana
1074 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1075 (revision "1"))
1076 (package
1077 (name "go-golang-org-x-net-internal-iana")
1078 (version (git-version "0.0.0" revision commit))
1079 (source (origin
1080 (method git-fetch)
1081 (uri (git-reference
1082 (url "https://go.googlesource.com/net")
1083 (commit commit)))
1084 (file-name (string-append "go.googlesource.com-net-"
1085 version "-checkout"))
1086 (sha256
1087 (base32
1088 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1089 (build-system go-build-system)
1090 (arguments
1091 `(#:import-path "golang.org/x/net/internal/iana"
1092 #:unpack-path "golang.org/x/net"))
1093 (synopsis "Go support for assigned numbers (IANA)")
1094 (description "This packages provides @code{iana}, which provides protocol
1095number resources managed by the Internet Assigned Numbers Authority (IANA).")
1096 (home-page "https://go.googlesource.com/net/")
1097 (license license:bsd-3))))
1098
1099(define-public go-golang-org-x-net-ipv6
1100 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1101 (revision "1"))
1102 (package
1103 (name "go-golang-org-x-net-ipv6")
1104 (version (git-version "0.0.0" revision commit))
1105 (source (origin
1106 (method git-fetch)
1107 (uri (git-reference
1108 (url "https://go.googlesource.com/net")
1109 (commit commit)))
1110 (file-name (string-append "go.googlesource.com-net-"
1111 version "-checkout"))
1112 (sha256
1113 (base32
1114 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1115 (build-system go-build-system)
1116 (arguments
1117 `(#:import-path "golang.org/x/net/ipv6"
1118 #:unpack-path "golang.org/x/net"))
1119 (synopsis "Go IPv6 support")
1120 (description "This packages provides @code{ipv6}, which implements
1121IP-level socket options for the Internet Protocol version 6.")
1122 (home-page "https://go.googlesource.com/net")
1123 (license license:bsd-3))))
1124
1125(define-public go-golang-org-x-net-proxy
1126 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1127 (revision "1"))
1128 (package
1129 (name "go-golang-org-x-net-proxy")
1130 (version (git-version "0.0.0" revision commit))
1131 (source (origin
1132 (method git-fetch)
1133 (uri (git-reference
1134 (url "https://go.googlesource.com/net")
1135 (commit commit)))
1136 (file-name (string-append "go.googlesource.com-net-"
1137 version "-checkout"))
1138 (sha256
1139 (base32
1140 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1141 (build-system go-build-system)
1142 (arguments
1143 `(#:import-path "golang.org/x/net/proxy"
1144 #:unpack-path "golang.org/x/net/"))
1145 (synopsis "Go support for network proxies")
1146 (description "This packages provides @code{proxy}, which provides support
1147for a variety of protocols to proxy network data.")
1148 (home-page "https://go.googlesource.com/net")
1149 (license license:bsd-3))))
1150
1151(define-public go-golang-org-x-sys-unix
1152 (let ((commit "83801418e1b59fb1880e363299581ee543af32ca")
1153 (revision "1"))
1154 (package
1155 (name "go-golang-org-x-sys-unix")
1156 (version (git-version "0.0.0" revision commit))
1157 (source (origin
1158 (method git-fetch)
1159 (uri (git-reference
1160 (url "https://go.googlesource.com/sys")
1161 (commit commit)))
1162 (file-name (git-file-name name version))
1163 (sha256
1164 (base32
1165 "0ilykaanvnzb27d42kmbr4i37hcn7hgqbx98z945gy63aa8dskji"))))
1166 (build-system go-build-system)
1167 (arguments
1168 `(#:import-path "golang.org/x/sys/unix"
1169 #:unpack-path "golang.org/x/sys"
1170 #:phases
1171 (modify-phases %standard-phases
1172 (add-after 'unpack 'patch-tests
1173 (lambda _
1174 (pk (getcwd))
1175 (substitute* "src/golang.org/x/sys/unix/syscall_unix_test.go"
1176 (("/usr/bin") "/tmp"))
1177 #t)))))
1178 (synopsis "Go support for low-level system interaction")
1179 (description "This package provides @code{unix}, which offers Go support
1180for low-level interaction with the operating system.")
1181 (home-page "https://go.googlesource.com/sys")
1182 (license license:bsd-3))))
1183
1184(define-public go-golang-org-x-text-transform
1185 (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
1186 (revision "1"))
1187 (package
1188 (name "go-golang-org-x-text-transform")
1189 (version (git-version "0.0.0" revision commit))
1190 (source (origin
1191 (method git-fetch)
1192 (uri (git-reference
1193 (url "https://go.googlesource.com/text")
1194 (commit commit)))
1195 (file-name (string-append "go.googlesource.com-text-"
1196 version "-checkout"))
1197 (sha256
1198 (base32
1199 "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
1200 (build-system go-build-system)
1201 (arguments
1202 `(#:import-path "golang.org/x/text/transform"
1203 #:unpack-path "golang.org/x/text"))
1204 (synopsis "Go text transformation")
1205 (description "This package provides @code{transform}, which provides
1206reader and writer wrappers that transform the bytes passing through. Example
1207transformations provided by other packages include normalization and conversion
1208between character sets.")
1209 (home-page "https://go.googlesource.com/text")
1210 (license license:bsd-3))))
1211
1212(define-public go-golang-org-x-text-unicode-norm
1213 (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
1214 (revision "1"))
1215 (package
1216 (name "go-golang-org-x-text-unicode-norm")
1217 (version (git-version "0.0.0" revision commit))
1218 (source (origin
1219 (method git-fetch)
1220 (uri (git-reference
1221 (url "https://go.googlesource.com/text")
1222 (commit commit)))
1223 (file-name (string-append "go.googlesource.com-text-"
1224 version "-checkout"))
1225 (sha256
1226 (base32
1227 "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
1228 (build-system go-build-system)
1229 (arguments
1230 `(#:import-path "golang.org/x/text/unicode/norm"
1231 #:unpack-path "golang.org/x/text"))
1232 (synopsis "Unicode normalization in Go")
1233 (description "This package provides @code{norm}, which contains types and
1234functions for normalizing Unicode strings.")
1235 (home-page "https://go.googlesource.com/text")
1236 (license license:bsd-3))))
1237
1238(define-public go-golang-org-x-time-rate
1239 (let ((commit "6dc17368e09b0e8634d71cac8168d853e869a0c7")
1240 (revision "1"))
1241 (package
1242 (name "go-golang-org-x-time-rate")
1243 (version (git-version "0.0.0" revision commit))
1244 (source (origin
1245 (method git-fetch)
1246 (uri (git-reference
1247 (url "https://go.googlesource.com/time")
1248 (commit commit)))
1249 (file-name (git-file-name name version))
1250 (sha256
1251 (base32
1252 "1fx4cf5fpdz00g3c7vxzy92hdcg0vh4yqw00qp5s52j72qixynbk"))))
1253 (build-system go-build-system)
1254 (arguments
1255 `(#:import-path "golang.org/x/time/rate"
1256 #:unpack-path "golang.org/x/time"))
1257 (propagated-inputs
1258 `(("go-golang-org-x-net-context" ,go-golang-org-x-net-context)))
1259 (synopsis "Rate limiting in Go")
1260 (description "This package provides @{rate}, which implements rate
1261limiting in Go.")
1262 (home-page "https://godoc.org/golang.org/x/time/rate")
1263 (license license:bsd-3))))
e60352e4
1264
1265(define-public go-golang-org-x-crypto-ssh-terminal
1266 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
1267 (revision "1"))
1268 (package
1269 (name "go-golang-org-x-crypto-ssh-terminal")
1270 (version (git-version "0.0.0" revision commit))
1271 (source (origin
1272 (method git-fetch)
1273 (uri (git-reference
1274 (url "https://go.googlesource.com/crypto")
1275 (commit commit)))
1276 (file-name (string-append "go.googlesource.com-crypto-"
1277 version "-checkout"))
1278 (sha256
1279 (base32
1280 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
1281 (build-system go-build-system)
1282 (inputs
1283 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
1284 (arguments
1285 `(#:import-path "golang.org/x/crypto/ssh/terminal"
1286 #:unpack-path "golang.org/x/crypto"
1287 #:phases
1288 (modify-phases %standard-phases
1289 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1290 (lambda* (#:key outputs #:allow-other-keys)
1291 (map (lambda (file)
1292 (make-file-writable file))
1293 (find-files
1294 (string-append (assoc-ref outputs "out")
1295 "/src/golang.org/x/crypto/ed25519/testdata")
1296 ".*\\.gz$"))
1297 #t)))))
1298 (synopsis "Terminal functions for Go")
1299 (description "This package provides @{terminal}, which implements
1300support functions for dealing with terminals, as commonly found on UNIX
1301systems.")
1302 (home-page "https://go.googlesource.com/crypto/")
1303 (license license:bsd-3))))
fb50664f
PAR
1304
1305(define-public go-github-com-burntsushi-toml
1306 (let ((commit
1307 "a368813c5e648fee92e5f6c30e3944ff9d5e8895")
1308 (revision "0"))
1309 (package
1310 (name "go-github-com-burntsushi-toml")
1311 (version (git-version "0.0.0" revision commit))
1312 (source
1313 (origin
1314 (method git-fetch)
1315 (uri (git-reference
1316 (url "https://github.com/BurntSushi/toml.git")
1317 (commit commit)))
1318 (file-name (git-file-name name version))
1319 (sha256
1320 (base32
1321 "1sjxs2lwc8jpln80s4rlzp7nprbcljhy5mz4rf9995gq93wqnym5"))))
1322 (build-system go-build-system)
1323 (arguments
1324 '(#:import-path "github.com/BurntSushi/toml"))
1325 (home-page "https://github.com/BurntSushi/toml")
1326 (synopsis "Toml parser and encoder for Go")
1327 (description "This package is toml parser and encoder for Go. The
1328interface is similar to Go's standard library @code{json} and @code{xml}
1329package.")
1330 (license license:expat))))
8c5a69aa
PAR
1331
1332(define-public go-github-com-getsentry-raven-go
1333 (let ((commit
1334 "dffeb57df75d6a911f00232155194e43d79d38d7")
1335 (revision "0"))
1336 (package
1337 (name "go-github-com-getsentry-raven-go")
1338 (version (git-version "0.0.0" revision commit))
1339 (source
1340 (origin
1341 (method git-fetch)
1342 (uri (git-reference
1343 (url "https://github.com/getsentry/raven-go.git")
1344 (commit commit)))
1345 (file-name (git-file-name name version))
1346 (sha256
1347 (base32
1348 "13sb9rvl3369m7fah3ss9g0hwky259snqfn8gmbr0h5zvp651lja"))))
1349 (build-system go-build-system)
1350 (arguments
1351 '(#:import-path "github.com/getsentry/raven-go"))
1352 (home-page
1353 "https://github.com/getsentry/raven-go")
1354 (synopsis "Sentry client in Go")
1355 (description "This package is Go client API for the Sentry event/error
1356logging system.")
1357 (license license:bsd-3))))
0972411a
PAR
1358
1359(define-public go-github-com-hashicorp-go-version
1360 (let ((commit
1361 "03c5bf6be031b6dd45afec16b1cf94fc8938bc77")
1362 (revision "0"))
1363 (package
1364 (name "go-github-com-hashicorp-go-version")
1365 (version (git-version "0.0.0" revision commit))
1366 (source
1367 (origin
1368 (method git-fetch)
1369 (uri (git-reference
1370 (url "https://github.com/hashicorp/go-version.git")
1371 (commit commit)))
1372 (file-name (git-file-name name version))
1373 (sha256
1374 (base32
1375 "0sjq57gpfznaqdrbyb2p0bn90g9h661cvr0jrk6ngags4pbw14ik"))))
1376 (build-system go-build-system)
1377 (arguments
1378 '(#:import-path "github.com/hashicorp/go-version"))
1379 (home-page
1380 "https://github.com/hashicorp/go-version")
1381 (synopsis "Go library for parsing and verifying versions and version
1382constraints")
1383 (description "This package is a library for parsing versions and version
1384constraints, and verifying versions against a set of constraints. It can sort
1385a collection of versions properly, handles prerelease/beta versions, can
1386increment versions.")
1387 (license license:mpl2.0))))
c4230cda
PAR
1388
1389(define-public go-github-com-jpillora-backoff
1390 (let ((commit
1391 "06c7a16c845dc8e0bf575fafeeca0f5462f5eb4d")
1392 (revision "0"))
1393 (package
1394 (name "go-github-com-jpillora-backoff")
1395 (version (git-version "0.0.0" revision commit))
1396 (source
1397 (origin
1398 (method git-fetch)
1399 (uri (git-reference
1400 (url "https://github.com/jpillora/backoff.git")
1401 (commit commit)))
1402 (file-name (git-file-name name version))
1403 (sha256
1404 (base32
1405 "0xhvxr7bm47czdc5hy3kl508z3y4j91i2jm7vg774i52zych6k4l"))))
1406 (build-system go-build-system)
1407 (arguments
1408 '(#:import-path "github.com/jpillora/backoff"))
1409 (home-page "https://github.com/jpillora/backoff")
1410 (synopsis "Simple exponential backoff counter in Go")
1411 (description "This package is a simple exponential backoff counter in
1412Go.")
1413 (license license:expat))))
28380e0e
PAR
1414
1415(define-public go-github-com-stretchr-testify
1416 (let ((commit
1417 "b1f989447a57594c728884458a39abf3a73447f7")
1418 (revision "0"))
1419 (package
1420 (name "go-github-com-stretchr-testify")
1421 (version (git-version "1.1.4" revision commit))
1422 (source
1423 (origin
1424 (method git-fetch)
1425 (uri (git-reference
1426 (url "https://github.com/stretchr/testify.git")
1427 (commit commit)))
1428 (file-name (git-file-name name version))
1429 (sha256
1430 (base32
1431 "0p0gkqzh2p8r5g0rxm885ljl7ghih7h7hx9w562imx5ka0vdgixv"))))
1432 (build-system go-build-system)
1433 (arguments
1434 '(#:import-path "github.com/stretchr/testify"))
1435 (home-page "https://github.com/stretchr/testify")
1436 (synopsis "Go helper library for tests and invariant checking")
1437 (description "This package provide many tools for testifying that your
1438code will behave as you intend.
1439
1440Features include:
1441@itemize
1442@item Easy assertions
1443@item Mocking
1444@item HTTP response trapping
1445@item Testing suite interfaces and functions.
1446@end itemize")
1447 (license license:expat))))
21290c35
PAR
1448
1449(define-public go-github-com-tevino-abool
1450 (let ((commit
1451 "3c25f2fe7cd0ef3eabefce1d90efd69a65d35b12")
1452 (revision "0"))
1453 (package
1454 (name "go-github-com-tevino-abool")
1455 (version (git-version "0.0.0" revision commit))
1456 (source
1457 (origin
1458 (method git-fetch)
1459 (uri (git-reference
1460 (url "https://github.com/tevino/abool.git")
1461 (commit commit)))
1462 (file-name (git-file-name name version))
1463 (sha256
1464 (base32
1465 "1wxqrclxk93q0aj15z596dx2y57x9nkhi64nbrr5cxnhxn8vwixm"))))
1466 (build-system go-build-system)
1467 (arguments
1468 '(#:import-path "github.com/tevino/abool"))
1469 (home-page "https://github.com/tevino/abool")
1470 (synopsis "Atomic boolean library for Go code")
1471 (description "This package is atomic boolean library for Go code,
1472optimized for performance yet simple to use.")
1473 (license license:expat))))
7c2ebbd4
PAR
1474
1475(define-public go-github-com-urfave-cli
1476 (let ((commit "cfb38830724cc34fedffe9a2a29fb54fa9169cd1")
1477 (revision "0"))
1478 (package
1479 (name "go-github-com-urfave-cli")
1480 (version (git-version "0.0.0" revision commit))
1481 (source
1482 (origin
1483 (method git-fetch)
1484 (uri (git-reference
1485 (url "https://github.com/urfave/cli.git")
1486 (commit commit)))
1487 (file-name (git-file-name name version))
1488 (sha256
1489 (base32
1490 "0y6f4sbzkiiwrxbl15biivj8c7qwxnvm3zl2dd3mw4wzg4x10ygj"))))
1491 (build-system go-build-system)
1492 (arguments
1493 '(#:import-path "github.com/urfave/cli"))
1494 (home-page "https://github.com/urfave/cli")
1495 (synopsis "Library for building command-line interfaces in Go")
1496 (description "This package provides a library for building command-line
1497interfaces in Go.")
1498 (license license:expat))))
67836c59
PAR
1499
1500(define-public go-github-com-blang-semver
1501 (let ((commit "60ec3488bfea7cca02b021d106d9911120d25fe9")
1502 (revision "0"))
1503 (package
1504 (name "go-github-com-blang-semver")
1505 (version (git-version "0.0.0" revision commit))
1506 (source
1507 (origin
1508 (method git-fetch)
1509 (uri (git-reference
1510 (url "https://github.com/blang/semver.git")
1511 (commit commit)))
1512 (file-name (git-file-name name version))
1513 (sha256
1514 (base32
1515 "19pli07y5592g4dyjyj0jq5rn548vc3fz0qg3624vm1j5828p1c2"))))
1516 (build-system go-build-system)
1517 (arguments
1518 '(#:import-path "github.com/blang/semver"))
1519 (home-page "https://github.com/blang/semver")
1520 (synopsis "Semantic versioning library written in Go")
1521 (description "Semver is a library for Semantic versioning written in Go.")
1522 (license license:expat))))
1523
7979f7df
PAR
1524(define-public go-github-com-emicklei-go-restful
1525 (let ((commit "89ef8af493ab468a45a42bb0d89a06fccdd2fb22")
1526 (revision "0"))
1527 (package
1528 (name "go-github-com-emicklei-go-restful")
1529 (version (git-version "0.0.0" revision commit))
1530 (source
1531 (origin
1532 (method git-fetch)
1533 (uri (git-reference
1534 (url "https://github.com/emicklei/go-restful.git")
1535 (commit commit)))
1536 (file-name (git-file-name name version))
1537 (sha256
1538 (base32
1539 "0rrlfcfq80fkxifpih6bq31vavb5mf4530xz51pp9pq1mn2fzjfh"))))
1540 (build-system go-build-system)
1541 (arguments
1542 '(#:import-path "github.com/emicklei/go-restful"))
1543 (home-page "https://github.com/emicklei/go-restful")
1544 (synopsis "Build REST-style web services using Go")
1545 (description "This package provides @code{go-restful}, which helps
1546developers to use @code{http} methods explicitly and in a way that's consistent
1547with the HTTP protocol definition.")
1548 (license license:expat))))
73fe19ef
PAR
1549
1550(define-public go-github-com-google-cadvisor
1551 (let ((commit "2ed7198f77395ee9a172878a0a7ab92ab59a2cfd")
1552 (revision "0"))
1553 (package
1554 (name "go-github-com-google-cadvisor")
1555 (version (git-version "0.0.0" revision commit))
1556 (source
1557 (origin
1558 (method git-fetch)
1559 (uri (git-reference
1560 (url "https://github.com/google/cadvisor.git")
1561 (commit commit)))
1562 (file-name (git-file-name name version))
1563 (sha256
1564 (base32
1565 "1w8p345z5j0gk3yiq5ah0znd5lfh348p2s624k5r10drz04p3f55"))))
1566 (build-system go-build-system)
1567 (arguments
1568 '(#:import-path "github.com/google/cadvisor"))
1569 (home-page "https://github.com/google/cadvisor")
1570 (synopsis "Analyze resource usage of running containers")
1571 (description "The package provides @code{cadvisor}, which provides
1572information about the resource usage and preformance characteristics of running
1573containers.")
1574 (license license:asl2.0))))
daed2c5e
PAR
1575
1576(define-public go-github-com-google-gofuzz
1577 (let ((commit "fd52762d25a41827db7ef64c43756fd4b9f7e382")
1578 (revision "0"))
1579 (package
1580 (name "go-github-com-google-gofuzz")
1581 (version (git-version "0.0.0" revision commit))
1582 (source
1583 (origin
1584 (method git-fetch)
1585 (uri (git-reference
1586 (url "https://github.com/google/gofuzz.git")
1587 (commit commit)))
1588 (file-name (git-file-name name version))
1589 (sha256
1590 (base32
1591 "1yxmmr73h0lq7ryf3q9a7pcm2x5xrg4d5bxkq8n5pxwxwyq26kw8"))))
1592 (build-system go-build-system)
1593 (arguments
1594 '(#:import-path "github.com/google/gofuzz"))
1595 (home-page "https://github.com/google/gofuzz")
1596 (synopsis "Fuzz testing library for Go")
1597 (description "Gofuzz is a library for populationg Go objects with random
1598values for the purpose of fuzz testing.")
1599 (license license:asl2.0))))