01de446ce060ed30409b1cb175073ae5ed5324c1
[jackhill/guix/guix.git] / gnu / packages / golang.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
3 ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
4 ;;; Copyright © 2016 Andy Wingo <wingo@igalia.com>
5 ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
6 ;;; Copyright © 2016, 2017 Petter <petter@mykolab.ch>
7 ;;; Copyright © 2016, 2017, 2019 Leo Famulari <leo@famulari.name>
8 ;;; Copyright © 2017 Sergei Trofimovich <slyfox@inbox.ru>
9 ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
10 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
11 ;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
12 ;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
13 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
14 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
15 ;;; Copyright @ 2018, 2019 Katherine Cox-Buday <cox.katherine.e@gmail.com>
16 ;;; Copyright @ 2019 Giovanni Biscuolo <g@xelera.eu>
17 ;;; Copyright @ 2019 Alex Griffin <a@ajgrf.com>
18 ;;;
19 ;;; This file is part of GNU Guix.
20 ;;;
21 ;;; GNU Guix is free software; you can redistribute it and/or modify it
22 ;;; under the terms of the GNU General Public License as published by
23 ;;; the Free Software Foundation; either version 3 of the License, or (at
24 ;;; your option) any later version.
25 ;;;
26 ;;; GNU Guix is distributed in the hope that it will be useful, but
27 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
28 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29 ;;; GNU General Public License for more details.
30 ;;;
31 ;;; You should have received a copy of the GNU General Public License
32 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
33
34 (define-module (gnu packages golang)
35 #:use-module ((guix licenses) #:prefix license:)
36 #:use-module (guix utils)
37 #:use-module (guix download)
38 #:use-module (guix git-download)
39 #:use-module (guix packages)
40 #:use-module (guix build-system gnu)
41 #:use-module (guix build-system trivial)
42 #:use-module (guix build-system go)
43 #:use-module (gnu packages admin)
44 #:use-module (gnu packages gcc)
45 #:use-module (gnu packages base)
46 #:use-module (gnu packages perl)
47 #:use-module (gnu packages pkg-config)
48 #:use-module (gnu packages pcre)
49 #:use-module (gnu packages lua)
50 #:use-module (gnu packages mp3)
51 #:use-module (gnu packages textutils)
52 #:use-module (gnu packages tls)
53 #:use-module (ice-9 match)
54 #:use-module (srfi srfi-1))
55
56 ;; According to https://golang.org/doc/install/gccgo, gccgo-4.8.2 includes a
57 ;; complete go-1.1.2 implementation, gccgo-4.9 includes a complete go-1.2
58 ;; implementation, and gccgo-5 a complete implementation of go-1.4. Ultimately
59 ;; we hope to build go-1.5+ with a bootstrap process using gccgo-5. As of
60 ;; go-1.5, go cannot be bootstrapped without go-1.4, so we need to use go-1.4 or
61 ;; gccgo-5. Mips is not officially supported, but it should work if it is
62 ;; bootstrapped.
63
64 (define-public go-1.4
65 (package
66 (name "go")
67 ;; The C-language bootstrap of Go:
68 ;; https://golang.org/doc/install/source#go14
69 (version "1.4-bootstrap-20171003")
70 (source (origin
71 (method url-fetch)
72 (uri (string-append "https://storage.googleapis.com/golang/"
73 name version ".tar.gz"))
74 (sha256
75 (base32
76 "0liybk5z00hizsb5ypkbhqcawnwwa6mkwgvjjg4y3jm3ndg5pzzl"))))
77 (build-system gnu-build-system)
78 (outputs '("out"
79 "doc"
80 "tests"))
81 (arguments
82 `(#:modules ((ice-9 match)
83 (guix build gnu-build-system)
84 (guix build utils)
85 (srfi srfi-1))
86 #:tests? #f ; Tests are run by the all.bash script.
87 ,@(if (string-prefix? "aarch64-linux" (or (%current-system)
88 (%current-target-system)))
89 '(#:system "armhf-linux")
90 '())
91 #:phases
92 (modify-phases %standard-phases
93 (delete 'configure)
94 (add-after 'patch-generated-file-shebangs 'chdir
95 (lambda _
96 (chdir "src")
97 #t))
98 (add-before 'build 'prebuild
99 (lambda* (#:key inputs outputs #:allow-other-keys)
100 (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
101 (ld (string-append (assoc-ref inputs "libc") "/lib"))
102 (loader (car (find-files ld "^ld-linux.+")))
103 (net-base (assoc-ref inputs "net-base"))
104 (tzdata-path
105 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
106 (output (assoc-ref outputs "out")))
107
108 ;; Removing net/ tests, which fail when attempting to access
109 ;; network resources not present in the build container.
110 (for-each delete-file
111 '("net/multicast_test.go" "net/parse_test.go"
112 "net/port_test.go"))
113
114 ;; Add libgcc to the RUNPATH.
115 (substitute* "cmd/go/build.go"
116 (("cgoldflags := \\[\\]string\\{\\}")
117 (string-append "cgoldflags := []string{"
118 "\"-rpath=" gcclib "\"}"))
119 (("ldflags := buildLdflags")
120 (string-append
121 "ldflags := buildLdflags\n"
122 "ldflags = append(ldflags, \"-r\")\n"
123 "ldflags = append(ldflags, \"" gcclib "\")\n")))
124
125 (substitute* "os/os_test.go"
126 (("/usr/bin") (getcwd))
127 (("/bin/pwd") (which "pwd")))
128
129 ;; Disable failing tests: these tests attempt to access
130 ;; commands or network resources which are neither available or
131 ;; necessary for the build to succeed.
132 (for-each
133 (match-lambda
134 ((file regex)
135 (substitute* file
136 ((regex all before test_name)
137 (string-append before "Disabled" test_name)))))
138 '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
139 ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
140 ("os/os_test.go" "(.+)(TestHostname.+)")
141 ("time/format_test.go" "(.+)(TestParseInSydney.+)")
142
143 ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
144 ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
145 ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
146 ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
147 ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
148 ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
149 ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
150 ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
151 ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")))
152
153 (substitute* "net/lookup_unix.go"
154 (("/etc/protocols") (string-append net-base "/etc/protocols")))
155 (substitute* "time/zoneinfo_unix.go"
156 (("/usr/share/zoneinfo/") tzdata-path))
157 (substitute* (find-files "cmd" "asm.c")
158 (("/lib/ld-linux.*\\.so\\.[0-9]") loader))
159 #t)))
160
161 (replace 'build
162 (lambda* (#:key inputs outputs #:allow-other-keys)
163 ;; FIXME: Some of the .a files are not bit-reproducible.
164 (let* ((output (assoc-ref outputs "out")))
165 (setenv "CC" (which "gcc"))
166 (setenv "GOOS" "linux")
167 (setenv "GOROOT" (dirname (getcwd)))
168 (setenv "GOROOT_FINAL" output)
169 (setenv "GO14TESTS" "1")
170 (invoke "sh" "all.bash"))))
171
172 (replace 'install
173 (lambda* (#:key outputs inputs #:allow-other-keys)
174 (let* ((output (assoc-ref outputs "out"))
175 (doc_out (assoc-ref outputs "doc"))
176 (bash (string-append (assoc-ref inputs "bash") "bin/bash"))
177 (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
178 (tests (string-append
179 (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
180 (mkdir-p tests)
181 (copy-recursively "../test" (string-append tests "/test"))
182 (delete-file-recursively "../test")
183 (mkdir-p docs)
184 (copy-recursively "../api" (string-append docs "/api"))
185 (delete-file-recursively "../api")
186 (copy-recursively "../doc" (string-append docs "/doc"))
187 (delete-file-recursively "../doc")
188
189 (for-each (lambda (file)
190 (let ((file (string-append "../" file)))
191 (install-file file docs)
192 (delete-file file)))
193 '("README" "CONTRIBUTORS" "AUTHORS" "PATENTS"
194 "LICENSE" "VERSION" "robots.txt"))
195 (copy-recursively "../" output)
196 #t))))))
197 (inputs
198 `(("tzdata" ,tzdata)
199 ("pcre" ,pcre)
200 ;; Building Go 1.10 with the Go 1.4 bootstrap, Thread Sanitizer from GCC
201 ;; 5 finds a data race during the the test suite of Go 1.10. With GCC 6,
202 ;; the race doesn't seem to be present:
203 ;; https://github.com/golang/go/issues/24046
204 ("gcc:lib" ,gcc-6 "lib")))
205 (native-inputs
206 `(("pkg-config" ,pkg-config)
207 ("which" ,which)
208 ("net-base" ,net-base)
209 ("perl" ,perl)))
210
211 (home-page "https://golang.org/")
212 (synopsis "Compiler and libraries for Go, a statically-typed language")
213 (description "Go, also commonly referred to as golang, is an imperative
214 programming language designed primarily for systems programming. Go is a
215 compiled, statically typed language in the tradition of C and C++, but adds
216 garbage collection, various safety features, and concurrent programming features
217 in the style of communicating sequential processes (@dfn{CSP}).")
218 (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux"))
219 (license license:bsd-3)))
220
221 (define-public go-1.11
222 (package
223 (inherit go-1.4)
224 (name "go")
225 (version "1.11.12")
226 (source
227 (origin
228 (method url-fetch)
229 (uri (string-append "https://storage.googleapis.com/golang/"
230 name version ".src.tar.gz"))
231 (sha256
232 (base32
233 "09k9zmq7hhgg0bf1y7rwa0kn7q1vkkr94cmg2iv9lq3najh5nykd"))))
234 (arguments
235 (substitute-keyword-arguments (package-arguments go-1.4)
236 ((#:phases phases)
237 `(modify-phases ,phases
238 (replace 'prebuild
239 (lambda* (#:key inputs outputs #:allow-other-keys)
240 (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
241 (ld (string-append (assoc-ref inputs "libc") "/lib"))
242 (loader (car (find-files ld "^ld-linux.+")))
243 (net-base (assoc-ref inputs "net-base"))
244 (tzdata-path
245 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
246 (output (assoc-ref outputs "out")))
247
248 (for-each delete-file
249 ;; Removing net/ tests, which fail when attempting to access
250 ;; network resources not present in the build container.
251 '("net/listen_test.go"
252 "net/parse_test.go"
253 "net/cgo_unix_test.go"
254 ;; A side effect of these test scripts is testing
255 ;; cgo. Attempts at using cgo flags and
256 ;; directives with these scripts as specified
257 ;; here (https://golang.org/cmd/cgo/) have not
258 ;; worked. The tests continue to state that they
259 ;; can not find crt1.o despite being present.
260 "cmd/go/testdata/script/list_compiled_imports.txt"
261 "cmd/go/testdata/script/mod_case_cgo.txt"
262 ;; https://github.com/golang/go/issues/24884
263 "os/user/user_test.go"))
264
265 (substitute* "os/os_test.go"
266 (("/usr/bin") (getcwd))
267 (("/bin/pwd") (which "pwd"))
268 (("/bin/sh") (which "sh")))
269
270 (substitute* "cmd/vendor/golang.org/x/sys/unix/syscall_unix_test.go"
271 (("/usr/bin") "/tmp"))
272
273 ;; Add libgcc to runpath
274 (substitute* "cmd/link/internal/ld/lib.go"
275 (("!rpath.set") "true"))
276 (substitute* "cmd/go/internal/work/gccgo.go"
277 (("cgoldflags := \\[\\]string\\{\\}")
278 (string-append "cgoldflags := []string{"
279 "\"-rpath=" gcclib "\""
280 "}"))
281 (("\"-lgcc_s\", ")
282 (string-append
283 "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
284 (substitute* "cmd/go/internal/work/gc.go"
285 (("ldflags = setextld\\(ldflags, compiler\\)")
286 (string-append
287 "ldflags = setextld(ldflags, compiler)\n"
288 "ldflags = append(ldflags, \"-r\")\n"
289 "ldflags = append(ldflags, \"" gcclib "\")\n")))
290
291 ;; Disable failing tests: these tests attempt to access
292 ;; commands or network resources which are neither available
293 ;; nor necessary for the build to succeed.
294 (for-each
295 (match-lambda
296 ((file regex)
297 (substitute* file
298 ((regex all before test_name)
299 (string-append before "Disabled" test_name)))))
300 '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
301 ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
302 ("os/os_test.go" "(.+)(TestHostname.+)")
303 ("time/format_test.go" "(.+)(TestParseInSydney.+)")
304 ("time/format_test.go" "(.+)(TestParseInLocation.+)")
305 ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
306 ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
307 ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
308 ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
309 ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
310 ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
311 ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
312 ("os/exec/exec_test.go" "(.+)(TestIgnorePipeErrorOnSuccess.+)")
313 ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
314 ("os/exec/exec_test.go" "(.+)(TestExtraFiles/areturn.+)")
315 ("cmd/go/go_test.go" "(.+)(TestCoverageWithCgo.+)")
316 ("cmd/go/go_test.go" "(.+)(TestTwoPkgConfigs.+)")
317 ("os/exec/exec_test.go" "(.+)(TestOutputStderrCapture.+)")
318 ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")
319 ("os/exec/exec_test.go" "(.+)(TestExtraFilesRace.+)")
320 ("net/lookup_test.go" "(.+)(TestLookupPort.+)")
321 ("syscall/exec_linux_test.go"
322 "(.+)(TestCloneNEWUSERAndRemapNoRootDisableSetgroups.+)")))
323
324 ;; fix shebang for testar script
325 ;; note the target script is generated at build time.
326 (substitute* "../misc/cgo/testcarchive/carchive_test.go"
327 (("#!/usr/bin/env") (string-append "#!" (which "env"))))
328
329 (substitute* "net/lookup_unix.go"
330 (("/etc/protocols") (string-append net-base "/etc/protocols")))
331 (substitute* "net/port_unix.go"
332 (("/etc/services") (string-append net-base "/etc/services")))
333 (substitute* "time/zoneinfo_unix.go"
334 (("/usr/share/zoneinfo/") tzdata-path))
335 (substitute* (find-files "cmd" "\\.go")
336 (("/lib(64)?/ld-linux.*\\.so\\.[0-9]") loader))
337 #t)))
338 (add-before 'build 'set-bootstrap-variables
339 (lambda* (#:key outputs inputs #:allow-other-keys)
340 ;; Tell the build system where to find the bootstrap Go.
341 (let ((go (assoc-ref inputs "go")))
342 (setenv "GOROOT_BOOTSTRAP" go)
343 (setenv "GOGC" "400")
344 #t)))
345 (replace 'build
346 (lambda* (#:key inputs outputs #:allow-other-keys)
347 ;; FIXME: Some of the .a files are not bit-reproducible.
348 (let* ((output (assoc-ref outputs "out")))
349 (setenv "CC" (which "gcc"))
350 (setenv "GOOS" "linux")
351 (setenv "GOROOT" (dirname (getcwd)))
352 (setenv "GOROOT_FINAL" output)
353 (setenv "CGO_ENABLED" "1")
354 (invoke "sh" "all.bash"))))
355
356 (replace 'install
357 ;; TODO: Most of this could be factorized with Go 1.4.
358 (lambda* (#:key outputs #:allow-other-keys)
359 (let* ((output (assoc-ref outputs "out"))
360 (doc_out (assoc-ref outputs "doc"))
361 (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
362 (src (string-append
363 (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
364 (delete-file-recursively "../pkg/bootstrap")
365 ;; Prevent installation of the build cache, which contains
366 ;; store references to most of the tools used to build Go and
367 ;; would unnecessarily increase the size of Go's closure if it
368 ;; was installed.
369 (delete-file-recursively "../pkg/obj")
370
371 (mkdir-p src)
372 (copy-recursively "../test" (string-append src "/test"))
373 (delete-file-recursively "../test")
374 (mkdir-p docs)
375 (copy-recursively "../api" (string-append docs "/api"))
376 (delete-file-recursively "../api")
377 (copy-recursively "../doc" (string-append docs "/doc"))
378 (delete-file-recursively "../doc")
379
380 (for-each
381 (lambda (file)
382 (let* ((filein (string-append "../" file))
383 (fileout (string-append docs "/" file)))
384 (copy-file filein fileout)
385 (delete-file filein)))
386 ;; Note the slightly different file names compared to 1.4.
387 '("README.md" "CONTRIBUTORS" "AUTHORS" "PATENTS"
388 "LICENSE" "VERSION" "CONTRIBUTING.md" "robots.txt"))
389
390 (copy-recursively "../" output)
391 #t)))))))
392 (native-inputs
393 `(("go" ,go-1.4)
394 ,@(match (%current-system)
395 ((or "armhf-linux" "aarch64-linux")
396 `(("gold" ,binutils-gold)))
397 (_ `()))
398 ,@(package-native-inputs go-1.4)))
399 (supported-systems %supported-systems)))
400
401
402 (define-public go-1.12
403 (package
404 (inherit go-1.4)
405 (name "go")
406 (version "1.12.7")
407 (source
408 (origin
409 (method url-fetch)
410 (uri (string-append "https://storage.googleapis.com/golang/"
411 name version ".src.tar.gz"))
412 (sha256
413 (base32
414 "04rvwj69gmw3bz8pw5pf10r21ar0pgpnswp15nkddf04dxyl9s4m"))))
415 (arguments
416 (substitute-keyword-arguments (package-arguments go-1.4)
417 ((#:phases phases)
418 `(modify-phases ,phases
419 (replace 'prebuild
420 (lambda* (#:key inputs outputs #:allow-other-keys)
421 (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
422 (ld (string-append (assoc-ref inputs "libc") "/lib"))
423 (loader (car (find-files ld "^ld-linux.+")))
424 (net-base (assoc-ref inputs "net-base"))
425 (tzdata-path
426 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
427 (output (assoc-ref outputs "out")))
428
429 ;; A side effect of these test scripts is testing
430 ;; cgo. Attempts at using cgo flags and directives with these
431 ;; scripts as specified here (https://golang.org/cmd/cgo/)
432 ;; have not worked. The tests continue to state that they can
433 ;; not find object files/headers despite being present.
434 (for-each
435 delete-file
436 '("cmd/go/testdata/script/mod_case_cgo.txt"
437 "cmd/go/testdata/script/list_find.txt"
438 "cmd/go/testdata/script/list_compiled_imports.txt"
439 "cmd/go/testdata/script/cgo_syso_issue29253.txt"))
440
441 (substitute* "os/os_test.go"
442 (("/usr/bin") (getcwd))
443 (("/bin/pwd") (which "pwd"))
444 (("/bin/sh") (which "sh")))
445
446 (substitute* "cmd/vendor/golang.org/x/sys/unix/syscall_unix_test.go"
447 (("/usr/bin") "/tmp"))
448
449 ;; Add libgcc to runpath
450 (substitute* "cmd/link/internal/ld/lib.go"
451 (("!rpath.set") "true"))
452 (substitute* "cmd/go/internal/work/gccgo.go"
453 (("cgoldflags := \\[\\]string\\{\\}")
454 (string-append "cgoldflags := []string{"
455 "\"-rpath=" gcclib "\""
456 "}"))
457 (("\"-lgcc_s\", ")
458 (string-append
459 "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
460 (substitute* "cmd/go/internal/work/gc.go"
461 (("ldflags = setextld\\(ldflags, compiler\\)")
462 (string-append
463 "ldflags = setextld(ldflags, compiler)\n"
464 "ldflags = append(ldflags, \"-r\")\n"
465 "ldflags = append(ldflags, \"" gcclib "\")\n")))
466
467 ;; Disable failing tests: these tests attempt to access
468 ;; commands or network resources which are neither available
469 ;; nor necessary for the build to succeed.
470 (for-each
471 (match-lambda
472 ((file regex)
473 (substitute* file
474 ((regex all before test_name)
475 (string-append before "Disabled" test_name)))))
476 '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
477 ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
478 ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPort.+)")
479 ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPortWithCancel.+)")
480 ;; 127.0.0.1 doesn't exist
481 ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPTR.+)")
482 ;; 127.0.0.1 doesn't exist
483 ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPTRWithCancel.+)")
484 ;; /etc/services doesn't exist
485 ("net/parse_test.go" "(.+)(TestReadLine.+)")
486 ("os/os_test.go" "(.+)(TestHostname.+)")
487 ;; The user's directory doesn't exist
488 ("os/os_test.go" "(.+)(TestUserHomeDir.+)")
489 ("time/format_test.go" "(.+)(TestParseInSydney.+)")
490 ("time/format_test.go" "(.+)(TestParseInLocation.+)")
491 ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
492 ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
493 ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
494 ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
495 ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
496 ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
497 ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
498 ("os/exec/exec_test.go" "(.+)(TestIgnorePipeErrorOnSuccess.+)")
499 ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
500 ("os/exec/exec_test.go" "(.+)(TestExtraFiles/areturn.+)")
501 ("cmd/go/go_test.go" "(.+)(TestCoverageWithCgo.+)")
502 ("cmd/go/go_test.go" "(.+)(TestTwoPkgConfigs.+)")
503 ("os/exec/exec_test.go" "(.+)(TestOutputStderrCapture.+)")
504 ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")
505 ("os/exec/exec_test.go" "(.+)(TestExtraFilesRace.+)")
506 ("net/lookup_test.go" "(.+)(TestLookupPort.+)")
507 ("syscall/exec_linux_test.go"
508 "(.+)(TestCloneNEWUSERAndRemapNoRootDisableSetgroups.+)")))
509
510 ;; fix shebang for testar script
511 ;; note the target script is generated at build time.
512 (substitute* "../misc/cgo/testcarchive/carchive_test.go"
513 (("#!/usr/bin/env") (string-append "#!" (which "env"))))
514
515 (substitute* "net/lookup_unix.go"
516 (("/etc/protocols") (string-append net-base "/etc/protocols")))
517 (substitute* "net/port_unix.go"
518 (("/etc/services") (string-append net-base "/etc/services")))
519 (substitute* "time/zoneinfo_unix.go"
520 (("/usr/share/zoneinfo/") tzdata-path))
521 (substitute* (find-files "cmd" "\\.go")
522 (("/lib(64)?/ld-linux.*\\.so\\.[0-9]") loader))
523 #t)))
524 (add-before 'build 'set-bootstrap-variables
525 (lambda* (#:key outputs inputs #:allow-other-keys)
526 ;; Tell the build system where to find the bootstrap Go.
527 (let ((go (assoc-ref inputs "go")))
528 (setenv "GOROOT_BOOTSTRAP" go)
529 (setenv "GOGC" "400")
530 #t)))
531 (replace 'build
532 (lambda* (#:key inputs outputs #:allow-other-keys)
533 ;; FIXME: Some of the .a files are not bit-reproducible.
534 (let* ((output (assoc-ref outputs "out")))
535 (setenv "CC" (which "gcc"))
536 (setenv "GOOS" "linux")
537 (setenv "GOROOT" (dirname (getcwd)))
538 (setenv "GOROOT_FINAL" output)
539 (setenv "CGO_ENABLED" "1")
540 (invoke "sh" "all.bash"))))
541
542 (replace 'install
543 ;; TODO: Most of this could be factorized with Go 1.4.
544 (lambda* (#:key outputs #:allow-other-keys)
545 (let* ((output (assoc-ref outputs "out"))
546 (doc_out (assoc-ref outputs "doc"))
547 (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
548 (src (string-append
549 (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
550 (delete-file-recursively "../pkg/bootstrap")
551 ;; Prevent installation of the build cache, which contains
552 ;; store references to most of the tools used to build Go and
553 ;; would unnecessarily increase the size of Go's closure if it
554 ;; was installed.
555 (delete-file-recursively "../pkg/obj")
556
557 (mkdir-p src)
558 (copy-recursively "../test" (string-append src "/test"))
559 (delete-file-recursively "../test")
560 (mkdir-p docs)
561 (copy-recursively "../api" (string-append docs "/api"))
562 (delete-file-recursively "../api")
563 (copy-recursively "../doc" (string-append docs "/doc"))
564 (delete-file-recursively "../doc")
565
566 (for-each
567 (lambda (file)
568 (let* ((filein (string-append "../" file))
569 (fileout (string-append docs "/" file)))
570 (copy-file filein fileout)
571 (delete-file filein)))
572 ;; Note the slightly different file names compared to 1.4.
573 '("README.md" "CONTRIBUTORS" "AUTHORS" "PATENTS"
574 "LICENSE" "VERSION" "CONTRIBUTING.md" "robots.txt"))
575
576 (copy-recursively "../" output)
577 #t)))))))
578 (native-inputs
579 `(("go" ,go-1.4)
580 ,@(match (%current-system)
581 ((or "armhf-linux" "aarch64-linux")
582 `(("gold" ,binutils-gold)))
583 (_ `()))
584 ,@(package-native-inputs go-1.4)))
585 (supported-systems %supported-systems)))
586
587 (define-public go go-1.12)
588
589 (define-public go-github-com-alsm-ioprogress
590 (let ((commit "063c3725f436e7fba0c8f588547bee21ffec7ac5")
591 (revision "0"))
592 (package
593 (name "go-github-com-alsm-ioprogress")
594 (version (git-version "0.0.0" revision commit))
595 (source (origin
596 (method git-fetch)
597 (uri (git-reference
598 (url "https://github.com/alsm/ioprogress.git")
599 (commit commit)))
600 (file-name (git-file-name name version))
601 (sha256
602 (base32
603 "10ym5qlq77nynmkxbk767f2hfwyxg2k7hrzph05hvgzv833dhivh"))))
604 (build-system go-build-system)
605 (arguments
606 '(#:import-path "github.com/alsm/ioprogress"))
607 (synopsis "Textual progress bars in Go")
608 (description "@code{ioprogress} is a Go library with implementations of
609 @code{io.Reader} and @code{io.Writer} that draws progress bars. The primary use
610 case for these are for command-line applications but alternate progress bar
611 writers can be supplied for alternate environments.")
612 (home-page "https://github.com/alsm/ioprogress")
613 (license license:expat))))
614
615 (define-public go-github-com-aki237-nscjar
616 (let ((commit "e2df936ddd6050d30dd90c7214c02b5019c42f06")
617 (revision "0"))
618 (package
619 (name "go-github-com-aki237-nscjar")
620 (version (git-version "0.0.0" revision commit))
621 (source (origin
622 (method git-fetch)
623 (uri (git-reference
624 (url "https://github.com/aki237/nscjar.git")
625 (commit commit)))
626 (file-name (git-file-name name version))
627 (sha256
628 (base32
629 "03y7zzq12qvhsq86lb06sgns8xrkblbn7i7wd886wk3zr5574b96"))))
630 (build-system go-build-system)
631 (arguments
632 '(#:import-path "github.com/aki237/nscjar"))
633 (synopsis "Handle Netscape / Mozilla cookies")
634 (description "@code{nscjar} is a Go library used to parse and output
635 Netscape/Mozilla's old-style cookie files. It also implements a simple cookie
636 jar struct to manage the cookies added to the cookie jar.")
637 (home-page "https://github.com/aki237/nscjar")
638 (license license:expat))))
639
640 (define-public go-github.com-jessevdk-go-flags
641 (package
642 (name "go-github.com-jessevdk-go-flags")
643 (version "1.3.0")
644 (source (origin
645 (method git-fetch)
646 (uri (git-reference
647 (url "https://github.com/jessevdk/go-flags")
648 (commit (string-append "v" version))))
649 (file-name (git-file-name name version))
650 (sha256
651 (base32
652 "1jk2k2l10lwrn1r3nxdvbs0yz656830j4khzirw8p4ahs7c5zz36"))))
653 (build-system go-build-system)
654 (arguments
655 '(#:import-path "github.com/jessevdk/go-flags"))
656 (synopsis "Go library for parsing command line arguments")
657 (description
658 "The @code{flags} package provides a command line option parser. The
659 functionality is similar to the go builtin @code{flag} package, but
660 @code{flags} provides more options and uses reflection to provide a succinct
661 way of specifying command line options.")
662 (home-page "https://github.com/jessevdk/go-flags")
663 (license license:bsd-3)))
664
665 (define-public go-gopkg.in-tomb.v2
666 (let ((commit "d5d1b5820637886def9eef33e03a27a9f166942c")
667 (revision "0"))
668 (package
669 (name "go-gopkg.in-tomb.v2")
670 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
671 (source (origin
672 (method git-fetch)
673 (uri (git-reference
674 (url "https://github.com/go-tomb/tomb.git")
675 (commit commit)))
676 (file-name (string-append name "-" version ".tar.gz"))
677 (sha256
678 (base32
679 "1sv15sri99szkdz1bkh0ir46w9n8prrwx5hfai13nrhkawfyfy10"))))
680 (build-system go-build-system)
681 (arguments
682 '(#:import-path "gopkg.in/tomb.v2"
683 #:phases
684 (modify-phases %standard-phases
685 (add-after 'unpack 'patch-source
686 (lambda _
687 ;; Add a missing % to fix the compilation of this test
688 (substitute* "src/gopkg.in/tomb.v2/tomb_test.go"
689 (("t.Fatalf\\(`Killf\\(\"BO%s")
690 "t.Fatalf(`Killf(\"BO%%s"))
691 #t)))))
692 (synopsis "@code{tomb} handles clean goroutine tracking and termination")
693 (description
694 "The @code{tomb} package handles clean goroutine tracking and
695 termination.")
696 (home-page "https://gopkg.in/tomb.v2")
697 (license license:bsd-3))))
698
699 (define-public go-github.com-jtolds-gls
700 (package
701 (name "go-github.com-jtolds-gls")
702 (version "4.20")
703 (source (origin
704 (method git-fetch)
705 (uri (git-reference
706 (url "https://github.com/jtolds/gls")
707 (commit (string-append "v" version))))
708 (file-name (git-file-name name version))
709 (sha256
710 (base32
711 "1k7xd2q2ysv2xsh373qs801v6f359240kx0vrl0ydh7731lngvk6"))))
712 (build-system go-build-system)
713 (arguments
714 '(#:import-path "github.com/jtolds/gls"))
715 (synopsis "@code{gls} provides Goroutine local storage")
716 (description
717 "The @code{gls} package provides a way to store a retrieve values
718 per-goroutine.")
719 (home-page "https://github.com/jtolds/gls")
720 (license license:expat)))
721
722 (define-public go-github-com-tj-docopt
723 (package
724 (name "go-github-com-tj-docopt")
725 (version "1.0.0")
726 (source (origin
727 (method git-fetch)
728 (uri (git-reference
729 (url "https://github.com/tj/docopt")
730 (commit (string-append "v" version))))
731 (file-name (git-file-name name version))
732 (sha256
733 (base32
734 "06h8hdg1mh3s78zqlr01g4si7k0f0g6pr7fj7lnvfg446hgc7080"))))
735 (build-system go-build-system)
736 (arguments
737 '(#:import-path "github.com/tj/docopt"))
738 (synopsis "Go implementation of docopt")
739 (description
740 "This library allows the user to define a command-line interface from a
741 program's help message rather than specifying it programmatically with
742 command-line parsers.")
743 (home-page "https://github.com/tj/docopt")
744 (license license:expat)))
745
746 (define-public go-github-com-hashicorp-hcl
747 (let ((commit "23c074d0eceb2b8a5bfdbb271ab780cde70f05a8")
748 (revision "0"))
749 (package
750 (name "go-github-com-hashicorp-hcl")
751 (version (git-version "0.0.0" revision commit))
752 (source (origin
753 (method git-fetch)
754 (uri (git-reference
755 (url "https://github.com/hashicorp/hcl")
756 (commit commit)))
757 (file-name (git-file-name name version))
758 (sha256
759 (base32
760 "0db4lpqb5m130rmfy3s3gjjf4dxllypmyrzxv6ggqhkmwmc7w4mc"))))
761 (build-system go-build-system)
762 (arguments
763 '(#:tests? #f
764 #:import-path "github.com/hashicorp/hcl"))
765 (synopsis "Go implementation of HashiCorp Configuration Language")
766 (description
767 "This package contains the main implementation of the @acronym{HCL,
768 HashiCorp Configuration Language}. HCL is designed to be a language for
769 expressing configuration which is easy for both humans and machines to read.")
770 (home-page "https://github.com/hashicorp/hcl")
771 (license license:mpl2.0))))
772
773 (define-public go-golang-org-x-tools
774 (let ((commit "8b927904ee0dec805c89aaf9172f4459296ed6e8")
775 (revision "0"))
776 (package
777 (name "go-golang-org-x-tools")
778 (version (git-version "0.1.3" revision commit))
779 (source (origin
780 (method git-fetch)
781 (uri (git-reference
782 (url "https://go.googlesource.com/tools")
783 (commit commit)))
784 (file-name (string-append "go.googlesource.com-tools-"
785 version "-checkout"))
786 (sha256
787 (base32
788 "0iinb70xhcjsddgi42ia1n745lx2ibnjdm6m2v666qrk3876vpck"))))
789 (build-system go-build-system)
790 (arguments
791 `(#:import-path "golang.org/x/tools"
792 ;; Source-only package
793 #:tests? #f
794 #:phases
795 (modify-phases %standard-phases
796 ;; Source-only package
797 (delete 'build))))
798 (synopsis "Tools that support the Go programming language")
799 (description "This package provides miscellaneous tools that support the
800 Go programming language.")
801 (home-page "https://go.googlesource.com/tools/")
802 (license license:bsd-3))))
803
804 (define-public go-golang-org-x-crypto
805 (let ((commit "b7391e95e576cacdcdd422573063bc057239113d")
806 (revision "3"))
807 (package
808 (name "go-golang-org-x-crypto")
809 (version (git-version "0.0.0" revision commit))
810 (source (origin
811 (method git-fetch)
812 (uri (git-reference
813 (url "https://go.googlesource.com/crypto")
814 (commit commit)))
815 (file-name (string-append "go.googlesource.com-crypto-"
816 version "-checkout"))
817 (sha256
818 (base32
819 "1jqfh81mhgwcc6b9l0bs6rb0707s01qpvn7896i5bsmig46lc7zm"))))
820 (build-system go-build-system)
821 (arguments
822 '(#:import-path "golang.org/x/crypto"
823 ;; Source-only package
824 #:tests? #f
825 #:phases
826 (modify-phases %standard-phases
827 ;; Source-only package
828 (delete 'build)
829 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
830 (lambda* (#:key outputs #:allow-other-keys)
831 (map (lambda (file)
832 (make-file-writable file))
833 (find-files
834 (string-append (assoc-ref outputs "out")
835 "/src/golang.org/x/crypto/ed25519/testdata")
836 ".*\\.gz$"))
837 #t)))))
838 (propagated-inputs
839 `(("go-golang-org-x-sys-cpu" ,go-golang-org-x-sys-cpu)))
840 (synopsis "Supplementary cryptographic libraries in Go")
841 (description "This package provides supplementary cryptographic libraries
842 for the Go language.")
843 (home-page "https://go.googlesource.com/crypto/")
844 (license license:bsd-3))))
845
846 (define-public go-golang-org-x-crypto-bcrypt
847 (let ((commit "b7391e95e576cacdcdd422573063bc057239113d")
848 (revision "3"))
849 (package
850 (name "go-golang-org-x-crypto-bcrypt")
851 (version (git-version "0.0.0" revision commit))
852 (source (origin
853 (method git-fetch)
854 (uri (git-reference
855 (url "https://go.googlesource.com/crypto")
856 (commit commit)))
857 (file-name (string-append "go.googlesource.com-crypto-"
858 version "-checkout"))
859 (sha256
860 (base32
861 "1jqfh81mhgwcc6b9l0bs6rb0707s01qpvn7896i5bsmig46lc7zm"))))
862 (build-system go-build-system)
863 (arguments
864 `(#:import-path "golang.org/x/crypto/bcrypt"
865 #:unpack-path "golang.org/x/crypto"))
866 (synopsis "Bcrypt in Go")
867 (description "This package provides a Go implementation of the bcrypt
868 password hashing function.")
869 (home-page "https://go.googlesource.com/crypto/")
870 (license license:bsd-3))))
871
872 (define-public go-golang-org-x-crypto-blowfish
873 (package
874 (inherit go-golang-org-x-crypto-bcrypt)
875 (name "go-golang-org-x-crypto-blowfish")
876 (arguments
877 `(#:import-path "golang.org/x/crypto/blowfish"
878 #:unpack-path "golang.org/x/crypto"))
879 (synopsis "Blowfish in Go")
880 (description "This package provides a Go implementation of the Blowfish
881 symmetric-key block cipher.")))
882
883 (define-public go-golang-org-x-crypto-pbkdf2
884 (package
885 (inherit go-golang-org-x-crypto-bcrypt)
886 (name "go-golang-org-x-crypto-pbkdf2")
887 (arguments
888 `(#:import-path "golang.org/x/crypto/pbkdf2"
889 #:unpack-path "golang.org/x/crypto"))
890 (synopsis "PBKDF2 in Go")
891 (description "This package provides a Go implementation of the PBKDF2 key
892 derivation function.")))
893
894 (define-public go-golang-org-x-crypto-tea
895 (package
896 (inherit go-golang-org-x-crypto-bcrypt)
897 (name "go-golang-org-x-crypto-tea")
898 (arguments
899 `(#:import-path "golang.org/x/crypto/tea"
900 #:unpack-path "golang.org/x/crypto"))
901 (synopsis "Tiny Encryption Algorithm (TEA) in Go")
902 (description "This package provides a Go implementation of the Tiny Encryption
903 Algorithm (TEA) block cipher.")))
904
905 (define-public go-golang-org-x-crypto-salsa20
906 (package
907 (inherit go-golang-org-x-crypto-bcrypt)
908 (name "go-golang-org-x-crypto-salsa20")
909 (arguments
910 `(#:import-path "golang.org/x/crypto/salsa20"
911 #:unpack-path "golang.org/x/crypto"))
912 (synopsis "Salsa20 in Go")
913 (description "This package provides a Go implementation of the Salsa20
914 stream cipher.")))
915
916 (define-public go-golang-org-x-crypto-cast5
917 (package
918 (inherit go-golang-org-x-crypto-bcrypt)
919 (name "go-golang-org-x-crypto-cast5")
920 (arguments
921 `(#:import-path "golang.org/x/crypto/cast5"
922 #:unpack-path "golang.org/x/crypto"))
923 (synopsis "Cast5 in Go")
924 (description "This package provides a Go implementation of the Cast5
925 symmetric-key block cipher.")))
926
927 (define-public go-golang-org-x-crypto-twofish
928 (package
929 (inherit go-golang-org-x-crypto-bcrypt)
930 (name "go-golang-org-x-crypto-twofish")
931 (arguments
932 `(#:import-path "golang.org/x/crypto/twofish"
933 #:unpack-path "golang.org/x/crypto"))
934 (synopsis "Twofish in Go")
935 (description "This package provides a Go implementation of the Twofish
936 symmetric-key block cipher.")))
937
938 (define-public go-golang-org-x-crypto-xtea
939 (package
940 (inherit go-golang-org-x-crypto-bcrypt)
941 (name "go-golang-org-x-crypto-xtea")
942 (arguments
943 `(#:import-path "golang.org/x/crypto/xtea"
944 #:unpack-path "golang.org/x/crypto"))
945 (synopsis "eXtended Tiny Encryption Algorithm (XTEA) in Go")
946 (description "This package provides a Go implementation of the eXtended
947 Tiny Encryption Algorithm (XTEA) block cipher.")))
948
949 (define-public go-golang-org-x-crypto-ed25519
950 (package
951 (inherit go-golang-org-x-crypto-bcrypt)
952 (name "go-golang-org-x-crypto-ed25519")
953 (arguments
954 `(#:import-path "golang.org/x/crypto/ed25519"
955 #:unpack-path "golang.org/x/crypto"
956 #:phases
957 (modify-phases %standard-phases
958 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
959 (lambda* (#:key outputs #:allow-other-keys)
960 (map (lambda (file)
961 (make-file-writable file))
962 (find-files
963 (string-append (assoc-ref outputs "out")
964 "/src/golang.org/x/crypto/ed25519/testdata")
965 ".*\\.gz$"))
966 #t)))))
967 (synopsis "ED25519 in Go")
968 (description "This package provides a Go implementation of the ED25519
969 signature algorithm.")))
970
971 (define-public go-golang-org-x-crypto-ripemd160
972 (package
973 (inherit go-golang-org-x-crypto-bcrypt)
974 (name "go-golang-org-x-crypto-ripemd160")
975 (arguments
976 (substitute-keyword-arguments (package-arguments go-golang-org-x-crypto-bcrypt)
977 ((#:import-path _)
978 "golang.org/x/crypto/ripemd160")))
979 (synopsis "RIPEMD-160 in Go")
980 (description "This package provides a Go implementation of the RIPEMD-160
981 hash algorithm.")))
982
983 (define-public go-golang-org-x-crypto-blake2s
984 (package
985 (inherit go-golang-org-x-crypto-bcrypt)
986 (name "go-golang-org-x-crypto-blake2s")
987 (arguments
988 (substitute-keyword-arguments (package-arguments go-golang-org-x-crypto-bcrypt)
989 ((#:import-path _)
990 "golang.org/x/crypto/blake2s")))
991 (propagated-inputs
992 `(("go-golang-org-x-sys-cpu" ,go-golang-org-x-sys-cpu)))
993 (synopsis "BLAKE2s in Go")
994 (description "This package provides a Go implementation of the BLAKE2s
995 hash algorithm.")))
996
997 (define-public go-golang-org-x-crypto-sha3
998 (package
999 (inherit go-golang-org-x-crypto-bcrypt)
1000 (name "go-golang-org-x-crypto-sha3")
1001 (arguments
1002 (substitute-keyword-arguments (package-arguments go-golang-org-x-crypto-bcrypt)
1003 ((#:import-path _)
1004 "golang.org/x/crypto/sha3")))
1005 (synopsis "SHA-3 in Go")
1006 (description "This package provides a Go implementation of the SHA-3
1007 fixed-output-length hash functions and the SHAKE variable-output-length hash
1008 functions defined by FIPS-202.")))
1009
1010 (define-public go-golang-org-x-net-ipv4
1011 (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
1012 (revision "3"))
1013 (package
1014 (name "go-golang-org-x-net-ipv4")
1015 (version (git-version "0.0.0" revision commit))
1016 (source (origin
1017 (method git-fetch)
1018 (uri (git-reference
1019 (url "https://go.googlesource.com/net")
1020 (commit commit)))
1021 (file-name (git-file-name name version))
1022 (sha256
1023 (base32
1024 "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
1025 (build-system go-build-system)
1026 (arguments
1027 `(#:import-path "golang.org/x/net/ipv4"
1028 #:unpack-path "golang.org/x/net"))
1029 (propagated-inputs
1030 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
1031 (synopsis "Go IPv4 support")
1032 (description "This package provides @code{ipv4}, which implements IP-level
1033 socket options for the Internet Protocol version 4.")
1034 (home-page "https://go.googlesource.com/net")
1035 (license license:bsd-3))))
1036
1037 (define-public go-golang-org-x-net-bpf
1038 (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
1039 (revision "3"))
1040 (package
1041 (name "go-golang-org-x-net-bpf")
1042 (version (git-version "0.0.0" revision commit))
1043 (source (origin
1044 (method git-fetch)
1045 (uri (git-reference
1046 (url "https://go.googlesource.com/net")
1047 (commit commit)))
1048 (file-name (string-append "go.googlesource.com-net-"
1049 version "-checkout"))
1050 (sha256
1051 (base32
1052 "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
1053 (build-system go-build-system)
1054 (arguments
1055 `(#:import-path "golang.org/x/net/bpf"
1056 #:unpack-path "golang.org/x/net"))
1057 (propagated-inputs
1058 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
1059 (synopsis "Berkeley Packet Filters (BPF) in Go")
1060 (description "This package provides a Go implementation of the Berkeley
1061 Packet Filter (BPF) virtual machine.")
1062 (home-page "https://go.googlesource.com/net/")
1063 (license license:bsd-3))))
1064
1065 (define-public go-golang-org-x-net-context
1066 (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
1067 (revision "3"))
1068 (package
1069 (name "go-golang-org-x-net-context")
1070 (version (git-version "0.0.0" revision commit))
1071 (source (origin
1072 (method git-fetch)
1073 (uri (git-reference
1074 (url "https://go.googlesource.com/net")
1075 (commit commit)))
1076 (file-name (string-append "go.googlesource.com-net-"
1077 version "-checkout"))
1078 (sha256
1079 (base32
1080 "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
1081 (build-system go-build-system)
1082 (arguments
1083 `(#:import-path "golang.org/x/net/context"
1084 #:unpack-path "golang.org/x/net"))
1085 (synopsis "Golang Context type")
1086 (description "This package provides @code{context}, which defines the
1087 Context type, which carries deadlines, cancellation signals, and other
1088 request-scoped values across API boundaries and between processes.")
1089 (home-page "https://go.googlesource.com/net/")
1090 (license license:bsd-3))))
1091
1092 (define-public go-golang-org-x-net-internal-socks
1093 (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
1094 (revision "3"))
1095 (package
1096 (name "go-golang-org-x-net-internal-socks")
1097 (version (git-version "0.0.0" revision commit))
1098 (source (origin
1099 (method git-fetch)
1100 (uri (git-reference
1101 (url "https://go.googlesource.com/net")
1102 (commit commit)))
1103 (file-name (string-append "go.googlesource.com-net-"
1104 version "-checkout"))
1105 (sha256
1106 (base32
1107 "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
1108 (build-system go-build-system)
1109 (arguments
1110 `(#:import-path "golang.org/x/net/internal/socks"
1111 #:unpack-path "golang.org/x/net"))
1112 (synopsis "")
1113 (description "")
1114 (home-page "https://go.googlesource.com/net/")
1115 (license license:bsd-3))))
1116
1117 (define-public go-golang-org-x-net-internal-socket
1118 (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
1119 (revision "3"))
1120 (package
1121 (name "go-golang-org-x-net-internal-socket")
1122 (version (git-version "0.0.0" revision commit))
1123 (source (origin
1124 (method git-fetch)
1125 (uri (git-reference
1126 (url "https://go.googlesource.com/net")
1127 (commit commit)))
1128 (file-name (string-append "go.googlesource.com-net-"
1129 version "-checkout"))
1130 (sha256
1131 (base32
1132 "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
1133 (build-system go-build-system)
1134 (arguments
1135 `(#:import-path "golang.org/x/net/internal/socket"
1136 #:unpack-path "golang.org/x/net"))
1137 (propagated-inputs
1138 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
1139 (synopsis "")
1140 (description "")
1141 (home-page "https://go.googlesource.com/net/")
1142 (license license:bsd-3))))
1143
1144 (define-public go-golang-org-x-net-internal-iana
1145 (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
1146 (revision "3"))
1147 (package
1148 (name "go-golang-org-x-net-internal-iana")
1149 (version (git-version "0.0.0" revision commit))
1150 (source (origin
1151 (method git-fetch)
1152 (uri (git-reference
1153 (url "https://go.googlesource.com/net")
1154 (commit commit)))
1155 (file-name (string-append "go.googlesource.com-net-"
1156 version "-checkout"))
1157 (sha256
1158 (base32
1159 "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
1160 (build-system go-build-system)
1161 (arguments
1162 `(#:import-path "golang.org/x/net/internal/iana"
1163 #:unpack-path "golang.org/x/net"))
1164 (synopsis "Go support for assigned numbers (IANA)")
1165 (description "This package provides @code{iana}, which provides protocol
1166 number resources managed by the Internet Assigned Numbers Authority (IANA).")
1167 (home-page "https://go.googlesource.com/net/")
1168 (license license:bsd-3))))
1169
1170 (define-public go-golang-org-x-net-ipv6
1171 (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
1172 (revision "3"))
1173 (package
1174 (name "go-golang-org-x-net-ipv6")
1175 (version (git-version "0.0.0" revision commit))
1176 (source (origin
1177 (method git-fetch)
1178 (uri (git-reference
1179 (url "https://go.googlesource.com/net")
1180 (commit commit)))
1181 (file-name (string-append "go.googlesource.com-net-"
1182 version "-checkout"))
1183 (sha256
1184 (base32
1185 "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
1186 (build-system go-build-system)
1187 (arguments
1188 `(#:import-path "golang.org/x/net/ipv6"
1189 #:unpack-path "golang.org/x/net"))
1190 (propagated-inputs
1191 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
1192 (synopsis "Go IPv6 support")
1193 (description "This package provides @code{ipv6}, which implements
1194 IP-level socket options for the Internet Protocol version 6.")
1195 (home-page "https://go.googlesource.com/net")
1196 (license license:bsd-3))))
1197
1198 (define-public go-golang-org-x-net-proxy
1199 (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
1200 (revision "3"))
1201 (package
1202 (name "go-golang-org-x-net-proxy")
1203 (version (git-version "0.0.0" revision commit))
1204 (source (origin
1205 (method git-fetch)
1206 (uri (git-reference
1207 (url "https://go.googlesource.com/net")
1208 (commit commit)))
1209 (file-name (string-append "go.googlesource.com-net-"
1210 version "-checkout"))
1211 (sha256
1212 (base32
1213 "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
1214 (build-system go-build-system)
1215 (arguments
1216 `(#:import-path "golang.org/x/net/proxy"
1217 #:unpack-path "golang.org/x/net/"))
1218 (synopsis "Go support for network proxies")
1219 (description "This package provides @code{proxy}, which provides support
1220 for a variety of protocols to proxy network data.")
1221 (home-page "https://go.googlesource.com/net")
1222 (license license:bsd-3))))
1223
1224 (define-public go-golang-org-x-sys-unix
1225 (let ((commit "04f50cda93cbb67f2afa353c52f342100e80e625")
1226 (revision "4"))
1227 (package
1228 (name "go-golang-org-x-sys-unix")
1229 (version (git-version "0.0.0" revision commit))
1230 (source (origin
1231 (method git-fetch)
1232 (uri (git-reference
1233 (url "https://go.googlesource.com/sys")
1234 (commit commit)))
1235 (file-name (git-file-name name version))
1236 (sha256
1237 (base32
1238 "0hmfsz9y1ingwsn482hlzzmzs7kr3cklm0ana0mbdk70isw2bxnw"))))
1239 (build-system go-build-system)
1240 (arguments
1241 `(#:import-path "golang.org/x/sys/unix"
1242 #:unpack-path "golang.org/x/sys"))
1243 (synopsis "Go support for low-level system interaction")
1244 (description "This package provides @code{unix}, which offers Go support
1245 for low-level interaction with the operating system.")
1246 (home-page "https://go.googlesource.com/sys")
1247 (license license:bsd-3))))
1248
1249 (define-public go-golang-org-x-sys-cpu
1250 (package
1251 (inherit go-golang-org-x-sys-unix)
1252 (name "go-golang-org-x-sys-cpu")
1253 (arguments
1254 '(#:import-path "golang.org/x/sys/cpu"
1255 #:unpack-path "golang.org/x/sys"))
1256 (synopsis "CPU feature detection")
1257 (description "Thi spackage provides @code{cpu}, which offers tools for CPU
1258 feature detection in Go.")))
1259
1260 (define-public go-golang-org-x-text-encoding
1261 (package
1262 (name "go-golang-org-x-text-encoding")
1263 (version "0.3.2")
1264 (source (origin
1265 (method git-fetch)
1266 (uri (git-reference
1267 (url "https://go.googlesource.com/text")
1268 (commit (string-append "v" version))))
1269 (file-name (string-append "go.googlesource.com-text-"
1270 version "-checkout"))
1271 (sha256
1272 (base32
1273 "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"))))
1274 (build-system go-build-system)
1275 (arguments
1276 `(#:import-path "golang.org/x/text/encoding"
1277 #:unpack-path "golang.org/x/text"))
1278 (synopsis "Interface for character encodings for conversion to and from
1279 UTF-8")
1280 (description "This package defines an interface for character encodings.
1281 Specific implementations of encoding for CJK text as well as simple character
1282 encodings are provided in subpackages.")
1283 (home-page "https://go.googlesource.com/text")
1284 (license license:bsd-3)))
1285
1286 (define-public go-golang-org-x-text-transform
1287 (package
1288 (inherit go-golang-org-x-text-encoding)
1289 (name "go-golang-org-x-text-transform")
1290 (arguments
1291 `(#:import-path "golang.org/x/text/transform"
1292 #:unpack-path "golang.org/x/text"))
1293 (synopsis "Go text transformation")
1294 (description "This package provides @code{transform}, which provides
1295 reader and writer wrappers that transform the bytes passing through. Example
1296 transformations provided by other packages include normalization and conversion
1297 between character sets.")))
1298
1299 (define-public go-golang-org-x-text-unicode-norm
1300 (package
1301 (inherit go-golang-org-x-text-encoding)
1302 (name "go-golang-org-x-text-unicode-norm")
1303 (arguments
1304 `(#:import-path "golang.org/x/text/unicode/norm"
1305 #:unpack-path "golang.org/x/text"))
1306 (synopsis "Unicode normalization in Go")
1307 (description "This package provides @code{norm}, which contains types and
1308 functions for normalizing Unicode strings.")))
1309
1310 (define-public go-golang-org-x-time-rate
1311 (let ((commit "6dc17368e09b0e8634d71cac8168d853e869a0c7")
1312 (revision "1"))
1313 (package
1314 (name "go-golang-org-x-time-rate")
1315 (version (git-version "0.0.0" revision commit))
1316 (source (origin
1317 (method git-fetch)
1318 (uri (git-reference
1319 (url "https://go.googlesource.com/time")
1320 (commit commit)))
1321 (file-name (git-file-name name version))
1322 (sha256
1323 (base32
1324 "1fx4cf5fpdz00g3c7vxzy92hdcg0vh4yqw00qp5s52j72qixynbk"))))
1325 (build-system go-build-system)
1326 (arguments
1327 `(#:import-path "golang.org/x/time/rate"
1328 #:unpack-path "golang.org/x/time"))
1329 (propagated-inputs
1330 `(("go-golang-org-x-net-context" ,go-golang-org-x-net-context)))
1331 (synopsis "Rate limiting in Go")
1332 (description "This package provides @{rate}, which implements rate
1333 limiting in Go.")
1334 (home-page "https://godoc.org/golang.org/x/time/rate")
1335 (license license:bsd-3))))
1336
1337 (define-public go-golang-org-x-crypto-ssh-terminal
1338 (package
1339 (inherit go-golang-org-x-crypto-bcrypt)
1340 (name "go-golang-org-x-crypto-ssh-terminal")
1341 (inputs
1342 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
1343 (arguments
1344 `(#:import-path "golang.org/x/crypto/ssh/terminal"
1345 #:unpack-path "golang.org/x/crypto"))
1346 (synopsis "Terminal functions for Go")
1347 (description "This package provides @{terminal}, which implements support
1348 functions for dealing with terminals, as commonly found on UNIX systems.")))
1349
1350 (define-public go-github-com-burntsushi-toml
1351 (package
1352 (name "go-github-com-burntsushi-toml")
1353 (version "0.3.1")
1354 (source
1355 (origin
1356 (method git-fetch)
1357 (uri (git-reference
1358 (url "https://github.com/BurntSushi/toml.git")
1359 (commit (string-append "v" version))))
1360 (file-name (git-file-name name version))
1361 (sha256
1362 (base32
1363 "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6"))))
1364 (build-system go-build-system)
1365 (arguments
1366 '(#:import-path "github.com/BurntSushi/toml"))
1367 (home-page "https://github.com/BurntSushi/toml")
1368 (synopsis "Toml parser and encoder for Go")
1369 (description "This package is toml parser and encoder for Go. The interface
1370 is similar to Go's standard library @code{json} and @code{xml} package.")
1371 (license license:expat)))
1372
1373 (define-public go-github-com-getsentry-raven-go
1374 (let ((commit "5c24d5110e0e198d9ae16f1f3465366085001d92")
1375 (revision "0"))
1376 (package
1377 (name "go-github-com-getsentry-raven-go")
1378 (version (git-version "0.2.0" revision commit))
1379 (source
1380 (origin
1381 (method git-fetch)
1382 (uri (git-reference
1383 (url "https://github.com/getsentry/raven-go.git")
1384 (commit commit)))
1385 (file-name (git-file-name name version))
1386 (sha256
1387 (base32
1388 "0lvc376sq8r8jhy2v1m6rf1wyld61pvbk0x6j9xpg56ivqy69xs7"))))
1389 (build-system go-build-system)
1390 (arguments
1391 '(#:import-path "github.com/getsentry/raven-go"))
1392 (propagated-inputs
1393 `(("go-github-com-certifi-gocertifi" ,go-github-com-certifi-gocertifi)
1394 ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)))
1395 (home-page "https://github.com/getsentry/raven-go")
1396 (synopsis "Sentry client in Go")
1397 (description "This package is a Go client API for the Sentry event/error
1398 logging system.")
1399 (license license:bsd-3))))
1400
1401 (define-public go-github-com-hashicorp-go-version
1402 (let ((commit
1403 "03c5bf6be031b6dd45afec16b1cf94fc8938bc77")
1404 (revision "0"))
1405 (package
1406 (name "go-github-com-hashicorp-go-version")
1407 (version (git-version "0.0.0" revision commit))
1408 (source
1409 (origin
1410 (method git-fetch)
1411 (uri (git-reference
1412 (url "https://github.com/hashicorp/go-version.git")
1413 (commit commit)))
1414 (file-name (git-file-name name version))
1415 (sha256
1416 (base32
1417 "0sjq57gpfznaqdrbyb2p0bn90g9h661cvr0jrk6ngags4pbw14ik"))))
1418 (build-system go-build-system)
1419 (arguments
1420 '(#:import-path "github.com/hashicorp/go-version"))
1421 (home-page
1422 "https://github.com/hashicorp/go-version")
1423 (synopsis "Go library for parsing and verifying versions and version
1424 constraints")
1425 (description "This package is a library for parsing versions and version
1426 constraints, and verifying versions against a set of constraints. It can sort
1427 a collection of versions properly, handles prerelease/beta versions, can
1428 increment versions.")
1429 (license license:mpl2.0))))
1430
1431 (define-public go-github-com-jpillora-backoff
1432 (let ((commit
1433 "06c7a16c845dc8e0bf575fafeeca0f5462f5eb4d")
1434 (revision "0"))
1435 (package
1436 (name "go-github-com-jpillora-backoff")
1437 (version (git-version "0.0.0" revision commit))
1438 (source
1439 (origin
1440 (method git-fetch)
1441 (uri (git-reference
1442 (url "https://github.com/jpillora/backoff.git")
1443 (commit commit)))
1444 (file-name (git-file-name name version))
1445 (sha256
1446 (base32
1447 "0xhvxr7bm47czdc5hy3kl508z3y4j91i2jm7vg774i52zych6k4l"))))
1448 (build-system go-build-system)
1449 (arguments
1450 '(#:import-path "github.com/jpillora/backoff"))
1451 (home-page "https://github.com/jpillora/backoff")
1452 (synopsis "Simple exponential backoff counter in Go")
1453 (description "This package is a simple exponential backoff counter in
1454 Go.")
1455 (license license:expat))))
1456
1457 (define-public go-github-com-stretchr-testify
1458 (let ((commit
1459 "b1f989447a57594c728884458a39abf3a73447f7")
1460 (revision "0"))
1461 (package
1462 (name "go-github-com-stretchr-testify")
1463 (version (git-version "1.1.4" revision commit))
1464 (source
1465 (origin
1466 (method git-fetch)
1467 (uri (git-reference
1468 (url "https://github.com/stretchr/testify.git")
1469 (commit commit)))
1470 (file-name (git-file-name name version))
1471 (sha256
1472 (base32
1473 "0p0gkqzh2p8r5g0rxm885ljl7ghih7h7hx9w562imx5ka0vdgixv"))))
1474 (build-system go-build-system)
1475 (arguments
1476 '(#:import-path "github.com/stretchr/testify"))
1477 (home-page "https://github.com/stretchr/testify")
1478 (synopsis "Go helper library for tests and invariant checking")
1479 (description "This package provide many tools for testifying that your
1480 code will behave as you intend.
1481
1482 Features include:
1483 @itemize
1484 @item Easy assertions
1485 @item Mocking
1486 @item HTTP response trapping
1487 @item Testing suite interfaces and functions.
1488 @end itemize")
1489 (license license:expat))))
1490
1491 (define-public go-github-com-tevino-abool
1492 (let ((commit
1493 "3c25f2fe7cd0ef3eabefce1d90efd69a65d35b12")
1494 (revision "0"))
1495 (package
1496 (name "go-github-com-tevino-abool")
1497 (version (git-version "0.0.0" revision commit))
1498 (source
1499 (origin
1500 (method git-fetch)
1501 (uri (git-reference
1502 (url "https://github.com/tevino/abool.git")
1503 (commit commit)))
1504 (file-name (git-file-name name version))
1505 (sha256
1506 (base32
1507 "1wxqrclxk93q0aj15z596dx2y57x9nkhi64nbrr5cxnhxn8vwixm"))))
1508 (build-system go-build-system)
1509 (arguments
1510 '(#:import-path "github.com/tevino/abool"))
1511 (home-page "https://github.com/tevino/abool")
1512 (synopsis "Atomic boolean library for Go code")
1513 (description "This package is atomic boolean library for Go code,
1514 optimized for performance yet simple to use.")
1515 (license license:expat))))
1516
1517 (define-public go-github-com-blang-semver
1518 (let ((commit "60ec3488bfea7cca02b021d106d9911120d25fe9")
1519 (revision "0"))
1520 (package
1521 (name "go-github-com-blang-semver")
1522 (version (git-version "0.0.0" revision commit))
1523 (source
1524 (origin
1525 (method git-fetch)
1526 (uri (git-reference
1527 (url "https://github.com/blang/semver.git")
1528 (commit commit)))
1529 (file-name (git-file-name name version))
1530 (sha256
1531 (base32
1532 "19pli07y5592g4dyjyj0jq5rn548vc3fz0qg3624vm1j5828p1c2"))))
1533 (build-system go-build-system)
1534 (arguments
1535 '(#:import-path "github.com/blang/semver"))
1536 (home-page "https://github.com/blang/semver")
1537 (synopsis "Semantic versioning library written in Go")
1538 (description "Semver is a library for Semantic versioning written in Go.")
1539 (license license:expat))))
1540
1541 (define-public go-github-com-emicklei-go-restful
1542 (let ((commit "89ef8af493ab468a45a42bb0d89a06fccdd2fb22")
1543 (revision "0"))
1544 (package
1545 (name "go-github-com-emicklei-go-restful")
1546 (version (git-version "0.0.0" revision commit))
1547 (source
1548 (origin
1549 (method git-fetch)
1550 (uri (git-reference
1551 (url "https://github.com/emicklei/go-restful.git")
1552 (commit commit)))
1553 (file-name (git-file-name name version))
1554 (sha256
1555 (base32
1556 "0rrlfcfq80fkxifpih6bq31vavb5mf4530xz51pp9pq1mn2fzjfh"))))
1557 (build-system go-build-system)
1558 (arguments
1559 '(#:import-path "github.com/emicklei/go-restful"))
1560 (home-page "https://github.com/emicklei/go-restful")
1561 (synopsis "Build REST-style web services using Go")
1562 (description "This package provides @code{go-restful}, which helps
1563 developers to use @code{http} methods explicitly and in a way that's consistent
1564 with the HTTP protocol definition.")
1565 (license license:expat))))
1566
1567 (define-public go-github-com-google-cadvisor
1568 (let ((commit "2ed7198f77395ee9a172878a0a7ab92ab59a2cfd")
1569 (revision "0"))
1570 (package
1571 (name "go-github-com-google-cadvisor")
1572 (version (git-version "0.0.0" revision commit))
1573 (source
1574 (origin
1575 (method git-fetch)
1576 (uri (git-reference
1577 (url "https://github.com/google/cadvisor.git")
1578 (commit commit)))
1579 (file-name (git-file-name name version))
1580 (sha256
1581 (base32
1582 "1w8p345z5j0gk3yiq5ah0znd5lfh348p2s624k5r10drz04p3f55"))))
1583 (build-system go-build-system)
1584 (arguments
1585 '(#:import-path "github.com/google/cadvisor"))
1586 (home-page "https://github.com/google/cadvisor")
1587 (synopsis "Analyze resource usage of running containers")
1588 (description "The package provides @code{cadvisor}, which provides
1589 information about the resource usage and performance characteristics of running
1590 containers.")
1591 (license license:asl2.0))))
1592
1593 (define-public go-github-com-google-gofuzz
1594 (let ((commit "fd52762d25a41827db7ef64c43756fd4b9f7e382")
1595 (revision "0"))
1596 (package
1597 (name "go-github-com-google-gofuzz")
1598 (version (git-version "0.0.0" revision commit))
1599 (source
1600 (origin
1601 (method git-fetch)
1602 (uri (git-reference
1603 (url "https://github.com/google/gofuzz.git")
1604 (commit commit)))
1605 (file-name (git-file-name name version))
1606 (sha256
1607 (base32
1608 "1yxmmr73h0lq7ryf3q9a7pcm2x5xrg4d5bxkq8n5pxwxwyq26kw8"))))
1609 (build-system go-build-system)
1610 (arguments
1611 '(#:import-path "github.com/google/gofuzz"))
1612 (home-page "https://github.com/google/gofuzz")
1613 (synopsis "Fuzz testing library for Go")
1614 (description "Gofuzz is a library for populationg Go objects with random
1615 values for the purpose of fuzz testing.")
1616 (license license:asl2.0))))
1617
1618 (define-public go-github-com-gorilla-context
1619 (let ((commit "08b5f424b9271eedf6f9f0ce86cb9396ed337a42")
1620 (revision "0"))
1621 (package
1622 (name "go-github-com-gorilla-context")
1623 (version (git-version "0.0.0" revision commit))
1624 (source
1625 (origin
1626 (method git-fetch)
1627 (uri (git-reference
1628 (url "https://github.com/gorilla/context.git")
1629 (commit commit)))
1630 (file-name (git-file-name name version))
1631 (sha256
1632 (base32
1633 "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4"))))
1634 (build-system go-build-system)
1635 (arguments
1636 '(#:import-path "github.com/gorilla/context"))
1637 (home-page "https://github.com/gorilla/context")
1638 (synopsis "Go registry for request variables")
1639 (description "This package provides @code{gorilla/context}, which is a general purpose registry for global request variables in the Go programming language.")
1640 (license license:bsd-3))))
1641
1642 (define-public go-github-com-gorilla-mux
1643 (let ((commit "599cba5e7b6137d46ddf58fb1765f5d928e69604")
1644 (revision "0"))
1645 (package
1646 (name "go-github-com-gorilla-mux")
1647 (version (git-version "0.0.0" revision commit))
1648 (source
1649 (origin
1650 (method git-fetch)
1651 (uri (git-reference
1652 (url "https://github.com/gorilla/mux.git")
1653 (commit commit)))
1654 (file-name (git-file-name name version))
1655 (sha256
1656 (base32
1657 "0wd6jjii1kg5s0nk3ri6gqriz6hbd6bbcn6x4jf8n7ncrb8qsxyz"))))
1658 (build-system go-build-system)
1659 (arguments
1660 '(#:import-path "github.com/gorilla/mux"))
1661 (home-page "https://github.com/gorilla/mux")
1662 (synopsis "URL router and dispatcher for Go")
1663 (description
1664 "Gorilla/Mux implements a request router and dispatcher for matching
1665 incoming requests with their respective handler.")
1666 (license license:bsd-3))))
1667
1668 (define-public go-github-com-jonboulle-clockwork
1669 (let ((commit "e3653ace2d63753697e0e5b07b9393971c0bba9d")
1670 (revision "0"))
1671 (package
1672 (name "go-github-com-jonboulle-clockwork")
1673 (version (git-version "0.0.0" revision commit))
1674 (source
1675 (origin
1676 (method git-fetch)
1677 (uri (git-reference
1678 (url "https://github.com/jonboulle/clockwork.git")
1679 (commit commit)))
1680 (file-name (git-file-name name version))
1681 (sha256
1682 (base32
1683 "1avzqhks12a8x2yzpvjsf3k0gv9cy7zx2z88hn0scacnxkphisvc"))))
1684 (build-system go-build-system)
1685 (arguments
1686 '(#:import-path "github.com/jonboulle/clockwork"))
1687 (home-page "https://github.com/jonboulle/clockwork")
1688 (synopsis "Fake clock library for Go")
1689 (description
1690 "Replace uses of the @code{time} package with the
1691 @code{clockwork.Clock} interface instead.")
1692 (license license:asl2.0))))
1693
1694 (define-public go-github-com-spf13-pflag
1695 (let ((commit "4f9190456aed1c2113ca51ea9b89219747458dc1")
1696 (revision "0"))
1697 (package
1698 (name "go-github-com-spf13-pflag")
1699 (version (git-version "0.0.0" revision commit))
1700 (source
1701 (origin
1702 (method git-fetch)
1703 (uri (git-reference
1704 (url "https://github.com/spf13/pflag.git")
1705 (commit commit)))
1706 (file-name (git-file-name name version))
1707 (sha256
1708 (base32
1709 "12vrlcsbwjqlfc49rwky45mbcj74c0kb6z54354pzas6fwzyi1kc"))))
1710 (build-system go-build-system)
1711 (arguments
1712 '(#:import-path "github.com/spf13/pflag"))
1713 (home-page "https://github.com/spf13/pflag")
1714 (synopsis "Replacement for Go's @code{flag} package")
1715 (description
1716 "Pflag is library to replace Go's @code{flag} package. It implements
1717 POSIX/GNU-style command-line options with double hyphens. It is is compatible
1718 with the
1719 @uref{https://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html,
1720 GNU extensions} to the POSIX recommendations for command-line options.")
1721 (license license:bsd-3))))
1722
1723 (define-public go-github-com-sirupsen-logrus
1724 (package
1725 (name "go-github-com-sirupsen-logrus")
1726 (version "1.0.5")
1727 (source
1728 (origin
1729 (method git-fetch)
1730 (uri (git-reference
1731 (url "https://github.com/sirupsen/logrus.git")
1732 (commit (string-append "v" version))))
1733 (sha256
1734 (base32
1735 "0g5z7al7kky11ai2dhac6gkp3b5pxsvx72yj3xg4wg3265gbn7yz"))))
1736 (build-system go-build-system)
1737 (native-inputs
1738 `(("go-golang-org-x-crypto-ssh-terminal"
1739 ,go-golang-org-x-crypto-ssh-terminal)
1740 ("go-github-com-stretchr-testify"
1741 ,go-github-com-stretchr-testify)
1742 ("go-golang-org-x-sys-unix"
1743 ,go-golang-org-x-sys-unix)))
1744 (arguments
1745 '(#:tests? #f ;FIXME missing dependencies
1746 #:import-path "github.com/sirupsen/logrus"))
1747 (home-page "https://github.com/sirupsen/logrus")
1748 (synopsis "Structured, pluggable logging for Go")
1749 (description "Logrus is a structured logger for Go, completely API
1750 compatible with the standard library logger.")
1751 (license license:expat)))
1752
1753 (define-public go-github-com-kardianos-osext
1754 (let ((commit "ae77be60afb1dcacde03767a8c37337fad28ac14")
1755 (revision "1"))
1756 (package
1757 (name "go-github-com-kardianos-osext")
1758 (version (git-version "0.0.0" revision commit))
1759 (source (origin
1760 (method git-fetch)
1761 (uri (git-reference
1762 (url "https://github.com/kardianos/osext")
1763 (commit commit)))
1764 (file-name (git-file-name name version))
1765 (sha256
1766 (base32
1767 "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz"))))
1768 (build-system go-build-system)
1769 (arguments
1770 `(#:import-path "github.com/kardianos/osext"
1771 ;; The tests are flaky:
1772 ;; <https://github.com/kardianos/osext/issues/21>
1773 #:tests? #f))
1774 (synopsis "Find the running executable")
1775 (description "Osext provides a method for finding the current executable
1776 file that is running. This can be used for upgrading the current executable or
1777 finding resources located relative to the executable file.")
1778 (home-page "https://github.com/kardianos/osext")
1779 (license license:bsd-3))))
1780
1781 (define-public go-github-com-ayufan-golang-kardianos-service
1782 (let ((commit "0c8eb6d8fff2e2fb884a7bfd23e183fb63c0eff3")
1783 (revision "0"))
1784 (package
1785 (name "go-github-com-ayufan-golang-kardianos-service")
1786 (version (git-version "0.0.0" revision commit))
1787 (source
1788 (origin
1789 (method git-fetch)
1790 (uri (git-reference
1791 (url
1792 "https://github.com/ayufan/golang-kardianos-service.git")
1793 (commit commit)))
1794 (file-name (git-file-name name version))
1795 (sha256
1796 (base32
1797 "0x0cn7l5gda2khsfypix7adxd5yqighzn04mxjw6hc4ayrh7his5"))))
1798 (build-system go-build-system)
1799 (native-inputs
1800 `(("go-github-com-kardianos-osext"
1801 ,go-github-com-kardianos-osext)))
1802 (arguments
1803 '(#:tests? #f ;FIXME tests fail: Service is not running.
1804 #:import-path "github.com/ayufan/golang-kardianos-service"))
1805 (home-page "https://github.com/ayufan/golang-kardianos-service")
1806 (synopsis "Go interface to a variety of service supervisors")
1807 (description "This package provides @code{service}, a Go module that can
1808 run programs as a service using a variety of supervisors, including systemd,
1809 SysVinit, and more.")
1810 (license license:zlib))))
1811
1812 (define-public go-github-com-docker-distribution
1813 (let ((commit "325b0804fef3a66309d962357aac3c2ce3f4d329")
1814 (revision "0"))
1815 (package
1816 (name "go-github-com-docker-distribution")
1817 (version (git-version "0.0.0" revision commit))
1818 (source
1819 ;; FIXME: This bundles many things, see
1820 ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31881#41>.
1821 (origin
1822 (method git-fetch)
1823 (uri (git-reference
1824 (url "https://github.com/docker/distribution")
1825 (commit commit)))
1826 (file-name (git-file-name name version))
1827 (sha256
1828 (base32
1829 "1yg2zrikn3vkvkx5mn51p6bfjk840qdkn7ahhhvvcsc8mpigrjc6"))))
1830 (build-system go-build-system)
1831 (native-inputs
1832 `(("go-golang-org-x-sys-unix"
1833 ,go-golang-org-x-sys-unix)
1834 ("go-github-com-sirupsen-logrus"
1835 ,go-github-com-sirupsen-logrus)
1836 ("go-golang-org-x-crypto-ssh-terminal"
1837 ,go-golang-org-x-crypto-ssh-terminal)))
1838 (arguments
1839 '(#:import-path "github.com/docker/distribution"
1840 #:phases
1841 (modify-phases %standard-phases
1842 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1843 (lambda* (#:key outputs #:allow-other-keys)
1844 (map (lambda (file)
1845 (make-file-writable file))
1846 (find-files
1847 (assoc-ref outputs "out")
1848 ".*\\.gz$"))
1849 #t)))))
1850 (home-page
1851 "https://github.com/docker/distribution")
1852 (synopsis "This package is a Docker toolset to pack, ship, store, and
1853 deliver content")
1854 (description "Docker Distribution is a Docker toolset to pack, ship,
1855 store, and deliver content. It contains Docker Registry 2.0 and libraries
1856 to interact with distribution components.")
1857 (license license:asl2.0))))
1858
1859 (define-public go-github-com-docker-go-connections
1860 (let ((commit "3ede32e2033de7505e6500d6c868c2b9ed9f169d")
1861 (revision "0"))
1862 (package
1863 (name "go-github-com-docker-go-connections")
1864 (version (git-version "0.0.0" revision commit))
1865 (source
1866 (origin
1867 (method git-fetch)
1868 (uri (git-reference
1869 (url "https://github.com/docker/go-connections.git")
1870 (commit commit)))
1871 (file-name (git-file-name name version))
1872 (sha256
1873 (base32
1874 "0v1pkr8apwmhyzbjfriwdrs1ihlk6pw7izm57r24mf9jdmg3fyb0"))))
1875 (build-system go-build-system)
1876 (arguments
1877 '(#:import-path "github.com/docker/go-connections"))
1878 (home-page "https://github.com/docker/go-connections")
1879 (synopsis "Networking library for Go")
1880 (description
1881 "This package provides a library to work with network connections in
1882 the Go language. In particular it provides tools to deal with network address
1883 translation (NAT), proxies, sockets, and transport layer security (TLS).")
1884 (license license:asl2.0))))
1885
1886 (define-public go-github-com-docker-machine
1887 (let ((commit "7b7a141da84480342357c51838be142bf183b095")
1888 (revision "0"))
1889 (package
1890 (name "go-github-com-docker-machine")
1891 (version (git-version "0.0.0" revision commit))
1892 (source
1893 (origin
1894 (method git-fetch)
1895 (uri (git-reference
1896 (url "https://github.com/docker/machine.git")
1897 (commit commit)))
1898 (file-name (git-file-name name version))
1899 (sha256
1900 (base32
1901 "0bavk0lvs462yh0lnmnxi9psi5qv1x3nvzmd2b0drsahlp1gxi8s"))))
1902 (build-system go-build-system)
1903 (arguments
1904 '(#:import-path "github.com/docker/machine"))
1905 (home-page "https://github.com/docker/machine")
1906 (synopsis "Machine management for a container-centric world")
1907 (description
1908 "@dfn{Machine} lets you create Docker hosts on your computer, on
1909 hosting providers, and inside your data center. It creates servers, installs
1910 Docker on them, then configures the Docker client to talk to them.")
1911 (license license:asl2.0))))
1912
1913 (define-public go-github-com-gorhill-cronexpr
1914 (let ((commit "f0984319b44273e83de132089ae42b1810f4933b")
1915 (revision "0"))
1916 (package
1917 (name "go-github-com-gorhill-cronexpr")
1918 (version (git-version "0.0.0" revision commit))
1919 (source
1920 (origin
1921 (method git-fetch)
1922 (uri (git-reference
1923 (url "https://github.com/gorhill/cronexpr.git")
1924 (commit commit)))
1925 (file-name (git-file-name name version))
1926 (sha256
1927 (base32
1928 "0dphhhqy3i7265znv3m8n57l80dmaq6z4hsj5kgd87qd19z8x0l2"))))
1929 (build-system go-build-system)
1930 (arguments
1931 '(#:import-path "github.com/gorhill/cronexpr"))
1932 (home-page "https://github.com/gorhill/cronexpr")
1933 (synopsis "Cron expression parser in the Go language")
1934 (description
1935 "This package provides a cron expression parser in the Go language.
1936 Given a cron expression and a time stamp, you can get the next time stamp
1937 which satisfies the cron expression.")
1938 (license (list license:gpl3+
1939 license:asl2.0)))))
1940
1941 (define-public go-gopkg-in-check-v1
1942 (let ((commit "788fd78401277ebd861206a03c884797c6ec5541")
1943 (revision "1"))
1944 (package
1945 (name "go-gopkg-in-check-v1")
1946 (version (git-version "1.0.0" revision commit))
1947 (source
1948 (origin
1949 (method git-fetch)
1950 (uri (git-reference
1951 (url "https://github.com/go-check/check")
1952 (commit commit)))
1953 (file-name (git-file-name name version))
1954 (sha256
1955 (base32
1956 "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a"))))
1957 (build-system go-build-system)
1958 (arguments
1959 '(#:import-path "gopkg.in/check.v1"))
1960 (propagated-inputs
1961 `(("go-github-com-kr-pretty" ,go-github-com-kr-pretty)))
1962 (home-page "https://gopkg.in/check.v1")
1963 (synopsis "Test framework for the Go language")
1964 (description "This package provides a test library for the Go language.")
1965 (license license:asl2.0))))
1966
1967 (define-public go-gopkg-in-yaml-v2
1968 (package
1969 (name "go-gopkg-in-yaml-v2")
1970 (version "2.2.2")
1971 (source
1972 (origin
1973 (method git-fetch)
1974 (uri (git-reference
1975 (url "https://gopkg.in/yaml.v2.git")
1976 (commit (string-append "v" version))))
1977 (file-name (git-file-name name version))
1978 (sha256
1979 (base32
1980 "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa"))))
1981 (build-system go-build-system)
1982 (arguments
1983 '(#:import-path "gopkg.in/yaml.v2"))
1984 (native-inputs
1985 `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
1986 (home-page "https://gopkg.in/yaml.v2")
1987 (synopsis "YAML reader and writer for the Go language")
1988 (description
1989 "This package provides a Go library for encode and decode YAML
1990 values.")
1991 (license license:asl2.0)))
1992
1993 (define-public go-github-com-mattn-go-isatty
1994 (package
1995 (name "go-github-com-mattn-go-isatty")
1996 (version "0.0.7")
1997 (source
1998 (origin
1999 (method git-fetch)
2000 (uri (git-reference
2001 (url "https://github.com/mattn/go-isatty")
2002 (commit (string-append "v" version))))
2003 (file-name (git-file-name name version))
2004 (sha256
2005 (base32
2006 "1i77aq4gf9as03m8fpfh8fq49n4z9j7548blrcsidm1xhslzk5xd"))))
2007 (build-system go-build-system)
2008 (propagated-inputs
2009 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
2010 (arguments
2011 '(#:import-path "github.com/mattn/go-isatty"))
2012 (home-page "https://github.com/mattn/go-isatty")
2013 (synopsis "Provide @code{isatty} for Golang")
2014 (description "This package provides @code{isatty}, a Go module that can
2015 tell you whether a file descriptor points to a terminal and the type of the
2016 terminal.")
2017 (license license:expat)))
2018
2019 (define-public go-github-com-mattn-go-colorable
2020 (let ((commit "efa589957cd060542a26d2dd7832fd6a6c6c3ade")
2021 (revision "0"))
2022 (package
2023 (name "go-github-com-mattn-go-colorable")
2024 (version (git-version "0.0.0" revision commit))
2025 (source
2026 (origin
2027 (method git-fetch)
2028 (uri (git-reference
2029 (url "https://github.com/mattn/go-colorable")
2030 (commit commit)))
2031 (file-name (git-file-name name version))
2032 (sha256
2033 (base32
2034 "0kshi4hvm0ayrsxqxy0599iv81kryhd2fn9lwjyczpj593cq069r"))))
2035 (build-system go-build-system)
2036 (native-inputs
2037 `(("go-github-com-mattn-go-isatty"
2038 ,go-github-com-mattn-go-isatty)))
2039 (arguments
2040 '(#:import-path "github.com/mattn/go-colorable"))
2041 (home-page "https://github.com/mattn/go-colorable")
2042 (synopsis "Handle ANSI color escapes on Windows")
2043 (description "This package provides @code{colorable}, a module that
2044 makes it possible to handle ANSI color escapes on Windows.")
2045 (license license:expat))))
2046
2047 (define-public go-github-com-mgutz-ansi
2048 (let ((commit "9520e82c474b0a04dd04f8a40959027271bab992")
2049 (revision "0"))
2050 (package
2051 (name "go-github-com-mgutz-ansi")
2052 (version (git-version "0.0.0" revision commit))
2053 (source
2054 (origin
2055 (method git-fetch)
2056 (uri (git-reference
2057 (url
2058 "https://github.com/mgutz/ansi")
2059 (commit commit)))
2060 (file-name (git-file-name name version))
2061 (sha256
2062 (base32
2063 "00bz22314j26736w1f0q4jy9d9dfaml17vn890n5zqy3cmvmww1j"))))
2064 (build-system go-build-system)
2065 (native-inputs
2066 `(("go-github-com-mattn-go-isatty"
2067 ,go-github-com-mattn-go-isatty)
2068 ("go-github-com-mattn-go-colorable"
2069 ,go-github-com-mattn-go-colorable)))
2070 (arguments
2071 '(#:import-path "github.com/mgutz/ansi"))
2072 (home-page "https://github.com/mgutz/ansi")
2073 (synopsis "Small, fast library to create ANSI colored strings and codes")
2074 (description "This package provides @code{ansi}, a Go module that can
2075 generate ANSI colored strings.")
2076 (license license:expat))))
2077
2078 (define-public go-github-com-aarzilli-golua
2079 (let ((commit "03fc4642d792b1f2bc5e7343b403cf490f8c501d")
2080 (revision "0"))
2081 (package
2082 (name "go-github-com-aarzilli-golua")
2083 (version (git-version "0.0.0" revision commit))
2084 (source
2085 (origin
2086 (method git-fetch)
2087 (uri (git-reference
2088 (url
2089 "https://github.com/aarzilli/golua")
2090 (commit commit)))
2091 (file-name (git-file-name name version))
2092 (sha256
2093 (base32
2094 "1d9hr29i36cza98afj3g6rs3l7xbkprwzz0blcxsr9dd7nak20di"))))
2095 (build-system go-build-system)
2096 ;; From go-1.10 onward, "pkg" compiled libraries are not re-used, so
2097 ;; when this package required as input for another one, it will have to
2098 ;; be built again. Thus its CGO requirements must be made available in
2099 ;; the environment, that is, they must be propagated.
2100 (propagated-inputs
2101 `(("lua" ,lua)))
2102 (arguments
2103 `(#:unpack-path "github.com/aarzilli/golua"
2104 #:import-path "github.com/aarzilli/golua/lua"
2105 #:phases
2106 (modify-phases %standard-phases
2107 ;; While it's possible to fix the CGO_LDFLAGS with the "-tags"
2108 ;; command line argument, go-1.10+ does not re-use the produced pkg
2109 ;; for dependencies, which means we would need to propagate the
2110 ;; same "-tags" argument to all golua referrers. A substitution is
2111 ;; more convenient here. We also need to propagate the lua
2112 ;; dependency to make it available to referrers.
2113 (add-after 'unpack 'fix-lua-ldflags
2114 (lambda _
2115 (substitute* "src/github.com/aarzilli/golua/lua/lua.go"
2116 (("#cgo linux,!llua,!luaa LDFLAGS: -llua5.3")
2117 "#cgo linux,!llua,!luaa LDFLAGS: -llua")))))))
2118 (home-page "https://github.com/aarzilli/golua")
2119 (synopsis "Go Bindings for the Lua C API")
2120 (description "This package provides @code{lua}, a Go module that can
2121 run a Lua virtual machine.")
2122 (license license:expat))))
2123
2124 (define-public go-gitlab-com-ambrevar-golua-unicode
2125 (let ((commit "97ce517e7a1fe2407a90c317a9c74b173d396144")
2126 (revision "0"))
2127 (package
2128 (name "go-gitlab-com-ambrevar-golua-unicode")
2129 (version (git-version "0.0.0" revision commit))
2130 (source
2131 (origin
2132 (method git-fetch)
2133 (uri (git-reference
2134 (url
2135 "https://gitlab.com/ambrevar/golua")
2136 (commit commit)))
2137 (file-name (git-file-name name version))
2138 (sha256
2139 (base32
2140 "1izcp7p8nagjwqd13shb0020w7xhppib1a3glw2d1468bflhksnm"))))
2141 (build-system go-build-system)
2142 (native-inputs
2143 `(("lua" ,lua)
2144 ("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
2145 (arguments
2146 `(#:unpack-path "gitlab.com/ambrevar/golua"
2147 #:import-path "gitlab.com/ambrevar/golua/unicode"
2148 #:phases
2149 (modify-phases %standard-phases
2150 (replace 'check
2151 (lambda* (#:key import-path #:allow-other-keys)
2152 (setenv "USER" "homeless-dude")
2153 (invoke "go" "test" import-path))))))
2154 (home-page "https://gitlab.com/ambrevar/golua")
2155 (synopsis "Add Unicode support to Golua")
2156 (description "This extension to Arzilli's Golua adds Unicode support to
2157 all functions from the Lua string library. Lua patterns are replaced by Go
2158 regexps. This breaks compatibility with Lua, but Unicode support breaks it
2159 anyways and Go regexps are more powerful.")
2160 (license license:expat))))
2161
2162 (define-public go-github-com-yookoala-realpath
2163 (let ((commit "d19ef9c409d9817c1e685775e53d361b03eabbc8")
2164 (revision "0"))
2165 (package
2166 (name "go-github-com-yookoala-realpath")
2167 (version (git-version "0.0.0" revision commit))
2168 (source
2169 (origin
2170 (method git-fetch)
2171 (uri (git-reference
2172 (url
2173 "https://github.com/yookoala/realpath")
2174 (commit commit)))
2175 (file-name (git-file-name name version))
2176 (sha256
2177 (base32
2178 "0qvz1dcdldf53rq69fli76z5k1vr7prx9ds1d5rpzgs68kwn40nw"))))
2179 (build-system go-build-system)
2180 (arguments
2181 `(#:import-path "github.com/yookoala/realpath"))
2182 (home-page "https://github.com/yookoala/realpath")
2183 (synopsis "@code{realpath} for Golang")
2184 (description "This package provides @code{realpath}, a Go module that
2185 when provided with a valid relative path / alias path, it will return you with
2186 a string of its real absolute path in the system.")
2187 (license license:expat))))
2188
2189 (define-public go-gitlab-com-ambrevar-damerau
2190 (let ((commit "883829e1f25fad54015772ea663e69017cf22352")
2191 (revision "0"))
2192 (package
2193 (name "go-gitlab-com-ambrevar-damerau")
2194 (version (git-version "0.0.0" revision commit))
2195 (source
2196 (origin
2197 (method git-fetch)
2198 (uri (git-reference
2199 (url
2200 "https://gitlab.com/ambrevar/damerau")
2201 (commit commit)))
2202 (file-name (git-file-name name version))
2203 (sha256
2204 (base32
2205 "1b9p8fypc914ij1afn6ir346zsgfqrc5mqc1k3d53n4snypq27qv"))))
2206 (build-system go-build-system)
2207 (arguments
2208 `(#:import-path "gitlab.com/ambrevar/damerau"))
2209 (home-page "https://gitlab.com/ambrevar/damerau")
2210 (synopsis "Damerau-Levenshtein distance for Golang")
2211 (description "This is a spelling corrector implementing the
2212 Damerau-Levenshtein distance. Takes a string value input from the user.
2213 Looks for an identical word on a list of words, if none is found, look for a
2214 similar word.")
2215 (license license:expat))))
2216
2217 (define-public go-github-com-stevedonovan-luar
2218 (let ((commit "22d247e5366095f491cd83edf779ee99a78f5ead")
2219 (revision "0"))
2220 (package
2221 (name "go-github-com-stevedonovan-luar")
2222 (version (git-version "0.0.0" revision commit))
2223 (source
2224 (origin
2225 (method git-fetch)
2226 (uri (git-reference
2227 (url
2228 "https://github.com/stevedonovan/luar")
2229 (commit commit)))
2230 (file-name (git-file-name name version))
2231 (sha256
2232 (base32
2233 "1acjgw9cz1l0l9mzkyk7irz6cfk31wnxgbwa805fvm1rqcjzin2c"))))
2234 (build-system go-build-system)
2235 (native-inputs
2236 `(("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
2237 (arguments
2238 `(#:tests? #f ; Upstream tests are broken.
2239 #:import-path "github.com/stevedonovan/luar"))
2240 (home-page "https://github.com/stevedonovan/luar")
2241 (synopsis "Lua reflection bindings for Go")
2242 (description "Luar is designed to make using Lua from Go more
2243 convenient. Go structs, slices and maps can be automatically converted to Lua
2244 tables and vice-versa. The resulting conversion can either be a copy or a
2245 proxy. In the latter case, any change made to the result will reflect on the
2246 source.
2247
2248 Any Go function can be made available to Lua scripts, without having to write
2249 C-style wrappers.
2250
2251 Luar support cyclic structures (lists, etc.).
2252
2253 User-defined types can be made available to Lua as well: their exported
2254 methods can be called and usual operations such as indexing or arithmetic can
2255 be performed.")
2256 (license license:expat))))
2257
2258 (define-public go-github-com-michiwend-golang-pretty
2259 (let ((commit "8ac61812ea3fa540f3f141a444fcb0dd713cdca4")
2260 (revision "0"))
2261 (package
2262 (name "go-github-com-michiwend-golang-pretty")
2263 (version (git-version "0.0.0" revision commit))
2264 (source
2265 (origin
2266 (method git-fetch)
2267 (uri (git-reference
2268 (url
2269 "https://github.com/michiwend/golang-pretty")
2270 (commit commit)))
2271 (file-name (git-file-name name version))
2272 (sha256
2273 (base32
2274 "0rjfms0csjqi91xnddzx3rcrcaikc7xc027617px3kdwdap80ir4"))))
2275 (build-system go-build-system)
2276 (native-inputs
2277 `(("go-github-com-kr-text" ,go-github-com-kr-text)))
2278 (arguments
2279 `(#:tests? #f ; Upstream tests seem to be broken.
2280 #:import-path "github.com/michiwend/golang-pretty"))
2281 (home-page "https://github.com/michiwend/golang-pretty")
2282 (synopsis "Pretty printing for Go values")
2283 (description "Package @code{pretty} provides pretty-printing for Go
2284 values. This is useful during debugging, to avoid wrapping long output lines
2285 in the terminal.
2286
2287 It provides a function, @code{Formatter}, that can be used with any function
2288 that accepts a format string. It also provides convenience wrappers for
2289 functions in packages @code{fmt} and @code{log}.")
2290 (license license:expat))))
2291
2292 (define-public go-github-com-michiwend-gomusicbrainz
2293 (let ((commit "0cdeb13f9b24d2c714feb7e3c63d595cf7121d7d")
2294 (revision "0"))
2295 (package
2296 (name "go-github-com-michiwend-gomusicbrainz")
2297 (version (git-version "0.0.0" revision commit))
2298 (source
2299 (origin
2300 (method git-fetch)
2301 (uri (git-reference
2302 (url
2303 "https://github.com/michiwend/gomusicbrainz")
2304 (commit commit)))
2305 (file-name (git-file-name name version))
2306 (sha256
2307 (base32
2308 "1li9daw0kghb80rdmxbh7g72qhxcvx3rvhwq5gs0jrr9hb8pjvcn"))))
2309 (build-system go-build-system)
2310 (native-inputs
2311 `(("go-github-com-michiwend-golang-pretty" ,go-github-com-michiwend-golang-pretty)
2312 ("go-github-com-kr-text" ,go-github-com-kr-text)))
2313 (arguments
2314 `(#:import-path "github.com/michiwend/gomusicbrainz"))
2315 (home-page "https://github.com/michiwend/gomusicbrainz")
2316 (synopsis "MusicBrainz WS2 client library for Golang")
2317 (description "Currently GoMusicBrainz provides methods to perform search
2318 and lookup requests. Browse requests are not supported yet.")
2319 (license license:expat))))
2320
2321 (define-public go-github-com-wtolson-go-taglib
2322 (let ((commit "6e68349ff94ecea412de7e748cb5eaa26f472777")
2323 (revision "0"))
2324 (package
2325 (name "go-github-com-wtolson-go-taglib")
2326 (version (git-version "0.0.0" revision commit))
2327 (source
2328 (origin
2329 (method git-fetch)
2330 (uri (git-reference
2331 (url
2332 "https://github.com/wtolson/go-taglib")
2333 (commit commit)))
2334 (file-name (git-file-name name version))
2335 (sha256
2336 (base32
2337 "1cpjqnrviwflz150g78iir5ndrp3hh7a93zbp4dwbg6sb2q141p2"))))
2338 (build-system go-build-system)
2339 ;; From go-1.10 onward, "pkg" compiled libraries are not re-used, so
2340 ;; when this package required as input for another one, it will have to
2341 ;; be built again. Thus its CGO requirements must be made available in
2342 ;; the environment, that is, they must be propagated.
2343 (propagated-inputs
2344 `(("pkg-config" ,pkg-config)
2345 ("taglib" ,taglib)))
2346 (arguments
2347 `(#:import-path "github.com/wtolson/go-taglib"
2348 ;; Tests don't pass "vet" on go-1.11. See
2349 ;; https://github.com/wtolson/go-taglib/issues/12.
2350 #:phases
2351 (modify-phases %standard-phases
2352 (replace 'check
2353 (lambda* (#:key import-path #:allow-other-keys)
2354 (invoke "go" "test"
2355 "-vet=off"
2356 import-path))))))
2357 (home-page "https://github.com/wtolson/go-taglib")
2358 (synopsis "Go wrapper for taglib")
2359 (description "Go wrapper for taglib")
2360 (license license:unlicense))))
2361
2362 (define-public go-github-com-gogo-protobuf
2363 (package
2364 (name "go-github-com-gogo-protobuf")
2365 (version "1.2.1")
2366 (source (origin
2367 (method git-fetch)
2368 (uri (git-reference
2369 (url "https://github.com/gogo/protobuf")
2370 (commit (string-append "v" version))))
2371 (file-name (git-file-name name version))
2372 (sha256
2373 (base32
2374 "06yqa6h0kw3gr5pc3qmas7f7435a96zf7iw7p0l00r2hqf6fqq6m"))))
2375 (build-system go-build-system)
2376 (arguments
2377 `(#:import-path "github.com/gogo/protobuf/proto"
2378 #:unpack-path "github.com/gogo/protobuf"))
2379 (synopsis "Protocol Buffers for Go with Gadgets")
2380 (description "Gogoprotobuf is a fork of golang/protobuf with extra code
2381 generation features. This code generation is used to achieve:
2382 @itemize
2383 @item fast marshalling and unmarshalling
2384 @item more canonical Go structures
2385 @item goprotobuf compatibility
2386 @item less typing by optionally generating extra helper code
2387 @item peace of mind by optionally generating test and benchmark code
2388 @item other serialization formats
2389 @end itemize")
2390 (home-page "https://github.com/gogo/protobuf")
2391 (license license:bsd-3)))
2392
2393 (define-public go-github-com-gogo-protobuf-protoc-gen-gogo
2394 (package
2395 (name "go-github-com-gogo-protobuf-protoc-gen-gogo")
2396 (version "1.2.1")
2397 (source (origin
2398 (method git-fetch)
2399 (uri (git-reference
2400 (url "https://github.com/gogo/protobuf")
2401 (commit (string-append "v" version))))
2402 (file-name (git-file-name name version))
2403 (sha256
2404 (base32
2405 "06yqa6h0kw3gr5pc3qmas7f7435a96zf7iw7p0l00r2hqf6fqq6m"))))
2406 (build-system go-build-system)
2407 (arguments
2408 `(#:import-path "github.com/gogo/protobuf/protoc-gen-gogo"
2409 #:unpack-path "github.com/gogo/protobuf"
2410 #:tests? #f)) ; Requires the unpackaged 'protoc-min-version'
2411 (synopsis "Protocol Buffers for Go with Gadgets")
2412 (description "Gogoprotobuf is a fork of golang/protobuf with extra code
2413 generation features. This code generation is used to achieve:
2414 @itemize
2415 @item fast marshalling and unmarshalling
2416 @item more canonical Go structures
2417 @item goprotobuf compatibility
2418 @item less typing by optionally generating extra helper code
2419 @item peace of mind by optionally generating test and benchmark code
2420 @item other serialization formats
2421 @end itemize")
2422 (home-page "https://github.com/gogo/protobuf")
2423 (license license:bsd-3)))
2424
2425 (define-public go-github-com-gogo-protobuf-gogoproto
2426 (package
2427 (name "go-github-com-gogo-protobuf-gogoproto")
2428 (version "1.2.1")
2429 (source
2430 (origin
2431 (method git-fetch)
2432 (uri (git-reference
2433 (url "https://github.com/gogo/protobuf.git")
2434 (commit (string-append "v" version))))
2435 (file-name (git-file-name name version))
2436 (sha256
2437 (base32
2438 "06yqa6h0kw3gr5pc3qmas7f7435a96zf7iw7p0l00r2hqf6fqq6m"))))
2439 (build-system go-build-system)
2440 (arguments
2441 '(#:unpack-path "github.com/gogo/protobuf"
2442 #:import-path "github.com/gogo/protobuf/gogoproto"))
2443 (home-page "https://github.com/gogo/protobuf")
2444 (synopsis "Extensions to protocol buffers")
2445 (description "This package provides extensions to the Gogo protocol buffers
2446 implementation.")
2447 (license license:bsd-3)))
2448
2449 (define-public go-github-com-gogo-protobuf-proto
2450 (package
2451 (name "go-github-com-gogo-protobuf-proto")
2452 (version "1.2.1")
2453 (source
2454 (origin
2455 (method git-fetch)
2456 (uri (git-reference
2457 (url "https://github.com/gogo/protobuf.git")
2458 (commit (string-append "v" version))))
2459 (file-name (git-file-name name version))
2460 (sha256
2461 (base32
2462 "06yqa6h0kw3gr5pc3qmas7f7435a96zf7iw7p0l00r2hqf6fqq6m"))))
2463 (build-system go-build-system)
2464 (arguments
2465 '(#:unpack-path "github.com/gogo/protobuf"
2466 #:import-path "github.com/gogo/protobuf/proto"))
2467 (home-page "https://github.com/gogo/protobuf")
2468 (synopsis "Protocol buffers component")
2469 (description "This is a component of the Gogo protocol buffers
2470 implementation.")
2471 (license license:bsd-3)))
2472
2473 (define-public go-github-com-libp2p-go-flow-metrics
2474 (let ((commit "7e5a55af485341567f98d6847a373eb5ddcdcd43")
2475 (revision "0"))
2476 (package
2477 (name "go-github-com-libp2p-go-flow-metrics")
2478 (version (git-version "0.2.0" revision commit))
2479 (source
2480 (origin
2481 (method git-fetch)
2482 (uri (git-reference
2483 (url "https://github.com/libp2p/go-flow-metrics.git")
2484 (commit commit)))
2485 (file-name (git-file-name name version))
2486 (sha256
2487 (base32
2488 "1p87iyk6q6f3g3xkncssx400qlld8f2z93qiz8m1f97grfyhjif1"))))
2489 (build-system go-build-system)
2490 (arguments
2491 `(#:import-path "github.com/libp2p/go-flow-metrics"
2492 ;; TODO: Tests hang.
2493 #:tests? #f))
2494 (home-page
2495 "https://github.com/libp2p/go-flow-metrics")
2496 (synopsis "Simple library for tracking flow metrics")
2497 (description "A simple alternative to rcrowley's @command{go-metrics}
2498 that's a lot faster (and only does simple bandwidth metrics).")
2499 (license license:expat))))
2500
2501 (define-public go-github-com-davecgh-go-spew
2502 (let ((commit "d8f796af33cc11cb798c1aaeb27a4ebc5099927d")
2503 (revision "0"))
2504 (package
2505 (name "go-github-com-davecgh-go-spew")
2506 (version (git-version "0.0.0" revision commit))
2507 (source
2508 (origin
2509 (method git-fetch)
2510 (uri (git-reference
2511 (url "https://github.com/davecgh/go-spew.git")
2512 (commit commit)))
2513 (file-name (git-file-name name version))
2514 (sha256
2515 (base32
2516 "19z27f306fpsrjdvkzd61w1bdazcdbczjyjck177g33iklinhpvx"))))
2517 (build-system go-build-system)
2518 (arguments
2519 '(#:unpack-path "github.com/davecgh/go-spew"
2520 #:import-path "github.com/davecgh/go-spew/spew"))
2521 (home-page "https://github.com/davecgh/go-spew")
2522 (synopsis "Deep pretty printer for Go data structures to aid in debugging")
2523 (description "Package @command{spew} implements a deep pretty printer
2524 for Go data structures to aid in debugging.
2525
2526 A quick overview of the additional features spew provides over the built-in printing facilities for Go data types are as follows:
2527
2528 @itemize
2529 @item Pointers are dereferenced and followed.
2530 @item Circular data structures are detected and handled properly.
2531 @item Custom Stringer/error interfaces are optionally invoked, including on
2532 unexported types.
2533 @item Custom types which only implement the Stringer/error interfaces via a
2534 pointer receiver are optionally invoked when passing non-pointer variables.
2535 @item Byte arrays and slices are dumped like the hexdump -C command which
2536 includes offsets, byte values in hex, and ASCII output (only when using Dump
2537 style).
2538 @end itemize\n")
2539 (license license:isc))))
2540
2541 (define-public go-github-com-btcsuite-btclog
2542 (let ((commit "84c8d2346e9fc8c7b947e243b9c24e6df9fd206a")
2543 (revision "0"))
2544 (package
2545 (name "go-github-com-btcsuite-btclog")
2546 (version (git-version "0.0.3" revision commit))
2547 (source
2548 (origin
2549 (method git-fetch)
2550 (uri (git-reference
2551 (url "https://github.com/btcsuite/btclog.git")
2552 (commit commit)))
2553 (file-name (git-file-name name version))
2554 (sha256
2555 (base32
2556 "02dl46wcnfpg9sqvg0ipipkpnd7lrf4fnvb9zy56jqa7mfcwc7wk"))))
2557 (build-system go-build-system)
2558 (arguments
2559 '(#:import-path "github.com/btcsuite/btclog"))
2560 (home-page "https://github.com/btcsuite/btclog")
2561 (synopsis "Subsystem aware logger for Go")
2562 (description "Package @command{btclog} defines a logger interface and
2563 provides a default implementation of a subsystem-aware leveled logger
2564 implementing the same interface.")
2565 (license license:isc))))
2566
2567 (define-public go-github-com-btcsuite-btcd-btcec
2568 (let ((commit "67e573d211ace594f1366b4ce9d39726c4b19bd0")
2569 (revision "0"))
2570 (package
2571 (name "go-github-com-btcsuite-btcd-btcec")
2572 (version (git-version "0.12.0-beta" revision commit))
2573 (source
2574 (origin
2575 (method git-fetch)
2576 (uri (git-reference
2577 (url "https://github.com/btcsuite/btcd.git")
2578 (commit commit)))
2579 (file-name (git-file-name name version))
2580 (sha256
2581 (base32
2582 "04s92gsy71w1jirlr5lkk9y6r5cparbas7nmf6ywbp7kq7fn8ajn"))))
2583 (build-system go-build-system)
2584 (arguments
2585 '(#:unpack-path "github.com/btcsuite/btcd"
2586 #:import-path "github.com/btcsuite/btcd/btcec"))
2587 (native-inputs
2588 `(("go-github-com-davecgh-go-spew" ,go-github-com-davecgh-go-spew)))
2589 (home-page "https://github.com/btcsuite/btcd")
2590 (synopsis "Elliptic curve cryptography to work with Bitcoin")
2591 (description "Package @command{btcec} implements elliptic curve
2592 cryptography needed for working with Bitcoin (secp256k1 only for now). It is
2593 designed so that it may be used with the standard crypto/ecdsa packages
2594 provided with Go. A comprehensive suite of test is provided to ensure proper
2595 functionality. Package @command{btcec} was originally based on work from
2596 ThePiachu which is licensed under the same terms as Go, but it has
2597 significantly diverged since then. The @command{btcsuite} developers original
2598 is licensed under the liberal ISC license.
2599
2600 Although this package was primarily written for btcd, it has intentionally
2601 been designed so it can be used as a standalone package for any projects
2602 needing to use secp256k1 elliptic curve cryptography.")
2603 (license license:isc))))
2604
2605 (define-public go-github-com-minio-sha256-simd
2606 (let ((commit "cc1980cb03383b1d46f518232672584432d7532d")
2607 (revision "3"))
2608 (package
2609 (name "go-github-com-minio-sha256-simd")
2610 (version (git-version "0.0.0" revision commit))
2611 (source
2612 (origin
2613 (method git-fetch)
2614 (uri (git-reference
2615 (url "https://github.com/minio/sha256-simd.git")
2616 (commit commit)))
2617 (file-name (git-file-name name version))
2618 (sha256
2619 (base32
2620 "04fp98nal0wsb26zwhw82spn5camxslc68g3xp8g4af9w6k9g31j"))))
2621 (build-system go-build-system)
2622 (arguments
2623 '(#:import-path "github.com/minio/sha256-simd"))
2624 (home-page "https://github.com/minio/sha256-simd")
2625 (synopsis "Accelerate SHA256 computations in pure Go")
2626 (description "Accelerate SHA256 computations in pure Go using AVX512 and
2627 AVX2 for Intel and ARM64 for ARM. On AVX512 it provides an up to 8x
2628 improvement (over 3 GB/s per core) in comparison to AVX2.
2629
2630 This package is designed as a replacement for @command{crypto/sha256}. For
2631 Intel CPUs it has two flavors for AVX512 and AVX2 (AVX/SSE are also
2632 supported). For ARM CPUs with the Cryptography Extensions, advantage is taken
2633 of the SHA2 instructions resulting in a massive performance improvement.
2634
2635 This package uses Golang assembly. The AVX512 version is based on the Intel's
2636 \"multi-buffer crypto library for IPSec\" whereas the other Intel
2637 implementations are described in \"Fast SHA-256 Implementations on Intel
2638 Architecture Processors\" by J. Guilford et al.")
2639 (license license:asl2.0))))
2640
2641 (define-public go-github-com-libp2p-go-libp2p-crypto
2642 (let ((commit "7240b40a3ddc47c4d17c15baabcbe45e5219171b")
2643 (revision "0"))
2644 (package
2645 (name "go-github-com-libp2p-go-libp2p-crypto")
2646 (version (git-version "2.0.1" revision commit))
2647 (source
2648 (origin
2649 (method git-fetch)
2650 (uri (git-reference
2651 (url "https://github.com/libp2p/go-libp2p-crypto.git")
2652 (commit commit)))
2653 (file-name (git-file-name name version))
2654 (sha256
2655 (base32
2656 "0qwpy57qv5143l9dlfwfvpqsxdd2i4zwnawx1w4pmgxxim3nw1wb"))))
2657 (build-system go-build-system)
2658 (arguments
2659 '(#:import-path "github.com/libp2p/go-libp2p-crypto"))
2660 (native-inputs
2661 `(("go-golang-org-x-crypto-ed25519" ,go-golang-org-x-crypto-ed25519)
2662 ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
2663 ("go-github-com-gogo-protobuf-proto" ,go-github-com-gogo-protobuf-proto)
2664 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)))
2665 (home-page
2666 "https://github.com/libp2p/go-libp2p-crypto")
2667 (synopsis "Various cryptographic utilities used by IPFS")
2668 (description "Various cryptographic utilities used by IPFS")
2669 (license license:expat))))
2670
2671 (define-public go-github-com-mr-tron-base58
2672 (let ((commit "d724c80ecac7b49e4e562d58b2b4f4ee4ed8c312")
2673 (revision "0"))
2674 (package
2675 (name "go-github-com-mr-tron-base58")
2676 (version (git-version "1.1.0" revision commit))
2677 (source
2678 (origin
2679 (method git-fetch)
2680 (uri (git-reference
2681 (url "https://github.com/mr-tron/base58.git")
2682 (commit commit)))
2683 (file-name (git-file-name name version))
2684 (sha256
2685 (base32
2686 "12qhgnn9wf3c1ang16r4i778whk4wsrj7d90h2xgmz4fi1469rqa"))))
2687 (build-system go-build-system)
2688 (arguments
2689 `(#:unpack-path "github.com/mr-tron/base58"
2690 #:import-path "github.com/mr-tron/base58/base58"))
2691 (home-page "https://github.com/mr-tron/base58")
2692 (synopsis "Fast implementation of base58 encoding on Golang")
2693 (description "Fast implementation of base58 encoding on Golang. A
2694 trivial @command{big.Int} encoding benchmark results in 6 times faster
2695 encoding and 8 times faster decoding.")
2696 (license license:expat))))
2697
2698 (define-public go-github-com-gxed-hashland-keccakpg
2699 (let ((commit "d9f6b97f8db22dd1e090fd0bbbe98f09cc7dd0a8")
2700 (revision "0"))
2701 (package
2702 (name "go-github-com-gxed-hashland-keccakpg")
2703 (version (git-version "0.0.0" revision commit))
2704 (source
2705 (origin
2706 (method git-fetch)
2707 (uri (git-reference
2708 (url "https://github.com/gxed/hashland.git")
2709 (commit commit)))
2710 (file-name (git-file-name name version))
2711 (sha256
2712 (base32
2713 "1q23y4lacsz46k9gmgfw4iwwydw36j2601rbidmmswl94grpc386"))))
2714 (build-system go-build-system)
2715 (arguments
2716 '(#:unpack-path "github.com/gxed/hashland"
2717 #:import-path "github.com/gxed/hashland/keccakpg"))
2718 (home-page "https://github.com/gxed/hashland")
2719 (synopsis "Implements the Keccak (SHA-3) hash algorithm in Go")
2720 (description "Package @command{keccak} implements the Keccak (SHA-3)
2721 hash algorithm. See http://keccak.noekeon.org.")
2722 (license license:expat))))
2723
2724 (define-public go-github-com-minio-blake2b-simd
2725 (let ((commit "3f5f724cb5b182a5c278d6d3d55b40e7f8c2efb4")
2726 (revision "0"))
2727 (package
2728 (name "go-github-com-minio-blake2b-simd")
2729 (version (git-version "0.0.0" revision commit))
2730 (source
2731 (origin
2732 (method git-fetch)
2733 (uri (git-reference
2734 (url "https://github.com/minio/blake2b-simd.git")
2735 (commit commit)))
2736 (file-name (git-file-name name version))
2737 (sha256
2738 (base32
2739 "0b6jbnj62c0gmmfd4zdmh8xbg01p80f13yygir9xprqkzk6fikmd"))))
2740 (build-system go-build-system)
2741 (arguments
2742 '(#:import-path "github.com/minio/blake2b-simd"))
2743 (home-page "https://github.com/minio/blake2b-simd")
2744 (synopsis "Fast hashing in pure Go of BLAKE2b with SIMD instructions")
2745 (description "This package was initially based on the pure go BLAKE2b
2746 implementation of Dmitry Chestnykh and merged with the (cgo dependent) AVX
2747 optimized BLAKE2 implementation (which in turn is based on the official
2748 implementation. It does so by using Go's Assembler for amd64 architectures
2749 with a golang only fallback for other architectures.
2750
2751 In addition to AVX there is also support for AVX2 as well as SSE. Best
2752 performance is obtained with AVX2 which gives roughly a 4X performance
2753 increase approaching hashing speeds of 1GB/sec on a single core.")
2754 (license license:asl2.0))))
2755
2756 (define-public go-github-com-spaolacci-murmur3
2757 (let ((commit "f09979ecbc725b9e6d41a297405f65e7e8804acc")
2758 (revision "0"))
2759 (package
2760 (name "go-github-com-spaolacci-murmur3")
2761 (version (git-version "1.1" revision commit))
2762 (source
2763 (origin
2764 (method git-fetch)
2765 (uri (git-reference
2766 (url "https://github.com/spaolacci/murmur3.git")
2767 (commit commit)))
2768 (file-name (git-file-name name version))
2769 (sha256
2770 (base32
2771 "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25"))))
2772 (build-system go-build-system)
2773 (arguments
2774 '(#:import-path "github.com/spaolacci/murmur3"))
2775 (home-page "https://github.com/spaolacci/murmur3")
2776 (synopsis "Native MurmurHash3 Go implementation")
2777 (description "Native Go implementation of Austin Appleby's third
2778 MurmurHash revision (aka MurmurHash3).
2779
2780 Reference algorithm has been slightly hacked as to support the streaming mode
2781 required by Go's standard Hash interface.")
2782 (license license:bsd-3))))
2783
2784 (define-public go-github-com-multiformats-go-multihash
2785 (let ((commit "97cdb562a04c6ef66d8ed40cd62f8fbcddd396d6")
2786 (revision "0"))
2787 (package
2788 (name "go-github-com-multiformats-go-multihash")
2789 (version (git-version "1.0.8" revision commit))
2790 (source
2791 (origin
2792 (method git-fetch)
2793 (uri (git-reference
2794 (url "https://github.com/multiformats/go-multihash.git")
2795 (commit commit)))
2796 (file-name (git-file-name name version))
2797 (sha256
2798 (base32
2799 "02wd9akrwy4y5m0nig9m24p14bjjgb4n1djydrq8cm4yhbvjrrk0"))))
2800 (build-system go-build-system)
2801 (arguments
2802 '(#:import-path "github.com/multiformats/go-multihash"))
2803 (native-inputs
2804 `(("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2805 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2806 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2807 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2808 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
2809 ("go-golang-org-x-crypto-blake2s" ,go-golang-org-x-crypto-blake2s)
2810 ("go-golang-org-x-crypto-sha3" ,go-golang-org-x-crypto-sha3)))
2811 (home-page "https://github.com/multiformats/go-multihash")
2812 (synopsis "Multihash implementation in Go")
2813 (description "Multihash implementation in Go.")
2814 (license license:expat))))
2815
2816 (define-public go-github-com-libp2p-go-libp2p-peer
2817 (let ((commit "993d742bc29dcf4894b7730ba610fd78900be76c")
2818 (revision "0"))
2819 (package
2820 (name "go-github-com-libp2p-go-libp2p-peer")
2821 (version (git-version "2.3.8" revision commit))
2822 (source
2823 (origin
2824 (method git-fetch)
2825 (uri (git-reference
2826 (url "https://github.com/libp2p/go-libp2p-peer.git")
2827 (commit commit)))
2828 (file-name (git-file-name name version))
2829 (sha256
2830 (base32
2831 "1h96qjdi0i1wbr0jliap2903mycphas3ny0zdrm77yca9plcnphh"))))
2832 (build-system go-build-system)
2833 (arguments
2834 '(#:import-path "github.com/libp2p/go-libp2p-peer"))
2835 (native-inputs
2836 `(("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
2837 ("go-github-com-gogo-protobuf-proto" ,go-github-com-gogo-protobuf-proto)
2838 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2839 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2840 ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
2841 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2842 ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
2843 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2844 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
2845 ("go-golang-org-x-crypto-blake2s" ,go-golang-org-x-crypto-blake2s)
2846 ("go-golang-org-x-crypto-ed25519" ,go-golang-org-x-crypto-ed25519)
2847 ("go-golang-org-x-crypto-sha3" ,go-golang-org-x-crypto-sha3)))
2848 (home-page "https://github.com/libp2p/go-libp2p-peer")
2849 (synopsis "PKI based identities for use in go-libp2p")
2850 (description "PKI based identities for use in @command{go-libp2p}.")
2851 (license license:expat))))
2852
2853 (define-public go-github-com-libp2p-go-libp2p-protocol
2854 (let ((commit "b29f3d97e3a2fb8b29c5d04290e6cb5c5018004b")
2855 (revision "0"))
2856 (package
2857 (name "go-github-com-libp2p-go-libp2p-protocol")
2858 (version (git-version "1.0.0" revision commit))
2859 (source
2860 (origin
2861 (method git-fetch)
2862 (uri (git-reference
2863 (url "https://github.com/libp2p/go-libp2p-protocol.git")
2864 (commit commit)))
2865 (file-name (git-file-name name version))
2866 (sha256
2867 (base32
2868 "1xgjfnx9zcqglg9li29wdqywsp8hz22wx6phns9zscni2jsfidld"))))
2869 (build-system go-build-system)
2870 (arguments
2871 '(#:import-path
2872 "github.com/libp2p/go-libp2p-protocol"))
2873 (home-page "https://github.com/libp2p/go-libp2p-protocol")
2874 (synopsis "Type for protocol strings in Golang")
2875 (description "Just a type for protocol strings. Nothing more.")
2876 (license license:expat))))
2877
2878 (define-public go-github-com-libp2p-go-libp2p-metrics
2879 (let ((commit "a10ff6e75dae3c868023867e8caa534a04bdc624")
2880 (revision "0"))
2881 (package
2882 (name "go-github-com-libp2p-go-libp2p-metrics")
2883 (version (git-version "2.1.6" revision commit))
2884 (source
2885 (origin
2886 (method git-fetch)
2887 (uri (git-reference
2888 (url "https://github.com/libp2p/go-libp2p-metrics.git")
2889 (commit commit)))
2890 (file-name (git-file-name name version))
2891 (sha256
2892 (base32
2893 "05wy0cq4h6yg9bzgapcvm2criwriicbswx80ma82gyn4a9fdrk8m"))))
2894 (build-system go-build-system)
2895 (arguments
2896 '(#:import-path "github.com/libp2p/go-libp2p-metrics"))
2897 (native-inputs
2898 `(("go-github-com-libp2p-go-flow-metrics" ,go-github-com-libp2p-go-flow-metrics)
2899 ("go-github-com-libp2p-go-libp2p-peer" ,go-github-com-libp2p-go-libp2p-peer)
2900 ("go-github-com-libp2p-go-libp2p-protocol" ,go-github-com-libp2p-go-libp2p-protocol)
2901 ("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
2902 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2903 ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
2904 ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
2905 ("go-github-com-gogo-protobuf-proto" ,go-github-com-gogo-protobuf-proto)
2906 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2907 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2908 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2909 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
2910 ("go-golang-org-x-crypto-sha3" ,go-golang-org-x-crypto-sha3)
2911 ("go-golang-org-x-crypto-ed25519" ,go-golang-org-x-crypto-ed25519)
2912 ("go-golang-org-x-crypto-blake2s" ,go-golang-org-x-crypto-blake2s)))
2913 (home-page "https://github.com/libp2p/go-libp2p-metrics")
2914 (synopsis "Connection wrapper for go-libp2p that provides bandwidth metrics")
2915 (description "A connection wrapper for @command{go-libp2p} that provides bandwidth
2916 statistics for wrapped connections.")
2917 (license license:expat))))
2918
2919 (define-public go-github-com-mitchellh-go-homedir
2920 (let ((commit "ae18d6b8b3205b561c79e8e5f69bff09736185f4")
2921 (revision "0"))
2922 (package
2923 (name "go-github-com-mitchellh-go-homedir")
2924 (version (git-version "1.0.0" revision commit))
2925 (source
2926 (origin
2927 (method git-fetch)
2928 (uri (git-reference
2929 (url "https://github.com/mitchellh/go-homedir.git")
2930 (commit commit)))
2931 (file-name (git-file-name name version))
2932 (sha256
2933 (base32
2934 "0f0z0aa4wivk4z1y503dmnw0k0g0g403dly8i4q263gfshs82sbq"))))
2935 (build-system go-build-system)
2936 (arguments
2937 (quote (#:import-path "github.com/mitchellh/go-homedir"
2938 ;; TODO: Tests fail because it tries to access home.
2939 #:tests? #f)))
2940 (home-page "https://github.com/mitchellh/go-homedir")
2941 (synopsis "Go library for detecting and expanding the user's home directory without cgo")
2942 (description "This is a Go library for detecting the user's home
2943 directory without the use of @command{cgo}, so the library can be used in
2944 cross-compilation environments.
2945
2946 Usage is simple, just call homedir.Dir() to get the home directory for a user,
2947 and homedir.Expand() to expand the @command{~} in a path to the home
2948 directory.
2949
2950 Why not just use @command{os/user}? The built-in @command{os/user} package
2951 requires cgo on Darwin systems. This means that any Go code that uses that
2952 package cannot cross compile. But 99% of the time the use for
2953 @command{os/user} is just to retrieve the home directory, which we can do for
2954 the current user without cgo. This library does that, enabling
2955 cross-compilation.")
2956 (license license:expat))))
2957
2958 (define-public go-github-com-multiformats-go-multiaddr
2959 (let ((commit "fe1c46f8be5af4aff4db286e08839295bd922efb")
2960 (revision "0"))
2961 (package
2962 (name "go-github-com-multiformats-go-multiaddr")
2963 (version (git-version "1.3.0" revision commit))
2964 (source
2965 (origin
2966 (method git-fetch)
2967 (uri (git-reference
2968 (url "https://github.com/multiformats/go-multiaddr.git")
2969 (commit commit)))
2970 (file-name (git-file-name name version))
2971 (sha256
2972 (base32
2973 "0p5f8h098a4yjjmzsgqs7vhx1iqifb8izwg3559cr4h7clkpzznh"))))
2974 (build-system go-build-system)
2975 (arguments
2976 '(#:import-path
2977 "github.com/multiformats/go-multiaddr"))
2978 (native-inputs
2979 `(("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
2980 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2981 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2982 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2983 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2984 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
2985 ("go-golang-org-x-crypto-sha3" ,go-golang-org-x-crypto-sha3)
2986 ("go-golang-org-x-crypto-blake2s" ,go-golang-org-x-crypto-blake2s)))
2987 (home-page "https://github.com/multiformats/go-multiaddr")
2988 (synopsis "Composable and future-proof network addresses")
2989 (description "Multiaddr is a standard way to represent addresses that
2990 does the following:
2991
2992 @itemize
2993 @item Support any standard network protocols.
2994 @item Self-describe (include protocols).
2995 @item Have a binary packed format.
2996 @item Have a nice string representation.
2997 @item Encapsulate well.
2998 @end itemize\n")
2999 (license license:expat))))
3000
3001 (define-public go-github-com-multiformats-go-multiaddr-net
3002 (let ((commit "1cb9a0e8a6de3c8a10f6cee60d01d793603c4f7e")
3003 (revision "0"))
3004 (package
3005 (name "go-github-com-multiformats-go-multiaddr-net")
3006 (version (git-version "1.6.3" revision commit))
3007 (source
3008 (origin
3009 (method git-fetch)
3010 (uri (git-reference
3011 (url "https://github.com/multiformats/go-multiaddr-net.git")
3012 (commit commit)))
3013 (file-name (git-file-name name version))
3014 (sha256
3015 (base32
3016 "1ypgi47xdz3bh8lh7f8cmk7w3ql9g4izx5l3kzdg9gda1xn5zxq3"))))
3017 (build-system go-build-system)
3018 (arguments
3019 (quote (#:import-path "github.com/multiformats/go-multiaddr-net"
3020 ;; TODO: Tests fail because they try to access the network.
3021 #:tests? #f)))
3022 (native-inputs
3023 `(("go-github-com-multiformats-go-multiaddr" ,go-github-com-multiformats-go-multiaddr)
3024 ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
3025 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
3026 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
3027 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
3028 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
3029 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
3030 ("go-golang-org-x-crypto-sha3" ,go-golang-org-x-crypto-sha3)
3031 ("go-golang-org-x-crypto-blake2s" ,go-golang-org-x-crypto-blake2s)))
3032 (home-page "https://github.com/multiformats/go-multiaddr-net")
3033 (synopsis "Multiaddress net tools")
3034 (description "This package provides Multiaddr specific versions of
3035 common functions in stdlib's @command{net} package. This means wrappers of
3036 standard net symbols like @command{net.Dial} and @command{net.Listen}, as well
3037 as conversion to and from @command{net.Addr}.")
3038 (license license:expat))))
3039
3040 (define-public go-github-com-whyrusleeping-tar-utils
3041 (let ((commit "8c6c8ba81d5c71fd69c0f48dbde4b2fb422b6dfc")
3042 (revision "0"))
3043 (package
3044 (name "go-github-com-whyrusleeping-tar-utils")
3045 (version (git-version "0.0.0" revision commit))
3046 (source
3047 (origin
3048 (method git-fetch)
3049 (uri (git-reference
3050 (url "https://github.com/whyrusleeping/tar-utils.git")
3051 (commit commit)))
3052 (file-name (git-file-name name version))
3053 (sha256
3054 (base32
3055 "14jjdw3yics0k467xsyk388684wdpi0bbx8nqj0y4pqxa0s0in6s"))))
3056 (build-system go-build-system)
3057 (arguments
3058 '(#:import-path
3059 "github.com/whyrusleeping/tar-utils"))
3060 (home-page "https://github.com/whyrusleeping/tar-utils")
3061 (synopsis "Tar utilities extracted from go-ipfs codebase")
3062 (description "Tar utilities extracted from @command{go-ipfs} codebase.")
3063 (license license:expat))))
3064
3065 (define-public go-github-com-cheekybits-is
3066 (let ((commit "68e9c0620927fb5427fda3708222d0edee89eae9")
3067 (revision "0"))
3068 (package
3069 (name "go-github-com-cheekybits-is")
3070 (version (git-version "0.0.0" revision commit))
3071 (source
3072 (origin
3073 (method git-fetch)
3074 (uri (git-reference
3075 (url "https://github.com/cheekybits/is.git")
3076 (commit commit)))
3077 (file-name (git-file-name name version))
3078 (sha256
3079 (base32
3080 "1mkbyzhwq3rby832ikq00nxv3jnckxsm3949wkxd8ya9js2jmg4d"))))
3081 (build-system go-build-system)
3082 (arguments
3083 '(#:import-path "github.com/cheekybits/is"))
3084 (home-page "https://github.com/cheekybits/is")
3085 (synopsis "Mini testing helper for Go")
3086 (description "A mini testing helper for Go.
3087
3088 @itemize
3089 @item It has a simple interface (@command{is.OK} and @command{is.Equal}).
3090 @item It plugs into existing Go toolchain (uses @command{testing.T}).
3091 @item It's obvious for newcomers.
3092 @item It also gives you @command{is.Panic} and @command{is.PanicWith} helpers
3093 - because testing panics is ugly.
3094 @end itemize\n")
3095 (license license:expat))))
3096
3097 (define-public go-github-com-sabhiram-go-gitignore
3098 (let ((commit "d3107576ba9425fc1c85f4b3569c4631b805a02e")
3099 (revision "0"))
3100 (package
3101 (name "go-github-com-sabhiram-go-gitignore")
3102 (version (git-version "1.0.2" revision commit))
3103 (source
3104 (origin
3105 (method git-fetch)
3106 (uri (git-reference
3107 (url "https://github.com/sabhiram/go-gitignore.git")
3108 (commit commit)))
3109 (file-name (git-file-name name version))
3110 (sha256
3111 (base32
3112 "1rdwyxgcsiwgmlqnc3k6h300mzlvjc3j21np4yh1h476wc8dvl0l"))))
3113 (build-system go-build-system)
3114 (arguments
3115 '(#:import-path
3116 "github.com/sabhiram/go-gitignore"))
3117 (native-inputs
3118 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
3119 (home-page "https://github.com/sabhiram/go-gitignore")
3120 (synopsis "Gitignore parser for Go")
3121 (description "A @command{.gitignore} parser for Go.")
3122 (license license:expat))))
3123
3124 (define-public go-github-com-urfave-cli
3125 (let ((commit "693af58b4d51b8fcc7f9d89576da170765980581")
3126 (revision "0"))
3127 (package
3128 (name "go-github-com-urfave-cli")
3129 (version (git-version "1.20.0" revision commit))
3130 (source
3131 (origin
3132 (method git-fetch)
3133 (uri (git-reference
3134 (url "https://github.com/urfave/cli.git")
3135 (commit commit)))
3136 (file-name (git-file-name name version))
3137 (sha256
3138 (base32
3139 "1krq752xgy658an1696vf4dc2zmp541clwjinhn11394sx2qksh6"))))
3140 (build-system go-build-system)
3141 (arguments
3142 '(#:import-path "github.com/urfave/cli"))
3143 (home-page "https://github.com/urfave/cli")
3144 (synopsis "Simple, fast, and fun package for building command line apps in Go")
3145 (description "@command{cli} is a simple, fast, and fun package for
3146 building command line apps in Go. The goal is to enable developers to write
3147 fast and distributable command line applications in an expressive way.")
3148 (license license:expat))))
3149
3150 (define-public go-github-com-whyrusleeping-json-filter
3151 (let ((commit "ff25329a9528f01c5175414f16cc0a6a162a5b8b")
3152 (revision "0"))
3153 (package
3154 (name "go-github-com-whyrusleeping-json-filter")
3155 (version (git-version "0.0.0" revision commit))
3156 (source
3157 (origin
3158 (method git-fetch)
3159 (uri (git-reference
3160 (url "https://github.com/whyrusleeping/json-filter.git")
3161 (commit commit)))
3162 (file-name (git-file-name name version))
3163 (sha256
3164 (base32
3165 "0cai0drvx4c8j686l908vpcsz3mw3vxi3ziz94b0f3c5ylpj07j7"))))
3166 (build-system go-build-system)
3167 (arguments
3168 '(#:import-path
3169 "github.com/whyrusleeping/json-filter"))
3170 (home-page "https://github.com/whyrusleeping/json-filter")
3171 (synopsis "Library to query JSON objects marshalled into map[string]interface")
3172 (description "A library to query JSON objects marshalled into
3173 @command{map[string]interface{}}.")
3174 (license license:expat))))
3175
3176 (define-public go-github-com-whyrusleeping-progmeter
3177 (let ((commit "f3e57218a75b913eff88d49a52c1debf9684ea04")
3178 (revision "0"))
3179 (package
3180 (name "go-github-com-whyrusleeping-progmeter")
3181 (version (git-version "0.0.0" revision commit))
3182 (source
3183 (origin
3184 (method git-fetch)
3185 (uri (git-reference
3186 (url "https://github.com/whyrusleeping/progmeter.git")
3187 (commit commit)))
3188 (file-name (git-file-name name version))
3189 (sha256
3190 (base32
3191 "0xs8rz6yhpvj9512c5v3b8dwr2kivywnyyfxzdfbr6fy1xc8zskb"))))
3192 (build-system go-build-system)
3193 (arguments
3194 '(#:import-path
3195 "github.com/whyrusleeping/progmeter"))
3196 (home-page "https://github.com/whyrusleeping/progmeter")
3197 (synopsis "Progress meter for Go")
3198 (description "Progress meter for Go.")
3199 (license license:expat))))
3200
3201 (define-public go-github-com-whyrusleeping-stump
3202 (let ((commit "206f8f13aae1697a6fc1f4a55799faf955971fc5")
3203 (revision "0"))
3204 (package
3205 (name "go-github-com-whyrusleeping-stump")
3206 (version (git-version "0.0.0" revision commit))
3207 (source
3208 (origin
3209 (method git-fetch)
3210 (uri (git-reference
3211 (url "https://github.com/whyrusleeping/stump.git")
3212 (commit commit)))
3213 (file-name (git-file-name name version))
3214 (sha256
3215 (base32
3216 "1s40qdppjnk8gijk7x6kbviiqz62nz3h6gic2q9cwcmq8r5isw7n"))))
3217 (build-system go-build-system)
3218 (arguments
3219 '(#:import-path "github.com/whyrusleeping/stump"))
3220 (home-page "https://github.com/whyrusleeping/stump")
3221 (synopsis "Very basic logging package for Go")
3222 (description "A simple log library, for when you don't really care to
3223 have super fancy logs.")
3224 (license license:expat))))
3225
3226 (define-public go-github-com-kr-fs
3227 (let ((commit "1455def202f6e05b95cc7bfc7e8ae67ae5141eba")
3228 (revision "0"))
3229 (package
3230 (name "go-github-com-kr-fs")
3231 (version (git-version "0.1.0" revision commit))
3232 (source
3233 (origin
3234 (method git-fetch)
3235 (uri (git-reference
3236 (url "https://github.com/kr/fs.git")
3237 (commit commit)))
3238 (file-name (git-file-name name version))
3239 (sha256
3240 (base32
3241 "11zg176x9hr9q7fsk95r6q0wf214gg4czy02slax4x56n79g6a7q"))))
3242 (build-system go-build-system)
3243 (arguments
3244 '(#:import-path "github.com/kr/fs"))
3245 (home-page "https://github.com/kr/fs")
3246 (synopsis "File-system-related functions for Go")
3247 (description
3248 "The fs package provides file-system-related Go functions.")
3249 (license license:bsd-3))))
3250
3251 (define-public go-github-com-direnv-go-dotenv
3252 (let ((commit "4cce6d1a66f7bc8dc730eab85cab6af1b801abed")
3253 (revision "0"))
3254 (package
3255 (name "go-github-com-direnv-go-dotenv")
3256 (version (git-version "0.0.0" revision commit))
3257 (source
3258 (origin
3259 (method git-fetch)
3260 (uri (git-reference
3261 (url "https://github.com/direnv/go-dotenv")
3262 (commit commit)))
3263 (file-name (git-file-name name version))
3264 (sha256
3265 (base32
3266 "00wn4fc2lma0csf6ryvlc6k9jbpbifm4n7i3kkd2xrfw5qlm29b6"))))
3267 (build-system go-build-system)
3268 (arguments
3269 '(#:import-path "github.com/direnv/go-dotenv"))
3270 (home-page "https://github.com/direnv/go-dotenv")
3271 (synopsis "Go dotenv parsing library")
3272 (description "This package provides a library for parsing the dotenv
3273 format in Go.")
3274 (license license:expat))))
3275
3276 (define-public go-github-com-kr-pretty
3277 (package
3278 (name "go-github-com-kr-pretty")
3279 (version "0.1.0")
3280 (source (origin
3281 (method git-fetch)
3282 (uri (git-reference
3283 (url "https://github.com/kr/pretty.git")
3284 (commit (string-append "v" version))))
3285 (file-name (git-file-name name version))
3286 (sha256
3287 (base32
3288 "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp"))))
3289 (build-system go-build-system)
3290 (propagated-inputs
3291 `(("go-github-com-kr-text" ,go-github-com-kr-text)))
3292 (arguments
3293 '(#:import-path "github.com/kr/pretty"))
3294 (synopsis "A pretty printer for Go values")
3295 (description "This package provides a pretty printer for Go values.")
3296 (home-page "https://github.com/kr/pretty")
3297 (license license:expat)))
3298
3299 (define-public go-github-com-kr-text
3300 (package
3301 (name "go-github-com-kr-text")
3302 (version "0.1.0")
3303 (source (origin
3304 (method git-fetch)
3305 (uri (git-reference
3306 (url "https://github.com/kr/text.git")
3307 (commit (string-append "v" version))))
3308 (file-name (git-file-name name version))
3309 (sha256
3310 (base32
3311 "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"))))
3312 (build-system go-build-system)
3313 (arguments
3314 '(#:import-path "github.com/kr/text"))
3315 (synopsis "Text formatting in Go")
3316 (description "This package provides a text formatting functions in Go.")
3317 (home-page "https://github.com/kr/text")
3318 (license license:expat)))
3319
3320 (define-public go-golang-org-sql-mock
3321 (let ((commit "e98392b8111b45f8126e00af035a0dd95dc12e8b")
3322 (version "1.3.3")
3323 (revision "1"))
3324 (package
3325 (name "go-golang-org-sql-mock")
3326 (version (git-version version revision commit))
3327 (source (origin
3328 (method git-fetch)
3329 (uri (git-reference
3330 (url "https://github.com/DATA-DOG/go-sqlmock")
3331 (commit commit)))
3332 (file-name (git-file-name name version))
3333 (sha256
3334 (base32
3335 "033vv29g2wf6fd757ajfmha30bqin3b07377037zkl051mk6mghs"))))
3336 (build-system go-build-system)
3337 (arguments
3338 '(#:import-path "github.com/DATA-DOG/go-sqlmock"))
3339 (synopsis "Mock library implementing @code{sql/driver}")
3340 (description "This library simulates SQL-driver behavior in tests
3341 without requiring a real database connection.")
3342 (home-page "https://github.com/DATA-DOG/go-sqlmock")
3343 (license license:expat))))
3344
3345 (define-public go-golang-org-colorful
3346 (package
3347 (name "go-golang-org-colorful")
3348 (version "1.0.2")
3349 (source (origin
3350 (method git-fetch)
3351 (uri (git-reference
3352 (url "https://github.com/lucasb-eyer/go-colorful")
3353 (commit (string-append "v" version))))
3354 (file-name (git-file-name name version))
3355 (sha256
3356 (base32
3357 "0fig06880bvk1l92j4127v4x9sar4ds7ga8959gxxghb2w70b7l2"))))
3358 (build-system go-build-system)
3359 (arguments
3360 '(#:import-path "github.com/lucasb-eyer/go-colorful"))
3361 (native-inputs
3362 `(("go-golang-org-sql-mock" ,go-golang-org-sql-mock)))
3363 (synopsis "Convert between colorspaces and generate colors")
3364 (description "This package implements Go's @code{color.Color} interface
3365 and provides a means of converting colors stored as RGB to various
3366 colorspaces.")
3367 (home-page "https://github.com/lucasb-eyer/go-colorful")
3368 (license license:expat)))
3369
3370 (define-public go-github-com-gdamore-encoding
3371 (package
3372 (name "go-github-com-gdamore-encoding")
3373 (version "1.0.0")
3374 (source
3375 (origin
3376 (method git-fetch)
3377 (uri (git-reference
3378 (url "https://github.com/gdamore/encoding")
3379 (commit (string-append "v" version))))
3380 (file-name (git-file-name name version))
3381 (sha256
3382 (base32
3383 "1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9"))))
3384 (build-system go-build-system)
3385 (arguments
3386 '(#:import-path "github.com/gdamore/encoding"))
3387 (inputs
3388 `(("go-golang-org-x-text-encoding" ,go-golang-org-x-text-encoding)
3389 ("go-golang-org-x-text-transform" ,go-golang-org-x-text-transform)))
3390 (home-page "https://github.com/gdamore/encoding")
3391 (synopsis "Provide encodings missing from Go")
3392 (description "This package provides useful encodings not included in the
3393 standard @code{Text} package, including some for dealing with I/O streams from
3394 non-UTF-friendly sources.")
3395 (license license:expat)))
3396
3397 (define-public go-github-com-gdamore-tcell
3398 (let ((commit "aaadc574a6ed8dc3abe56036ca130dcee1ee6b6e")
3399 (version "1.1.2")
3400 (revision "1"))
3401 (package
3402 (name "go-github-com-gdamore-tcell")
3403 (version (git-version version revision commit))
3404 (source
3405 (origin
3406 (method git-fetch)
3407 (uri (git-reference
3408 (url "https://github.com/gdamore/tcell")
3409 (commit commit)))
3410 (file-name (git-file-name name version))
3411 (sha256
3412 (base32
3413 "0il2nnxp2cqiy73m49215dnf9in3vd25ji8qxbmq87c5qy7i1q9d"))))
3414 (build-system go-build-system)
3415 (arguments
3416 `(#:import-path "github.com/gdamore/tcell"
3417 #:phases
3418 (modify-phases %standard-phases
3419 (add-before 'reset-gzip-timestamps 'make-files-writable
3420 (lambda* (#:key outputs #:allow-other-keys)
3421 ;; Make sure .gz files are writable so that the
3422 ;; 'reset-gzip-timestamps' phase can do its work.
3423 (let ((out (assoc-ref outputs "out")))
3424 (for-each make-file-writable
3425 (find-files out "\\.gz$"))
3426 #t))))))
3427 (inputs
3428 `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
3429 ("go-golang-org-colorful" ,go-golang-org-colorful)
3430 ("go-golang-org-x-text-encoding" ,go-golang-org-x-text-encoding)
3431 ("go-golang-org-x-text-transform" ,go-golang-org-x-text-transform)
3432 ("go-github-com-gdamore-encoding" ,go-github-com-gdamore-encoding)))
3433 (home-page "https://github.com/gdamore/tcell")
3434 (synopsis "Provide a cell-based view for text terminals")
3435 (description "This package includes a full parser and expander for
3436 terminfo capability strings to avoid hard-coding escape strings for
3437 formatting. It also favors portability, and includes support for all POSIX
3438 systems.")
3439 (license license:expat))))
3440
3441 (define-public go-github-com-mattn-go-shellwords
3442 (let ((commit "2444a32a19f450fabaa0bb3e96a703f15d9a97d2")
3443 (version "1.0.5")
3444 (revision "1"))
3445 (package
3446 (name "go-github-com-mattn-go-shellwords")
3447 (version (git-version version revision commit))
3448 (source
3449 (origin
3450 (method git-fetch)
3451 (uri (git-reference
3452 (url "https://github.com/mattn/go-shellwords")
3453 (commit commit)))
3454 (file-name (git-file-name name version))
3455 (sha256
3456 (base32
3457 "08zcgr1az1n8zaxzwdd205j86hczgyc52nxfnw5avpw7rrkf7v0d"))))
3458 (build-system go-build-system)
3459 (arguments
3460 `(#:import-path "github.com/mattn/go-shellwords"
3461 ;; TODO: can't make homeless-shelter:
3462 ;; go: disabling cache (/homeless-shelter/.cache/go-build) due to
3463 ;; initialization failure: mkdir /homeless-shelter: permission denied
3464
3465 ;; This doesn't seem to work:
3466
3467 ;; #:phases
3468 ;; (modify-phases %standard-phases
3469 ;; (replace 'check
3470 ;; (lambda* (#:key import-path #:allow-other-keys)
3471 ;; (setenv "HOME" "/tmp")
3472 ;; (invoke "go" "test" import-path))))
3473
3474 ;; TODO: There are also a couple of tests that have stymied Debian in
3475 ;; the past. They seem to work when run locally.
3476
3477 #:tests? #f
3478 ))
3479 (home-page "https://github.com/mattn/go-shellwords")
3480 (synopsis "Parse lines into shell words")
3481 (description "This package parses text into shell arguments. Based on
3482 the @code{cpan} module @code{Parse::CommandLine}.")
3483 (license license:expat))))
3484
3485 (define-public go-github-com-burntsushi-locker
3486 (let ((commit "a6e239ea1c69bff1cfdb20c4b73dadf52f784b6a")
3487 (revision "0"))
3488 (package
3489 (name "go-github-com-burntsushi-locker")
3490 (version (git-version "0.0.0" revision commit))
3491 (source
3492 (origin
3493 (method git-fetch)
3494 (uri (git-reference
3495 (url "https://github.com/BurntSushi/locker")
3496 (commit commit)))
3497 (file-name (git-file-name name version))
3498 (sha256
3499 (base32
3500 "1xak4aync4klswq5217qvw191asgla51jr42y94vp109lirm5dzg"))))
3501 (build-system go-build-system)
3502 (arguments
3503 '(#:import-path "github.com/BurntSushi/locker"))
3504 (home-page "https://github.com/BurntSushi/locker")
3505 (synopsis "Manage named ReadWrite mutexes in Go")
3506 (description "Golang package for conveniently using named read/write
3507 locks. These appear to be especially useful for synchronizing access to
3508 session based information in web applications.
3509
3510 The common use case is to use the package level functions, which use a package
3511 level set of locks (safe to use from multiple goroutines
3512 simultaneously). However, you may also create a new separate set of locks
3513 test.
3514
3515 All locks are implemented with read-write mutexes. To use them like a regular
3516 mutex, simply ignore the RLock/RUnlock functions.")
3517 (license license:unlicense))))
3518
3519 (define-public go-github-com-marten-seemann-qtls
3520 (package
3521 (name "go-github-com-marten-seemann-qtls")
3522 (version "0.2.3")
3523 (source (origin
3524 (method git-fetch)
3525 (uri (git-reference
3526 (url "https://github.com/marten-seemann/qtls")
3527 (commit (string-append "v" version))))
3528 (file-name (git-file-name name version))
3529 (sha256
3530 (base32
3531 "0b9p7bwkm9hfg1mb565q4nw5k7xyks0z2xagz5fp95azy2psbnfg"))))
3532 (build-system go-build-system)
3533 (arguments
3534 '(#:import-path "github.com/marten-seemann/qtls"
3535 ;; The test suite requires networking.
3536 #:tests? #f))
3537 (propagated-inputs
3538 `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
3539 (synopsis "TLS 1.3 with QUIC in Go")
3540 (description "This package provides @code{qtls}, a QUIC-capable variant of
3541 the Go standard library's TLS 1.3 implementation.")
3542 (home-page "https://github.com/marten-seemann/qtls")
3543 (license license:bsd-3)))
3544
3545 (define-public go-github-com-cheekybits-genny
3546 (package
3547 (name "go-github-com-cheekybits-genny")
3548 (version "1.0.0")
3549 (source (origin
3550 (method git-fetch)
3551 (uri (git-reference
3552 (url "https://github.com/cheekybits/genny")
3553 (commit (string-append "v" version))))
3554 (file-name (git-file-name name version))
3555 (sha256
3556 (base32
3557 "1pcir5ic86713aqa51581rfb67rgc3m0c72ddjfcp3yakv9vyq87"))))
3558 (build-system go-build-system)
3559 (arguments
3560 '(#:import-path "github.com/cheekybits/genny"))
3561 (propagated-inputs
3562 `(("go-golang-org-x-tools" ,go-golang-org-x-tools)))
3563 (synopsis "Generics for Go")
3564 (description "This package provides @code{genny}, a Go language
3565 implementation of generics.")
3566 (home-page "https://github.com/cheekybits/genny/")
3567 (license license:expat)))
3568
3569 (define-public go-github-com-lucas-clemente-quic-go
3570 (package
3571 (name "go-github-com-lucas-clemente-quic-go")
3572 (version "0.11.2")
3573 (source (origin
3574 (method git-fetch)
3575 (uri (git-reference
3576 (url "https://github.com/lucas-clemente/quic-go")
3577 (commit (string-append "v" version))))
3578 (file-name (git-file-name name version))
3579 (sha256
3580 (base32
3581 "0gqm5mc8alg84ra7yxach34il1jvcij8f76qdqcahnd3d2nhjbia"))))
3582 (build-system go-build-system)
3583 (arguments
3584 '(#:import-path "github.com/lucas-clemente/quic-go"
3585 ;; XXX More packages required...
3586 #:tests? #f))
3587 (propagated-inputs
3588 `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
3589 ("go-github-com-cheekybits-genny" ,go-github-com-cheekybits-genny)
3590 ("go-github-com-marten-seemann-qtls" ,go-github-com-marten-seemann-qtls)))
3591 (synopsis "QUIC in Go")
3592 (description "This package provides a Go language implementation of the QUIC
3593 network protocol.")
3594 (home-page "https://github.com/lucas-clemente/quic-go")
3595 (license license:expat)))
3596
3597 (define-public go-github-com-pkg-errors
3598 (let ((commit "27936f6d90f9c8e1145f11ed52ffffbfdb9e0af7")
3599 (revision "0"))
3600 (package
3601 (name "go-github-com-pkg-errors")
3602 (version (git-version "0.8.1" revision commit))
3603 (source (origin
3604 (method git-fetch)
3605 (uri (git-reference
3606 (url "https://github.com/pkg/errors.git")
3607 (commit commit)))
3608 (file-name (git-file-name name version))
3609 (sha256
3610 (base32
3611 "0yzmgi6g4ak4q8y7w6x0n5cbinlcn8yc3gwgzy4yck00qdn25d6y"))))
3612 (build-system go-build-system)
3613 (arguments
3614 `(#:import-path "github.com/pkg/errors"))
3615 (synopsis "Go error handling primitives")
3616 (description "This package provides @code{error}, which offers simple
3617 error handling primitives in Go.")
3618 (home-page "https://github.com/pkg/errors")
3619 (license license:bsd-2))))
3620
3621 (define-public go-github-com-maruel-panicparse
3622 (package
3623 (name "go-github-com-maruel-panicparse")
3624 (version "1.3.0")
3625 (source (origin
3626 (method git-fetch)
3627 (uri (git-reference
3628 (url "https://github.com/maruel/panicparse")
3629 (commit (string-append "v" version))))
3630 (file-name (git-file-name name version))
3631 (sha256
3632 (base32
3633 "13qkn7f64yln8jdmma37h6ra4c7anxkp3vfgvfyb6lb07dpr1ibq"))))
3634 (build-system go-build-system)
3635 (arguments
3636 '(#:import-path "github.com/maruel/panicparse"))
3637 (synopsis "Toolkit for parsing Go stack traces")
3638 (description "This package provides a toolkit for parsing Go language panic
3639 stack traces. It simplifies the traces to make salient information more visible
3640 and aid debugging.")
3641 (home-page "https://github.com/maruel/panicparse")
3642 (license license:asl2.0)))