gnu: Add go-github-com-aarzilli-golua.
[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>
3291be81 14;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
7a2941a8 15;;;
8a610eb6 16;;; This file is part of GNU Guix.
7a2941a8
MJ
17;;;
18;;; GNU Guix is free software; you can redistribute it and/or modify it
19;;; under the terms of the GNU General Public License as published by
20;;; the Free Software Foundation; either version 3 of the License, or (at
21;;; your option) any later version.
22;;;
23;;; GNU Guix is distributed in the hope that it will be useful, but
24;;; WITHOUT ANY WARRANTY; without even the implied warranty of
25;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26;;; GNU General Public License for more details.
27;;;
28;;; You should have received a copy of the GNU General Public License
29;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
30
31(define-module (gnu packages golang)
32 #:use-module ((guix licenses) #:prefix license:)
33 #:use-module (guix utils)
34 #:use-module (guix download)
d3878e88 35 #:use-module (guix git-download)
7a2941a8
MJ
36 #:use-module (guix packages)
37 #:use-module (guix build-system gnu)
d3878e88 38 #:use-module (guix build-system go)
7a2941a8
MJ
39 #:use-module (gnu packages admin)
40 #:use-module (gnu packages gcc)
41 #:use-module (gnu packages base)
42 #:use-module (gnu packages perl)
43 #:use-module (gnu packages pkg-config)
44 #:use-module (gnu packages pcre)
e25ddef5 45 #:use-module (gnu packages lua)
7a2941a8
MJ
46 #:use-module (ice-9 match)
47 #:use-module (srfi srfi-1))
48
49;; According to https://golang.org/doc/install/gccgo, gccgo-4.8.2 includes a
50;; complete go-1.1.2 implementation, gccgo-4.9 includes a complete go-1.2
51;; implementation, and gccgo-5 a complete implementation of go-1.4. Ultimately
52;; we hope to build go-1.5+ with a bootstrap process using gccgo-5. As of
53;; go-1.5, go cannot be bootstrapped without go-1.4, so we need to use go-1.4 or
54;; gccgo-5. Mips is not officially supported, but it should work if it is
55;; bootstrapped.
56
57(define-public go-1.4
58 (package
59 (name "go")
60 (version "1.4.3")
61 (source (origin
62 (method url-fetch)
63 (uri (string-append "https://storage.googleapis.com/golang/"
64 name version ".src.tar.gz"))
65 (sha256
66 (base32
67 "0na9yqilzpvq0bjndbibfp07wr796gf252y471cip10bbdqgqiwr"))))
68 (build-system gnu-build-system)
69 (outputs '("out"
70 "doc"
71 "tests"))
72 (arguments
73 `(#:modules ((ice-9 match)
74 (guix build gnu-build-system)
1d698a8b
ST
75 (guix build utils)
76 (srfi srfi-1))
7a2941a8
MJ
77 #:tests? #f ; Tests are run by the all.bash script.
78 #:phases
79 (modify-phases %standard-phases
80 (delete 'configure)
81 (add-after 'patch-generated-file-shebangs 'chdir
82 (lambda _
2a49f7ad
TGR
83 (chdir "src")
84 #t))
7a2941a8
MJ
85 (add-before 'build 'prebuild
86 (lambda* (#:key inputs outputs #:allow-other-keys)
87 (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
88 (ld (string-append (assoc-ref inputs "libc") "/lib"))
89 (loader (car (find-files ld "^ld-linux.+")))
90 (net-base (assoc-ref inputs "net-base"))
91 (tzdata-path
92 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
93 (output (assoc-ref outputs "out")))
94
95 ;; Removing net/ tests, which fail when attempting to access
96 ;; network resources not present in the build container.
97 (for-each delete-file
98 '("net/multicast_test.go" "net/parse_test.go"
99 "net/port_test.go"))
100
101 ;; Add libgcc to the RUNPATH.
102 (substitute* "cmd/go/build.go"
103 (("cgoldflags := \\[\\]string\\{\\}")
104 (string-append "cgoldflags := []string{"
105 "\"-rpath=" gcclib "\"}"))
106 (("ldflags := buildLdflags")
107 (string-append
108 "ldflags := buildLdflags\n"
109 "ldflags = append(ldflags, \"-r\")\n"
110 "ldflags = append(ldflags, \"" gcclib "\")\n")))
111
112 (substitute* "os/os_test.go"
113 (("/usr/bin") (getcwd))
114 (("/bin/pwd") (which "pwd")))
115
116 ;; Disable failing tests: these tests attempt to access
117 ;; commands or network resources which are neither available or
118 ;; necessary for the build to succeed.
119 (for-each
120 (match-lambda
121 ((file regex)
122 (substitute* file
123 ((regex all before test_name)
124 (string-append before "Disabled" test_name)))))
125 '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
126 ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
127 ("os/os_test.go" "(.+)(TestHostname.+)")
128 ("time/format_test.go" "(.+)(TestParseInSydney.+)")
4b0bac4b
LF
129
130 ;; Tzdata 2016g changed the name of the time zone used in this
131 ;; test, and the patch for Go 1.7 does not work for 1.4.3:
132 ;; https://github.com/golang/go/issues/17545
133 ;; https://github.com/golang/go/issues/17276
134 ("time/time_test.go" "(.+)(TestLoadFixed.+)")
f826c8c7 135 ("time/format_test.go" "(.+)(TestParseInLocation.+)")
4b0bac4b 136
7a2941a8
MJ
137 ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
138 ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
139 ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
140 ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
141 ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
142 ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
143 ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
144 ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
145 ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")))
146
147 (substitute* "net/lookup_unix.go"
148 (("/etc/protocols") (string-append net-base "/etc/protocols")))
149 (substitute* "time/zoneinfo_unix.go"
150 (("/usr/share/zoneinfo/") tzdata-path))
151 (substitute* (find-files "cmd" "asm.c")
152 (("/lib/ld-linux.*\\.so\\.[0-9]") loader))
153 #t)))
154
155 (replace 'build
156 (lambda* (#:key inputs outputs #:allow-other-keys)
157 ;; FIXME: Some of the .a files are not bit-reproducible.
158 (let* ((output (assoc-ref outputs "out")))
159 (setenv "CC" (which "gcc"))
160 (setenv "GOOS" "linux")
161 (setenv "GOROOT" (dirname (getcwd)))
162 (setenv "GOROOT_FINAL" output)
04a95a4f
LF
163 ;; Go 1.4's cgo will not work with binutils >= 2.27:
164 ;; https://github.com/golang/go/issues/16906
165 (setenv "CGO_ENABLED" "0")
2a49f7ad 166 (invoke "sh" "all.bash"))))
7a2941a8
MJ
167
168 (replace 'install
169 (lambda* (#:key outputs inputs #:allow-other-keys)
170 (let* ((output (assoc-ref outputs "out"))
171 (doc_out (assoc-ref outputs "doc"))
172 (bash (string-append (assoc-ref inputs "bash") "bin/bash"))
173 (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
174 (tests (string-append
175 (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
176 (mkdir-p tests)
177 (copy-recursively "../test" (string-append tests "/test"))
178 (delete-file-recursively "../test")
179 (mkdir-p docs)
180 (copy-recursively "../api" (string-append docs "/api"))
181 (delete-file-recursively "../api")
182 (copy-recursively "../doc" (string-append docs "/doc"))
183 (delete-file-recursively "../doc")
184
185 (for-each (lambda (file)
186 (let ((file (string-append "../" file)))
187 (install-file file docs)
188 (delete-file file)))
189 '("README" "CONTRIBUTORS" "AUTHORS" "PATENTS"
190 "LICENSE" "VERSION" "robots.txt"))
191 (copy-recursively "../" output)
192 #t))))))
193 (inputs
194 `(("tzdata" ,tzdata)
195 ("pcre" ,pcre)
fcbb8461
LF
196 ;; Building Go 1.10 with the Go 1.4 bootstrap, Thread Sanitizer from GCC
197 ;; 5 finds a data race during the the test suite of Go 1.10. With GCC 6,
198 ;; the race doesn't seem to be present:
199 ;; https://github.com/golang/go/issues/24046
200 ("gcc:lib" ,gcc-6 "lib")))
7a2941a8 201 (native-inputs
3f0ec617 202 `(("pkg-config" ,pkg-config)
7a2941a8
MJ
203 ("which" ,which)
204 ("net-base" ,net-base)
205 ("perl" ,perl)))
206
207 (home-page "https://golang.org/")
208 (synopsis "Compiler and libraries for Go, a statically-typed language")
209 (description "Go, also commonly referred to as golang, is an imperative
247064c3
TGR
210programming language designed primarily for systems programming. Go is a
211compiled, statically typed language in the tradition of C and C++, but adds
212garbage collection, various safety features, and concurrent programming features
213in the style of communicating sequential processes (@dfn{CSP}).")
dda785f6 214 (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux"))
7a2941a8 215 (license license:bsd-3)))
ec91bcb5 216
35131bab 217(define-public go-1.9
ec91bcb5
MJ
218 (package
219 (inherit go-1.4)
220 (name "go")
96fd9a0e 221 (version "1.9.7")
ec91bcb5
MJ
222 (source
223 (origin
224 (method url-fetch)
225 (uri (string-append "https://storage.googleapis.com/golang/"
226 name version ".src.tar.gz"))
227 (sha256
228 (base32
96fd9a0e 229 "08kpy874x0rx43zpyv5kwd8xj2ma91xm33i0ka2v1v788px18a2q"))))
ec91bcb5
MJ
230 (arguments
231 (substitute-keyword-arguments (package-arguments go-1.4)
232 ((#:phases phases)
233 `(modify-phases ,phases
234 (replace 'prebuild
235 ;; TODO: Most of this could be factorized with Go 1.4.
236 (lambda* (#:key inputs outputs #:allow-other-keys)
237 (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
238 (ld (string-append (assoc-ref inputs "libc") "/lib"))
239 (loader (car (find-files ld "^ld-linux.+")))
240 (net-base (assoc-ref inputs "net-base"))
241 (tzdata-path
242 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
243 (output (assoc-ref outputs "out")))
244
245 ;; Removing net/ tests, which fail when attempting to access
246 ;; network resources not present in the build container.
247 (for-each delete-file
a6169621
P
248 '("net/listen_test.go"
249 "net/parse_test.go"
250 "net/cgo_unix_test.go"))
ec91bcb5
MJ
251
252 (substitute* "os/os_test.go"
253 (("/usr/bin") (getcwd))
a6169621
P
254 (("/bin/pwd") (which "pwd"))
255 (("/bin/sh") (which "sh")))
ec91bcb5
MJ
256
257 ;; Add libgcc to runpath
258 (substitute* "cmd/link/internal/ld/lib.go"
259 (("!rpath.set") "true"))
35131bab 260 (substitute* "cmd/go/internal/work/build.go"
ec91bcb5
MJ
261 (("cgoldflags := \\[\\]string\\{\\}")
262 (string-append "cgoldflags := []string{"
263 "\"-rpath=" gcclib "\""
264 "}"))
265 (("ldflags = setextld\\(ldflags, compiler\\)")
266 (string-append
267 "ldflags = setextld(ldflags, compiler)\n"
268 "ldflags = append(ldflags, \"-r\")\n"
269 "ldflags = append(ldflags, \"" gcclib "\")\n"))
270 (("\"-lgcc_s\", ")
271 (string-append
272 "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
273
274 ;; Disable failing tests: these tests attempt to access
1c797d4b
LF
275 ;; commands or network resources which are neither available
276 ;; nor necessary for the build to succeed.
ec91bcb5
MJ
277 (for-each
278 (match-lambda
279 ((file regex)
280 (substitute* file
281 ((regex all before test_name)
282 (string-append before "Disabled" test_name)))))
283 '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
284 ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
285 ("os/os_test.go" "(.+)(TestHostname.+)")
286 ("time/format_test.go" "(.+)(TestParseInSydney.+)")
f826c8c7 287 ("time/format_test.go" "(.+)(TestParseInLocation.+)")
ec91bcb5
MJ
288 ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
289 ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
290 ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
291 ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
292 ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
293 ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
294 ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
295 ("os/exec/exec_test.go" "(.+)(TestIgnorePipeErrorOnSuccess.+)")
296 ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
297 ("os/exec/exec_test.go" "(.+)(TestExtraFiles/areturn.+)")
298 ("cmd/go/go_test.go" "(.+)(TestCoverageWithCgo.+)")
3f157443 299 ("cmd/go/go_test.go" "(.+)(TestTwoPkgConfigs.+)")
ec91bcb5
MJ
300 ("os/exec/exec_test.go" "(.+)(TestOutputStderrCapture.+)")
301 ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")
302 ("os/exec/exec_test.go" "(.+)(TestExtraFilesRace.+)")
303 ("net/lookup_test.go" "(.+)(TestLookupPort.+)")
304 ("syscall/exec_linux_test.go"
17399545 305 "(.+)(TestCloneNEWUSERAndRemapNoRootDisableSetgroups.+)")))
ec91bcb5
MJ
306
307 (substitute* "../misc/cgo/testsanitizers/test.bash"
308 (("(CC=)cc" all var) (string-append var "gcc")))
309
310 ;; fix shebang for testar script
311 ;; note the target script is generated at build time.
a6169621 312 (substitute* "../misc/cgo/testcarchive/carchive_test.go"
ec91bcb5
MJ
313 (("#!/usr/bin/env") (string-append "#!" (which "env"))))
314
315 (substitute* "net/lookup_unix.go"
316 (("/etc/protocols") (string-append net-base "/etc/protocols")))
317 (substitute* "net/port_unix.go"
318 (("/etc/services") (string-append net-base "/etc/services")))
319 (substitute* "time/zoneinfo_unix.go"
320 (("/usr/share/zoneinfo/") tzdata-path))
c04ef86e
P
321 (substitute* (find-files "cmd" "\\.go")
322 (("/lib(64)?/ld-linux.*\\.so\\.[0-9]") loader))
ec91bcb5
MJ
323 #t)))
324 (add-before 'build 'set-bootstrap-variables
325 (lambda* (#:key outputs inputs #:allow-other-keys)
326 ;; Tell the build system where to find the bootstrap Go.
327 (let ((go (assoc-ref inputs "go"))
328 (out (assoc-ref outputs "out")))
329 (setenv "GOROOT_BOOTSTRAP" go)
330 (setenv "PATH"
331 (string-append out "/bin:"
332 (dirname (getcwd)) "/bin:"
333 (getenv "PATH")))
334
335 ;; XXX: The following variables seem unrelated.
336 (setenv "GOGC" "400")
337 (setenv "GO_TEST_TIMEOUT_SCALE" "9999")
338 #t)))
04a95a4f
LF
339
340 (replace 'build
341 (lambda* (#:key inputs outputs #:allow-other-keys)
342 ;; FIXME: Some of the .a files are not bit-reproducible.
343 (let* ((output (assoc-ref outputs "out")))
344 (setenv "CC" (which "gcc"))
345 (setenv "GOOS" "linux")
346 (setenv "GOROOT" (dirname (getcwd)))
347 (setenv "GOROOT_FINAL" output)
348 (setenv "CGO_ENABLED" "1")
188b88e2 349 (invoke "sh" "all.bash"))))
04a95a4f 350
ec91bcb5
MJ
351 (replace 'install
352 ;; TODO: Most of this could be factorized with Go 1.4.
353 (lambda* (#:key outputs #:allow-other-keys)
354 (let* ((output (assoc-ref outputs "out"))
355 (doc_out (assoc-ref outputs "doc"))
356 (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
357 (src (string-append
358 (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
359 (delete-file-recursively "../pkg/bootstrap")
360
361 (mkdir-p src)
362 (copy-recursively "../test" (string-append src "/test"))
363 (delete-file-recursively "../test")
364 (mkdir-p docs)
365 (copy-recursively "../api" (string-append docs "/api"))
366 (delete-file-recursively "../api")
367 (copy-recursively "../doc" (string-append docs "/doc"))
368 (delete-file-recursively "../doc")
369
370 (for-each
371 (lambda (file)
372 (let* ((filein (string-append "../" file))
373 (fileout (string-append docs "/" file)))
374 (copy-file filein fileout)
375 (delete-file filein)))
376 ;; Note the slightly different file names compared to 1.4.
377 '("README.md" "CONTRIBUTORS" "AUTHORS" "PATENTS"
378 "LICENSE" "VERSION" "CONTRIBUTING.md" "robots.txt"))
379
188b88e2
TGR
380 (copy-recursively "../" output)
381 #t)))))))
ec91bcb5
MJ
382 (native-inputs
383 `(("go" ,go-1.4)
dda785f6
EF
384 ,@(package-native-inputs go-1.4)))
385 (supported-systems %supported-systems)))
ec91bcb5 386
fcbb8461
LF
387(define-public go-1.10
388 (package
389 (inherit go-1.9)
390 (name "go")
9297fc61 391 (version "1.10.3")
fcbb8461
LF
392 (source
393 (origin
394 (method url-fetch)
395 (uri (string-append "https://storage.googleapis.com/golang/"
396 name version ".src.tar.gz"))
397 (sha256
398 (base32
9297fc61 399 "1wjmw65nfkkzz084695gdgn13sbjcaafy2y5370d214pdk31qysn"))))
fcbb8461
LF
400 (arguments
401 (substitute-keyword-arguments (package-arguments go-1.9)
402 ((#:phases phases)
403 `(modify-phases ,phases
404 (replace 'prebuild
405 (lambda* (#:key inputs outputs #:allow-other-keys)
406 (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
407 (ld (string-append (assoc-ref inputs "libc") "/lib"))
408 (loader (car (find-files ld "^ld-linux.+")))
409 (net-base (assoc-ref inputs "net-base"))
410 (tzdata-path
411 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
412 (output (assoc-ref outputs "out")))
413
414 ;; Removing net/ tests, which fail when attempting to access
415 ;; network resources not present in the build container.
416 (for-each delete-file
417 '("net/listen_test.go"
418 "net/parse_test.go"
419 "net/cgo_unix_test.go"))
420
421 (substitute* "os/os_test.go"
422 (("/usr/bin") (getcwd))
423 (("/bin/pwd") (which "pwd"))
424 (("/bin/sh") (which "sh")))
425
426 ;; Add libgcc to runpath
427 (substitute* "cmd/link/internal/ld/lib.go"
428 (("!rpath.set") "true"))
429 (substitute* "cmd/go/internal/work/gccgo.go"
430 (("cgoldflags := \\[\\]string\\{\\}")
431 (string-append "cgoldflags := []string{"
432 "\"-rpath=" gcclib "\""
433 "}"))
434 (("\"-lgcc_s\", ")
435 (string-append
436 "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
437 (substitute* "cmd/go/internal/work/gc.go"
438 (("ldflags = setextld\\(ldflags, compiler\\)")
439 (string-append
440 "ldflags = setextld(ldflags, compiler)\n"
441 "ldflags = append(ldflags, \"-r\")\n"
442 "ldflags = append(ldflags, \"" gcclib "\")\n")))
443
444 ;; Disable failing tests: these tests attempt to access
445 ;; commands or network resources which are neither available
446 ;; nor necessary for the build to succeed.
447 (for-each
448 (match-lambda
449 ((file regex)
450 (substitute* file
451 ((regex all before test_name)
452 (string-append before "Disabled" test_name)))))
453 '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
454 ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
455 ("os/os_test.go" "(.+)(TestHostname.+)")
456 ("time/format_test.go" "(.+)(TestParseInSydney.+)")
457 ("time/format_test.go" "(.+)(TestParseInLocation.+)")
458 ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
459 ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
460 ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
461 ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
462 ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
463 ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
464 ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
465 ("os/exec/exec_test.go" "(.+)(TestIgnorePipeErrorOnSuccess.+)")
466 ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
467 ("os/exec/exec_test.go" "(.+)(TestExtraFiles/areturn.+)")
468 ("cmd/go/go_test.go" "(.+)(TestCoverageWithCgo.+)")
f0b85055 469 ("cmd/go/go_test.go" "(.+)(TestTwoPkgConfigs.+)")
fcbb8461
LF
470 ("os/exec/exec_test.go" "(.+)(TestOutputStderrCapture.+)")
471 ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")
472 ("os/exec/exec_test.go" "(.+)(TestExtraFilesRace.+)")
473 ("net/lookup_test.go" "(.+)(TestLookupPort.+)")
474 ("syscall/exec_linux_test.go"
475 "(.+)(TestCloneNEWUSERAndRemapNoRootDisableSetgroups.+)")))
476
477 ;; fix shebang for testar script
478 ;; note the target script is generated at build time.
479 (substitute* "../misc/cgo/testcarchive/carchive_test.go"
480 (("#!/usr/bin/env") (string-append "#!" (which "env"))))
481
482 (substitute* "net/lookup_unix.go"
483 (("/etc/protocols") (string-append net-base "/etc/protocols")))
484 (substitute* "net/port_unix.go"
485 (("/etc/services") (string-append net-base "/etc/services")))
486 (substitute* "time/zoneinfo_unix.go"
487 (("/usr/share/zoneinfo/") tzdata-path))
488 (substitute* (find-files "cmd" "\\.go")
489 (("/lib(64)?/ld-linux.*\\.so\\.[0-9]") loader))
490 #t)))
491 (replace 'set-bootstrap-variables
492 (lambda* (#:key outputs inputs #:allow-other-keys)
493 ;; Tell the build system where to find the bootstrap Go.
494 (let ((go (assoc-ref inputs "go")))
495 (setenv "GOROOT_BOOTSTRAP" go)
496 (setenv "GOGC" "400")
497 ;; Go 1.10 tries to write to $HOME in a test
498 (setenv "HOME" "/tmp")
499 #t)))))))))
500
35131bab 501(define-public go go-1.9)
d3878e88
LF
502
503(define-public go-github-com-alsm-ioprogress
504 (let ((commit "063c3725f436e7fba0c8f588547bee21ffec7ac5")
505 (revision "0"))
506 (package
507 (name "go-github-com-alsm-ioprogress")
508 (version (git-version "0.0.0" revision commit))
509 (source (origin
510 (method git-fetch)
511 (uri (git-reference
512 (url "https://github.com/alsm/ioprogress.git")
513 (commit commit)))
fdbece74 514 (file-name (git-file-name name version))
d3878e88
LF
515 (sha256
516 (base32
517 "10ym5qlq77nynmkxbk767f2hfwyxg2k7hrzph05hvgzv833dhivh"))))
518 (build-system go-build-system)
519 (arguments
520 '(#:import-path "github.com/alsm/ioprogress"))
521 (synopsis "Textual progress bars in Go")
522 (description "@code{ioprogress} is a Go library with implementations of
523@code{io.Reader} and @code{io.Writer} that draws progress bars. The primary use
524case for these are for command-line applications but alternate progress bar
525writers can be supplied for alternate environments.")
526 (home-page "https://github.com/alsm/ioprogress")
527 (license license:expat))))
11b12655
LF
528
529(define-public go-github-com-aki237-nscjar
530 (let ((commit "e2df936ddd6050d30dd90c7214c02b5019c42f06")
531 (revision "0"))
532 (package
533 (name "go-github-com-aki237-nscjar")
534 (version (git-version "0.0.0" revision commit))
535 (source (origin
536 (method git-fetch)
537 (uri (git-reference
538 (url "https://github.com/aki237/nscjar.git")
539 (commit commit)))
82f09c0e 540 (file-name (git-file-name name version))
11b12655
LF
541 (sha256
542 (base32
543 "03y7zzq12qvhsq86lb06sgns8xrkblbn7i7wd886wk3zr5574b96"))))
544 (build-system go-build-system)
545 (arguments
546 '(#:import-path "github.com/aki237/nscjar"))
547 (synopsis "Handle Netscape / Mozilla cookies")
548 (description "@code{nscjar} is a Go library used to parse and output
549Netscape/Mozilla's old-style cookie files. It also implements a simple cookie
550jar struct to manage the cookies added to the cookie jar.")
551 (home-page "https://github.com/aki237/nscjar")
552 (license license:expat))))
12f496ba
LF
553
554(define-public go-github-com-davidjpeacock-cli
555 (let ((commit "8ba6f23b6e36d03666a14bd9421f5e3efcb59aca")
556 (revision "0"))
557 (package
558 (name "go-github-com-davidjpeacock-cli")
559 (version (git-version "1.19.1" revision commit))
560 (source (origin
561 (method git-fetch)
562 (uri (git-reference
563 (url "https://github.com/davidjpeacock/cli.git")
564 (commit commit)))
6de107b0 565 (file-name (git-file-name name version))
12f496ba
LF
566 (sha256
567 (base32
568 "01s53ny3p0fdx64rnwcnmjj4xpc5adihnh6islsfq5z1ph2phhnj"))))
569 (build-system go-build-system)
570 (arguments
571 '(#:import-path "github.com/davidjpeacock/cli"))
572 (synopsis "Build command-line interfaces in Go")
573 (description "@code{cli} is a package for building command line
574interfaces in Go. The goal is to enable developers to write fast and
575distributable command line applications in an expressive way.")
576 (home-page "https://github.com/davidjpeacock/cli")
577 (license license:expat))))
60a8cbc4
CB
578
579(define-public go-github.com-jessevdk-go-flags
580 (package
581 (name "go-github.com-jessevdk-go-flags")
582 (version "1.3.0")
583 (source (origin
584 (method git-fetch)
585 (uri (git-reference
586 (url "https://github.com/jessevdk/go-flags")
587 (commit (string-append "v" version))))
588 (file-name (git-file-name name version))
589 (sha256
590 (base32
591 "1jk2k2l10lwrn1r3nxdvbs0yz656830j4khzirw8p4ahs7c5zz36"))))
592 (build-system go-build-system)
593 (arguments
594 '(#:import-path "github.com/jessevdk/go-flags"))
595 (synopsis "Go library for parsing command line arguments")
596 (description
597 "The @code{flags} package provides a command line option parser. The
598functionality is similar to the go builtin @code{flag} package, but
599@code{flags} provides more options and uses reflection to provide a succinct
600way of specifying command line options.")
601 (home-page "https://github.com/jessevdk/go-flags")
602 (license license:bsd-3)))
210c6d95
CB
603
604(define-public go-gopkg.in-tomb.v2
605 (let ((commit "d5d1b5820637886def9eef33e03a27a9f166942c")
606 (revision "0"))
607 (package
608 (name "go-gopkg.in-tomb.v2")
609 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
610 (source (origin
611 (method git-fetch)
612 (uri (git-reference
613 (url "https://github.com/go-tomb/tomb.git")
614 (commit commit)))
615 (file-name (string-append name "-" version ".tar.gz"))
616 (sha256
617 (base32
618 "1sv15sri99szkdz1bkh0ir46w9n8prrwx5hfai13nrhkawfyfy10"))))
619 (build-system go-build-system)
620 (arguments
621 '(#:import-path "gopkg.in/tomb.v2"))
622 (synopsis "@code{tomb} handles clean goroutine tracking and termination")
623 (description
624 "The @code{tomb} package handles clean goroutine tracking and
625termination.")
626 (home-page "https://gopkg.in/tomb.v2")
627 (license license:bsd-3))))
da6f9d41
CB
628
629(define-public go-github.com-jtolds-gls
630 (package
631 (name "go-github.com-jtolds-gls")
632 (version "4.2.1")
633 (source (origin
634 (method git-fetch)
635 (uri (git-reference
636 (url "https://github.com/jtolds/gls")
637 (commit (string-append "v" version))))
638 (file-name (git-file-name name version))
639 (sha256
640 (base32
641 "1vm37pvn0k4r6d3m620swwgama63laz8hhj3pyisdhxwam4m2g1h"))))
642 (build-system go-build-system)
643 (arguments
644 '(#:import-path "github.com/jtolds/gls"))
645 (synopsis "@code{gls} provides Goroutine local storage")
646 (description
647 "The @code{gls} package provides a way to store a retrieve values
648per-goroutine.")
649 (home-page "https://github.com/jtolds/gls")
650 (license license:expat)))
c4d2cffa
CB
651
652(define-public go-github-com-tj-docopt
653 (package
654 (name "go-github-com-tj-docopt")
655 (version "1.0.0")
656 (source (origin
657 (method git-fetch)
658 (uri (git-reference
659 (url "https://github.com/tj/docopt")
660 (commit (string-append "v" version))))
661 (file-name (git-file-name name version))
662 (sha256
663 (base32
664 "06h8hdg1mh3s78zqlr01g4si7k0f0g6pr7fj7lnvfg446hgc7080"))))
665 (build-system go-build-system)
666 (arguments
667 '(#:import-path "github.com/tj/docopt"))
668 (synopsis "Go implementation of docopt")
669 (description
670 "This library allows the user to define a command-line interface from a
671program's help message rather than specifying it programatically with
672command-line parsers.")
673 (home-page "https://github.com/tj/docopt")
674 (license license:expat)))
ed0c6a76
CB
675
676(define-public go-github-com-hashicorp-hcl
677 (let ((commit "23c074d0eceb2b8a5bfdbb271ab780cde70f05a8")
678 (revision "0"))
679 (package
680 (name "go-github-com-hashicorp-hcl")
681 (version (git-version "0.0.0" revision commit))
682 (source (origin
683 (method git-fetch)
684 (uri (git-reference
685 (url "https://github.com/hashicorp/hcl")
686 (commit commit)))
687 (file-name (git-file-name name version))
688 (sha256
689 (base32
690 "0db4lpqb5m130rmfy3s3gjjf4dxllypmyrzxv6ggqhkmwmc7w4mc"))))
691 (build-system go-build-system)
692 (arguments
693 '(#:tests? #f
694 #:import-path "github.com/hashicorp/hcl"))
695 (synopsis "Go implementation of HashiCorp Configuration Language")
696 (description
697 "This package contains the main implementation of the @acronym{HCL,
698HashiCorp Configuration Language}. HCL is designed to be a language for
699expressing configuration which is easy for both humans and machines to read.")
700 (home-page "https://github.com/hashicorp/hcl")
701 (license license:mpl2.0))))
269d0858
LF
702
703(define-public go-golang-org-x-crypto-bcrypt
704 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
705 (revision "1"))
706 (package
707 (name "go-golang-org-x-crypto-bcrypt")
708 (version (git-version "0.0.0" revision commit))
709 (source (origin
710 (method git-fetch)
711 (uri (git-reference
712 (url "https://go.googlesource.com/crypto")
713 (commit commit)))
714 (file-name (string-append "go.googlesource.com-crypto-"
715 version "-checkout"))
716 (sha256
717 (base32
718 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
719 (build-system go-build-system)
720 (arguments
721 `(#:import-path "golang.org/x/crypto/bcrypt"
722 #:unpack-path "golang.org/x/crypto"
723 #:phases
724 (modify-phases %standard-phases
725 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
726 (lambda* (#:key outputs #:allow-other-keys)
727 (map (lambda (file)
728 (make-file-writable file))
729 (find-files
730 (string-append (assoc-ref outputs "out")
731 "/src/golang.org/x/crypto/ed25519/testdata")
732 ".*\\.gz$"))
733 #t)))))
734 (synopsis "Bcrypt in Go")
735 (description "This package provides a Go implementation of the bcrypt
736password hashing function.")
737 (home-page "https://go.googlesource.com/crypto/")
738 (license license:bsd-3))))
739
740(define-public go-golang-org-x-crypto-blowfish
741 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
742 (revision "1"))
743 (package
744 (name "go-golang-org-x-crypto-blowfish")
745 (version (git-version "0.0.0" revision commit))
746 (source (origin
747 (method git-fetch)
748 (uri (git-reference
749 (url "https://go.googlesource.com/crypto")
750 (commit commit)))
751 (file-name (string-append "go.googlesource.com-crypto-"
752 version "-checkout"))
753 (sha256
754 (base32
755 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
756 (build-system go-build-system)
757 (arguments
758 `(#:import-path "golang.org/x/crypto/blowfish"
759 #:unpack-path "golang.org/x/crypto"
760 #:phases
761 (modify-phases %standard-phases
762 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
763 (lambda* (#:key outputs #:allow-other-keys)
764 (map (lambda (file)
765 (make-file-writable file))
766 (find-files
767 (string-append (assoc-ref outputs "out")
768 "/src/golang.org/x/crypto/ed25519/testdata")
769 ".*\\.gz$"))
770 #t)))))
771 (synopsis "Blowfish in Go")
772 (description "This package provides a Go implementation of the Blowfish
773symmetric-key block cipher.")
774 (home-page "https://go.googlesource.com/crypto/")
775 (license license:bsd-3))))
776
777(define-public go-golang-org-x-crypto-pbkdf2
778 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
779 (revision "1"))
780 (package
781 (name "go-golang-org-x-crypto-pbkdf2")
782 (version (git-version "0.0.0" revision commit))
783 (source (origin
784 (method git-fetch)
785 (uri (git-reference
786 (url "https://go.googlesource.com/crypto")
787 (commit commit)))
788 (file-name (string-append "go.googlesource.com-crypto-"
789 version "-checkout"))
790 (sha256
791 (base32
792 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
793 (build-system go-build-system)
794 (arguments
795 `(#:import-path "golang.org/x/crypto/pbkdf2"
796 #:unpack-path "golang.org/x/crypto"
797 #:phases
798 (modify-phases %standard-phases
799 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
800 (lambda* (#:key outputs #:allow-other-keys)
801 (map (lambda (file)
802 (make-file-writable file))
803 (find-files
804 (string-append (assoc-ref outputs "out")
805 "/src/golang.org/x/crypto/ed25519/testdata")
806 ".*\\.gz$"))
807 #t)))))
808 (synopsis "PBKDF2 in Go")
809 (description "This package provides a Go implementation of the PBKDF2 key
810derivation function.")
811 (home-page "https://go.googlesource.com/crypto/")
812 (license license:bsd-3))))
813
814(define-public go-golang-org-x-crypto-tea
815 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
816 (revision "1"))
817 (package
818 (name "go-golang-org-x-crypto-tea")
819 (version (git-version "0.0.0" revision commit))
820 (source (origin
821 (method git-fetch)
822 (uri (git-reference
823 (url "https://go.googlesource.com/crypto")
824 (commit commit)))
825 (file-name (string-append "go.googlesource.com-crypto-"
826 version "-checkout"))
827 (sha256
828 (base32
829 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
830 (build-system go-build-system)
831 (arguments
832 `(#:import-path "golang.org/x/crypto/tea"
833 #:unpack-path "golang.org/x/crypto"
834 #:phases
835 (modify-phases %standard-phases
836 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
837 (lambda* (#:key outputs #:allow-other-keys)
838 (map (lambda (file)
839 (make-file-writable file))
840 (find-files
841 (string-append (assoc-ref outputs "out")
842 "/src/golang.org/x/crypto/ed25519/testdata")
843 ".*\\.gz$"))
844 #t)))))
845 (synopsis "Tiny Encryption Algorithm (TEA) in Go")
846 (description "This packages a Go implementation of the Tiny Encryption
847Algorithm (TEA) block cipher.")
848 (home-page "https://go.googlesource.com/crypto/")
849 (license license:bsd-3))))
850
851(define-public go-golang-org-x-crypto-salsa20
852 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
853 (revision "1"))
854 (package
855 (name "go-golang-org-x-crypto-salsa20")
856 (version (git-version "0.0.0" revision commit))
857 (source (origin
858 (method git-fetch)
859 (uri (git-reference
860 (url "https://go.googlesource.com/crypto")
861 (commit commit)))
862 (file-name (string-append "go.googlesource.com-crypto-"
863 version "-checkout"))
864 (sha256
865 (base32
866 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
867 (build-system go-build-system)
868 (arguments
869 `(#:import-path "golang.org/x/crypto/salsa20"
870 #:unpack-path "golang.org/x/crypto"
871 #:phases
872 (modify-phases %standard-phases
873 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
874 (lambda* (#:key outputs #:allow-other-keys)
875 (map (lambda (file)
876 (make-file-writable file))
877 (find-files
878 (string-append (assoc-ref outputs "out")
879 "/src/golang.org/x/crypto/ed25519/testdata")
880 ".*\\.gz$"))
881 #t)))))
882 (synopsis "Salsa20 in Go")
883 (description "This packages provides a Go implementation of the Salsa20
884stream cipher.")
885 (home-page "https://go.googlesource.com/crypto/")
886 (license license:bsd-3))))
887
888(define-public go-golang-org-x-crypto-cast5
889 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
890 (revision "1"))
891 (package
892 (name "go-golang-org-x-crypto-cast5")
893 (version (git-version "0.0.0" revision commit))
894 (source (origin
895 (method git-fetch)
896 (uri (git-reference
897 (url "https://go.googlesource.com/crypto")
898 (commit commit)))
899 (file-name (string-append "go.googlesource.com-crypto-"
900 version "-checkout"))
901 (sha256
902 (base32
903 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
904 (build-system go-build-system)
905 (arguments
906 `(#:import-path "golang.org/x/crypto/cast5"
907 #:unpack-path "golang.org/x/crypto"
908 #:phases
909 (modify-phases %standard-phases
910 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
911 (lambda* (#:key outputs #:allow-other-keys)
912 (map (lambda (file)
913 (make-file-writable file))
914 (find-files
915 (string-append (assoc-ref outputs "out")
916 "/src/golang.org/x/crypto/ed25519/testdata")
917 ".*\\.gz$"))
918 #t)))))
919 (synopsis "Cast5 in Go")
920 (description "This packages provides a Go implementation of the Cast5
921symmetric-key block cipher.")
922 (home-page "https://go.googlesource.com/crypto/")
923 (license license:bsd-3))))
924
925(define-public go-golang-org-x-crypto-twofish
926 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
927 (revision "1"))
928 (package
929 (name "go-golang-org-x-crypto-twofish")
930 (version (git-version "0.0.0" revision commit))
931 (source (origin
932 (method git-fetch)
933 (uri (git-reference
934 (url "https://go.googlesource.com/crypto")
935 (commit commit)))
936 (file-name (string-append "go.googlesource.com-crypto-"
937 version "-checkout"))
938 (sha256
939 (base32
940 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
941 (build-system go-build-system)
942 (arguments
943 `(#:import-path "golang.org/x/crypto/twofish"
944 #:unpack-path "golang.org/x/crypto"
945 #:phases
946 (modify-phases %standard-phases
947 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
948 (lambda* (#:key outputs #:allow-other-keys)
949 (map (lambda (file)
950 (make-file-writable file))
951 (find-files
952 (string-append (assoc-ref outputs "out")
953 "/src/golang.org/x/crypto/ed25519/testdata")
954 ".*\\.gz$"))
955 #t)))))
956 (synopsis "Twofish in Go")
957 (description "This packages provides a Go implementation of the Twofish
958symmetric-key block cipher.")
959 (home-page "https://go.googlesource.com/crypto/")
960 (license license:bsd-3))))
961
962(define-public go-golang-org-x-crypto-xtea
963 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
964 (revision "1"))
965 (package
966 (name "go-golang-org-x-crypto-xtea")
967 (version (git-version "0.0.0" revision commit))
968 (source (origin
969 (method git-fetch)
970 (uri (git-reference
971 (url "https://go.googlesource.com/crypto")
972 (commit commit)))
973 (file-name (string-append "go.googlesource.com-crypto-"
974 version "-checkout"))
975 (sha256
976 (base32
977 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
978 (build-system go-build-system)
979 (arguments
980 `(#:import-path "golang.org/x/crypto/xtea"
981 #:unpack-path "golang.org/x/crypto"
982 #:phases
983 (modify-phases %standard-phases
984 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
985 (lambda* (#:key outputs #:allow-other-keys)
986 (map (lambda (file)
987 (make-file-writable file))
988 (find-files
989 (string-append (assoc-ref outputs "out")
990 "/src/golang.org/x/crypto/ed25519/testdata")
991 ".*\\.gz$"))
992 #t)))))
993 (synopsis "eXtended Tiny Encryption Algorithm (XTEA) in Go")
994 (description "This package provides a Go implementation of the eXtended
995Tiny Encryption Algorithm (XTEA) block cipher.")
996 (home-page "https://go.googlesource.com/crypto/")
997 (license license:bsd-3))))
998
999(define-public go-golang-org-x-net-ipv4
1000 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1001 (revision "1"))
1002 (package
1003 (name "go-golang-org-x-net-ipv4")
1004 (version (git-version "0.0.0" revision commit))
1005 (source (origin
1006 (method git-fetch)
1007 (uri (git-reference
1008 (url "https://go.googlesource.com/net")
1009 (commit commit)))
1010 (file-name (git-file-name name version))
1011 (sha256
1012 (base32
1013 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1014 (build-system go-build-system)
1015 (arguments
1016 `(#:import-path "golang.org/x/net/ipv4"
1017 #:unpack-path "golang.org/x/net"))
1018 (synopsis "Go IPv4 support")
1019 (description "This package provides @code{ipv4}, which implements IP-level
1020socket options for the Internet Protocol version 4.")
1021 (home-page "https://go.googlesource.com/net")
1022 (license license:bsd-3))))
1023
1024(define-public go-golang-org-x-net-bpf
1025 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1026 (revision "1"))
1027 (package
1028 (name "go-golang-org-x-net-bpf")
1029 (version (git-version "0.0.0" revision commit))
1030 (source (origin
1031 (method git-fetch)
1032 (uri (git-reference
1033 (url "https://go.googlesource.com/net")
1034 (commit commit)))
1035 (file-name (string-append "go.googlesource.com-net-"
1036 version "-checkout"))
1037 (sha256
1038 (base32
1039 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1040 (build-system go-build-system)
1041 (arguments
1042 `(#:import-path "golang.org/x/net/bpf"
1043 #:unpack-path "golang.org/x/net"))
1044 (synopsis "Berkeley Packet Filters (BPF) in Go")
1045 (description "This packages provides a Go implementation of the Berkeley
1046Packet Filter (BPF) virtual machine.")
1047 (home-page "https://go.googlesource.com/net/")
1048 (license license:bsd-3))))
1049
1050(define-public go-golang-org-x-net-context
1051 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1052 (revision "1"))
1053 (package
1054 (name "go-golang-org-x-net-context")
1055 (version (git-version "0.0.0" revision commit))
1056 (source (origin
1057 (method git-fetch)
1058 (uri (git-reference
1059 (url "https://go.googlesource.com/net")
1060 (commit commit)))
1061 (file-name (string-append "go.googlesource.com-net-"
1062 version "-checkout"))
1063 (sha256
1064 (base32
1065 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1066 (build-system go-build-system)
1067 (arguments
1068 `(#:import-path "golang.org/x/net/context"
1069 #:unpack-path "golang.org/x/net"))
1070 (synopsis "Golang Context type")
1071 (description "This packages provides @code{context}, which defines the
1072Context type, which carries deadlines, cancelation signals, and other
1073request-scoped values across API boundaries and between processes.")
1074 (home-page "https://go.googlesource.com/net/")
1075 (license license:bsd-3))))
1076
1077(define-public go-golang-org-x-net-internal-iana
1078 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1079 (revision "1"))
1080 (package
1081 (name "go-golang-org-x-net-internal-iana")
1082 (version (git-version "0.0.0" revision commit))
1083 (source (origin
1084 (method git-fetch)
1085 (uri (git-reference
1086 (url "https://go.googlesource.com/net")
1087 (commit commit)))
1088 (file-name (string-append "go.googlesource.com-net-"
1089 version "-checkout"))
1090 (sha256
1091 (base32
1092 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1093 (build-system go-build-system)
1094 (arguments
1095 `(#:import-path "golang.org/x/net/internal/iana"
1096 #:unpack-path "golang.org/x/net"))
1097 (synopsis "Go support for assigned numbers (IANA)")
1098 (description "This packages provides @code{iana}, which provides protocol
1099number resources managed by the Internet Assigned Numbers Authority (IANA).")
1100 (home-page "https://go.googlesource.com/net/")
1101 (license license:bsd-3))))
1102
1103(define-public go-golang-org-x-net-ipv6
1104 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1105 (revision "1"))
1106 (package
1107 (name "go-golang-org-x-net-ipv6")
1108 (version (git-version "0.0.0" revision commit))
1109 (source (origin
1110 (method git-fetch)
1111 (uri (git-reference
1112 (url "https://go.googlesource.com/net")
1113 (commit commit)))
1114 (file-name (string-append "go.googlesource.com-net-"
1115 version "-checkout"))
1116 (sha256
1117 (base32
1118 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1119 (build-system go-build-system)
1120 (arguments
1121 `(#:import-path "golang.org/x/net/ipv6"
1122 #:unpack-path "golang.org/x/net"))
1123 (synopsis "Go IPv6 support")
1124 (description "This packages provides @code{ipv6}, which implements
1125IP-level socket options for the Internet Protocol version 6.")
1126 (home-page "https://go.googlesource.com/net")
1127 (license license:bsd-3))))
1128
1129(define-public go-golang-org-x-net-proxy
1130 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1131 (revision "1"))
1132 (package
1133 (name "go-golang-org-x-net-proxy")
1134 (version (git-version "0.0.0" revision commit))
1135 (source (origin
1136 (method git-fetch)
1137 (uri (git-reference
1138 (url "https://go.googlesource.com/net")
1139 (commit commit)))
1140 (file-name (string-append "go.googlesource.com-net-"
1141 version "-checkout"))
1142 (sha256
1143 (base32
1144 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1145 (build-system go-build-system)
1146 (arguments
1147 `(#:import-path "golang.org/x/net/proxy"
1148 #:unpack-path "golang.org/x/net/"))
1149 (synopsis "Go support for network proxies")
1150 (description "This packages provides @code{proxy}, which provides support
1151for a variety of protocols to proxy network data.")
1152 (home-page "https://go.googlesource.com/net")
1153 (license license:bsd-3))))
1154
1155(define-public go-golang-org-x-sys-unix
1156 (let ((commit "83801418e1b59fb1880e363299581ee543af32ca")
1157 (revision "1"))
1158 (package
1159 (name "go-golang-org-x-sys-unix")
1160 (version (git-version "0.0.0" revision commit))
1161 (source (origin
1162 (method git-fetch)
1163 (uri (git-reference
1164 (url "https://go.googlesource.com/sys")
1165 (commit commit)))
1166 (file-name (git-file-name name version))
1167 (sha256
1168 (base32
1169 "0ilykaanvnzb27d42kmbr4i37hcn7hgqbx98z945gy63aa8dskji"))))
1170 (build-system go-build-system)
1171 (arguments
1172 `(#:import-path "golang.org/x/sys/unix"
1173 #:unpack-path "golang.org/x/sys"
1174 #:phases
1175 (modify-phases %standard-phases
1176 (add-after 'unpack 'patch-tests
1177 (lambda _
1178 (pk (getcwd))
1179 (substitute* "src/golang.org/x/sys/unix/syscall_unix_test.go"
1180 (("/usr/bin") "/tmp"))
1181 #t)))))
1182 (synopsis "Go support for low-level system interaction")
1183 (description "This package provides @code{unix}, which offers Go support
1184for low-level interaction with the operating system.")
1185 (home-page "https://go.googlesource.com/sys")
1186 (license license:bsd-3))))
1187
1188(define-public go-golang-org-x-text-transform
1189 (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
1190 (revision "1"))
1191 (package
1192 (name "go-golang-org-x-text-transform")
1193 (version (git-version "0.0.0" revision commit))
1194 (source (origin
1195 (method git-fetch)
1196 (uri (git-reference
1197 (url "https://go.googlesource.com/text")
1198 (commit commit)))
1199 (file-name (string-append "go.googlesource.com-text-"
1200 version "-checkout"))
1201 (sha256
1202 (base32
1203 "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
1204 (build-system go-build-system)
1205 (arguments
1206 `(#:import-path "golang.org/x/text/transform"
1207 #:unpack-path "golang.org/x/text"))
1208 (synopsis "Go text transformation")
1209 (description "This package provides @code{transform}, which provides
1210reader and writer wrappers that transform the bytes passing through. Example
1211transformations provided by other packages include normalization and conversion
1212between character sets.")
1213 (home-page "https://go.googlesource.com/text")
1214 (license license:bsd-3))))
1215
1216(define-public go-golang-org-x-text-unicode-norm
1217 (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
1218 (revision "1"))
1219 (package
1220 (name "go-golang-org-x-text-unicode-norm")
1221 (version (git-version "0.0.0" revision commit))
1222 (source (origin
1223 (method git-fetch)
1224 (uri (git-reference
1225 (url "https://go.googlesource.com/text")
1226 (commit commit)))
1227 (file-name (string-append "go.googlesource.com-text-"
1228 version "-checkout"))
1229 (sha256
1230 (base32
1231 "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
1232 (build-system go-build-system)
1233 (arguments
1234 `(#:import-path "golang.org/x/text/unicode/norm"
1235 #:unpack-path "golang.org/x/text"))
1236 (synopsis "Unicode normalization in Go")
1237 (description "This package provides @code{norm}, which contains types and
1238functions for normalizing Unicode strings.")
1239 (home-page "https://go.googlesource.com/text")
1240 (license license:bsd-3))))
1241
1242(define-public go-golang-org-x-time-rate
1243 (let ((commit "6dc17368e09b0e8634d71cac8168d853e869a0c7")
1244 (revision "1"))
1245 (package
1246 (name "go-golang-org-x-time-rate")
1247 (version (git-version "0.0.0" revision commit))
1248 (source (origin
1249 (method git-fetch)
1250 (uri (git-reference
1251 (url "https://go.googlesource.com/time")
1252 (commit commit)))
1253 (file-name (git-file-name name version))
1254 (sha256
1255 (base32
1256 "1fx4cf5fpdz00g3c7vxzy92hdcg0vh4yqw00qp5s52j72qixynbk"))))
1257 (build-system go-build-system)
1258 (arguments
1259 `(#:import-path "golang.org/x/time/rate"
1260 #:unpack-path "golang.org/x/time"))
1261 (propagated-inputs
1262 `(("go-golang-org-x-net-context" ,go-golang-org-x-net-context)))
1263 (synopsis "Rate limiting in Go")
1264 (description "This package provides @{rate}, which implements rate
1265limiting in Go.")
1266 (home-page "https://godoc.org/golang.org/x/time/rate")
1267 (license license:bsd-3))))
e60352e4
1268
1269(define-public go-golang-org-x-crypto-ssh-terminal
1270 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
1271 (revision "1"))
1272 (package
1273 (name "go-golang-org-x-crypto-ssh-terminal")
1274 (version (git-version "0.0.0" revision commit))
1275 (source (origin
1276 (method git-fetch)
1277 (uri (git-reference
1278 (url "https://go.googlesource.com/crypto")
1279 (commit commit)))
1280 (file-name (string-append "go.googlesource.com-crypto-"
1281 version "-checkout"))
1282 (sha256
1283 (base32
1284 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
1285 (build-system go-build-system)
1286 (inputs
1287 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
1288 (arguments
1289 `(#:import-path "golang.org/x/crypto/ssh/terminal"
1290 #:unpack-path "golang.org/x/crypto"
1291 #:phases
1292 (modify-phases %standard-phases
1293 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1294 (lambda* (#:key outputs #:allow-other-keys)
1295 (map (lambda (file)
1296 (make-file-writable file))
1297 (find-files
1298 (string-append (assoc-ref outputs "out")
1299 "/src/golang.org/x/crypto/ed25519/testdata")
1300 ".*\\.gz$"))
1301 #t)))))
1302 (synopsis "Terminal functions for Go")
1303 (description "This package provides @{terminal}, which implements
1304support functions for dealing with terminals, as commonly found on UNIX
1305systems.")
1306 (home-page "https://go.googlesource.com/crypto/")
1307 (license license:bsd-3))))
fb50664f
PAR
1308
1309(define-public go-github-com-burntsushi-toml
1310 (let ((commit
1311 "a368813c5e648fee92e5f6c30e3944ff9d5e8895")
1312 (revision "0"))
1313 (package
1314 (name "go-github-com-burntsushi-toml")
1315 (version (git-version "0.0.0" revision commit))
1316 (source
1317 (origin
1318 (method git-fetch)
1319 (uri (git-reference
1320 (url "https://github.com/BurntSushi/toml.git")
1321 (commit commit)))
1322 (file-name (git-file-name name version))
1323 (sha256
1324 (base32
1325 "1sjxs2lwc8jpln80s4rlzp7nprbcljhy5mz4rf9995gq93wqnym5"))))
1326 (build-system go-build-system)
1327 (arguments
1328 '(#:import-path "github.com/BurntSushi/toml"))
1329 (home-page "https://github.com/BurntSushi/toml")
1330 (synopsis "Toml parser and encoder for Go")
1331 (description "This package is toml parser and encoder for Go. The
1332interface is similar to Go's standard library @code{json} and @code{xml}
1333package.")
1334 (license license:expat))))
8c5a69aa
PAR
1335
1336(define-public go-github-com-getsentry-raven-go
1337 (let ((commit
1338 "dffeb57df75d6a911f00232155194e43d79d38d7")
1339 (revision "0"))
1340 (package
1341 (name "go-github-com-getsentry-raven-go")
1342 (version (git-version "0.0.0" revision commit))
1343 (source
1344 (origin
1345 (method git-fetch)
1346 (uri (git-reference
1347 (url "https://github.com/getsentry/raven-go.git")
1348 (commit commit)))
1349 (file-name (git-file-name name version))
1350 (sha256
1351 (base32
1352 "13sb9rvl3369m7fah3ss9g0hwky259snqfn8gmbr0h5zvp651lja"))))
1353 (build-system go-build-system)
1354 (arguments
1355 '(#:import-path "github.com/getsentry/raven-go"))
1356 (home-page
1357 "https://github.com/getsentry/raven-go")
1358 (synopsis "Sentry client in Go")
1359 (description "This package is Go client API for the Sentry event/error
1360logging system.")
1361 (license license:bsd-3))))
0972411a
PAR
1362
1363(define-public go-github-com-hashicorp-go-version
1364 (let ((commit
1365 "03c5bf6be031b6dd45afec16b1cf94fc8938bc77")
1366 (revision "0"))
1367 (package
1368 (name "go-github-com-hashicorp-go-version")
1369 (version (git-version "0.0.0" revision commit))
1370 (source
1371 (origin
1372 (method git-fetch)
1373 (uri (git-reference
1374 (url "https://github.com/hashicorp/go-version.git")
1375 (commit commit)))
1376 (file-name (git-file-name name version))
1377 (sha256
1378 (base32
1379 "0sjq57gpfznaqdrbyb2p0bn90g9h661cvr0jrk6ngags4pbw14ik"))))
1380 (build-system go-build-system)
1381 (arguments
1382 '(#:import-path "github.com/hashicorp/go-version"))
1383 (home-page
1384 "https://github.com/hashicorp/go-version")
1385 (synopsis "Go library for parsing and verifying versions and version
1386constraints")
1387 (description "This package is a library for parsing versions and version
1388constraints, and verifying versions against a set of constraints. It can sort
1389a collection of versions properly, handles prerelease/beta versions, can
1390increment versions.")
1391 (license license:mpl2.0))))
c4230cda
PAR
1392
1393(define-public go-github-com-jpillora-backoff
1394 (let ((commit
1395 "06c7a16c845dc8e0bf575fafeeca0f5462f5eb4d")
1396 (revision "0"))
1397 (package
1398 (name "go-github-com-jpillora-backoff")
1399 (version (git-version "0.0.0" revision commit))
1400 (source
1401 (origin
1402 (method git-fetch)
1403 (uri (git-reference
1404 (url "https://github.com/jpillora/backoff.git")
1405 (commit commit)))
1406 (file-name (git-file-name name version))
1407 (sha256
1408 (base32
1409 "0xhvxr7bm47czdc5hy3kl508z3y4j91i2jm7vg774i52zych6k4l"))))
1410 (build-system go-build-system)
1411 (arguments
1412 '(#:import-path "github.com/jpillora/backoff"))
1413 (home-page "https://github.com/jpillora/backoff")
1414 (synopsis "Simple exponential backoff counter in Go")
1415 (description "This package is a simple exponential backoff counter in
1416Go.")
1417 (license license:expat))))
28380e0e
PAR
1418
1419(define-public go-github-com-stretchr-testify
1420 (let ((commit
1421 "b1f989447a57594c728884458a39abf3a73447f7")
1422 (revision "0"))
1423 (package
1424 (name "go-github-com-stretchr-testify")
1425 (version (git-version "1.1.4" revision commit))
1426 (source
1427 (origin
1428 (method git-fetch)
1429 (uri (git-reference
1430 (url "https://github.com/stretchr/testify.git")
1431 (commit commit)))
1432 (file-name (git-file-name name version))
1433 (sha256
1434 (base32
1435 "0p0gkqzh2p8r5g0rxm885ljl7ghih7h7hx9w562imx5ka0vdgixv"))))
1436 (build-system go-build-system)
1437 (arguments
1438 '(#:import-path "github.com/stretchr/testify"))
1439 (home-page "https://github.com/stretchr/testify")
1440 (synopsis "Go helper library for tests and invariant checking")
1441 (description "This package provide many tools for testifying that your
1442code will behave as you intend.
1443
1444Features include:
1445@itemize
1446@item Easy assertions
1447@item Mocking
1448@item HTTP response trapping
1449@item Testing suite interfaces and functions.
1450@end itemize")
1451 (license license:expat))))
21290c35
PAR
1452
1453(define-public go-github-com-tevino-abool
1454 (let ((commit
1455 "3c25f2fe7cd0ef3eabefce1d90efd69a65d35b12")
1456 (revision "0"))
1457 (package
1458 (name "go-github-com-tevino-abool")
1459 (version (git-version "0.0.0" revision commit))
1460 (source
1461 (origin
1462 (method git-fetch)
1463 (uri (git-reference
1464 (url "https://github.com/tevino/abool.git")
1465 (commit commit)))
1466 (file-name (git-file-name name version))
1467 (sha256
1468 (base32
1469 "1wxqrclxk93q0aj15z596dx2y57x9nkhi64nbrr5cxnhxn8vwixm"))))
1470 (build-system go-build-system)
1471 (arguments
1472 '(#:import-path "github.com/tevino/abool"))
1473 (home-page "https://github.com/tevino/abool")
1474 (synopsis "Atomic boolean library for Go code")
1475 (description "This package is atomic boolean library for Go code,
1476optimized for performance yet simple to use.")
1477 (license license:expat))))
7c2ebbd4
PAR
1478
1479(define-public go-github-com-urfave-cli
1480 (let ((commit "cfb38830724cc34fedffe9a2a29fb54fa9169cd1")
1481 (revision "0"))
1482 (package
1483 (name "go-github-com-urfave-cli")
1484 (version (git-version "0.0.0" revision commit))
1485 (source
1486 (origin
1487 (method git-fetch)
1488 (uri (git-reference
1489 (url "https://github.com/urfave/cli.git")
1490 (commit commit)))
1491 (file-name (git-file-name name version))
1492 (sha256
1493 (base32
1494 "0y6f4sbzkiiwrxbl15biivj8c7qwxnvm3zl2dd3mw4wzg4x10ygj"))))
1495 (build-system go-build-system)
1496 (arguments
1497 '(#:import-path "github.com/urfave/cli"))
1498 (home-page "https://github.com/urfave/cli")
1499 (synopsis "Library for building command-line interfaces in Go")
1500 (description "This package provides a library for building command-line
1501interfaces in Go.")
1502 (license license:expat))))
67836c59
PAR
1503
1504(define-public go-github-com-blang-semver
1505 (let ((commit "60ec3488bfea7cca02b021d106d9911120d25fe9")
1506 (revision "0"))
1507 (package
1508 (name "go-github-com-blang-semver")
1509 (version (git-version "0.0.0" revision commit))
1510 (source
1511 (origin
1512 (method git-fetch)
1513 (uri (git-reference
1514 (url "https://github.com/blang/semver.git")
1515 (commit commit)))
1516 (file-name (git-file-name name version))
1517 (sha256
1518 (base32
1519 "19pli07y5592g4dyjyj0jq5rn548vc3fz0qg3624vm1j5828p1c2"))))
1520 (build-system go-build-system)
1521 (arguments
1522 '(#:import-path "github.com/blang/semver"))
1523 (home-page "https://github.com/blang/semver")
1524 (synopsis "Semantic versioning library written in Go")
1525 (description "Semver is a library for Semantic versioning written in Go.")
1526 (license license:expat))))
1527
7979f7df
PAR
1528(define-public go-github-com-emicklei-go-restful
1529 (let ((commit "89ef8af493ab468a45a42bb0d89a06fccdd2fb22")
1530 (revision "0"))
1531 (package
1532 (name "go-github-com-emicklei-go-restful")
1533 (version (git-version "0.0.0" revision commit))
1534 (source
1535 (origin
1536 (method git-fetch)
1537 (uri (git-reference
1538 (url "https://github.com/emicklei/go-restful.git")
1539 (commit commit)))
1540 (file-name (git-file-name name version))
1541 (sha256
1542 (base32
1543 "0rrlfcfq80fkxifpih6bq31vavb5mf4530xz51pp9pq1mn2fzjfh"))))
1544 (build-system go-build-system)
1545 (arguments
1546 '(#:import-path "github.com/emicklei/go-restful"))
1547 (home-page "https://github.com/emicklei/go-restful")
1548 (synopsis "Build REST-style web services using Go")
1549 (description "This package provides @code{go-restful}, which helps
1550developers to use @code{http} methods explicitly and in a way that's consistent
1551with the HTTP protocol definition.")
1552 (license license:expat))))
73fe19ef
PAR
1553
1554(define-public go-github-com-google-cadvisor
1555 (let ((commit "2ed7198f77395ee9a172878a0a7ab92ab59a2cfd")
1556 (revision "0"))
1557 (package
1558 (name "go-github-com-google-cadvisor")
1559 (version (git-version "0.0.0" revision commit))
1560 (source
1561 (origin
1562 (method git-fetch)
1563 (uri (git-reference
1564 (url "https://github.com/google/cadvisor.git")
1565 (commit commit)))
1566 (file-name (git-file-name name version))
1567 (sha256
1568 (base32
1569 "1w8p345z5j0gk3yiq5ah0znd5lfh348p2s624k5r10drz04p3f55"))))
1570 (build-system go-build-system)
1571 (arguments
1572 '(#:import-path "github.com/google/cadvisor"))
1573 (home-page "https://github.com/google/cadvisor")
1574 (synopsis "Analyze resource usage of running containers")
1575 (description "The package provides @code{cadvisor}, which provides
1576information about the resource usage and preformance characteristics of running
1577containers.")
1578 (license license:asl2.0))))
daed2c5e
PAR
1579
1580(define-public go-github-com-google-gofuzz
1581 (let ((commit "fd52762d25a41827db7ef64c43756fd4b9f7e382")
1582 (revision "0"))
1583 (package
1584 (name "go-github-com-google-gofuzz")
1585 (version (git-version "0.0.0" revision commit))
1586 (source
1587 (origin
1588 (method git-fetch)
1589 (uri (git-reference
1590 (url "https://github.com/google/gofuzz.git")
1591 (commit commit)))
1592 (file-name (git-file-name name version))
1593 (sha256
1594 (base32
1595 "1yxmmr73h0lq7ryf3q9a7pcm2x5xrg4d5bxkq8n5pxwxwyq26kw8"))))
1596 (build-system go-build-system)
1597 (arguments
1598 '(#:import-path "github.com/google/gofuzz"))
1599 (home-page "https://github.com/google/gofuzz")
1600 (synopsis "Fuzz testing library for Go")
1601 (description "Gofuzz is a library for populationg Go objects with random
1602values for the purpose of fuzz testing.")
1603 (license license:asl2.0))))
9cf879a5
PAR
1604
1605(define-public go-github-com-gorilla-context
1606 (let ((commit "08b5f424b9271eedf6f9f0ce86cb9396ed337a42")
1607 (revision "0"))
1608 (package
1609 (name "go-github-com-gorilla-context")
1610 (version (git-version "0.0.0" revision commit))
1611 (source
1612 (origin
1613 (method git-fetch)
1614 (uri (git-reference
1615 (url "https://github.com/gorilla/context.git")
1616 (commit commit)))
1617 (file-name (git-file-name name version))
1618 (sha256
1619 (base32
1620 "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4"))))
1621 (build-system go-build-system)
1622 (arguments
1623 '(#:import-path "github.com/gorilla/context"))
1624 (home-page "https://github.com/gorilla/context")
1625 (synopsis "Go registry for request variables")
1626 (description "This package provides @code{gorilla/context}, which is a general purpose registry for global request variables in the Go programming language.")
1627 (license license:bsd-3))))
e8cdf560
PAR
1628
1629(define-public go-github-com-gorilla-mux
1630 (let ((commit "599cba5e7b6137d46ddf58fb1765f5d928e69604")
1631 (revision "0"))
1632 (package
1633 (name "go-github-com-gorilla-mux")
1634 (version (git-version "0.0.0" revision commit))
1635 (source
1636 (origin
1637 (method git-fetch)
1638 (uri (git-reference
1639 (url "https://github.com/gorilla/mux.git")
1640 (commit commit)))
1641 (file-name (git-file-name name version))
1642 (sha256
1643 (base32
1644 "0wd6jjii1kg5s0nk3ri6gqriz6hbd6bbcn6x4jf8n7ncrb8qsxyz"))))
1645 (build-system go-build-system)
1646 (arguments
1647 '(#:import-path "github.com/gorilla/mux"))
1648 (home-page "https://github.com/gorilla/mux")
1649 (synopsis "URL router and dispatcher for Go")
1650 (description
1651 "Gorilla/Mux implements a request router and dispatcher for matching
1652incoming requests with their respective handler.")
1653 (license license:bsd-3))))
bcb21790
PAR
1654
1655(define-public go-github-com-jonboulle-clockwork
1656 (let ((commit "e3653ace2d63753697e0e5b07b9393971c0bba9d")
1657 (revision "0"))
1658 (package
1659 (name "go-github-com-jonboulle-clockwork")
1660 (version (git-version "0.0.0" revision commit))
1661 (source
1662 (origin
1663 (method git-fetch)
1664 (uri (git-reference
1665 (url "https://github.com/jonboulle/clockwork.git")
1666 (commit commit)))
1667 (file-name (git-file-name name version))
1668 (sha256
1669 (base32
1670 "1avzqhks12a8x2yzpvjsf3k0gv9cy7zx2z88hn0scacnxkphisvc"))))
1671 (build-system go-build-system)
1672 (arguments
1673 '(#:import-path "github.com/jonboulle/clockwork"))
1674 (home-page "https://github.com/jonboulle/clockwork")
1675 (synopsis "Fake clock library for Go")
1676 (description
1677 "Replace uses of the @code{time} package with the
1678@code{clockwork.Clock} interface instead.")
1679 (license license:asl2.0))))
76a2b278
PAR
1680
1681(define-public go-github-com-spf13-pflag
1682 (let ((commit "4f9190456aed1c2113ca51ea9b89219747458dc1")
1683 (revision "0"))
1684 (package
1685 (name "go-github-com-spf13-pflag")
1686 (version (git-version "0.0.0" revision commit))
1687 (source
1688 (origin
1689 (method git-fetch)
1690 (uri (git-reference
1691 (url "https://github.com/spf13/pflag.git")
1692 (commit commit)))
1693 (file-name (git-file-name name version))
1694 (sha256
1695 (base32
1696 "12vrlcsbwjqlfc49rwky45mbcj74c0kb6z54354pzas6fwzyi1kc"))))
1697 (build-system go-build-system)
1698 (arguments
1699 '(#:import-path "github.com/spf13/pflag"))
1700 (home-page "https://github.com/spf13/pflag")
1701 (synopsis "Replacement for Go's @code{flag} package")
1702 (description
1703 "Pflag is library to replace Go's @code{flag} package. It implements
1704POSIX/GNU-style command-line options with double hyphens. It is is compatible
1705with the
1706@uref{https://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html,
1707GNU extensions} to the POSIX recommendations for command-line options.")
1708 (license license:bsd-3))))
7427b2c6
PAR
1709
1710(define-public go-github-com-sirupsen-logrus
1711 (package
1712 (name "go-github-com-sirupsen-logrus")
1713 (version "1.0.5")
1714 (source
1715 (origin
1716 (method git-fetch)
1717 (uri (git-reference
1718 (url "https://github.com/sirupsen/logrus.git")
1719 (commit (string-append "v" version))))
1720 (sha256
1721 (base32
1722 "0g5z7al7kky11ai2dhac6gkp3b5pxsvx72yj3xg4wg3265gbn7yz"))))
1723 (build-system go-build-system)
1724 (native-inputs
1725 `(("go-golang-org-x-crypto-ssh-terminal"
1726 ,go-golang-org-x-crypto-ssh-terminal)
1727 ("go-github-com-stretchr-testify"
1728 ,go-github-com-stretchr-testify)
1729 ("go-golang-org-x-sys-unix"
1730 ,go-golang-org-x-sys-unix)))
1731 (arguments
1732 '(#:tests? #f ;FIXME missing dependencies
1733 #:import-path "github.com/sirupsen/logrus"))
1734 (home-page "https://github.com/sirupsen/logrus")
1735 (synopsis "Structured, pluggable logging for Go")
1736 (description "Logrus is a structured logger for Go, completely API
1737compatible with the standard library logger.")
1738 (license license:expat)))
5cc2b845
LF
1739
1740(define-public go-github-com-kardianos-osext
1741 (let ((commit "ae77be60afb1dcacde03767a8c37337fad28ac14")
1742 (revision "1"))
1743 (package
1744 (name "go-github-com-kardianos-osext")
1745 (version (git-version "0.0.0" revision commit))
1746 (source (origin
1747 (method git-fetch)
1748 (uri (git-reference
1749 (url "https://github.com/kardianos/osext")
1750 (commit commit)))
1751 (file-name (git-file-name name version))
1752 (sha256
1753 (base32
1754 "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz"))))
1755 (build-system go-build-system)
1756 (arguments
1757 `(#:import-path "github.com/kardianos/osext"
1758 ;; The tests are flaky:
1759 ;; <https://github.com/kardianos/osext/issues/21>
1760 #:tests? #f))
1761 (synopsis "Find the running executable")
1762 (description "Osext provides a method for finding the current executable
1763file that is running. This can be used for upgrading the current executable or
1764finding resources located relative to the executable file.")
1765 (home-page "https://github.com/kardianos/osext")
1766 (license license:bsd-3))))
aed4944d
PAR
1767
1768(define-public go-github-com-ayufan-golang-kardianos-service
1769 (let ((commit "0c8eb6d8fff2e2fb884a7bfd23e183fb63c0eff3")
1770 (revision "0"))
1771 (package
1772 (name "go-github-com-ayufan-golang-kardianos-service")
1773 (version (git-version "0.0.0" revision commit))
1774 (source
1775 (origin
1776 (method git-fetch)
1777 (uri (git-reference
1778 (url
1779 "https://github.com/ayufan/golang-kardianos-service.git")
1780 (commit commit)))
1781 (file-name (git-file-name name version))
1782 (sha256
1783 (base32
1784 "0x0cn7l5gda2khsfypix7adxd5yqighzn04mxjw6hc4ayrh7his5"))))
1785 (build-system go-build-system)
1786 (native-inputs
1787 `(("go-github-com-kardianos-osext"
1788 ,go-github-com-kardianos-osext)))
1789 (arguments
1790 '(#:tests? #f ;FIXME tests fail: Service is not running.
1791 #:import-path "github.com/ayufan/golang-kardianos-service"))
1792 (home-page "https://github.com/ayufan/golang-kardianos-service")
1793 (synopsis "Go interface to a variety of service supervisors")
1794 (description "This package provides @code{service}, a Go module that can
1795run programs as a service using a variety of supervisors, including systemd,
1796SysVinit, and more.")
1797 (license license:zlib))))
e2826118
PAR
1798
1799(define-public go-github-com-docker-distribution
1800 (let ((commit "325b0804fef3a66309d962357aac3c2ce3f4d329")
1801 (revision "0"))
1802 (package
1803 (name "go-github-com-docker-distribution")
1804 (version (git-version "0.0.0" revision commit))
1805 (source
1806 ;; FIXME: This bundles many things, see
1807 ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31881#41>.
1808 (origin
1809 (method git-fetch)
1810 (uri (git-reference
1811 (url "https://github.com/docker/distribution")
1812 (commit commit)))
1813 (file-name (git-file-name name version))
1814 (sha256
1815 (base32
1816 "1yg2zrikn3vkvkx5mn51p6bfjk840qdkn7ahhhvvcsc8mpigrjc6"))))
1817 (build-system go-build-system)
1818 (native-inputs
1819 `(("go-golang-org-x-sys-unix"
1820 ,go-golang-org-x-sys-unix)
1821 ("go-github-com-sirupsen-logrus"
1822 ,go-github-com-sirupsen-logrus)
1823 ("go-golang-org-x-crypto-ssh-terminal"
1824 ,go-golang-org-x-crypto-ssh-terminal)))
1825 (arguments
1826 '(#:import-path "github.com/docker/distribution"
1827 #:phases
1828 (modify-phases %standard-phases
1829 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1830 (lambda* (#:key outputs #:allow-other-keys)
1831 (map (lambda (file)
1832 (make-file-writable file))
1833 (find-files
1834 (assoc-ref outputs "out")
1835 ".*\\.gz$"))
1836 #t)))))
1837 (home-page
1838 "https://github.com/docker/distribution")
1839 (synopsis "This package is Docker toolset to pack, ship, store, and
1840deliver content")
1841 (description "Docker Distribution is Docker toolset to pack, ship,
1842store, and deliver content. It's containe Docker Registry 2.0 and libraries
1843to interacting with distribution components.")
1844 (license license:asl2.0))))
01bcc94c
PAR
1845
1846(define-public go-github-com-docker-go-connections
1847 (let ((commit "3ede32e2033de7505e6500d6c868c2b9ed9f169d")
1848 (revision "0"))
1849 (package
1850 (name "go-github-com-docker-go-connections")
1851 (version (git-version "0.0.0" revision commit))
1852 (source
1853 (origin
1854 (method git-fetch)
1855 (uri (git-reference
1856 (url "https://github.com/docker/go-connections.git")
1857 (commit commit)))
1858 (file-name (git-file-name name version))
1859 (sha256
1860 (base32
1861 "0v1pkr8apwmhyzbjfriwdrs1ihlk6pw7izm57r24mf9jdmg3fyb0"))))
1862 (build-system go-build-system)
1863 (arguments
1864 '(#:import-path "github.com/docker/go-connections"))
1865 (home-page "https://github.com/docker/go-connections")
1866 (synopsis "Networking library for Go")
1867 (description
1868 "This packages provides a library to work with network connections in
1869the Go language. In particular it provides tools to deal with network address
1870translation (NAT), proxies, sockets, and transport layer security (TLS).")
1871 (license license:asl2.0))))
af132bcc
PAR
1872
1873(define-public go-github-com-docker-machine
1874 (let ((commit "7b7a141da84480342357c51838be142bf183b095")
1875 (revision "0"))
1876 (package
1877 (name "go-github-com-docker-machine")
1878 (version (git-version "0.0.0" revision commit))
1879 (source
1880 (origin
1881 (method git-fetch)
1882 (uri (git-reference
1883 (url "https://github.com/docker/machine.git")
1884 (commit commit)))
1885 (file-name (git-file-name name version))
1886 (sha256
1887 (base32
1888 "0bavk0lvs462yh0lnmnxi9psi5qv1x3nvzmd2b0drsahlp1gxi8s"))))
1889 (build-system go-build-system)
1890 (arguments
1891 '(#:import-path "github.com/docker/machine"))
1892 (home-page "https://github.com/docker/machine")
1893 (synopsis "Machine management for a container-centric world")
1894 (description
1895 "@dfn{Machine} lets you create Docker hosts on your computer, on
1896hosting providers, and inside your data center. It creates servers, installs
1897Docker on them, then configures the Docker client to talk to them.")
1898 (license license:asl2.0))))
d850e7a0
PAR
1899
1900(define-public go-github-com-gorhill-cronexpr
1901 (let ((commit "f0984319b44273e83de132089ae42b1810f4933b")
1902 (revision "0"))
1903 (package
1904 (name "go-github-com-gorhill-cronexpr")
1905 (version (git-version "0.0.0" revision commit))
1906 (source
1907 (origin
1908 (method git-fetch)
1909 (uri (git-reference
1910 (url "https://github.com/gorhill/cronexpr.git")
1911 (commit commit)))
1912 (file-name (git-file-name name version))
1913 (sha256
1914 (base32
1915 "0dphhhqy3i7265znv3m8n57l80dmaq6z4hsj5kgd87qd19z8x0l2"))))
1916 (build-system go-build-system)
1917 (arguments
1918 '(#:import-path "github.com/gorhill/cronexpr"))
1919 (home-page "https://github.com/gorhill/cronexpr")
1920 (synopsis "Cron expression parser in the Go language")
1921 (description
1922 "This package provides a cron expression parser in the Go language.
1923Given a cron expression and a time stamp, you can get the next time stamp
1924which satisfies the cron expression.")
1925 (license (list license:gpl3+
1926 license:asl2.0)))))
abd47216
PAR
1927
1928(define-public go-gopkg-in-check-v1
1929 (let ((commit "20d25e2804050c1cd24a7eea1e7a6447dd0e74ec")
1930 (revision "0"))
1931 (package
1932 (name "go-gopkg-in-check-v1")
1933 (version (git-version "0.0.0" revision commit))
1934 (source
1935 (origin
1936 (method git-fetch)
1937 (uri (git-reference
1938 (url "https://github.com/go-check/check")
1939 (commit commit)))
1940 (file-name (git-file-name name version))
1941 (sha256
1942 (base32
1943 "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np"))))
1944 (build-system go-build-system)
1945 (arguments
1946 '(#:import-path "gopkg.in/check.v1"))
1947 (home-page "https://gopkg.in/check.v1")
1948 (synopsis "Test framework for the Go language")
1949 (description
1950 "This package provides a test library for the Go language.")
1951 (license license:asl2.0))))
d2c5e912
PAR
1952
1953(define-public go-gopkg-in-yaml-v2
1954 (let ((commit "14227de293ca979cf205cd88769fe71ed96a97e2")
1955 (revision "0"))
1956 (package
1957 (name "go-gopkg-in-yaml-v2")
1958 (version (git-version "0.0.0" revision commit))
1959 (source
1960 (origin
1961 (method git-fetch)
1962 (uri (git-reference
1963 (url "https://gopkg.in/yaml.v2.git")
1964 (commit commit)))
1965 (file-name (git-file-name name version))
1966 (sha256
1967 (base32
1968 "038hnrjcnjygyi3qidfrkpkakis82qg381sr495d2s40g2dwlzah"))))
1969 (build-system go-build-system)
1970 (arguments
1971 '(#:import-path "gopkg.in/yaml.v2"))
1972 (native-inputs
1973 `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
1974 (home-page "https://gopkg.in/yaml.v2")
1975 (synopsis "YAML reader and writer for the Go language")
1976 (description
1977 "This package provides a Go library for encode and decode YAML
1978values.")
1979 (license license:asl2.0))))
3291be81
PN
1980
1981(define-public go-github-com-mattn-go-isatty
1982 (let ((commit "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c")
1983 (revision "0"))
1984 (package
1985 (name "go-github-com-mattn-go-isatty")
1986 (version (git-version "0.0.0" revision commit))
1987 (source
1988 (origin
1989 (method git-fetch)
1990 (uri (git-reference
1991 (url "https://github.com/mattn/go-isatty")
1992 (commit commit)))
1993 (file-name (git-file-name name version))
1994 (sha256
1995 (base32
1996 "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w"))))
1997 (build-system go-build-system)
1998 (arguments
1999 '(#:import-path "github.com/mattn/go-isatty"))
2000 (home-page "https://github.com/mattn/go-isatty")
2001 (synopsis "Provide @code{isatty} for Golang")
2002 (description "This package provides @code{isatty}, a Go module that can
2003tell you whether a file descriptor points to a terminal and the type of the
2004terminal.")
2005 (license license:expat))))
7601b4e4
PN
2006
2007(define-public go-github-com-mattn-go-colorable
2008 (let ((commit "efa589957cd060542a26d2dd7832fd6a6c6c3ade")
2009 (revision "0"))
2010 (package
2011 (name "go-github-com-mattn-go-colorable")
2012 (version (git-version "0.0.0" revision commit))
2013 (source
2014 (origin
2015 (method git-fetch)
2016 (uri (git-reference
2017 (url "https://github.com/mattn/go-colorable")
2018 (commit commit)))
2019 (file-name (git-file-name name version))
2020 (sha256
2021 (base32
2022 "0kshi4hvm0ayrsxqxy0599iv81kryhd2fn9lwjyczpj593cq069r"))))
2023 (build-system go-build-system)
2024 (native-inputs
2025 `(("go-github-com-mattn-go-isatty"
2026 ,go-github-com-mattn-go-isatty)))
2027 (arguments
2028 '(#:import-path "github.com/mattn/go-colorable"))
2029 (home-page "https://github.com/mattn/go-colorable")
2030 (synopsis "Handle ANSI color escapes on Windows")
2031 (description "This package provides @code{colorable}, a module that
2032makes it possible to handle ANSI color escapes on Windows.")
2033 (license license:expat))))
32cb1af6
PN
2034
2035(define-public go-github-com-mgutz-ansi
2036 (let ((commit "9520e82c474b0a04dd04f8a40959027271bab992")
2037 (revision "0"))
2038 (package
2039 (name "go-github-com-mgutz-ansi")
2040 (version (git-version "0.0.0" revision commit))
2041 (source
2042 (origin
2043 (method git-fetch)
2044 (uri (git-reference
2045 (url
2046 "https://github.com/mgutz/ansi")
2047 (commit commit)))
2048 (file-name (git-file-name name version))
2049 (sha256
2050 (base32
2051 "00bz22314j26736w1f0q4jy9d9dfaml17vn890n5zqy3cmvmww1j"))))
2052 (build-system go-build-system)
2053 (native-inputs
2054 `(("go-github-com-mattn-go-isatty"
2055 ,go-github-com-mattn-go-isatty)
2056 ("go-github-com-mattn-go-colorable"
2057 ,go-github-com-mattn-go-colorable)))
2058 (arguments
2059 '(#:import-path "github.com/mgutz/ansi"))
2060 (home-page "https://github.com/mgutz/ansi")
2061 (synopsis "Small, fast library to create ANSI colored strings and codes")
2062 (description "This package provides @code{ansi}, a Go module that can
2063generate ANSI colored strings.")
2064 (license license:expat))))
e25ddef5
PN
2065
2066(define-public go-github-com-aarzilli-golua
2067 (let ((commit "03fc4642d792b1f2bc5e7343b403cf490f8c501d")
2068 (revision "0"))
2069 (package
2070 (name "go-github-com-aarzilli-golua")
2071 (version (git-version "0.0.0" revision commit))
2072 (source
2073 (origin
2074 (method git-fetch)
2075 (uri (git-reference
2076 (url
2077 "https://github.com/aarzilli/golua")
2078 (commit commit)))
2079 (file-name (git-file-name name version))
2080 (sha256
2081 (base32
2082 "1d9hr29i36cza98afj3g6rs3l7xbkprwzz0blcxsr9dd7nak20di"))))
2083 (build-system go-build-system)
2084 (native-inputs
2085 `(("lua" ,lua)))
2086 (arguments
2087 `(#:unpack-path "github.com/aarzilli/golua"
2088 #:import-path "github.com/aarzilli/golua/lua"
2089 #:phases
2090 (modify-phases %standard-phases
2091 (replace 'build
2092 (lambda* (#:key import-path #:allow-other-keys)
2093 (invoke "go" "install"
2094 "-v" ; print the name of packages as they are compiled
2095 "-x" ; print each command as it is invoked
2096 "-ldflags=-s -w" ; strip the symbol table and debug
2097 "-tags" "llua" ; Latest Lua on Guix does not have a version number.
2098 import-path)))
2099 (replace 'check
2100 (lambda* (#:key import-path #:allow-other-keys)
2101 (invoke "go" "test"
2102 "-tags" "llua" ; Latest Lua on Guix does not have a version number.
2103 import-path))))))
2104 (home-page "https://github.com/aarzilli/golua")
2105 (synopsis "Go Bindings for the Lua C API")
2106 (description "This package provides @code{lua}, a Go module that can
2107run a Lua virtual machine.")
2108 (license license:expat))))