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>
19 ;;; This file is part of GNU Guix.
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.
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.
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/>.
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))
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
67 ;; The C-language bootstrap of Go:
68 ;; https://golang.org/doc/install/source#go14
69 (version "1.4-bootstrap-20171003")
72 (uri (string-append "https://storage.googleapis.com/golang/"
73 name version ".tar.gz"))
76 "0liybk5z00hizsb5ypkbhqcawnwwa6mkwgvjjg4y3jm3ndg5pzzl"))))
77 (build-system gnu-build-system)
82 `(#:modules ((ice-9 match)
83 (guix build gnu-build-system)
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")
92 (modify-phases %standard-phases
94 (add-after 'patch-generated-file-shebangs 'chdir
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"))
105 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
106 (output (assoc-ref outputs "out")))
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"
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")
121 "ldflags := buildLdflags\n"
122 "ldflags = append(ldflags, \"-r\")\n"
123 "ldflags = append(ldflags, \"" gcclib "\")\n")))
125 (substitute* "os/os_test.go"
126 (("/usr/bin") (getcwd))
127 (("/bin/pwd") (which "pwd")))
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.
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.+)")
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.+)")))
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))
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"))))
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)))
181 (copy-recursively "../test" (string-append tests "/test"))
182 (delete-file-recursively "../test")
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")
189 (for-each (lambda (file)
190 (let ((file (string-append "../" file)))
191 (install-file file docs)
193 '("README" "CONTRIBUTORS" "AUTHORS" "PATENTS"
194 "LICENSE" "VERSION" "robots.txt"))
195 (copy-recursively "../" output)
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")))
206 `(("pkg-config" ,pkg-config)
208 ("net-base" ,net-base)
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)))
221 (define-public go-1.11
229 (uri (string-append "https://storage.googleapis.com/golang/"
230 name version ".src.tar.gz"))
233 "09k9zmq7hhgg0bf1y7rwa0kn7q1vkkr94cmg2iv9lq3najh5nykd"))))
235 (substitute-keyword-arguments (package-arguments go-1.4)
237 `(modify-phases ,phases
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"))
245 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
246 (output (assoc-ref outputs "out")))
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"
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"))
265 (substitute* "os/os_test.go"
266 (("/usr/bin") (getcwd))
267 (("/bin/pwd") (which "pwd"))
268 (("/bin/sh") (which "sh")))
270 (substitute* "cmd/vendor/golang.org/x/sys/unix/syscall_unix_test.go"
271 (("/usr/bin") "/tmp"))
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 "\""
283 "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
284 (substitute* "cmd/go/internal/work/gc.go"
285 (("ldflags = setextld\\(ldflags, compiler\\)")
287 "ldflags = setextld(ldflags, compiler)\n"
288 "ldflags = append(ldflags, \"-r\")\n"
289 "ldflags = append(ldflags, \"" gcclib "\")\n")))
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.
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.+)")))
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"))))
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))
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")
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"))))
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))
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
369 (delete-file-recursively "../pkg/obj")
372 (copy-recursively "../test" (string-append src "/test"))
373 (delete-file-recursively "../test")
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")
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"))
390 (copy-recursively "../" output)
394 ,@(match (%current-system)
395 ((or "armhf-linux" "aarch64-linux")
396 `(("gold" ,binutils-gold)))
398 ,@(package-native-inputs go-1.4)))
399 (supported-systems %supported-systems)))
402 (define-public go-1.12
410 (uri (string-append "https://storage.googleapis.com/golang/"
411 name version ".src.tar.gz"))
414 "04rvwj69gmw3bz8pw5pf10r21ar0pgpnswp15nkddf04dxyl9s4m"))))
416 (substitute-keyword-arguments (package-arguments go-1.4)
418 `(modify-phases ,phases
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"))
426 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
427 (output (assoc-ref outputs "out")))
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.
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"))
441 (substitute* "os/os_test.go"
442 (("/usr/bin") (getcwd))
443 (("/bin/pwd") (which "pwd"))
444 (("/bin/sh") (which "sh")))
446 (substitute* "cmd/vendor/golang.org/x/sys/unix/syscall_unix_test.go"
447 (("/usr/bin") "/tmp"))
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 "\""
459 "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
460 (substitute* "cmd/go/internal/work/gc.go"
461 (("ldflags = setextld\\(ldflags, compiler\\)")
463 "ldflags = setextld(ldflags, compiler)\n"
464 "ldflags = append(ldflags, \"-r\")\n"
465 "ldflags = append(ldflags, \"" gcclib "\")\n")))
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.
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.+)")))
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"))))
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))
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")
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"))))
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))
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
555 (delete-file-recursively "../pkg/obj")
558 (copy-recursively "../test" (string-append src "/test"))
559 (delete-file-recursively "../test")
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")
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"))
576 (copy-recursively "../" output)
580 ,@(match (%current-system)
581 ((or "armhf-linux" "aarch64-linux")
582 `(("gold" ,binutils-gold)))
584 ,@(package-native-inputs go-1.4)))
585 (supported-systems %supported-systems)))
587 (define-public go go-1.12)
589 (define-public go-github-com-alsm-ioprogress
590 (let ((commit "063c3725f436e7fba0c8f588547bee21ffec7ac5")
593 (name "go-github-com-alsm-ioprogress")
594 (version (git-version "0.0.0" revision commit))
598 (url "https://github.com/alsm/ioprogress.git")
600 (file-name (git-file-name name version))
603 "10ym5qlq77nynmkxbk767f2hfwyxg2k7hrzph05hvgzv833dhivh"))))
604 (build-system go-build-system)
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))))
615 (define-public go-github-com-aki237-nscjar
616 (let ((commit "e2df936ddd6050d30dd90c7214c02b5019c42f06")
619 (name "go-github-com-aki237-nscjar")
620 (version (git-version "0.0.0" revision commit))
624 (url "https://github.com/aki237/nscjar.git")
626 (file-name (git-file-name name version))
629 "03y7zzq12qvhsq86lb06sgns8xrkblbn7i7wd886wk3zr5574b96"))))
630 (build-system go-build-system)
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))))
640 (define-public go-github.com-jessevdk-go-flags
642 (name "go-github.com-jessevdk-go-flags")
647 (url "https://github.com/jessevdk/go-flags")
648 (commit (string-append "v" version))))
649 (file-name (git-file-name name version))
652 "1jk2k2l10lwrn1r3nxdvbs0yz656830j4khzirw8p4ahs7c5zz36"))))
653 (build-system go-build-system)
655 '(#:import-path "github.com/jessevdk/go-flags"))
656 (synopsis "Go library for parsing command line arguments")
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)))
665 (define-public go-gopkg.in-tomb.v2
666 (let ((commit "d5d1b5820637886def9eef33e03a27a9f166942c")
669 (name "go-gopkg.in-tomb.v2")
670 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
674 (url "https://github.com/go-tomb/tomb.git")
676 (file-name (string-append name "-" version ".tar.gz"))
679 "1sv15sri99szkdz1bkh0ir46w9n8prrwx5hfai13nrhkawfyfy10"))))
680 (build-system go-build-system)
682 '(#:import-path "gopkg.in/tomb.v2"
684 (modify-phases %standard-phases
685 (add-after 'unpack 'patch-source
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"))
692 (synopsis "@code{tomb} handles clean goroutine tracking and termination")
694 "The @code{tomb} package handles clean goroutine tracking and
696 (home-page "https://gopkg.in/tomb.v2")
697 (license license:bsd-3))))
699 (define-public go-github.com-jtolds-gls
701 (name "go-github.com-jtolds-gls")
706 (url "https://github.com/jtolds/gls")
707 (commit (string-append "v" version))))
708 (file-name (git-file-name name version))
711 "1k7xd2q2ysv2xsh373qs801v6f359240kx0vrl0ydh7731lngvk6"))))
712 (build-system go-build-system)
714 '(#:import-path "github.com/jtolds/gls"))
715 (synopsis "@code{gls} provides Goroutine local storage")
717 "The @code{gls} package provides a way to store a retrieve values
719 (home-page "https://github.com/jtolds/gls")
720 (license license:expat)))
722 (define-public go-github-com-tj-docopt
724 (name "go-github-com-tj-docopt")
729 (url "https://github.com/tj/docopt")
730 (commit (string-append "v" version))))
731 (file-name (git-file-name name version))
734 "06h8hdg1mh3s78zqlr01g4si7k0f0g6pr7fj7lnvfg446hgc7080"))))
735 (build-system go-build-system)
737 '(#:import-path "github.com/tj/docopt"))
738 (synopsis "Go implementation of docopt")
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)))
746 (define-public go-github-com-hashicorp-hcl
747 (let ((commit "23c074d0eceb2b8a5bfdbb271ab780cde70f05a8")
750 (name "go-github-com-hashicorp-hcl")
751 (version (git-version "0.0.0" revision commit))
755 (url "https://github.com/hashicorp/hcl")
757 (file-name (git-file-name name version))
760 "0db4lpqb5m130rmfy3s3gjjf4dxllypmyrzxv6ggqhkmwmc7w4mc"))))
761 (build-system go-build-system)
764 #:import-path "github.com/hashicorp/hcl"))
765 (synopsis "Go implementation of HashiCorp Configuration Language")
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))))
773 (define-public go-golang-org-x-tools
774 (let ((commit "8b927904ee0dec805c89aaf9172f4459296ed6e8")
777 (name "go-golang-org-x-tools")
778 (version (git-version "0.1.3" revision commit))
782 (url "https://go.googlesource.com/tools")
784 (file-name (string-append "go.googlesource.com-tools-"
785 version "-checkout"))
788 "0iinb70xhcjsddgi42ia1n745lx2ibnjdm6m2v666qrk3876vpck"))))
789 (build-system go-build-system)
791 `(#:import-path "golang.org/x/tools"
792 ;; Source-only package
795 (modify-phases %standard-phases
796 ;; Source-only package
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))))
804 (define-public go-golang-org-x-crypto
805 (let ((commit "b7391e95e576cacdcdd422573063bc057239113d")
808 (name "go-golang-org-x-crypto")
809 (version (git-version "0.0.0" revision commit))
813 (url "https://go.googlesource.com/crypto")
815 (file-name (string-append "go.googlesource.com-crypto-"
816 version "-checkout"))
819 "1jqfh81mhgwcc6b9l0bs6rb0707s01qpvn7896i5bsmig46lc7zm"))))
820 (build-system go-build-system)
822 '(#:import-path "golang.org/x/crypto"
823 ;; Source-only package
826 (modify-phases %standard-phases
827 ;; Source-only package
829 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
830 (lambda* (#:key outputs #:allow-other-keys)
832 (make-file-writable file))
834 (string-append (assoc-ref outputs "out")
835 "/src/golang.org/x/crypto/ed25519/testdata")
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))))
846 (define-public go-golang-org-x-crypto-bcrypt
847 (let ((commit "b7391e95e576cacdcdd422573063bc057239113d")
850 (name "go-golang-org-x-crypto-bcrypt")
851 (version (git-version "0.0.0" revision commit))
855 (url "https://go.googlesource.com/crypto")
857 (file-name (string-append "go.googlesource.com-crypto-"
858 version "-checkout"))
861 "1jqfh81mhgwcc6b9l0bs6rb0707s01qpvn7896i5bsmig46lc7zm"))))
862 (build-system go-build-system)
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))))
872 (define-public go-golang-org-x-crypto-blowfish
874 (inherit go-golang-org-x-crypto-bcrypt)
875 (name "go-golang-org-x-crypto-blowfish")
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.")))
883 (define-public go-golang-org-x-crypto-pbkdf2
885 (inherit go-golang-org-x-crypto-bcrypt)
886 (name "go-golang-org-x-crypto-pbkdf2")
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.")))
894 (define-public go-golang-org-x-crypto-tea
896 (inherit go-golang-org-x-crypto-bcrypt)
897 (name "go-golang-org-x-crypto-tea")
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.")))
905 (define-public go-golang-org-x-crypto-salsa20
907 (inherit go-golang-org-x-crypto-bcrypt)
908 (name "go-golang-org-x-crypto-salsa20")
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
916 (define-public go-golang-org-x-crypto-cast5
918 (inherit go-golang-org-x-crypto-bcrypt)
919 (name "go-golang-org-x-crypto-cast5")
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.")))
927 (define-public go-golang-org-x-crypto-twofish
929 (inherit go-golang-org-x-crypto-bcrypt)
930 (name "go-golang-org-x-crypto-twofish")
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.")))
938 (define-public go-golang-org-x-crypto-xtea
940 (inherit go-golang-org-x-crypto-bcrypt)
941 (name "go-golang-org-x-crypto-xtea")
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.")))
949 (define-public go-golang-org-x-crypto-ed25519
951 (inherit go-golang-org-x-crypto-bcrypt)
952 (name "go-golang-org-x-crypto-ed25519")
954 `(#:import-path "golang.org/x/crypto/ed25519"
955 #:unpack-path "golang.org/x/crypto"
957 (modify-phases %standard-phases
958 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
959 (lambda* (#:key outputs #:allow-other-keys)
961 (make-file-writable file))
963 (string-append (assoc-ref outputs "out")
964 "/src/golang.org/x/crypto/ed25519/testdata")
967 (synopsis "ED25519 in Go")
968 (description "This package provides a Go implementation of the ED25519
969 signature algorithm.")))
971 (define-public go-golang-org-x-crypto-ripemd160
973 (inherit go-golang-org-x-crypto-bcrypt)
974 (name "go-golang-org-x-crypto-ripemd160")
976 (substitute-keyword-arguments (package-arguments go-golang-org-x-crypto-bcrypt)
978 "golang.org/x/crypto/ripemd160")))
979 (synopsis "RIPEMD-160 in Go")
980 (description "This package provides a Go implementation of the RIPEMD-160
983 (define-public go-golang-org-x-crypto-blake2s
985 (inherit go-golang-org-x-crypto-bcrypt)
986 (name "go-golang-org-x-crypto-blake2s")
988 (substitute-keyword-arguments (package-arguments go-golang-org-x-crypto-bcrypt)
990 "golang.org/x/crypto/blake2s")))
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
997 (define-public go-golang-org-x-crypto-sha3
999 (inherit go-golang-org-x-crypto-bcrypt)
1000 (name "go-golang-org-x-crypto-sha3")
1002 (substitute-keyword-arguments (package-arguments go-golang-org-x-crypto-bcrypt)
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.")))
1010 (define-public go-golang-org-x-net-ipv4
1011 (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
1014 (name "go-golang-org-x-net-ipv4")
1015 (version (git-version "0.0.0" revision commit))
1019 (url "https://go.googlesource.com/net")
1021 (file-name (git-file-name name version))
1024 "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
1025 (build-system go-build-system)
1027 `(#:import-path "golang.org/x/net/ipv4"
1028 #:unpack-path "golang.org/x/net"))
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))))
1037 (define-public go-golang-org-x-net-bpf
1038 (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
1041 (name "go-golang-org-x-net-bpf")
1042 (version (git-version "0.0.0" revision commit))
1046 (url "https://go.googlesource.com/net")
1048 (file-name (string-append "go.googlesource.com-net-"
1049 version "-checkout"))
1052 "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
1053 (build-system go-build-system)
1055 `(#:import-path "golang.org/x/net/bpf"
1056 #:unpack-path "golang.org/x/net"))
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))))
1065 (define-public go-golang-org-x-net-context
1066 (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
1069 (name "go-golang-org-x-net-context")
1070 (version (git-version "0.0.0" revision commit))
1074 (url "https://go.googlesource.com/net")
1076 (file-name (string-append "go.googlesource.com-net-"
1077 version "-checkout"))
1080 "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
1081 (build-system go-build-system)
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))))
1092 (define-public go-golang-org-x-net-internal-socks
1093 (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
1096 (name "go-golang-org-x-net-internal-socks")
1097 (version (git-version "0.0.0" revision commit))
1101 (url "https://go.googlesource.com/net")
1103 (file-name (string-append "go.googlesource.com-net-"
1104 version "-checkout"))
1107 "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
1108 (build-system go-build-system)
1110 `(#:import-path "golang.org/x/net/internal/socks"
1111 #:unpack-path "golang.org/x/net"))
1114 (home-page "https://go.googlesource.com/net/")
1115 (license license:bsd-3))))
1117 (define-public go-golang-org-x-net-internal-socket
1118 (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
1121 (name "go-golang-org-x-net-internal-socket")
1122 (version (git-version "0.0.0" revision commit))
1126 (url "https://go.googlesource.com/net")
1128 (file-name (string-append "go.googlesource.com-net-"
1129 version "-checkout"))
1132 "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
1133 (build-system go-build-system)
1135 `(#:import-path "golang.org/x/net/internal/socket"
1136 #:unpack-path "golang.org/x/net"))
1138 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
1141 (home-page "https://go.googlesource.com/net/")
1142 (license license:bsd-3))))
1144 (define-public go-golang-org-x-net-internal-iana
1145 (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
1148 (name "go-golang-org-x-net-internal-iana")
1149 (version (git-version "0.0.0" revision commit))
1153 (url "https://go.googlesource.com/net")
1155 (file-name (string-append "go.googlesource.com-net-"
1156 version "-checkout"))
1159 "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
1160 (build-system go-build-system)
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))))
1170 (define-public go-golang-org-x-net-ipv6
1171 (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
1174 (name "go-golang-org-x-net-ipv6")
1175 (version (git-version "0.0.0" revision commit))
1179 (url "https://go.googlesource.com/net")
1181 (file-name (string-append "go.googlesource.com-net-"
1182 version "-checkout"))
1185 "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
1186 (build-system go-build-system)
1188 `(#:import-path "golang.org/x/net/ipv6"
1189 #:unpack-path "golang.org/x/net"))
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))))
1198 (define-public go-golang-org-x-net-proxy
1199 (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
1202 (name "go-golang-org-x-net-proxy")
1203 (version (git-version "0.0.0" revision commit))
1207 (url "https://go.googlesource.com/net")
1209 (file-name (string-append "go.googlesource.com-net-"
1210 version "-checkout"))
1213 "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
1214 (build-system go-build-system)
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))))
1224 (define-public go-golang-org-x-sys-unix
1225 (let ((commit "04f50cda93cbb67f2afa353c52f342100e80e625")
1228 (name "go-golang-org-x-sys-unix")
1229 (version (git-version "0.0.0" revision commit))
1233 (url "https://go.googlesource.com/sys")
1235 (file-name (git-file-name name version))
1238 "0hmfsz9y1ingwsn482hlzzmzs7kr3cklm0ana0mbdk70isw2bxnw"))))
1239 (build-system go-build-system)
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))))
1249 (define-public go-golang-org-x-sys-cpu
1251 (inherit go-golang-org-x-sys-unix)
1252 (name "go-golang-org-x-sys-cpu")
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.")))
1260 (define-public go-golang-org-x-text-encoding
1262 (name "go-golang-org-x-text-encoding")
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"))
1273 "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"))))
1274 (build-system go-build-system)
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
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)))
1286 (define-public go-golang-org-x-text-transform
1288 (inherit go-golang-org-x-text-encoding)
1289 (name "go-golang-org-x-text-transform")
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.")))
1299 (define-public go-golang-org-x-text-unicode-norm
1301 (inherit go-golang-org-x-text-encoding)
1302 (name "go-golang-org-x-text-unicode-norm")
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.")))
1310 (define-public go-golang-org-x-time-rate
1311 (let ((commit "6dc17368e09b0e8634d71cac8168d853e869a0c7")
1314 (name "go-golang-org-x-time-rate")
1315 (version (git-version "0.0.0" revision commit))
1319 (url "https://go.googlesource.com/time")
1321 (file-name (git-file-name name version))
1324 "1fx4cf5fpdz00g3c7vxzy92hdcg0vh4yqw00qp5s52j72qixynbk"))))
1325 (build-system go-build-system)
1327 `(#:import-path "golang.org/x/time/rate"
1328 #:unpack-path "golang.org/x/time"))
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
1334 (home-page "https://godoc.org/golang.org/x/time/rate")
1335 (license license:bsd-3))))
1337 (define-public go-golang-org-x-crypto-ssh-terminal
1339 (inherit go-golang-org-x-crypto-bcrypt)
1340 (name "go-golang-org-x-crypto-ssh-terminal")
1342 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
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.")))
1350 (define-public go-github-com-burntsushi-toml
1352 (name "go-github-com-burntsushi-toml")
1358 (url "https://github.com/BurntSushi/toml.git")
1359 (commit (string-append "v" version))))
1360 (file-name (git-file-name name version))
1363 "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6"))))
1364 (build-system go-build-system)
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)))
1373 (define-public go-github-com-getsentry-raven-go
1374 (let ((commit "5c24d5110e0e198d9ae16f1f3465366085001d92")
1377 (name "go-github-com-getsentry-raven-go")
1378 (version (git-version "0.2.0" revision commit))
1383 (url "https://github.com/getsentry/raven-go.git")
1385 (file-name (git-file-name name version))
1388 "0lvc376sq8r8jhy2v1m6rf1wyld61pvbk0x6j9xpg56ivqy69xs7"))))
1389 (build-system go-build-system)
1391 '(#:import-path "github.com/getsentry/raven-go"))
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
1399 (license license:bsd-3))))
1401 (define-public go-github-com-hashicorp-go-version
1403 "03c5bf6be031b6dd45afec16b1cf94fc8938bc77")
1406 (name "go-github-com-hashicorp-go-version")
1407 (version (git-version "0.0.0" revision commit))
1412 (url "https://github.com/hashicorp/go-version.git")
1414 (file-name (git-file-name name version))
1417 "0sjq57gpfznaqdrbyb2p0bn90g9h661cvr0jrk6ngags4pbw14ik"))))
1418 (build-system go-build-system)
1420 '(#:import-path "github.com/hashicorp/go-version"))
1422 "https://github.com/hashicorp/go-version")
1423 (synopsis "Go library for parsing and verifying versions and version
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))))
1431 (define-public go-github-com-jpillora-backoff
1433 "06c7a16c845dc8e0bf575fafeeca0f5462f5eb4d")
1436 (name "go-github-com-jpillora-backoff")
1437 (version (git-version "0.0.0" revision commit))
1442 (url "https://github.com/jpillora/backoff.git")
1444 (file-name (git-file-name name version))
1447 "0xhvxr7bm47czdc5hy3kl508z3y4j91i2jm7vg774i52zych6k4l"))))
1448 (build-system go-build-system)
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
1455 (license license:expat))))
1457 (define-public go-github-com-stretchr-testify
1459 "b1f989447a57594c728884458a39abf3a73447f7")
1462 (name "go-github-com-stretchr-testify")
1463 (version (git-version "1.1.4" revision commit))
1468 (url "https://github.com/stretchr/testify.git")
1470 (file-name (git-file-name name version))
1473 "0p0gkqzh2p8r5g0rxm885ljl7ghih7h7hx9w562imx5ka0vdgixv"))))
1474 (build-system go-build-system)
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.
1484 @item Easy assertions
1486 @item HTTP response trapping
1487 @item Testing suite interfaces and functions.
1489 (license license:expat))))
1491 (define-public go-github-com-tevino-abool
1493 "3c25f2fe7cd0ef3eabefce1d90efd69a65d35b12")
1496 (name "go-github-com-tevino-abool")
1497 (version (git-version "0.0.0" revision commit))
1502 (url "https://github.com/tevino/abool.git")
1504 (file-name (git-file-name name version))
1507 "1wxqrclxk93q0aj15z596dx2y57x9nkhi64nbrr5cxnhxn8vwixm"))))
1508 (build-system go-build-system)
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))))
1517 (define-public go-github-com-blang-semver
1518 (let ((commit "60ec3488bfea7cca02b021d106d9911120d25fe9")
1521 (name "go-github-com-blang-semver")
1522 (version (git-version "0.0.0" revision commit))
1527 (url "https://github.com/blang/semver.git")
1529 (file-name (git-file-name name version))
1532 "19pli07y5592g4dyjyj0jq5rn548vc3fz0qg3624vm1j5828p1c2"))))
1533 (build-system go-build-system)
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))))
1541 (define-public go-github-com-emicklei-go-restful
1542 (let ((commit "89ef8af493ab468a45a42bb0d89a06fccdd2fb22")
1545 (name "go-github-com-emicklei-go-restful")
1546 (version (git-version "0.0.0" revision commit))
1551 (url "https://github.com/emicklei/go-restful.git")
1553 (file-name (git-file-name name version))
1556 "0rrlfcfq80fkxifpih6bq31vavb5mf4530xz51pp9pq1mn2fzjfh"))))
1557 (build-system go-build-system)
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))))
1567 (define-public go-github-com-google-cadvisor
1568 (let ((commit "2ed7198f77395ee9a172878a0a7ab92ab59a2cfd")
1571 (name "go-github-com-google-cadvisor")
1572 (version (git-version "0.0.0" revision commit))
1577 (url "https://github.com/google/cadvisor.git")
1579 (file-name (git-file-name name version))
1582 "1w8p345z5j0gk3yiq5ah0znd5lfh348p2s624k5r10drz04p3f55"))))
1583 (build-system go-build-system)
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
1591 (license license:asl2.0))))
1593 (define-public go-github-com-google-gofuzz
1594 (let ((commit "fd52762d25a41827db7ef64c43756fd4b9f7e382")
1597 (name "go-github-com-google-gofuzz")
1598 (version (git-version "0.0.0" revision commit))
1603 (url "https://github.com/google/gofuzz.git")
1605 (file-name (git-file-name name version))
1608 "1yxmmr73h0lq7ryf3q9a7pcm2x5xrg4d5bxkq8n5pxwxwyq26kw8"))))
1609 (build-system go-build-system)
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))))
1618 (define-public go-github-com-gorilla-context
1619 (let ((commit "08b5f424b9271eedf6f9f0ce86cb9396ed337a42")
1622 (name "go-github-com-gorilla-context")
1623 (version (git-version "0.0.0" revision commit))
1628 (url "https://github.com/gorilla/context.git")
1630 (file-name (git-file-name name version))
1633 "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4"))))
1634 (build-system go-build-system)
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))))
1642 (define-public go-github-com-gorilla-mux
1643 (let ((commit "599cba5e7b6137d46ddf58fb1765f5d928e69604")
1646 (name "go-github-com-gorilla-mux")
1647 (version (git-version "0.0.0" revision commit))
1652 (url "https://github.com/gorilla/mux.git")
1654 (file-name (git-file-name name version))
1657 "0wd6jjii1kg5s0nk3ri6gqriz6hbd6bbcn6x4jf8n7ncrb8qsxyz"))))
1658 (build-system go-build-system)
1660 '(#:import-path "github.com/gorilla/mux"))
1661 (home-page "https://github.com/gorilla/mux")
1662 (synopsis "URL router and dispatcher for Go")
1664 "Gorilla/Mux implements a request router and dispatcher for matching
1665 incoming requests with their respective handler.")
1666 (license license:bsd-3))))
1668 (define-public go-github-com-jonboulle-clockwork
1669 (let ((commit "e3653ace2d63753697e0e5b07b9393971c0bba9d")
1672 (name "go-github-com-jonboulle-clockwork")
1673 (version (git-version "0.0.0" revision commit))
1678 (url "https://github.com/jonboulle/clockwork.git")
1680 (file-name (git-file-name name version))
1683 "1avzqhks12a8x2yzpvjsf3k0gv9cy7zx2z88hn0scacnxkphisvc"))))
1684 (build-system go-build-system)
1686 '(#:import-path "github.com/jonboulle/clockwork"))
1687 (home-page "https://github.com/jonboulle/clockwork")
1688 (synopsis "Fake clock library for Go")
1690 "Replace uses of the @code{time} package with the
1691 @code{clockwork.Clock} interface instead.")
1692 (license license:asl2.0))))
1694 (define-public go-github-com-spf13-pflag
1695 (let ((commit "4f9190456aed1c2113ca51ea9b89219747458dc1")
1698 (name "go-github-com-spf13-pflag")
1699 (version (git-version "0.0.0" revision commit))
1704 (url "https://github.com/spf13/pflag.git")
1706 (file-name (git-file-name name version))
1709 "12vrlcsbwjqlfc49rwky45mbcj74c0kb6z54354pzas6fwzyi1kc"))))
1710 (build-system go-build-system)
1712 '(#:import-path "github.com/spf13/pflag"))
1713 (home-page "https://github.com/spf13/pflag")
1714 (synopsis "Replacement for Go's @code{flag} package")
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
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))))
1723 (define-public go-github-com-sirupsen-logrus
1725 (name "go-github-com-sirupsen-logrus")
1731 (url "https://github.com/sirupsen/logrus.git")
1732 (commit (string-append "v" version))))
1735 "0g5z7al7kky11ai2dhac6gkp3b5pxsvx72yj3xg4wg3265gbn7yz"))))
1736 (build-system go-build-system)
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)))
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)))
1753 (define-public go-github-com-kardianos-osext
1754 (let ((commit "ae77be60afb1dcacde03767a8c37337fad28ac14")
1757 (name "go-github-com-kardianos-osext")
1758 (version (git-version "0.0.0" revision commit))
1762 (url "https://github.com/kardianos/osext")
1764 (file-name (git-file-name name version))
1767 "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz"))))
1768 (build-system go-build-system)
1770 `(#:import-path "github.com/kardianos/osext"
1771 ;; The tests are flaky:
1772 ;; <https://github.com/kardianos/osext/issues/21>
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))))
1781 (define-public go-github-com-ayufan-golang-kardianos-service
1782 (let ((commit "0c8eb6d8fff2e2fb884a7bfd23e183fb63c0eff3")
1785 (name "go-github-com-ayufan-golang-kardianos-service")
1786 (version (git-version "0.0.0" revision commit))
1792 "https://github.com/ayufan/golang-kardianos-service.git")
1794 (file-name (git-file-name name version))
1797 "0x0cn7l5gda2khsfypix7adxd5yqighzn04mxjw6hc4ayrh7his5"))))
1798 (build-system go-build-system)
1800 `(("go-github-com-kardianos-osext"
1801 ,go-github-com-kardianos-osext)))
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))))
1812 (define-public go-github-com-docker-distribution
1813 (let ((commit "325b0804fef3a66309d962357aac3c2ce3f4d329")
1816 (name "go-github-com-docker-distribution")
1817 (version (git-version "0.0.0" revision commit))
1819 ;; FIXME: This bundles many things, see
1820 ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31881#41>.
1824 (url "https://github.com/docker/distribution")
1826 (file-name (git-file-name name version))
1829 "1yg2zrikn3vkvkx5mn51p6bfjk840qdkn7ahhhvvcsc8mpigrjc6"))))
1830 (build-system go-build-system)
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)))
1839 '(#:import-path "github.com/docker/distribution"
1841 (modify-phases %standard-phases
1842 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1843 (lambda* (#:key outputs #:allow-other-keys)
1845 (make-file-writable file))
1847 (assoc-ref outputs "out")
1851 "https://github.com/docker/distribution")
1852 (synopsis "This package is a Docker toolset to pack, ship, store, and
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))))
1859 (define-public go-github-com-docker-go-connections
1860 (let ((commit "3ede32e2033de7505e6500d6c868c2b9ed9f169d")
1863 (name "go-github-com-docker-go-connections")
1864 (version (git-version "0.0.0" revision commit))
1869 (url "https://github.com/docker/go-connections.git")
1871 (file-name (git-file-name name version))
1874 "0v1pkr8apwmhyzbjfriwdrs1ihlk6pw7izm57r24mf9jdmg3fyb0"))))
1875 (build-system go-build-system)
1877 '(#:import-path "github.com/docker/go-connections"))
1878 (home-page "https://github.com/docker/go-connections")
1879 (synopsis "Networking library for Go")
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))))
1886 (define-public go-github-com-docker-machine
1887 (let ((commit "7b7a141da84480342357c51838be142bf183b095")
1890 (name "go-github-com-docker-machine")
1891 (version (git-version "0.0.0" revision commit))
1896 (url "https://github.com/docker/machine.git")
1898 (file-name (git-file-name name version))
1901 "0bavk0lvs462yh0lnmnxi9psi5qv1x3nvzmd2b0drsahlp1gxi8s"))))
1902 (build-system go-build-system)
1904 '(#:import-path "github.com/docker/machine"))
1905 (home-page "https://github.com/docker/machine")
1906 (synopsis "Machine management for a container-centric world")
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))))
1913 (define-public go-github-com-gorhill-cronexpr
1914 (let ((commit "f0984319b44273e83de132089ae42b1810f4933b")
1917 (name "go-github-com-gorhill-cronexpr")
1918 (version (git-version "0.0.0" revision commit))
1923 (url "https://github.com/gorhill/cronexpr.git")
1925 (file-name (git-file-name name version))
1928 "0dphhhqy3i7265znv3m8n57l80dmaq6z4hsj5kgd87qd19z8x0l2"))))
1929 (build-system go-build-system)
1931 '(#:import-path "github.com/gorhill/cronexpr"))
1932 (home-page "https://github.com/gorhill/cronexpr")
1933 (synopsis "Cron expression parser in the Go language")
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+
1941 (define-public go-gopkg-in-check-v1
1942 (let ((commit "788fd78401277ebd861206a03c884797c6ec5541")
1945 (name "go-gopkg-in-check-v1")
1946 (version (git-version "1.0.0" revision commit))
1951 (url "https://github.com/go-check/check")
1953 (file-name (git-file-name name version))
1956 "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a"))))
1957 (build-system go-build-system)
1959 '(#:import-path "gopkg.in/check.v1"))
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))))
1967 (define-public go-gopkg-in-yaml-v2
1969 (name "go-gopkg-in-yaml-v2")
1975 (url "https://gopkg.in/yaml.v2.git")
1976 (commit (string-append "v" version))))
1977 (file-name (git-file-name name version))
1980 "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa"))))
1981 (build-system go-build-system)
1983 '(#:import-path "gopkg.in/yaml.v2"))
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")
1989 "This package provides a Go library for encode and decode YAML
1991 (license license:asl2.0)))
1993 (define-public go-github-com-mattn-go-isatty
1995 (name "go-github-com-mattn-go-isatty")
2001 (url "https://github.com/mattn/go-isatty")
2002 (commit (string-append "v" version))))
2003 (file-name (git-file-name name version))
2006 "1i77aq4gf9as03m8fpfh8fq49n4z9j7548blrcsidm1xhslzk5xd"))))
2007 (build-system go-build-system)
2009 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
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
2017 (license license:expat)))
2019 (define-public go-github-com-mattn-go-colorable
2020 (let ((commit "efa589957cd060542a26d2dd7832fd6a6c6c3ade")
2023 (name "go-github-com-mattn-go-colorable")
2024 (version (git-version "0.0.0" revision commit))
2029 (url "https://github.com/mattn/go-colorable")
2031 (file-name (git-file-name name version))
2034 "0kshi4hvm0ayrsxqxy0599iv81kryhd2fn9lwjyczpj593cq069r"))))
2035 (build-system go-build-system)
2037 `(("go-github-com-mattn-go-isatty"
2038 ,go-github-com-mattn-go-isatty)))
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))))
2047 (define-public go-github-com-mgutz-ansi
2048 (let ((commit "9520e82c474b0a04dd04f8a40959027271bab992")
2051 (name "go-github-com-mgutz-ansi")
2052 (version (git-version "0.0.0" revision commit))
2058 "https://github.com/mgutz/ansi")
2060 (file-name (git-file-name name version))
2063 "00bz22314j26736w1f0q4jy9d9dfaml17vn890n5zqy3cmvmww1j"))))
2064 (build-system go-build-system)
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)))
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))))
2078 (define-public go-github-com-aarzilli-golua
2079 (let ((commit "03fc4642d792b1f2bc5e7343b403cf490f8c501d")
2082 (name "go-github-com-aarzilli-golua")
2083 (version (git-version "0.0.0" revision commit))
2089 "https://github.com/aarzilli/golua")
2091 (file-name (git-file-name name version))
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.
2103 `(#:unpack-path "github.com/aarzilli/golua"
2104 #:import-path "github.com/aarzilli/golua/lua"
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
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))))
2124 (define-public go-gitlab-com-ambrevar-golua-unicode
2125 (let ((commit "97ce517e7a1fe2407a90c317a9c74b173d396144")
2128 (name "go-gitlab-com-ambrevar-golua-unicode")
2129 (version (git-version "0.0.0" revision commit))
2135 "https://gitlab.com/ambrevar/golua")
2137 (file-name (git-file-name name version))
2140 "1izcp7p8nagjwqd13shb0020w7xhppib1a3glw2d1468bflhksnm"))))
2141 (build-system go-build-system)
2144 ("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
2146 `(#:unpack-path "gitlab.com/ambrevar/golua"
2147 #:import-path "gitlab.com/ambrevar/golua/unicode"
2149 (modify-phases %standard-phases
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))))
2162 (define-public go-github-com-yookoala-realpath
2163 (let ((commit "d19ef9c409d9817c1e685775e53d361b03eabbc8")
2166 (name "go-github-com-yookoala-realpath")
2167 (version (git-version "0.0.0" revision commit))
2173 "https://github.com/yookoala/realpath")
2175 (file-name (git-file-name name version))
2178 "0qvz1dcdldf53rq69fli76z5k1vr7prx9ds1d5rpzgs68kwn40nw"))))
2179 (build-system go-build-system)
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))))
2189 (define-public go-gitlab-com-ambrevar-damerau
2190 (let ((commit "883829e1f25fad54015772ea663e69017cf22352")
2193 (name "go-gitlab-com-ambrevar-damerau")
2194 (version (git-version "0.0.0" revision commit))
2200 "https://gitlab.com/ambrevar/damerau")
2202 (file-name (git-file-name name version))
2205 "1b9p8fypc914ij1afn6ir346zsgfqrc5mqc1k3d53n4snypq27qv"))))
2206 (build-system go-build-system)
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
2215 (license license:expat))))
2217 (define-public go-github-com-stevedonovan-luar
2218 (let ((commit "22d247e5366095f491cd83edf779ee99a78f5ead")
2221 (name "go-github-com-stevedonovan-luar")
2222 (version (git-version "0.0.0" revision commit))
2228 "https://github.com/stevedonovan/luar")
2230 (file-name (git-file-name name version))
2233 "1acjgw9cz1l0l9mzkyk7irz6cfk31wnxgbwa805fvm1rqcjzin2c"))))
2234 (build-system go-build-system)
2236 `(("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
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
2248 Any Go function can be made available to Lua scripts, without having to write
2251 Luar support cyclic structures (lists, etc.).
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
2256 (license license:expat))))
2258 (define-public go-github-com-michiwend-golang-pretty
2259 (let ((commit "8ac61812ea3fa540f3f141a444fcb0dd713cdca4")
2262 (name "go-github-com-michiwend-golang-pretty")
2263 (version (git-version "0.0.0" revision commit))
2269 "https://github.com/michiwend/golang-pretty")
2271 (file-name (git-file-name name version))
2274 "0rjfms0csjqi91xnddzx3rcrcaikc7xc027617px3kdwdap80ir4"))))
2275 (build-system go-build-system)
2277 `(("go-github-com-kr-text" ,go-github-com-kr-text)))
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
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))))
2292 (define-public go-github-com-michiwend-gomusicbrainz
2293 (let ((commit "0cdeb13f9b24d2c714feb7e3c63d595cf7121d7d")
2296 (name "go-github-com-michiwend-gomusicbrainz")
2297 (version (git-version "0.0.0" revision commit))
2303 "https://github.com/michiwend/gomusicbrainz")
2305 (file-name (git-file-name name version))
2308 "1li9daw0kghb80rdmxbh7g72qhxcvx3rvhwq5gs0jrr9hb8pjvcn"))))
2309 (build-system go-build-system)
2311 `(("go-github-com-michiwend-golang-pretty" ,go-github-com-michiwend-golang-pretty)
2312 ("go-github-com-kr-text" ,go-github-com-kr-text)))
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))))
2321 (define-public go-github-com-wtolson-go-taglib
2322 (let ((commit "6e68349ff94ecea412de7e748cb5eaa26f472777")
2325 (name "go-github-com-wtolson-go-taglib")
2326 (version (git-version "0.0.0" revision commit))
2332 "https://github.com/wtolson/go-taglib")
2334 (file-name (git-file-name name version))
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.
2344 `(("pkg-config" ,pkg-config)
2345 ("taglib" ,taglib)))
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.
2351 (modify-phases %standard-phases
2353 (lambda* (#:key import-path #:allow-other-keys)
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))))
2362 (define-public go-github-com-gogo-protobuf
2364 (name "go-github-com-gogo-protobuf")
2369 (url "https://github.com/gogo/protobuf")
2370 (commit (string-append "v" version))))
2371 (file-name (git-file-name name version))
2374 "06yqa6h0kw3gr5pc3qmas7f7435a96zf7iw7p0l00r2hqf6fqq6m"))))
2375 (build-system go-build-system)
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:
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
2390 (home-page "https://github.com/gogo/protobuf")
2391 (license license:bsd-3)))
2393 (define-public go-github-com-gogo-protobuf-protoc-gen-gogo
2395 (name "go-github-com-gogo-protobuf-protoc-gen-gogo")
2400 (url "https://github.com/gogo/protobuf")
2401 (commit (string-append "v" version))))
2402 (file-name (git-file-name name version))
2405 "06yqa6h0kw3gr5pc3qmas7f7435a96zf7iw7p0l00r2hqf6fqq6m"))))
2406 (build-system go-build-system)
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:
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
2422 (home-page "https://github.com/gogo/protobuf")
2423 (license license:bsd-3)))
2425 (define-public go-github-com-gogo-protobuf-gogoproto
2427 (name "go-github-com-gogo-protobuf-gogoproto")
2433 (url "https://github.com/gogo/protobuf.git")
2434 (commit (string-append "v" version))))
2435 (file-name (git-file-name name version))
2438 "06yqa6h0kw3gr5pc3qmas7f7435a96zf7iw7p0l00r2hqf6fqq6m"))))
2439 (build-system go-build-system)
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
2447 (license license:bsd-3)))
2449 (define-public go-github-com-gogo-protobuf-proto
2451 (name "go-github-com-gogo-protobuf-proto")
2457 (url "https://github.com/gogo/protobuf.git")
2458 (commit (string-append "v" version))))
2459 (file-name (git-file-name name version))
2462 "06yqa6h0kw3gr5pc3qmas7f7435a96zf7iw7p0l00r2hqf6fqq6m"))))
2463 (build-system go-build-system)
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
2471 (license license:bsd-3)))
2473 (define-public go-github-com-libp2p-go-flow-metrics
2474 (let ((commit "7e5a55af485341567f98d6847a373eb5ddcdcd43")
2477 (name "go-github-com-libp2p-go-flow-metrics")
2478 (version (git-version "0.2.0" revision commit))
2483 (url "https://github.com/libp2p/go-flow-metrics.git")
2485 (file-name (git-file-name name version))
2488 "1p87iyk6q6f3g3xkncssx400qlld8f2z93qiz8m1f97grfyhjif1"))))
2489 (build-system go-build-system)
2491 `(#:import-path "github.com/libp2p/go-flow-metrics"
2492 ;; TODO: Tests hang.
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))))
2501 (define-public go-github-com-davecgh-go-spew
2502 (let ((commit "d8f796af33cc11cb798c1aaeb27a4ebc5099927d")
2505 (name "go-github-com-davecgh-go-spew")
2506 (version (git-version "0.0.0" revision commit))
2511 (url "https://github.com/davecgh/go-spew.git")
2513 (file-name (git-file-name name version))
2516 "19z27f306fpsrjdvkzd61w1bdazcdbczjyjck177g33iklinhpvx"))))
2517 (build-system go-build-system)
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.
2526 A quick overview of the additional features spew provides over the built-in printing facilities for Go data types are as follows:
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
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
2539 (license license:isc))))
2541 (define-public go-github-com-btcsuite-btclog
2542 (let ((commit "84c8d2346e9fc8c7b947e243b9c24e6df9fd206a")
2545 (name "go-github-com-btcsuite-btclog")
2546 (version (git-version "0.0.3" revision commit))
2551 (url "https://github.com/btcsuite/btclog.git")
2553 (file-name (git-file-name name version))
2556 "02dl46wcnfpg9sqvg0ipipkpnd7lrf4fnvb9zy56jqa7mfcwc7wk"))))
2557 (build-system go-build-system)
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))))
2567 (define-public go-github-com-btcsuite-btcd-btcec
2568 (let ((commit "67e573d211ace594f1366b4ce9d39726c4b19bd0")
2571 (name "go-github-com-btcsuite-btcd-btcec")
2572 (version (git-version "0.12.0-beta" revision commit))
2577 (url "https://github.com/btcsuite/btcd.git")
2579 (file-name (git-file-name name version))
2582 "04s92gsy71w1jirlr5lkk9y6r5cparbas7nmf6ywbp7kq7fn8ajn"))))
2583 (build-system go-build-system)
2585 '(#:unpack-path "github.com/btcsuite/btcd"
2586 #:import-path "github.com/btcsuite/btcd/btcec"))
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.
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))))
2605 (define-public go-github-com-minio-sha256-simd
2606 (let ((commit "cc1980cb03383b1d46f518232672584432d7532d")
2609 (name "go-github-com-minio-sha256-simd")
2610 (version (git-version "0.0.0" revision commit))
2615 (url "https://github.com/minio/sha256-simd.git")
2617 (file-name (git-file-name name version))
2620 "04fp98nal0wsb26zwhw82spn5camxslc68g3xp8g4af9w6k9g31j"))))
2621 (build-system go-build-system)
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.
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.
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))))
2641 (define-public go-github-com-libp2p-go-libp2p-crypto
2642 (let ((commit "7240b40a3ddc47c4d17c15baabcbe45e5219171b")
2645 (name "go-github-com-libp2p-go-libp2p-crypto")
2646 (version (git-version "2.0.1" revision commit))
2651 (url "https://github.com/libp2p/go-libp2p-crypto.git")
2653 (file-name (git-file-name name version))
2656 "0qwpy57qv5143l9dlfwfvpqsxdd2i4zwnawx1w4pmgxxim3nw1wb"))))
2657 (build-system go-build-system)
2659 '(#:import-path "github.com/libp2p/go-libp2p-crypto"))
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)))
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))))
2671 (define-public go-github-com-mr-tron-base58
2672 (let ((commit "d724c80ecac7b49e4e562d58b2b4f4ee4ed8c312")
2675 (name "go-github-com-mr-tron-base58")
2676 (version (git-version "1.1.0" revision commit))
2681 (url "https://github.com/mr-tron/base58.git")
2683 (file-name (git-file-name name version))
2686 "12qhgnn9wf3c1ang16r4i778whk4wsrj7d90h2xgmz4fi1469rqa"))))
2687 (build-system go-build-system)
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))))
2698 (define-public go-github-com-gxed-hashland-keccakpg
2699 (let ((commit "d9f6b97f8db22dd1e090fd0bbbe98f09cc7dd0a8")
2702 (name "go-github-com-gxed-hashland-keccakpg")
2703 (version (git-version "0.0.0" revision commit))
2708 (url "https://github.com/gxed/hashland.git")
2710 (file-name (git-file-name name version))
2713 "1q23y4lacsz46k9gmgfw4iwwydw36j2601rbidmmswl94grpc386"))))
2714 (build-system go-build-system)
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))))
2724 (define-public go-github-com-minio-blake2b-simd
2725 (let ((commit "3f5f724cb5b182a5c278d6d3d55b40e7f8c2efb4")
2728 (name "go-github-com-minio-blake2b-simd")
2729 (version (git-version "0.0.0" revision commit))
2734 (url "https://github.com/minio/blake2b-simd.git")
2736 (file-name (git-file-name name version))
2739 "0b6jbnj62c0gmmfd4zdmh8xbg01p80f13yygir9xprqkzk6fikmd"))))
2740 (build-system go-build-system)
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.
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))))
2756 (define-public go-github-com-spaolacci-murmur3
2757 (let ((commit "f09979ecbc725b9e6d41a297405f65e7e8804acc")
2760 (name "go-github-com-spaolacci-murmur3")
2761 (version (git-version "1.1" revision commit))
2766 (url "https://github.com/spaolacci/murmur3.git")
2768 (file-name (git-file-name name version))
2771 "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25"))))
2772 (build-system go-build-system)
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).
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))))
2784 (define-public go-github-com-multiformats-go-multihash
2785 (let ((commit "97cdb562a04c6ef66d8ed40cd62f8fbcddd396d6")
2788 (name "go-github-com-multiformats-go-multihash")
2789 (version (git-version "1.0.8" revision commit))
2794 (url "https://github.com/multiformats/go-multihash.git")
2796 (file-name (git-file-name name version))
2799 "02wd9akrwy4y5m0nig9m24p14bjjgb4n1djydrq8cm4yhbvjrrk0"))))
2800 (build-system go-build-system)
2802 '(#:import-path "github.com/multiformats/go-multihash"))
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))))
2816 (define-public go-github-com-libp2p-go-libp2p-peer
2817 (let ((commit "993d742bc29dcf4894b7730ba610fd78900be76c")
2820 (name "go-github-com-libp2p-go-libp2p-peer")
2821 (version (git-version "2.3.8" revision commit))
2826 (url "https://github.com/libp2p/go-libp2p-peer.git")
2828 (file-name (git-file-name name version))
2831 "1h96qjdi0i1wbr0jliap2903mycphas3ny0zdrm77yca9plcnphh"))))
2832 (build-system go-build-system)
2834 '(#:import-path "github.com/libp2p/go-libp2p-peer"))
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))))
2853 (define-public go-github-com-libp2p-go-libp2p-protocol
2854 (let ((commit "b29f3d97e3a2fb8b29c5d04290e6cb5c5018004b")
2857 (name "go-github-com-libp2p-go-libp2p-protocol")
2858 (version (git-version "1.0.0" revision commit))
2863 (url "https://github.com/libp2p/go-libp2p-protocol.git")
2865 (file-name (git-file-name name version))
2868 "1xgjfnx9zcqglg9li29wdqywsp8hz22wx6phns9zscni2jsfidld"))))
2869 (build-system go-build-system)
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))))
2878 (define-public go-github-com-libp2p-go-libp2p-metrics
2879 (let ((commit "a10ff6e75dae3c868023867e8caa534a04bdc624")
2882 (name "go-github-com-libp2p-go-libp2p-metrics")
2883 (version (git-version "2.1.6" revision commit))
2888 (url "https://github.com/libp2p/go-libp2p-metrics.git")
2890 (file-name (git-file-name name version))
2893 "05wy0cq4h6yg9bzgapcvm2criwriicbswx80ma82gyn4a9fdrk8m"))))
2894 (build-system go-build-system)
2896 '(#:import-path "github.com/libp2p/go-libp2p-metrics"))
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))))
2919 (define-public go-github-com-mitchellh-go-homedir
2920 (let ((commit "ae18d6b8b3205b561c79e8e5f69bff09736185f4")
2923 (name "go-github-com-mitchellh-go-homedir")
2924 (version (git-version "1.0.0" revision commit))
2929 (url "https://github.com/mitchellh/go-homedir.git")
2931 (file-name (git-file-name name version))
2934 "0f0z0aa4wivk4z1y503dmnw0k0g0g403dly8i4q263gfshs82sbq"))))
2935 (build-system go-build-system)
2937 (quote (#:import-path "github.com/mitchellh/go-homedir"
2938 ;; TODO: Tests fail because it tries to access home.
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.
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
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))))
2958 (define-public go-github-com-multiformats-go-multiaddr
2959 (let ((commit "fe1c46f8be5af4aff4db286e08839295bd922efb")
2962 (name "go-github-com-multiformats-go-multiaddr")
2963 (version (git-version "1.3.0" revision commit))
2968 (url "https://github.com/multiformats/go-multiaddr.git")
2970 (file-name (git-file-name name version))
2973 "0p5f8h098a4yjjmzsgqs7vhx1iqifb8izwg3559cr4h7clkpzznh"))))
2974 (build-system go-build-system)
2977 "github.com/multiformats/go-multiaddr"))
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
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.
2999 (license license:expat))))
3001 (define-public go-github-com-multiformats-go-multiaddr-net
3002 (let ((commit "1cb9a0e8a6de3c8a10f6cee60d01d793603c4f7e")
3005 (name "go-github-com-multiformats-go-multiaddr-net")
3006 (version (git-version "1.6.3" revision commit))
3011 (url "https://github.com/multiformats/go-multiaddr-net.git")
3013 (file-name (git-file-name name version))
3016 "1ypgi47xdz3bh8lh7f8cmk7w3ql9g4izx5l3kzdg9gda1xn5zxq3"))))
3017 (build-system go-build-system)
3019 (quote (#:import-path "github.com/multiformats/go-multiaddr-net"
3020 ;; TODO: Tests fail because they try to access the network.
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))))
3040 (define-public go-github-com-whyrusleeping-tar-utils
3041 (let ((commit "8c6c8ba81d5c71fd69c0f48dbde4b2fb422b6dfc")
3044 (name "go-github-com-whyrusleeping-tar-utils")
3045 (version (git-version "0.0.0" revision commit))
3050 (url "https://github.com/whyrusleeping/tar-utils.git")
3052 (file-name (git-file-name name version))
3055 "14jjdw3yics0k467xsyk388684wdpi0bbx8nqj0y4pqxa0s0in6s"))))
3056 (build-system go-build-system)
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))))
3065 (define-public go-github-com-cheekybits-is
3066 (let ((commit "68e9c0620927fb5427fda3708222d0edee89eae9")
3069 (name "go-github-com-cheekybits-is")
3070 (version (git-version "0.0.0" revision commit))
3075 (url "https://github.com/cheekybits/is.git")
3077 (file-name (git-file-name name version))
3080 "1mkbyzhwq3rby832ikq00nxv3jnckxsm3949wkxd8ya9js2jmg4d"))))
3081 (build-system go-build-system)
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.
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.
3095 (license license:expat))))
3097 (define-public go-github-com-sabhiram-go-gitignore
3098 (let ((commit "d3107576ba9425fc1c85f4b3569c4631b805a02e")
3101 (name "go-github-com-sabhiram-go-gitignore")
3102 (version (git-version "1.0.2" revision commit))
3107 (url "https://github.com/sabhiram/go-gitignore.git")
3109 (file-name (git-file-name name version))
3112 "1rdwyxgcsiwgmlqnc3k6h300mzlvjc3j21np4yh1h476wc8dvl0l"))))
3113 (build-system go-build-system)
3116 "github.com/sabhiram/go-gitignore"))
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))))
3124 (define-public go-github-com-urfave-cli
3125 (let ((commit "693af58b4d51b8fcc7f9d89576da170765980581")
3128 (name "go-github-com-urfave-cli")
3129 (version (git-version "1.20.0" revision commit))
3134 (url "https://github.com/urfave/cli.git")
3136 (file-name (git-file-name name version))
3139 "1krq752xgy658an1696vf4dc2zmp541clwjinhn11394sx2qksh6"))))
3140 (build-system go-build-system)
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))))
3150 (define-public go-github-com-whyrusleeping-json-filter
3151 (let ((commit "ff25329a9528f01c5175414f16cc0a6a162a5b8b")
3154 (name "go-github-com-whyrusleeping-json-filter")
3155 (version (git-version "0.0.0" revision commit))
3160 (url "https://github.com/whyrusleeping/json-filter.git")
3162 (file-name (git-file-name name version))
3165 "0cai0drvx4c8j686l908vpcsz3mw3vxi3ziz94b0f3c5ylpj07j7"))))
3166 (build-system go-build-system)
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))))
3176 (define-public go-github-com-whyrusleeping-progmeter
3177 (let ((commit "f3e57218a75b913eff88d49a52c1debf9684ea04")
3180 (name "go-github-com-whyrusleeping-progmeter")
3181 (version (git-version "0.0.0" revision commit))
3186 (url "https://github.com/whyrusleeping/progmeter.git")
3188 (file-name (git-file-name name version))
3191 "0xs8rz6yhpvj9512c5v3b8dwr2kivywnyyfxzdfbr6fy1xc8zskb"))))
3192 (build-system go-build-system)
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))))
3201 (define-public go-github-com-whyrusleeping-stump
3202 (let ((commit "206f8f13aae1697a6fc1f4a55799faf955971fc5")
3205 (name "go-github-com-whyrusleeping-stump")
3206 (version (git-version "0.0.0" revision commit))
3211 (url "https://github.com/whyrusleeping/stump.git")
3213 (file-name (git-file-name name version))
3216 "1s40qdppjnk8gijk7x6kbviiqz62nz3h6gic2q9cwcmq8r5isw7n"))))
3217 (build-system go-build-system)
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))))
3226 (define-public go-github-com-kr-fs
3227 (let ((commit "1455def202f6e05b95cc7bfc7e8ae67ae5141eba")
3230 (name "go-github-com-kr-fs")
3231 (version (git-version "0.1.0" revision commit))
3236 (url "https://github.com/kr/fs.git")
3238 (file-name (git-file-name name version))
3241 "11zg176x9hr9q7fsk95r6q0wf214gg4czy02slax4x56n79g6a7q"))))
3242 (build-system go-build-system)
3244 '(#:import-path "github.com/kr/fs"))
3245 (home-page "https://github.com/kr/fs")
3246 (synopsis "File-system-related functions for Go")
3248 "The fs package provides file-system-related Go functions.")
3249 (license license:bsd-3))))
3251 (define-public go-github-com-direnv-go-dotenv
3252 (let ((commit "4cce6d1a66f7bc8dc730eab85cab6af1b801abed")
3255 (name "go-github-com-direnv-go-dotenv")
3256 (version (git-version "0.0.0" revision commit))
3261 (url "https://github.com/direnv/go-dotenv")
3263 (file-name (git-file-name name version))
3266 "00wn4fc2lma0csf6ryvlc6k9jbpbifm4n7i3kkd2xrfw5qlm29b6"))))
3267 (build-system go-build-system)
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
3274 (license license:expat))))
3276 (define-public go-github-com-kr-pretty
3278 (name "go-github-com-kr-pretty")
3283 (url "https://github.com/kr/pretty.git")
3284 (commit (string-append "v" version))))
3285 (file-name (git-file-name name version))
3288 "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp"))))
3289 (build-system go-build-system)
3291 `(("go-github-com-kr-text" ,go-github-com-kr-text)))
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)))
3299 (define-public go-github-com-kr-text
3301 (name "go-github-com-kr-text")
3306 (url "https://github.com/kr/text.git")
3307 (commit (string-append "v" version))))
3308 (file-name (git-file-name name version))
3311 "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"))))
3312 (build-system go-build-system)
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)))
3320 (define-public go-golang-org-sql-mock
3321 (let ((commit "e98392b8111b45f8126e00af035a0dd95dc12e8b")
3325 (name "go-golang-org-sql-mock")
3326 (version (git-version version revision commit))
3330 (url "https://github.com/DATA-DOG/go-sqlmock")
3332 (file-name (git-file-name name version))
3335 "033vv29g2wf6fd757ajfmha30bqin3b07377037zkl051mk6mghs"))))
3336 (build-system go-build-system)
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))))
3345 (define-public go-golang-org-colorful
3347 (name "go-golang-org-colorful")
3352 (url "https://github.com/lucasb-eyer/go-colorful")
3353 (commit (string-append "v" version))))
3354 (file-name (git-file-name name version))
3357 "0fig06880bvk1l92j4127v4x9sar4ds7ga8959gxxghb2w70b7l2"))))
3358 (build-system go-build-system)
3360 '(#:import-path "github.com/lucasb-eyer/go-colorful"))
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
3367 (home-page "https://github.com/lucasb-eyer/go-colorful")
3368 (license license:expat)))
3370 (define-public go-github-com-gdamore-encoding
3372 (name "go-github-com-gdamore-encoding")
3378 (url "https://github.com/gdamore/encoding")
3379 (commit (string-append "v" version))))
3380 (file-name (git-file-name name version))
3383 "1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9"))))
3384 (build-system go-build-system)
3386 '(#:import-path "github.com/gdamore/encoding"))
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)))
3397 (define-public go-github-com-gdamore-tcell
3398 (let ((commit "aaadc574a6ed8dc3abe56036ca130dcee1ee6b6e")
3402 (name "go-github-com-gdamore-tcell")
3403 (version (git-version version revision commit))
3408 (url "https://github.com/gdamore/tcell")
3410 (file-name (git-file-name name version))
3413 "0il2nnxp2cqiy73m49215dnf9in3vd25ji8qxbmq87c5qy7i1q9d"))))
3414 (build-system go-build-system)
3416 `(#:import-path "github.com/gdamore/tcell"
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$"))
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
3439 (license license:expat))))
3441 (define-public go-github-com-mattn-go-shellwords
3442 (let ((commit "2444a32a19f450fabaa0bb3e96a703f15d9a97d2")
3446 (name "go-github-com-mattn-go-shellwords")
3447 (version (git-version version revision commit))
3452 (url "https://github.com/mattn/go-shellwords")
3454 (file-name (git-file-name name version))
3457 "08zcgr1az1n8zaxzwdd205j86hczgyc52nxfnw5avpw7rrkf7v0d"))))
3458 (build-system go-build-system)
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
3465 ;; This doesn't seem to work:
3468 ;; (modify-phases %standard-phases
3470 ;; (lambda* (#:key import-path #:allow-other-keys)
3471 ;; (setenv "HOME" "/tmp")
3472 ;; (invoke "go" "test" import-path))))
3474 ;; TODO: There are also a couple of tests that have stymied Debian in
3475 ;; the past. They seem to work when run locally.
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))))
3485 (define-public go-github-com-burntsushi-locker
3486 (let ((commit "a6e239ea1c69bff1cfdb20c4b73dadf52f784b6a")
3489 (name "go-github-com-burntsushi-locker")
3490 (version (git-version "0.0.0" revision commit))
3495 (url "https://github.com/BurntSushi/locker")
3497 (file-name (git-file-name name version))
3500 "1xak4aync4klswq5217qvw191asgla51jr42y94vp109lirm5dzg"))))
3501 (build-system go-build-system)
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.
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
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))))
3519 (define-public go-github-com-marten-seemann-qtls
3521 (name "go-github-com-marten-seemann-qtls")
3526 (url "https://github.com/marten-seemann/qtls")
3527 (commit (string-append "v" version))))
3528 (file-name (git-file-name name version))
3531 "0b9p7bwkm9hfg1mb565q4nw5k7xyks0z2xagz5fp95azy2psbnfg"))))
3532 (build-system go-build-system)
3534 '(#:import-path "github.com/marten-seemann/qtls"
3535 ;; The test suite requires networking.
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)))
3545 (define-public go-github-com-cheekybits-genny
3547 (name "go-github-com-cheekybits-genny")
3552 (url "https://github.com/cheekybits/genny")
3553 (commit (string-append "v" version))))
3554 (file-name (git-file-name name version))
3557 "1pcir5ic86713aqa51581rfb67rgc3m0c72ddjfcp3yakv9vyq87"))))
3558 (build-system go-build-system)
3560 '(#:import-path "github.com/cheekybits/genny"))
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)))
3569 (define-public go-github-com-lucas-clemente-quic-go
3571 (name "go-github-com-lucas-clemente-quic-go")
3576 (url "https://github.com/lucas-clemente/quic-go")
3577 (commit (string-append "v" version))))
3578 (file-name (git-file-name name version))
3581 "0gqm5mc8alg84ra7yxach34il1jvcij8f76qdqcahnd3d2nhjbia"))))
3582 (build-system go-build-system)
3584 '(#:import-path "github.com/lucas-clemente/quic-go"
3585 ;; XXX More packages required...
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
3594 (home-page "https://github.com/lucas-clemente/quic-go")
3595 (license license:expat)))
3597 (define-public go-github-com-pkg-errors
3598 (let ((commit "27936f6d90f9c8e1145f11ed52ffffbfdb9e0af7")
3601 (name "go-github-com-pkg-errors")
3602 (version (git-version "0.8.1" revision commit))
3606 (url "https://github.com/pkg/errors.git")
3608 (file-name (git-file-name name version))
3611 "0yzmgi6g4ak4q8y7w6x0n5cbinlcn8yc3gwgzy4yck00qdn25d6y"))))
3612 (build-system go-build-system)
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))))
3621 (define-public go-github-com-maruel-panicparse
3623 (name "go-github-com-maruel-panicparse")
3628 (url "https://github.com/maruel/panicparse")
3629 (commit (string-append "v" version))))
3630 (file-name (git-file-name name version))
3633 "13qkn7f64yln8jdmma37h6ra4c7anxkp3vfgvfyb6lb07dpr1ibq"))))
3634 (build-system go-build-system)
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)))