1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2016, 2017, 2018 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 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 Katherine Cox-Buday <cox.katherine.e@gmail.com>
17 ;;; This file is part of GNU Guix.
19 ;;; GNU Guix is free software; you can redistribute it and/or modify it
20 ;;; under the terms of the GNU General Public License as published by
21 ;;; the Free Software Foundation; either version 3 of the License, or (at
22 ;;; your option) any later version.
24 ;;; GNU Guix is distributed in the hope that it will be useful, but
25 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
26 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 ;;; GNU General Public License for more details.
29 ;;; You should have received a copy of the GNU General Public License
30 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
32 (define-module (gnu packages golang)
33 #:use-module ((guix licenses) #:prefix license:)
34 #:use-module (guix utils)
35 #:use-module (guix download)
36 #:use-module (guix git-download)
37 #:use-module (guix packages)
38 #:use-module (guix build-system gnu)
39 #:use-module (guix build-system trivial)
40 #:use-module (guix build-system go)
41 #:use-module (gnu packages admin)
42 #:use-module (gnu packages gcc)
43 #:use-module (gnu packages base)
44 #:use-module (gnu packages perl)
45 #:use-module (gnu packages pkg-config)
46 #:use-module (gnu packages pcre)
47 #:use-module (gnu packages lua)
48 #:use-module (gnu packages mp3)
49 #:use-module (ice-9 match)
50 #:use-module (srfi srfi-1)
51 #:export (go-github-com-gogo-protobuf-union)
52 #:export (go-golang-org-x-crypto-union))
54 ;; According to https://golang.org/doc/install/gccgo, gccgo-4.8.2 includes a
55 ;; complete go-1.1.2 implementation, gccgo-4.9 includes a complete go-1.2
56 ;; implementation, and gccgo-5 a complete implementation of go-1.4. Ultimately
57 ;; we hope to build go-1.5+ with a bootstrap process using gccgo-5. As of
58 ;; go-1.5, go cannot be bootstrapped without go-1.4, so we need to use go-1.4 or
59 ;; gccgo-5. Mips is not officially supported, but it should work if it is
68 (uri (string-append "https://storage.googleapis.com/golang/"
69 name version ".src.tar.gz"))
72 "0na9yqilzpvq0bjndbibfp07wr796gf252y471cip10bbdqgqiwr"))))
73 (build-system gnu-build-system)
78 `(#:modules ((ice-9 match)
79 (guix build gnu-build-system)
82 #:tests? #f ; Tests are run by the all.bash script.
83 ,@(if (string-prefix? "aarch64-linux" (or (%current-system)
84 (%current-target-system)))
85 '(#:system "armhf-linux")
88 (modify-phases %standard-phases
90 (add-after 'patch-generated-file-shebangs 'chdir
94 (add-before 'build 'prebuild
95 (lambda* (#:key inputs outputs #:allow-other-keys)
96 (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
97 (ld (string-append (assoc-ref inputs "libc") "/lib"))
98 (loader (car (find-files ld "^ld-linux.+")))
99 (net-base (assoc-ref inputs "net-base"))
101 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
102 (output (assoc-ref outputs "out")))
104 ;; Removing net/ tests, which fail when attempting to access
105 ;; network resources not present in the build container.
106 (for-each delete-file
107 '("net/multicast_test.go" "net/parse_test.go"
110 ;; Add libgcc to the RUNPATH.
111 (substitute* "cmd/go/build.go"
112 (("cgoldflags := \\[\\]string\\{\\}")
113 (string-append "cgoldflags := []string{"
114 "\"-rpath=" gcclib "\"}"))
115 (("ldflags := buildLdflags")
117 "ldflags := buildLdflags\n"
118 "ldflags = append(ldflags, \"-r\")\n"
119 "ldflags = append(ldflags, \"" gcclib "\")\n")))
121 (substitute* "os/os_test.go"
122 (("/usr/bin") (getcwd))
123 (("/bin/pwd") (which "pwd")))
125 ;; Disable failing tests: these tests attempt to access
126 ;; commands or network resources which are neither available or
127 ;; necessary for the build to succeed.
132 ((regex all before test_name)
133 (string-append before "Disabled" test_name)))))
134 '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
135 ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
136 ("os/os_test.go" "(.+)(TestHostname.+)")
137 ("time/format_test.go" "(.+)(TestParseInSydney.+)")
139 ;; Tzdata 2016g changed the name of the time zone used in this
140 ;; test, and the patch for Go 1.7 does not work for 1.4.3:
141 ;; https://github.com/golang/go/issues/17545
142 ;; https://github.com/golang/go/issues/17276
143 ("time/time_test.go" "(.+)(TestLoadFixed.+)")
144 ("time/format_test.go" "(.+)(TestParseInLocation.+)")
146 ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
147 ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
148 ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
149 ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
150 ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
151 ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
152 ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
153 ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
154 ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")))
156 (substitute* "net/lookup_unix.go"
157 (("/etc/protocols") (string-append net-base "/etc/protocols")))
158 (substitute* "time/zoneinfo_unix.go"
159 (("/usr/share/zoneinfo/") tzdata-path))
160 (substitute* (find-files "cmd" "asm.c")
161 (("/lib/ld-linux.*\\.so\\.[0-9]") loader))
165 (lambda* (#:key inputs outputs #:allow-other-keys)
166 ;; FIXME: Some of the .a files are not bit-reproducible.
167 (let* ((output (assoc-ref outputs "out")))
168 (setenv "CC" (which "gcc"))
169 (setenv "GOOS" "linux")
170 (setenv "GOROOT" (dirname (getcwd)))
171 (setenv "GOROOT_FINAL" output)
172 ;; Go 1.4's cgo will not work with binutils >= 2.27:
173 ;; https://github.com/golang/go/issues/16906
174 (setenv "CGO_ENABLED" "0")
175 (invoke "sh" "all.bash"))))
178 (lambda* (#:key outputs inputs #:allow-other-keys)
179 (let* ((output (assoc-ref outputs "out"))
180 (doc_out (assoc-ref outputs "doc"))
181 (bash (string-append (assoc-ref inputs "bash") "bin/bash"))
182 (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
183 (tests (string-append
184 (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
186 (copy-recursively "../test" (string-append tests "/test"))
187 (delete-file-recursively "../test")
189 (copy-recursively "../api" (string-append docs "/api"))
190 (delete-file-recursively "../api")
191 (copy-recursively "../doc" (string-append docs "/doc"))
192 (delete-file-recursively "../doc")
194 (for-each (lambda (file)
195 (let ((file (string-append "../" file)))
196 (install-file file docs)
198 '("README" "CONTRIBUTORS" "AUTHORS" "PATENTS"
199 "LICENSE" "VERSION" "robots.txt"))
200 (copy-recursively "../" output)
205 ;; Building Go 1.10 with the Go 1.4 bootstrap, Thread Sanitizer from GCC
206 ;; 5 finds a data race during the the test suite of Go 1.10. With GCC 6,
207 ;; the race doesn't seem to be present:
208 ;; https://github.com/golang/go/issues/24046
209 ("gcc:lib" ,gcc-6 "lib")))
211 `(("pkg-config" ,pkg-config)
213 ("net-base" ,net-base)
216 (home-page "https://golang.org/")
217 (synopsis "Compiler and libraries for Go, a statically-typed language")
218 (description "Go, also commonly referred to as golang, is an imperative
219 programming language designed primarily for systems programming. Go is a
220 compiled, statically typed language in the tradition of C and C++, but adds
221 garbage collection, various safety features, and concurrent programming features
222 in the style of communicating sequential processes (@dfn{CSP}).")
223 (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux"))
224 (license license:bsd-3)))
226 (define-public go-1.9
234 (uri (string-append "https://storage.googleapis.com/golang/"
235 name version ".src.tar.gz"))
238 "08kpy874x0rx43zpyv5kwd8xj2ma91xm33i0ka2v1v788px18a2q"))))
240 (substitute-keyword-arguments (package-arguments go-1.4)
242 `(modify-phases ,phases
244 ;; TODO: Most of this could be factorized with Go 1.4.
245 (lambda* (#:key inputs outputs #:allow-other-keys)
246 (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
247 (ld (string-append (assoc-ref inputs "libc") "/lib"))
248 (loader (car (find-files ld "^ld-linux.+")))
249 (net-base (assoc-ref inputs "net-base"))
251 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
252 (output (assoc-ref outputs "out")))
254 ;; Removing net/ tests, which fail when attempting to access
255 ;; network resources not present in the build container.
256 (for-each delete-file
257 '("net/listen_test.go"
259 "net/cgo_unix_test.go"))
261 (substitute* "os/os_test.go"
262 (("/usr/bin") (getcwd))
263 (("/bin/pwd") (which "pwd"))
264 (("/bin/sh") (which "sh")))
266 ;; Add libgcc to runpath
267 (substitute* "cmd/link/internal/ld/lib.go"
268 (("!rpath.set") "true"))
269 (substitute* "cmd/go/internal/work/build.go"
270 (("cgoldflags := \\[\\]string\\{\\}")
271 (string-append "cgoldflags := []string{"
272 "\"-rpath=" gcclib "\""
274 (("ldflags = setextld\\(ldflags, compiler\\)")
276 "ldflags = setextld(ldflags, compiler)\n"
277 "ldflags = append(ldflags, \"-r\")\n"
278 "ldflags = append(ldflags, \"" gcclib "\")\n"))
281 "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
283 ;; Disable failing tests: these tests attempt to access
284 ;; commands or network resources which are neither available
285 ;; nor necessary for the build to succeed.
290 ((regex all before test_name)
291 (string-append before "Disabled" test_name)))))
292 '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
293 ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
294 ("os/os_test.go" "(.+)(TestHostname.+)")
295 ("time/format_test.go" "(.+)(TestParseInSydney.+)")
296 ("time/format_test.go" "(.+)(TestParseInLocation.+)")
297 ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
298 ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
299 ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
300 ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
301 ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
302 ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
303 ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
304 ("os/exec/exec_test.go" "(.+)(TestIgnorePipeErrorOnSuccess.+)")
305 ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
306 ("os/exec/exec_test.go" "(.+)(TestExtraFiles/areturn.+)")
307 ("cmd/go/go_test.go" "(.+)(TestCoverageWithCgo.+)")
308 ("cmd/go/go_test.go" "(.+)(TestTwoPkgConfigs.+)")
309 ("os/exec/exec_test.go" "(.+)(TestOutputStderrCapture.+)")
310 ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")
311 ("os/exec/exec_test.go" "(.+)(TestExtraFilesRace.+)")
312 ("net/lookup_test.go" "(.+)(TestLookupPort.+)")
313 ("syscall/exec_linux_test.go"
314 "(.+)(TestCloneNEWUSERAndRemapNoRootDisableSetgroups.+)")))
316 (substitute* "../misc/cgo/testsanitizers/test.bash"
317 (("(CC=)cc" all var) (string-append var "gcc")))
319 ;; fix shebang for testar script
320 ;; note the target script is generated at build time.
321 (substitute* "../misc/cgo/testcarchive/carchive_test.go"
322 (("#!/usr/bin/env") (string-append "#!" (which "env"))))
324 (substitute* "net/lookup_unix.go"
325 (("/etc/protocols") (string-append net-base "/etc/protocols")))
326 (substitute* "net/port_unix.go"
327 (("/etc/services") (string-append net-base "/etc/services")))
328 (substitute* "time/zoneinfo_unix.go"
329 (("/usr/share/zoneinfo/") tzdata-path))
330 (substitute* (find-files "cmd" "\\.go")
331 (("/lib(64)?/ld-linux.*\\.so\\.[0-9]") loader))
333 (add-before 'build 'set-bootstrap-variables
334 (lambda* (#:key outputs inputs #:allow-other-keys)
335 ;; Tell the build system where to find the bootstrap Go.
336 (let ((go (assoc-ref inputs "go"))
337 (out (assoc-ref outputs "out")))
338 (setenv "GOROOT_BOOTSTRAP" go)
340 (string-append out "/bin:"
341 (dirname (getcwd)) "/bin:"
344 ;; XXX: The following variables seem unrelated.
345 (setenv "GOGC" "400")
346 (setenv "GO_TEST_TIMEOUT_SCALE" "9999")
350 (lambda* (#:key inputs outputs #:allow-other-keys)
351 ;; FIXME: Some of the .a files are not bit-reproducible.
352 (let* ((output (assoc-ref outputs "out")))
353 (setenv "CC" (which "gcc"))
354 (setenv "GOOS" "linux")
355 (setenv "GOROOT" (dirname (getcwd)))
356 (setenv "GOROOT_FINAL" output)
357 (setenv "CGO_ENABLED" "1")
358 (invoke "sh" "all.bash"))))
361 ;; TODO: Most of this could be factorized with Go 1.4.
362 (lambda* (#:key outputs #:allow-other-keys)
363 (let* ((output (assoc-ref outputs "out"))
364 (doc_out (assoc-ref outputs "doc"))
365 (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
367 (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
368 (delete-file-recursively "../pkg/bootstrap")
371 (copy-recursively "../test" (string-append src "/test"))
372 (delete-file-recursively "../test")
374 (copy-recursively "../api" (string-append docs "/api"))
375 (delete-file-recursively "../api")
376 (copy-recursively "../doc" (string-append docs "/doc"))
377 (delete-file-recursively "../doc")
381 (let* ((filein (string-append "../" file))
382 (fileout (string-append docs "/" file)))
383 (copy-file filein fileout)
384 (delete-file filein)))
385 ;; Note the slightly different file names compared to 1.4.
386 '("README.md" "CONTRIBUTORS" "AUTHORS" "PATENTS"
387 "LICENSE" "VERSION" "CONTRIBUTING.md" "robots.txt"))
389 (copy-recursively "../" output)
393 ,@(package-native-inputs go-1.4)))
394 (supported-systems %supported-systems)))
396 (define-public go-1.11
404 (uri (string-append "https://storage.googleapis.com/golang/"
405 name version ".src.tar.gz"))
408 "05qivf2f59pv4bfrmdr4m0xvswkmvvl9c5a2h5dy45g2k8b8r3sm"))))
410 (substitute-keyword-arguments (package-arguments go-1.9)
412 `(modify-phases ,phases
414 (lambda* (#:key inputs outputs #:allow-other-keys)
415 (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
416 (ld (string-append (assoc-ref inputs "libc") "/lib"))
417 (loader (car (find-files ld "^ld-linux.+")))
418 (net-base (assoc-ref inputs "net-base"))
420 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
421 (output (assoc-ref outputs "out")))
423 (for-each delete-file
424 ;; Removing net/ tests, which fail when attempting to access
425 ;; network resources not present in the build container.
426 '("net/listen_test.go"
428 "net/cgo_unix_test.go"
429 ;; A side effect of these test scripts is testing
430 ;; cgo. Attempts at using cgo flags and
431 ;; directives with these scripts as specified
432 ;; here (https://golang.org/cmd/cgo/) have not
433 ;; worked. The tests continue to state that they
434 ;; can not find crt1.o despite being present.
435 "cmd/go/testdata/script/list_compiled_imports.txt"
436 "cmd/go/testdata/script/mod_case_cgo.txt"
437 ;; https://github.com/golang/go/issues/24884
438 "os/user/user_test.go"))
440 (substitute* "os/os_test.go"
441 (("/usr/bin") (getcwd))
442 (("/bin/pwd") (which "pwd"))
443 (("/bin/sh") (which "sh")))
445 (substitute* "cmd/vendor/golang.org/x/sys/unix/syscall_unix_test.go"
446 (("/usr/bin") "/tmp"))
448 ;; Add libgcc to runpath
449 (substitute* "cmd/link/internal/ld/lib.go"
450 (("!rpath.set") "true"))
451 (substitute* "cmd/go/internal/work/gccgo.go"
452 (("cgoldflags := \\[\\]string\\{\\}")
453 (string-append "cgoldflags := []string{"
454 "\"-rpath=" gcclib "\""
458 "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
459 (substitute* "cmd/go/internal/work/gc.go"
460 (("ldflags = setextld\\(ldflags, compiler\\)")
462 "ldflags = setextld(ldflags, compiler)\n"
463 "ldflags = append(ldflags, \"-r\")\n"
464 "ldflags = append(ldflags, \"" gcclib "\")\n")))
466 ;; Disable failing tests: these tests attempt to access
467 ;; commands or network resources which are neither available
468 ;; nor necessary for the build to succeed.
473 ((regex all before test_name)
474 (string-append before "Disabled" test_name)))))
475 '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
476 ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
477 ("os/os_test.go" "(.+)(TestHostname.+)")
478 ("time/format_test.go" "(.+)(TestParseInSydney.+)")
479 ("time/format_test.go" "(.+)(TestParseInLocation.+)")
480 ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
481 ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
482 ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
483 ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
484 ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
485 ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
486 ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
487 ("os/exec/exec_test.go" "(.+)(TestIgnorePipeErrorOnSuccess.+)")
488 ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
489 ("os/exec/exec_test.go" "(.+)(TestExtraFiles/areturn.+)")
490 ("cmd/go/go_test.go" "(.+)(TestCoverageWithCgo.+)")
491 ("cmd/go/go_test.go" "(.+)(TestTwoPkgConfigs.+)")
492 ("os/exec/exec_test.go" "(.+)(TestOutputStderrCapture.+)")
493 ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")
494 ("os/exec/exec_test.go" "(.+)(TestExtraFilesRace.+)")
495 ("net/lookup_test.go" "(.+)(TestLookupPort.+)")
496 ("syscall/exec_linux_test.go"
497 "(.+)(TestCloneNEWUSERAndRemapNoRootDisableSetgroups.+)")))
499 ;; fix shebang for testar script
500 ;; note the target script is generated at build time.
501 (substitute* "../misc/cgo/testcarchive/carchive_test.go"
502 (("#!/usr/bin/env") (string-append "#!" (which "env"))))
504 (substitute* "net/lookup_unix.go"
505 (("/etc/protocols") (string-append net-base "/etc/protocols")))
506 (substitute* "net/port_unix.go"
507 (("/etc/services") (string-append net-base "/etc/services")))
508 (substitute* "time/zoneinfo_unix.go"
509 (("/usr/share/zoneinfo/") tzdata-path))
510 (substitute* (find-files "cmd" "\\.go")
511 (("/lib(64)?/ld-linux.*\\.so\\.[0-9]") loader))
513 ;; Prevent installation of the build cache, which contains store
514 ;; references to most of the tools used to build Go and would
515 ;; unnecessarily increase the size of Go's closure if it was
517 ;; TODO This should be moved into the 'install' phase when Go 1.9 is
519 (add-before 'install 'delete-extraneous-files
521 (delete-file-recursively "../pkg/obj")
523 (replace 'set-bootstrap-variables
524 (lambda* (#:key outputs inputs #:allow-other-keys)
525 ;; Tell the build system where to find the bootstrap Go.
526 (let ((go (assoc-ref inputs "go")))
527 (setenv "GOROOT_BOOTSTRAP" go)
528 (setenv "GOGC" "400")
531 (define-public go go-1.11)
533 (define-public go-github-com-alsm-ioprogress
534 (let ((commit "063c3725f436e7fba0c8f588547bee21ffec7ac5")
537 (name "go-github-com-alsm-ioprogress")
538 (version (git-version "0.0.0" revision commit))
542 (url "https://github.com/alsm/ioprogress.git")
544 (file-name (git-file-name name version))
547 "10ym5qlq77nynmkxbk767f2hfwyxg2k7hrzph05hvgzv833dhivh"))))
548 (build-system go-build-system)
550 '(#:import-path "github.com/alsm/ioprogress"))
551 (synopsis "Textual progress bars in Go")
552 (description "@code{ioprogress} is a Go library with implementations of
553 @code{io.Reader} and @code{io.Writer} that draws progress bars. The primary use
554 case for these are for command-line applications but alternate progress bar
555 writers can be supplied for alternate environments.")
556 (home-page "https://github.com/alsm/ioprogress")
557 (license license:expat))))
559 (define-public go-github-com-aki237-nscjar
560 (let ((commit "e2df936ddd6050d30dd90c7214c02b5019c42f06")
563 (name "go-github-com-aki237-nscjar")
564 (version (git-version "0.0.0" revision commit))
568 (url "https://github.com/aki237/nscjar.git")
570 (file-name (git-file-name name version))
573 "03y7zzq12qvhsq86lb06sgns8xrkblbn7i7wd886wk3zr5574b96"))))
574 (build-system go-build-system)
576 '(#:import-path "github.com/aki237/nscjar"))
577 (synopsis "Handle Netscape / Mozilla cookies")
578 (description "@code{nscjar} is a Go library used to parse and output
579 Netscape/Mozilla's old-style cookie files. It also implements a simple cookie
580 jar struct to manage the cookies added to the cookie jar.")
581 (home-page "https://github.com/aki237/nscjar")
582 (license license:expat))))
584 (define-public go-github.com-jessevdk-go-flags
586 (name "go-github.com-jessevdk-go-flags")
591 (url "https://github.com/jessevdk/go-flags")
592 (commit (string-append "v" version))))
593 (file-name (git-file-name name version))
596 "1jk2k2l10lwrn1r3nxdvbs0yz656830j4khzirw8p4ahs7c5zz36"))))
597 (build-system go-build-system)
599 '(#:import-path "github.com/jessevdk/go-flags"))
600 (synopsis "Go library for parsing command line arguments")
602 "The @code{flags} package provides a command line option parser. The
603 functionality is similar to the go builtin @code{flag} package, but
604 @code{flags} provides more options and uses reflection to provide a succinct
605 way of specifying command line options.")
606 (home-page "https://github.com/jessevdk/go-flags")
607 (license license:bsd-3)))
609 (define-public go-gopkg.in-tomb.v2
610 (let ((commit "d5d1b5820637886def9eef33e03a27a9f166942c")
613 (name "go-gopkg.in-tomb.v2")
614 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
618 (url "https://github.com/go-tomb/tomb.git")
620 (file-name (string-append name "-" version ".tar.gz"))
623 "1sv15sri99szkdz1bkh0ir46w9n8prrwx5hfai13nrhkawfyfy10"))))
624 (build-system go-build-system)
626 '(#:import-path "gopkg.in/tomb.v2"))
627 (synopsis "@code{tomb} handles clean goroutine tracking and termination")
629 "The @code{tomb} package handles clean goroutine tracking and
631 (home-page "https://gopkg.in/tomb.v2")
632 (license license:bsd-3))))
634 (define-public go-github.com-jtolds-gls
636 (name "go-github.com-jtolds-gls")
641 (url "https://github.com/jtolds/gls")
642 (commit (string-append "v" version))))
643 (file-name (git-file-name name version))
646 "1vm37pvn0k4r6d3m620swwgama63laz8hhj3pyisdhxwam4m2g1h"))))
647 (build-system go-build-system)
649 '(#:import-path "github.com/jtolds/gls"))
650 (synopsis "@code{gls} provides Goroutine local storage")
652 "The @code{gls} package provides a way to store a retrieve values
654 (home-page "https://github.com/jtolds/gls")
655 (license license:expat)))
657 (define-public go-github-com-tj-docopt
659 (name "go-github-com-tj-docopt")
664 (url "https://github.com/tj/docopt")
665 (commit (string-append "v" version))))
666 (file-name (git-file-name name version))
669 "06h8hdg1mh3s78zqlr01g4si7k0f0g6pr7fj7lnvfg446hgc7080"))))
670 (build-system go-build-system)
672 '(#:import-path "github.com/tj/docopt"))
673 (synopsis "Go implementation of docopt")
675 "This library allows the user to define a command-line interface from a
676 program's help message rather than specifying it programatically with
677 command-line parsers.")
678 (home-page "https://github.com/tj/docopt")
679 (license license:expat)))
681 (define-public go-github-com-hashicorp-hcl
682 (let ((commit "23c074d0eceb2b8a5bfdbb271ab780cde70f05a8")
685 (name "go-github-com-hashicorp-hcl")
686 (version (git-version "0.0.0" revision commit))
690 (url "https://github.com/hashicorp/hcl")
692 (file-name (git-file-name name version))
695 "0db4lpqb5m130rmfy3s3gjjf4dxllypmyrzxv6ggqhkmwmc7w4mc"))))
696 (build-system go-build-system)
699 #:import-path "github.com/hashicorp/hcl"))
700 (synopsis "Go implementation of HashiCorp Configuration Language")
702 "This package contains the main implementation of the @acronym{HCL,
703 HashiCorp Configuration Language}. HCL is designed to be a language for
704 expressing configuration which is easy for both humans and machines to read.")
705 (home-page "https://github.com/hashicorp/hcl")
706 (license license:mpl2.0))))
708 (define-public go-golang-org-x-crypto-bcrypt
709 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
712 (name "go-golang-org-x-crypto-bcrypt")
713 (version (git-version "0.0.0" revision commit))
717 (url "https://go.googlesource.com/crypto")
719 (file-name (string-append "go.googlesource.com-crypto-"
720 version "-checkout"))
723 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
724 (build-system go-build-system)
726 `(#:import-path "golang.org/x/crypto/bcrypt"
727 #:unpack-path "golang.org/x/crypto"
729 (modify-phases %standard-phases
730 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
731 (lambda* (#:key outputs #:allow-other-keys)
733 (make-file-writable file))
735 (string-append (assoc-ref outputs "out")
736 "/src/golang.org/x/crypto/ed25519/testdata")
739 (synopsis "Bcrypt in Go")
740 (description "This package provides a Go implementation of the bcrypt
741 password hashing function.")
742 (home-page "https://go.googlesource.com/crypto/")
743 (license license:bsd-3))))
745 (define-public go-golang-org-x-crypto-blowfish
746 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
749 (name "go-golang-org-x-crypto-blowfish")
750 (version (git-version "0.0.0" revision commit))
754 (url "https://go.googlesource.com/crypto")
756 (file-name (string-append "go.googlesource.com-crypto-"
757 version "-checkout"))
760 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
761 (build-system go-build-system)
763 `(#:import-path "golang.org/x/crypto/blowfish"
764 #:unpack-path "golang.org/x/crypto"
766 (modify-phases %standard-phases
767 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
768 (lambda* (#:key outputs #:allow-other-keys)
770 (make-file-writable file))
772 (string-append (assoc-ref outputs "out")
773 "/src/golang.org/x/crypto/ed25519/testdata")
776 (synopsis "Blowfish in Go")
777 (description "This package provides a Go implementation of the Blowfish
778 symmetric-key block cipher.")
779 (home-page "https://go.googlesource.com/crypto/")
780 (license license:bsd-3))))
782 (define-public go-golang-org-x-crypto-pbkdf2
783 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
786 (name "go-golang-org-x-crypto-pbkdf2")
787 (version (git-version "0.0.0" revision commit))
791 (url "https://go.googlesource.com/crypto")
793 (file-name (string-append "go.googlesource.com-crypto-"
794 version "-checkout"))
797 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
798 (build-system go-build-system)
800 `(#:import-path "golang.org/x/crypto/pbkdf2"
801 #:unpack-path "golang.org/x/crypto"
803 (modify-phases %standard-phases
804 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
805 (lambda* (#:key outputs #:allow-other-keys)
807 (make-file-writable file))
809 (string-append (assoc-ref outputs "out")
810 "/src/golang.org/x/crypto/ed25519/testdata")
813 (synopsis "PBKDF2 in Go")
814 (description "This package provides a Go implementation of the PBKDF2 key
815 derivation function.")
816 (home-page "https://go.googlesource.com/crypto/")
817 (license license:bsd-3))))
819 (define-public go-golang-org-x-crypto-tea
820 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
823 (name "go-golang-org-x-crypto-tea")
824 (version (git-version "0.0.0" revision commit))
828 (url "https://go.googlesource.com/crypto")
830 (file-name (string-append "go.googlesource.com-crypto-"
831 version "-checkout"))
834 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
835 (build-system go-build-system)
837 `(#:import-path "golang.org/x/crypto/tea"
838 #:unpack-path "golang.org/x/crypto"
840 (modify-phases %standard-phases
841 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
842 (lambda* (#:key outputs #:allow-other-keys)
844 (make-file-writable file))
846 (string-append (assoc-ref outputs "out")
847 "/src/golang.org/x/crypto/ed25519/testdata")
850 (synopsis "Tiny Encryption Algorithm (TEA) in Go")
851 (description "This packages a Go implementation of the Tiny Encryption
852 Algorithm (TEA) block cipher.")
853 (home-page "https://go.googlesource.com/crypto/")
854 (license license:bsd-3))))
856 (define-public go-golang-org-x-crypto-salsa20
857 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
860 (name "go-golang-org-x-crypto-salsa20")
861 (version (git-version "0.0.0" revision commit))
865 (url "https://go.googlesource.com/crypto")
867 (file-name (string-append "go.googlesource.com-crypto-"
868 version "-checkout"))
871 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
872 (build-system go-build-system)
874 `(#:import-path "golang.org/x/crypto/salsa20"
875 #:unpack-path "golang.org/x/crypto"
877 (modify-phases %standard-phases
878 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
879 (lambda* (#:key outputs #:allow-other-keys)
881 (make-file-writable file))
883 (string-append (assoc-ref outputs "out")
884 "/src/golang.org/x/crypto/ed25519/testdata")
887 (synopsis "Salsa20 in Go")
888 (description "This packages provides a Go implementation of the Salsa20
890 (home-page "https://go.googlesource.com/crypto/")
891 (license license:bsd-3))))
893 (define-public go-golang-org-x-crypto-cast5
894 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
897 (name "go-golang-org-x-crypto-cast5")
898 (version (git-version "0.0.0" revision commit))
902 (url "https://go.googlesource.com/crypto")
904 (file-name (string-append "go.googlesource.com-crypto-"
905 version "-checkout"))
908 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
909 (build-system go-build-system)
911 `(#:import-path "golang.org/x/crypto/cast5"
912 #:unpack-path "golang.org/x/crypto"
914 (modify-phases %standard-phases
915 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
916 (lambda* (#:key outputs #:allow-other-keys)
918 (make-file-writable file))
920 (string-append (assoc-ref outputs "out")
921 "/src/golang.org/x/crypto/ed25519/testdata")
924 (synopsis "Cast5 in Go")
925 (description "This packages provides a Go implementation of the Cast5
926 symmetric-key block cipher.")
927 (home-page "https://go.googlesource.com/crypto/")
928 (license license:bsd-3))))
930 (define-public go-golang-org-x-crypto-twofish
931 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
934 (name "go-golang-org-x-crypto-twofish")
935 (version (git-version "0.0.0" revision commit))
939 (url "https://go.googlesource.com/crypto")
941 (file-name (string-append "go.googlesource.com-crypto-"
942 version "-checkout"))
945 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
946 (build-system go-build-system)
948 `(#:import-path "golang.org/x/crypto/twofish"
949 #:unpack-path "golang.org/x/crypto"
951 (modify-phases %standard-phases
952 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
953 (lambda* (#:key outputs #:allow-other-keys)
955 (make-file-writable file))
957 (string-append (assoc-ref outputs "out")
958 "/src/golang.org/x/crypto/ed25519/testdata")
961 (synopsis "Twofish in Go")
962 (description "This packages provides a Go implementation of the Twofish
963 symmetric-key block cipher.")
964 (home-page "https://go.googlesource.com/crypto/")
965 (license license:bsd-3))))
967 (define-public go-golang-org-x-crypto-xtea
968 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
971 (name "go-golang-org-x-crypto-xtea")
972 (version (git-version "0.0.0" revision commit))
976 (url "https://go.googlesource.com/crypto")
978 (file-name (string-append "go.googlesource.com-crypto-"
979 version "-checkout"))
982 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
983 (build-system go-build-system)
985 `(#:import-path "golang.org/x/crypto/xtea"
986 #:unpack-path "golang.org/x/crypto"
988 (modify-phases %standard-phases
989 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
990 (lambda* (#:key outputs #:allow-other-keys)
992 (make-file-writable file))
994 (string-append (assoc-ref outputs "out")
995 "/src/golang.org/x/crypto/ed25519/testdata")
998 (synopsis "eXtended Tiny Encryption Algorithm (XTEA) in Go")
999 (description "This package provides a Go implementation of the eXtended
1000 Tiny Encryption Algorithm (XTEA) block cipher.")
1001 (home-page "https://go.googlesource.com/crypto/")
1002 (license license:bsd-3))))
1004 (define-public go-golang-org-x-crypto-ed25519
1006 (inherit go-golang-org-x-crypto-bcrypt)
1007 (name "go-golang-org-x-crypto-ed25519")
1009 (substitute-keyword-arguments (package-arguments go-golang-org-x-crypto-bcrypt)
1011 "golang.org/x/crypto/ed25519")))
1012 (synopsis "ED25519 in Go")
1013 (description "This package provides a Go implementation of the ED25519
1014 signature algorithm.")))
1016 (define-public go-golang-org-x-crypto-ripemd160
1018 (inherit go-golang-org-x-crypto-bcrypt)
1019 (name "go-golang-org-x-crypto-ripemd160")
1021 (substitute-keyword-arguments (package-arguments go-golang-org-x-crypto-bcrypt)
1023 "golang.org/x/crypto/ripemd160")))
1024 (synopsis "RIPEMD-160 in Go")
1025 (description "This package provides a Go implementation of the RIPEMD-160
1028 (define-public go-golang-org-x-crypto-blake2s
1030 (inherit go-golang-org-x-crypto-bcrypt)
1031 (name "go-golang-org-x-crypto-blake2s")
1033 (substitute-keyword-arguments (package-arguments go-golang-org-x-crypto-bcrypt)
1035 "golang.org/x/crypto/blake2s")))
1036 (synopsis "BLAKE2s in Go")
1037 (description "This package provides a Go implementation of the BLAKE2s
1040 (define-public go-golang-org-x-crypto-sha3
1042 (inherit go-golang-org-x-crypto-bcrypt)
1043 (name "go-golang-org-x-crypto-sha3")
1045 (substitute-keyword-arguments (package-arguments go-golang-org-x-crypto-bcrypt)
1047 "golang.org/x/crypto/sha3")))
1048 (synopsis "SHA-3 in Go")
1049 (description "This package provides a Go implementation of the SHA-3
1050 fixed-output-length hash functions and the SHAKE variable-output-length hash
1051 functions defined by FIPS-202.")))
1053 ;; Go searches for library modules by looking in the GOPATH environment
1054 ;; variable. This variable is a list of paths. However, Go does not
1055 ;; keep searching on GOPATH if it tries and fails to import a module.
1056 ;; So, we use a union for packages sharing a namespace.
1057 (define* (go-golang-org-x-crypto-union #:optional
1058 (packages (list go-golang-org-x-crypto-blowfish
1059 go-golang-org-x-crypto-bcrypt
1060 go-golang-org-x-crypto-tea
1061 go-golang-org-x-crypto-xtea
1062 go-golang-org-x-crypto-pbkdf2
1063 go-golang-org-x-crypto-twofish
1064 go-golang-org-x-crypto-cast5
1065 go-golang-org-x-crypto-salsa20
1066 go-golang-org-x-crypto-ed25519
1067 go-golang-org-x-crypto-ripemd160
1068 go-golang-org-x-crypto-blake2s
1069 go-golang-org-x-crypto-sha3)))
1071 (name "go-golang-org-x-crypto")
1072 (version (package-version go-golang-org-x-crypto-bcrypt))
1074 (build-system trivial-build-system)
1076 '(#:modules ((guix build union))
1078 (use-modules (ice-9 match)
1080 (match %build-inputs
1081 (((names . directories) ...)
1082 (union-build (assoc-ref %outputs "out")
1085 (inputs (map (lambda (package)
1086 (list (package-name package) package))
1088 (synopsis "Union of the Go x crypto libraries")
1089 (description "A union of the Golang cryptographic libraries. A
1090 union is required because `go build` assumes that all of the headers and
1091 libraries are in the same directory.")
1092 (home-page (package-home-page go-golang-org-x-crypto-bcrypt))
1093 (license (package-license go-golang-org-x-crypto-bcrypt))))
1095 (define-public go-golang-org-x-net-ipv4
1096 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1099 (name "go-golang-org-x-net-ipv4")
1100 (version (git-version "0.0.0" revision commit))
1104 (url "https://go.googlesource.com/net")
1106 (file-name (git-file-name name version))
1109 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1110 (build-system go-build-system)
1112 `(#:import-path "golang.org/x/net/ipv4"
1113 #:unpack-path "golang.org/x/net"))
1114 (synopsis "Go IPv4 support")
1115 (description "This package provides @code{ipv4}, which implements IP-level
1116 socket options for the Internet Protocol version 4.")
1117 (home-page "https://go.googlesource.com/net")
1118 (license license:bsd-3))))
1120 (define-public go-golang-org-x-net-bpf
1121 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1124 (name "go-golang-org-x-net-bpf")
1125 (version (git-version "0.0.0" revision commit))
1129 (url "https://go.googlesource.com/net")
1131 (file-name (string-append "go.googlesource.com-net-"
1132 version "-checkout"))
1135 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1136 (build-system go-build-system)
1138 `(#:import-path "golang.org/x/net/bpf"
1139 #:unpack-path "golang.org/x/net"))
1140 (synopsis "Berkeley Packet Filters (BPF) in Go")
1141 (description "This packages provides a Go implementation of the Berkeley
1142 Packet Filter (BPF) virtual machine.")
1143 (home-page "https://go.googlesource.com/net/")
1144 (license license:bsd-3))))
1146 (define-public go-golang-org-x-net-context
1147 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1150 (name "go-golang-org-x-net-context")
1151 (version (git-version "0.0.0" revision commit))
1155 (url "https://go.googlesource.com/net")
1157 (file-name (string-append "go.googlesource.com-net-"
1158 version "-checkout"))
1161 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1162 (build-system go-build-system)
1164 `(#:import-path "golang.org/x/net/context"
1165 #:unpack-path "golang.org/x/net"))
1166 (synopsis "Golang Context type")
1167 (description "This packages provides @code{context}, which defines the
1168 Context type, which carries deadlines, cancelation signals, and other
1169 request-scoped values across API boundaries and between processes.")
1170 (home-page "https://go.googlesource.com/net/")
1171 (license license:bsd-3))))
1173 (define-public go-golang-org-x-net-internal-iana
1174 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1177 (name "go-golang-org-x-net-internal-iana")
1178 (version (git-version "0.0.0" revision commit))
1182 (url "https://go.googlesource.com/net")
1184 (file-name (string-append "go.googlesource.com-net-"
1185 version "-checkout"))
1188 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1189 (build-system go-build-system)
1191 `(#:import-path "golang.org/x/net/internal/iana"
1192 #:unpack-path "golang.org/x/net"))
1193 (synopsis "Go support for assigned numbers (IANA)")
1194 (description "This packages provides @code{iana}, which provides protocol
1195 number resources managed by the Internet Assigned Numbers Authority (IANA).")
1196 (home-page "https://go.googlesource.com/net/")
1197 (license license:bsd-3))))
1199 (define-public go-golang-org-x-net-ipv6
1200 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1203 (name "go-golang-org-x-net-ipv6")
1204 (version (git-version "0.0.0" revision commit))
1208 (url "https://go.googlesource.com/net")
1210 (file-name (string-append "go.googlesource.com-net-"
1211 version "-checkout"))
1214 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1215 (build-system go-build-system)
1217 `(#:import-path "golang.org/x/net/ipv6"
1218 #:unpack-path "golang.org/x/net"))
1219 (synopsis "Go IPv6 support")
1220 (description "This packages provides @code{ipv6}, which implements
1221 IP-level socket options for the Internet Protocol version 6.")
1222 (home-page "https://go.googlesource.com/net")
1223 (license license:bsd-3))))
1225 (define-public go-golang-org-x-net-proxy
1226 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1229 (name "go-golang-org-x-net-proxy")
1230 (version (git-version "0.0.0" revision commit))
1234 (url "https://go.googlesource.com/net")
1236 (file-name (string-append "go.googlesource.com-net-"
1237 version "-checkout"))
1240 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1241 (build-system go-build-system)
1243 `(#:import-path "golang.org/x/net/proxy"
1244 #:unpack-path "golang.org/x/net/"))
1245 (synopsis "Go support for network proxies")
1246 (description "This packages provides @code{proxy}, which provides support
1247 for a variety of protocols to proxy network data.")
1248 (home-page "https://go.googlesource.com/net")
1249 (license license:bsd-3))))
1251 (define-public go-golang-org-x-sys-unix
1252 (let ((commit "83801418e1b59fb1880e363299581ee543af32ca")
1255 (name "go-golang-org-x-sys-unix")
1256 (version (git-version "0.0.0" revision commit))
1260 (url "https://go.googlesource.com/sys")
1262 (file-name (git-file-name name version))
1265 "0ilykaanvnzb27d42kmbr4i37hcn7hgqbx98z945gy63aa8dskji"))))
1266 (build-system go-build-system)
1268 `(#:import-path "golang.org/x/sys/unix"
1269 #:unpack-path "golang.org/x/sys"
1271 (modify-phases %standard-phases
1272 (add-after 'unpack 'patch-tests
1275 (substitute* "src/golang.org/x/sys/unix/syscall_unix_test.go"
1276 (("/usr/bin") "/tmp"))
1278 (synopsis "Go support for low-level system interaction")
1279 (description "This package provides @code{unix}, which offers Go support
1280 for low-level interaction with the operating system.")
1281 (home-page "https://go.googlesource.com/sys")
1282 (license license:bsd-3))))
1284 (define-public go-golang-org-x-text-transform
1285 (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
1288 (name "go-golang-org-x-text-transform")
1289 (version (git-version "0.0.0" revision commit))
1293 (url "https://go.googlesource.com/text")
1295 (file-name (string-append "go.googlesource.com-text-"
1296 version "-checkout"))
1299 "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
1300 (build-system go-build-system)
1302 `(#:import-path "golang.org/x/text/transform"
1303 #:unpack-path "golang.org/x/text"))
1304 (synopsis "Go text transformation")
1305 (description "This package provides @code{transform}, which provides
1306 reader and writer wrappers that transform the bytes passing through. Example
1307 transformations provided by other packages include normalization and conversion
1308 between character sets.")
1309 (home-page "https://go.googlesource.com/text")
1310 (license license:bsd-3))))
1312 (define-public go-golang-org-x-text-unicode-norm
1313 (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
1316 (name "go-golang-org-x-text-unicode-norm")
1317 (version (git-version "0.0.0" revision commit))
1321 (url "https://go.googlesource.com/text")
1323 (file-name (string-append "go.googlesource.com-text-"
1324 version "-checkout"))
1327 "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
1328 (build-system go-build-system)
1330 `(#:import-path "golang.org/x/text/unicode/norm"
1331 #:unpack-path "golang.org/x/text"))
1332 (synopsis "Unicode normalization in Go")
1333 (description "This package provides @code{norm}, which contains types and
1334 functions for normalizing Unicode strings.")
1335 (home-page "https://go.googlesource.com/text")
1336 (license license:bsd-3))))
1338 (define-public go-golang-org-x-time-rate
1339 (let ((commit "6dc17368e09b0e8634d71cac8168d853e869a0c7")
1342 (name "go-golang-org-x-time-rate")
1343 (version (git-version "0.0.0" revision commit))
1347 (url "https://go.googlesource.com/time")
1349 (file-name (git-file-name name version))
1352 "1fx4cf5fpdz00g3c7vxzy92hdcg0vh4yqw00qp5s52j72qixynbk"))))
1353 (build-system go-build-system)
1355 `(#:import-path "golang.org/x/time/rate"
1356 #:unpack-path "golang.org/x/time"))
1358 `(("go-golang-org-x-net-context" ,go-golang-org-x-net-context)))
1359 (synopsis "Rate limiting in Go")
1360 (description "This package provides @{rate}, which implements rate
1362 (home-page "https://godoc.org/golang.org/x/time/rate")
1363 (license license:bsd-3))))
1365 (define-public go-golang-org-x-crypto-ssh-terminal
1366 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
1369 (name "go-golang-org-x-crypto-ssh-terminal")
1370 (version (git-version "0.0.0" revision commit))
1374 (url "https://go.googlesource.com/crypto")
1376 (file-name (string-append "go.googlesource.com-crypto-"
1377 version "-checkout"))
1380 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
1381 (build-system go-build-system)
1383 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
1385 `(#:import-path "golang.org/x/crypto/ssh/terminal"
1386 #:unpack-path "golang.org/x/crypto"
1388 (modify-phases %standard-phases
1389 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1390 (lambda* (#:key outputs #:allow-other-keys)
1392 (make-file-writable file))
1394 (string-append (assoc-ref outputs "out")
1395 "/src/golang.org/x/crypto/ed25519/testdata")
1398 (synopsis "Terminal functions for Go")
1399 (description "This package provides @{terminal}, which implements
1400 support functions for dealing with terminals, as commonly found on UNIX
1402 (home-page "https://go.googlesource.com/crypto/")
1403 (license license:bsd-3))))
1405 (define-public go-github-com-burntsushi-toml
1407 "a368813c5e648fee92e5f6c30e3944ff9d5e8895")
1410 (name "go-github-com-burntsushi-toml")
1411 (version (git-version "0.0.0" revision commit))
1416 (url "https://github.com/BurntSushi/toml.git")
1418 (file-name (git-file-name name version))
1421 "1sjxs2lwc8jpln80s4rlzp7nprbcljhy5mz4rf9995gq93wqnym5"))))
1422 (build-system go-build-system)
1424 '(#:import-path "github.com/BurntSushi/toml"))
1425 (home-page "https://github.com/BurntSushi/toml")
1426 (synopsis "Toml parser and encoder for Go")
1427 (description "This package is toml parser and encoder for Go. The
1428 interface is similar to Go's standard library @code{json} and @code{xml}
1430 (license license:expat))))
1432 (define-public go-github-com-getsentry-raven-go
1434 "dffeb57df75d6a911f00232155194e43d79d38d7")
1437 (name "go-github-com-getsentry-raven-go")
1438 (version (git-version "0.0.0" revision commit))
1443 (url "https://github.com/getsentry/raven-go.git")
1445 (file-name (git-file-name name version))
1448 "13sb9rvl3369m7fah3ss9g0hwky259snqfn8gmbr0h5zvp651lja"))))
1449 (build-system go-build-system)
1451 '(#:import-path "github.com/getsentry/raven-go"))
1453 "https://github.com/getsentry/raven-go")
1454 (synopsis "Sentry client in Go")
1455 (description "This package is Go client API for the Sentry event/error
1457 (license license:bsd-3))))
1459 (define-public go-github-com-hashicorp-go-version
1461 "03c5bf6be031b6dd45afec16b1cf94fc8938bc77")
1464 (name "go-github-com-hashicorp-go-version")
1465 (version (git-version "0.0.0" revision commit))
1470 (url "https://github.com/hashicorp/go-version.git")
1472 (file-name (git-file-name name version))
1475 "0sjq57gpfznaqdrbyb2p0bn90g9h661cvr0jrk6ngags4pbw14ik"))))
1476 (build-system go-build-system)
1478 '(#:import-path "github.com/hashicorp/go-version"))
1480 "https://github.com/hashicorp/go-version")
1481 (synopsis "Go library for parsing and verifying versions and version
1483 (description "This package is a library for parsing versions and version
1484 constraints, and verifying versions against a set of constraints. It can sort
1485 a collection of versions properly, handles prerelease/beta versions, can
1486 increment versions.")
1487 (license license:mpl2.0))))
1489 (define-public go-github-com-jpillora-backoff
1491 "06c7a16c845dc8e0bf575fafeeca0f5462f5eb4d")
1494 (name "go-github-com-jpillora-backoff")
1495 (version (git-version "0.0.0" revision commit))
1500 (url "https://github.com/jpillora/backoff.git")
1502 (file-name (git-file-name name version))
1505 "0xhvxr7bm47czdc5hy3kl508z3y4j91i2jm7vg774i52zych6k4l"))))
1506 (build-system go-build-system)
1508 '(#:import-path "github.com/jpillora/backoff"))
1509 (home-page "https://github.com/jpillora/backoff")
1510 (synopsis "Simple exponential backoff counter in Go")
1511 (description "This package is a simple exponential backoff counter in
1513 (license license:expat))))
1515 (define-public go-github-com-stretchr-testify
1517 "b1f989447a57594c728884458a39abf3a73447f7")
1520 (name "go-github-com-stretchr-testify")
1521 (version (git-version "1.1.4" revision commit))
1526 (url "https://github.com/stretchr/testify.git")
1528 (file-name (git-file-name name version))
1531 "0p0gkqzh2p8r5g0rxm885ljl7ghih7h7hx9w562imx5ka0vdgixv"))))
1532 (build-system go-build-system)
1534 '(#:import-path "github.com/stretchr/testify"))
1535 (home-page "https://github.com/stretchr/testify")
1536 (synopsis "Go helper library for tests and invariant checking")
1537 (description "This package provide many tools for testifying that your
1538 code will behave as you intend.
1542 @item Easy assertions
1544 @item HTTP response trapping
1545 @item Testing suite interfaces and functions.
1547 (license license:expat))))
1549 (define-public go-github-com-tevino-abool
1551 "3c25f2fe7cd0ef3eabefce1d90efd69a65d35b12")
1554 (name "go-github-com-tevino-abool")
1555 (version (git-version "0.0.0" revision commit))
1560 (url "https://github.com/tevino/abool.git")
1562 (file-name (git-file-name name version))
1565 "1wxqrclxk93q0aj15z596dx2y57x9nkhi64nbrr5cxnhxn8vwixm"))))
1566 (build-system go-build-system)
1568 '(#:import-path "github.com/tevino/abool"))
1569 (home-page "https://github.com/tevino/abool")
1570 (synopsis "Atomic boolean library for Go code")
1571 (description "This package is atomic boolean library for Go code,
1572 optimized for performance yet simple to use.")
1573 (license license:expat))))
1575 (define-public go-github-com-blang-semver
1576 (let ((commit "60ec3488bfea7cca02b021d106d9911120d25fe9")
1579 (name "go-github-com-blang-semver")
1580 (version (git-version "0.0.0" revision commit))
1585 (url "https://github.com/blang/semver.git")
1587 (file-name (git-file-name name version))
1590 "19pli07y5592g4dyjyj0jq5rn548vc3fz0qg3624vm1j5828p1c2"))))
1591 (build-system go-build-system)
1593 '(#:import-path "github.com/blang/semver"))
1594 (home-page "https://github.com/blang/semver")
1595 (synopsis "Semantic versioning library written in Go")
1596 (description "Semver is a library for Semantic versioning written in Go.")
1597 (license license:expat))))
1599 (define-public go-github-com-emicklei-go-restful
1600 (let ((commit "89ef8af493ab468a45a42bb0d89a06fccdd2fb22")
1603 (name "go-github-com-emicklei-go-restful")
1604 (version (git-version "0.0.0" revision commit))
1609 (url "https://github.com/emicklei/go-restful.git")
1611 (file-name (git-file-name name version))
1614 "0rrlfcfq80fkxifpih6bq31vavb5mf4530xz51pp9pq1mn2fzjfh"))))
1615 (build-system go-build-system)
1617 '(#:import-path "github.com/emicklei/go-restful"))
1618 (home-page "https://github.com/emicklei/go-restful")
1619 (synopsis "Build REST-style web services using Go")
1620 (description "This package provides @code{go-restful}, which helps
1621 developers to use @code{http} methods explicitly and in a way that's consistent
1622 with the HTTP protocol definition.")
1623 (license license:expat))))
1625 (define-public go-github-com-google-cadvisor
1626 (let ((commit "2ed7198f77395ee9a172878a0a7ab92ab59a2cfd")
1629 (name "go-github-com-google-cadvisor")
1630 (version (git-version "0.0.0" revision commit))
1635 (url "https://github.com/google/cadvisor.git")
1637 (file-name (git-file-name name version))
1640 "1w8p345z5j0gk3yiq5ah0znd5lfh348p2s624k5r10drz04p3f55"))))
1641 (build-system go-build-system)
1643 '(#:import-path "github.com/google/cadvisor"))
1644 (home-page "https://github.com/google/cadvisor")
1645 (synopsis "Analyze resource usage of running containers")
1646 (description "The package provides @code{cadvisor}, which provides
1647 information about the resource usage and preformance characteristics of running
1649 (license license:asl2.0))))
1651 (define-public go-github-com-google-gofuzz
1652 (let ((commit "fd52762d25a41827db7ef64c43756fd4b9f7e382")
1655 (name "go-github-com-google-gofuzz")
1656 (version (git-version "0.0.0" revision commit))
1661 (url "https://github.com/google/gofuzz.git")
1663 (file-name (git-file-name name version))
1666 "1yxmmr73h0lq7ryf3q9a7pcm2x5xrg4d5bxkq8n5pxwxwyq26kw8"))))
1667 (build-system go-build-system)
1669 '(#:import-path "github.com/google/gofuzz"))
1670 (home-page "https://github.com/google/gofuzz")
1671 (synopsis "Fuzz testing library for Go")
1672 (description "Gofuzz is a library for populationg Go objects with random
1673 values for the purpose of fuzz testing.")
1674 (license license:asl2.0))))
1676 (define-public go-github-com-gorilla-context
1677 (let ((commit "08b5f424b9271eedf6f9f0ce86cb9396ed337a42")
1680 (name "go-github-com-gorilla-context")
1681 (version (git-version "0.0.0" revision commit))
1686 (url "https://github.com/gorilla/context.git")
1688 (file-name (git-file-name name version))
1691 "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4"))))
1692 (build-system go-build-system)
1694 '(#:import-path "github.com/gorilla/context"))
1695 (home-page "https://github.com/gorilla/context")
1696 (synopsis "Go registry for request variables")
1697 (description "This package provides @code{gorilla/context}, which is a general purpose registry for global request variables in the Go programming language.")
1698 (license license:bsd-3))))
1700 (define-public go-github-com-gorilla-mux
1701 (let ((commit "599cba5e7b6137d46ddf58fb1765f5d928e69604")
1704 (name "go-github-com-gorilla-mux")
1705 (version (git-version "0.0.0" revision commit))
1710 (url "https://github.com/gorilla/mux.git")
1712 (file-name (git-file-name name version))
1715 "0wd6jjii1kg5s0nk3ri6gqriz6hbd6bbcn6x4jf8n7ncrb8qsxyz"))))
1716 (build-system go-build-system)
1718 '(#:import-path "github.com/gorilla/mux"))
1719 (home-page "https://github.com/gorilla/mux")
1720 (synopsis "URL router and dispatcher for Go")
1722 "Gorilla/Mux implements a request router and dispatcher for matching
1723 incoming requests with their respective handler.")
1724 (license license:bsd-3))))
1726 (define-public go-github-com-jonboulle-clockwork
1727 (let ((commit "e3653ace2d63753697e0e5b07b9393971c0bba9d")
1730 (name "go-github-com-jonboulle-clockwork")
1731 (version (git-version "0.0.0" revision commit))
1736 (url "https://github.com/jonboulle/clockwork.git")
1738 (file-name (git-file-name name version))
1741 "1avzqhks12a8x2yzpvjsf3k0gv9cy7zx2z88hn0scacnxkphisvc"))))
1742 (build-system go-build-system)
1744 '(#:import-path "github.com/jonboulle/clockwork"))
1745 (home-page "https://github.com/jonboulle/clockwork")
1746 (synopsis "Fake clock library for Go")
1748 "Replace uses of the @code{time} package with the
1749 @code{clockwork.Clock} interface instead.")
1750 (license license:asl2.0))))
1752 (define-public go-github-com-spf13-pflag
1753 (let ((commit "4f9190456aed1c2113ca51ea9b89219747458dc1")
1756 (name "go-github-com-spf13-pflag")
1757 (version (git-version "0.0.0" revision commit))
1762 (url "https://github.com/spf13/pflag.git")
1764 (file-name (git-file-name name version))
1767 "12vrlcsbwjqlfc49rwky45mbcj74c0kb6z54354pzas6fwzyi1kc"))))
1768 (build-system go-build-system)
1770 '(#:import-path "github.com/spf13/pflag"))
1771 (home-page "https://github.com/spf13/pflag")
1772 (synopsis "Replacement for Go's @code{flag} package")
1774 "Pflag is library to replace Go's @code{flag} package. It implements
1775 POSIX/GNU-style command-line options with double hyphens. It is is compatible
1777 @uref{https://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html,
1778 GNU extensions} to the POSIX recommendations for command-line options.")
1779 (license license:bsd-3))))
1781 (define-public go-github-com-sirupsen-logrus
1783 (name "go-github-com-sirupsen-logrus")
1789 (url "https://github.com/sirupsen/logrus.git")
1790 (commit (string-append "v" version))))
1793 "0g5z7al7kky11ai2dhac6gkp3b5pxsvx72yj3xg4wg3265gbn7yz"))))
1794 (build-system go-build-system)
1796 `(("go-golang-org-x-crypto-ssh-terminal"
1797 ,go-golang-org-x-crypto-ssh-terminal)
1798 ("go-github-com-stretchr-testify"
1799 ,go-github-com-stretchr-testify)
1800 ("go-golang-org-x-sys-unix"
1801 ,go-golang-org-x-sys-unix)))
1803 '(#:tests? #f ;FIXME missing dependencies
1804 #:import-path "github.com/sirupsen/logrus"))
1805 (home-page "https://github.com/sirupsen/logrus")
1806 (synopsis "Structured, pluggable logging for Go")
1807 (description "Logrus is a structured logger for Go, completely API
1808 compatible with the standard library logger.")
1809 (license license:expat)))
1811 (define-public go-github-com-kardianos-osext
1812 (let ((commit "ae77be60afb1dcacde03767a8c37337fad28ac14")
1815 (name "go-github-com-kardianos-osext")
1816 (version (git-version "0.0.0" revision commit))
1820 (url "https://github.com/kardianos/osext")
1822 (file-name (git-file-name name version))
1825 "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz"))))
1826 (build-system go-build-system)
1828 `(#:import-path "github.com/kardianos/osext"
1829 ;; The tests are flaky:
1830 ;; <https://github.com/kardianos/osext/issues/21>
1832 (synopsis "Find the running executable")
1833 (description "Osext provides a method for finding the current executable
1834 file that is running. This can be used for upgrading the current executable or
1835 finding resources located relative to the executable file.")
1836 (home-page "https://github.com/kardianos/osext")
1837 (license license:bsd-3))))
1839 (define-public go-github-com-ayufan-golang-kardianos-service
1840 (let ((commit "0c8eb6d8fff2e2fb884a7bfd23e183fb63c0eff3")
1843 (name "go-github-com-ayufan-golang-kardianos-service")
1844 (version (git-version "0.0.0" revision commit))
1850 "https://github.com/ayufan/golang-kardianos-service.git")
1852 (file-name (git-file-name name version))
1855 "0x0cn7l5gda2khsfypix7adxd5yqighzn04mxjw6hc4ayrh7his5"))))
1856 (build-system go-build-system)
1858 `(("go-github-com-kardianos-osext"
1859 ,go-github-com-kardianos-osext)))
1861 '(#:tests? #f ;FIXME tests fail: Service is not running.
1862 #:import-path "github.com/ayufan/golang-kardianos-service"))
1863 (home-page "https://github.com/ayufan/golang-kardianos-service")
1864 (synopsis "Go interface to a variety of service supervisors")
1865 (description "This package provides @code{service}, a Go module that can
1866 run programs as a service using a variety of supervisors, including systemd,
1867 SysVinit, and more.")
1868 (license license:zlib))))
1870 (define-public go-github-com-docker-distribution
1871 (let ((commit "325b0804fef3a66309d962357aac3c2ce3f4d329")
1874 (name "go-github-com-docker-distribution")
1875 (version (git-version "0.0.0" revision commit))
1877 ;; FIXME: This bundles many things, see
1878 ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31881#41>.
1882 (url "https://github.com/docker/distribution")
1884 (file-name (git-file-name name version))
1887 "1yg2zrikn3vkvkx5mn51p6bfjk840qdkn7ahhhvvcsc8mpigrjc6"))))
1888 (build-system go-build-system)
1890 `(("go-golang-org-x-sys-unix"
1891 ,go-golang-org-x-sys-unix)
1892 ("go-github-com-sirupsen-logrus"
1893 ,go-github-com-sirupsen-logrus)
1894 ("go-golang-org-x-crypto-ssh-terminal"
1895 ,go-golang-org-x-crypto-ssh-terminal)))
1897 '(#:import-path "github.com/docker/distribution"
1899 (modify-phases %standard-phases
1900 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1901 (lambda* (#:key outputs #:allow-other-keys)
1903 (make-file-writable file))
1905 (assoc-ref outputs "out")
1909 "https://github.com/docker/distribution")
1910 (synopsis "This package is Docker toolset to pack, ship, store, and
1912 (description "Docker Distribution is Docker toolset to pack, ship,
1913 store, and deliver content. It's containe Docker Registry 2.0 and libraries
1914 to interacting with distribution components.")
1915 (license license:asl2.0))))
1917 (define-public go-github-com-docker-go-connections
1918 (let ((commit "3ede32e2033de7505e6500d6c868c2b9ed9f169d")
1921 (name "go-github-com-docker-go-connections")
1922 (version (git-version "0.0.0" revision commit))
1927 (url "https://github.com/docker/go-connections.git")
1929 (file-name (git-file-name name version))
1932 "0v1pkr8apwmhyzbjfriwdrs1ihlk6pw7izm57r24mf9jdmg3fyb0"))))
1933 (build-system go-build-system)
1935 '(#:import-path "github.com/docker/go-connections"))
1936 (home-page "https://github.com/docker/go-connections")
1937 (synopsis "Networking library for Go")
1939 "This packages provides a library to work with network connections in
1940 the Go language. In particular it provides tools to deal with network address
1941 translation (NAT), proxies, sockets, and transport layer security (TLS).")
1942 (license license:asl2.0))))
1944 (define-public go-github-com-docker-machine
1945 (let ((commit "7b7a141da84480342357c51838be142bf183b095")
1948 (name "go-github-com-docker-machine")
1949 (version (git-version "0.0.0" revision commit))
1954 (url "https://github.com/docker/machine.git")
1956 (file-name (git-file-name name version))
1959 "0bavk0lvs462yh0lnmnxi9psi5qv1x3nvzmd2b0drsahlp1gxi8s"))))
1960 (build-system go-build-system)
1962 '(#:import-path "github.com/docker/machine"))
1963 (home-page "https://github.com/docker/machine")
1964 (synopsis "Machine management for a container-centric world")
1966 "@dfn{Machine} lets you create Docker hosts on your computer, on
1967 hosting providers, and inside your data center. It creates servers, installs
1968 Docker on them, then configures the Docker client to talk to them.")
1969 (license license:asl2.0))))
1971 (define-public go-github-com-gorhill-cronexpr
1972 (let ((commit "f0984319b44273e83de132089ae42b1810f4933b")
1975 (name "go-github-com-gorhill-cronexpr")
1976 (version (git-version "0.0.0" revision commit))
1981 (url "https://github.com/gorhill/cronexpr.git")
1983 (file-name (git-file-name name version))
1986 "0dphhhqy3i7265znv3m8n57l80dmaq6z4hsj5kgd87qd19z8x0l2"))))
1987 (build-system go-build-system)
1989 '(#:import-path "github.com/gorhill/cronexpr"))
1990 (home-page "https://github.com/gorhill/cronexpr")
1991 (synopsis "Cron expression parser in the Go language")
1993 "This package provides a cron expression parser in the Go language.
1994 Given a cron expression and a time stamp, you can get the next time stamp
1995 which satisfies the cron expression.")
1996 (license (list license:gpl3+
1999 (define-public go-gopkg-in-check-v1
2000 (let ((commit "20d25e2804050c1cd24a7eea1e7a6447dd0e74ec")
2003 (name "go-gopkg-in-check-v1")
2004 (version (git-version "0.0.0" revision commit))
2009 (url "https://github.com/go-check/check")
2011 (file-name (git-file-name name version))
2014 "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np"))))
2015 (build-system go-build-system)
2017 '(#:import-path "gopkg.in/check.v1"))
2018 (home-page "https://gopkg.in/check.v1")
2019 (synopsis "Test framework for the Go language")
2021 "This package provides a test library for the Go language.")
2022 (license license:asl2.0))))
2024 (define-public go-gopkg-in-yaml-v2
2025 (let ((commit "14227de293ca979cf205cd88769fe71ed96a97e2")
2028 (name "go-gopkg-in-yaml-v2")
2029 (version (git-version "0.0.0" revision commit))
2034 (url "https://gopkg.in/yaml.v2.git")
2036 (file-name (git-file-name name version))
2039 "038hnrjcnjygyi3qidfrkpkakis82qg381sr495d2s40g2dwlzah"))))
2040 (build-system go-build-system)
2042 '(#:import-path "gopkg.in/yaml.v2"))
2044 `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
2045 (home-page "https://gopkg.in/yaml.v2")
2046 (synopsis "YAML reader and writer for the Go language")
2048 "This package provides a Go library for encode and decode YAML
2050 (license license:asl2.0))))
2052 (define-public go-github-com-mattn-go-isatty
2053 (let ((commit "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c")
2056 (name "go-github-com-mattn-go-isatty")
2057 (version (git-version "0.0.0" revision commit))
2062 (url "https://github.com/mattn/go-isatty")
2064 (file-name (git-file-name name version))
2067 "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w"))))
2068 (build-system go-build-system)
2070 '(#:import-path "github.com/mattn/go-isatty"))
2071 (home-page "https://github.com/mattn/go-isatty")
2072 (synopsis "Provide @code{isatty} for Golang")
2073 (description "This package provides @code{isatty}, a Go module that can
2074 tell you whether a file descriptor points to a terminal and the type of the
2076 (license license:expat))))
2078 (define-public go-github-com-mattn-go-colorable
2079 (let ((commit "efa589957cd060542a26d2dd7832fd6a6c6c3ade")
2082 (name "go-github-com-mattn-go-colorable")
2083 (version (git-version "0.0.0" revision commit))
2088 (url "https://github.com/mattn/go-colorable")
2090 (file-name (git-file-name name version))
2093 "0kshi4hvm0ayrsxqxy0599iv81kryhd2fn9lwjyczpj593cq069r"))))
2094 (build-system go-build-system)
2096 `(("go-github-com-mattn-go-isatty"
2097 ,go-github-com-mattn-go-isatty)))
2099 '(#:import-path "github.com/mattn/go-colorable"))
2100 (home-page "https://github.com/mattn/go-colorable")
2101 (synopsis "Handle ANSI color escapes on Windows")
2102 (description "This package provides @code{colorable}, a module that
2103 makes it possible to handle ANSI color escapes on Windows.")
2104 (license license:expat))))
2106 (define-public go-github-com-mgutz-ansi
2107 (let ((commit "9520e82c474b0a04dd04f8a40959027271bab992")
2110 (name "go-github-com-mgutz-ansi")
2111 (version (git-version "0.0.0" revision commit))
2117 "https://github.com/mgutz/ansi")
2119 (file-name (git-file-name name version))
2122 "00bz22314j26736w1f0q4jy9d9dfaml17vn890n5zqy3cmvmww1j"))))
2123 (build-system go-build-system)
2125 `(("go-github-com-mattn-go-isatty"
2126 ,go-github-com-mattn-go-isatty)
2127 ("go-github-com-mattn-go-colorable"
2128 ,go-github-com-mattn-go-colorable)))
2130 '(#:import-path "github.com/mgutz/ansi"))
2131 (home-page "https://github.com/mgutz/ansi")
2132 (synopsis "Small, fast library to create ANSI colored strings and codes")
2133 (description "This package provides @code{ansi}, a Go module that can
2134 generate ANSI colored strings.")
2135 (license license:expat))))
2137 (define-public go-github-com-aarzilli-golua
2138 (let ((commit "03fc4642d792b1f2bc5e7343b403cf490f8c501d")
2141 (name "go-github-com-aarzilli-golua")
2142 (version (git-version "0.0.0" revision commit))
2148 "https://github.com/aarzilli/golua")
2150 (file-name (git-file-name name version))
2153 "1d9hr29i36cza98afj3g6rs3l7xbkprwzz0blcxsr9dd7nak20di"))))
2154 (build-system go-build-system)
2158 `(#:unpack-path "github.com/aarzilli/golua"
2159 #:import-path "github.com/aarzilli/golua/lua"
2161 (modify-phases %standard-phases
2163 (lambda* (#:key import-path #:allow-other-keys)
2164 (invoke "go" "install"
2165 "-v" ; print the name of packages as they are compiled
2166 "-x" ; print each command as it is invoked
2167 "-ldflags=-s -w" ; strip the symbol table and debug
2168 "-tags" "llua" ; Latest Lua on Guix does not have a version number.
2171 (lambda* (#:key import-path #:allow-other-keys)
2173 "-tags" "llua" ; Latest Lua on Guix does not have a version number.
2175 (home-page "https://github.com/aarzilli/golua")
2176 (synopsis "Go Bindings for the Lua C API")
2177 (description "This package provides @code{lua}, a Go module that can
2178 run a Lua virtual machine.")
2179 (license license:expat))))
2181 (define-public go-gitlab-com-ambrevar-golua-unicode
2182 (let ((commit "97ce517e7a1fe2407a90c317a9c74b173d396144")
2185 (name "go-gitlab-com-ambrevar-golua-unicode")
2186 (version (git-version "0.0.0" revision commit))
2192 "https://gitlab.com/ambrevar/golua")
2194 (file-name (git-file-name name version))
2197 "1izcp7p8nagjwqd13shb0020w7xhppib1a3glw2d1468bflhksnm"))))
2198 (build-system go-build-system)
2201 ("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
2203 `(#:unpack-path "gitlab.com/ambrevar/golua"
2204 #:import-path "gitlab.com/ambrevar/golua/unicode"
2206 (modify-phases %standard-phases
2208 (lambda* (#:key import-path #:allow-other-keys)
2209 (setenv "USER" "homeless-dude")
2210 (invoke "go" "test" import-path))))))
2211 (home-page "https://gitlab.com/ambrevar/golua")
2212 (synopsis "Add Unicode support to Golua")
2213 (description "This extension to Arzilli's Golua adds Unicode support to
2214 all functions from the Lua string library. Lua patterns are replaced by Go
2215 regexps. This breaks compatibility with Lua, but Unicode support breaks it
2216 anyways and Go regexps are more powerful.")
2217 (license license:expat))))
2219 (define-public go-github-com-yookoala-realpath
2220 (let ((commit "d19ef9c409d9817c1e685775e53d361b03eabbc8")
2223 (name "go-github-com-yookoala-realpath")
2224 (version (git-version "0.0.0" revision commit))
2230 "https://github.com/yookoala/realpath")
2232 (file-name (git-file-name name version))
2235 "0qvz1dcdldf53rq69fli76z5k1vr7prx9ds1d5rpzgs68kwn40nw"))))
2236 (build-system go-build-system)
2238 `(#:import-path "github.com/yookoala/realpath"))
2239 (home-page "https://github.com/yookoala/realpath")
2240 (synopsis "@code{realpath} for Golang")
2241 (description "This package provides @code{realpath}, a Go module that
2242 when provided with a valid relative path / alias path, it will return you with
2243 a string of its real absolute path in the system.")
2244 (license license:expat))))
2246 (define-public go-gitlab-com-ambrevar-damerau
2247 (let ((commit "883829e1f25fad54015772ea663e69017cf22352")
2250 (name "go-gitlab-com-ambrevar-damerau")
2251 (version (git-version "0.0.0" revision commit))
2257 "https://gitlab.com/ambrevar/damerau")
2259 (file-name (git-file-name name version))
2262 "1b9p8fypc914ij1afn6ir346zsgfqrc5mqc1k3d53n4snypq27qv"))))
2263 (build-system go-build-system)
2265 `(#:import-path "gitlab.com/ambrevar/damerau"))
2266 (home-page "https://gitlab.com/ambrevar/damerau")
2267 (synopsis "Damerau-Levenshtein distance for Golang")
2268 (description "This is a spelling corrector implementing the
2269 Damerau-Levenshtein distance. Takes a string value input from the user.
2270 Looks for an identical word on a list of words, if none is found, look for a
2272 (license license:expat))))
2274 (define-public go-github-com-stevedonovan-luar
2275 (let ((commit "22d247e5366095f491cd83edf779ee99a78f5ead")
2278 (name "go-github-com-stevedonovan-luar")
2279 (version (git-version "0.0.0" revision commit))
2285 "https://github.com/stevedonovan/luar")
2287 (file-name (git-file-name name version))
2290 "1acjgw9cz1l0l9mzkyk7irz6cfk31wnxgbwa805fvm1rqcjzin2c"))))
2291 (build-system go-build-system)
2293 `(("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
2295 `(#:tests? #f ; Upstream tests are broken.
2296 #:import-path "github.com/stevedonovan/luar"))
2297 (home-page "https://github.com/stevedonovan/luar")
2298 (synopsis "Lua reflection bindings for Go")
2299 (description "Luar is designed to make using Lua from Go more
2300 convenient. Go structs, slices and maps can be automatically converted to Lua
2301 tables and vice-versa. The resulting conversion can either be a copy or a
2302 proxy. In the latter case, any change made to the result will reflect on the
2305 Any Go function can be made available to Lua scripts, without having to write
2308 Luar support cyclic structures (lists, etc.).
2310 User-defined types can be made available to Lua as well: their exported
2311 methods can be called and usual operations such as indexing or arithmetic can
2313 (license license:expat))))
2315 (define-public go-github-com-kr-text
2316 (let ((commit "e2ffdb16a802fe2bb95e2e35ff34f0e53aeef34f")
2319 (name "go-github-com-kr-text")
2320 (version (git-version "0.0.0" revision commit))
2326 "https://github.com/kr/text")
2328 (file-name (git-file-name name version))
2331 "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"))))
2332 (build-system go-build-system)
2334 `(#:import-path "github.com/kr/text"))
2335 (home-page "https://github.com/kr/text")
2336 (synopsis "Go package for manipulating paragraphs of text")
2337 (description "Package @code{text} provides manipulation Go functions for
2338 paragraphs of text.")
2339 (license license:expat))))
2341 (define-public go-github-com-michiwend-golang-pretty
2342 (let ((commit "8ac61812ea3fa540f3f141a444fcb0dd713cdca4")
2345 (name "go-github-com-michiwend-golang-pretty")
2346 (version (git-version "0.0.0" revision commit))
2352 "https://github.com/michiwend/golang-pretty")
2354 (file-name (git-file-name name version))
2357 "0rjfms0csjqi91xnddzx3rcrcaikc7xc027617px3kdwdap80ir4"))))
2358 (build-system go-build-system)
2360 `(("go-github-com-kr-text" ,go-github-com-kr-text)))
2362 `(#:tests? #f ; Upstream tests seem to be broken.
2363 #:import-path "github.com/michiwend/golang-pretty"))
2364 (home-page "https://github.com/michiwend/golang-pretty")
2365 (synopsis "Pretty printing for Go values")
2366 (description "Package @code{pretty} provides pretty-printing for Go
2367 values. This is useful during debugging, to avoid wrapping long output lines
2370 It provides a function, @code{Formatter}, that can be used with any function
2371 that accepts a format string. It also provides convenience wrappers for
2372 functions in packages @code{fmt} and @code{log}.")
2373 (license license:expat))))
2375 (define-public go-github-com-michiwend-gomusicbrainz
2376 (let ((commit "0cdeb13f9b24d2c714feb7e3c63d595cf7121d7d")
2379 (name "go-github-com-michiwend-gomusicbrainz")
2380 (version (git-version "0.0.0" revision commit))
2386 "https://github.com/michiwend/gomusicbrainz")
2388 (file-name (git-file-name name version))
2391 "1li9daw0kghb80rdmxbh7g72qhxcvx3rvhwq5gs0jrr9hb8pjvcn"))))
2392 (build-system go-build-system)
2394 `(("go-github-com-michiwend-golang-pretty" ,go-github-com-michiwend-golang-pretty)
2395 ("go-github-com-kr-text" ,go-github-com-kr-text)))
2397 `(#:import-path "github.com/michiwend/gomusicbrainz"))
2398 (home-page "https://github.com/michiwend/gomusicbrainz")
2399 (synopsis "MusicBrainz WS2 client library for Golang")
2400 (description "Currently GoMusicBrainz provides methods to perform search
2401 and lookup requests. Browse requests are not supported yet.")
2402 (license license:expat))))
2404 (define-public go-github-com-wtolson-go-taglib
2405 (let ((commit "6e68349ff94ecea412de7e748cb5eaa26f472777")
2408 (name "go-github-com-wtolson-go-taglib")
2409 (version (git-version "0.0.0" revision commit))
2415 "https://github.com/wtolson/go-taglib")
2417 (file-name (git-file-name name version))
2420 "1cpjqnrviwflz150g78iir5ndrp3hh7a93zbp4dwbg6sb2q141p2"))))
2421 (build-system go-build-system)
2423 `(("pkg-config" ,pkg-config)
2424 ("taglib" ,taglib)))
2426 `(#:import-path "github.com/wtolson/go-taglib"))
2427 (home-page "https://github.com/wtolson/go-taglib")
2428 (synopsis "Go wrapper for taglib")
2429 (description "Go wrapper for taglib")
2430 (license license:unlicense))))
2432 (define* (go-github-com-gogo-protobuf-union
2433 #:optional (packages (list go-github-com-gogo-protobuf
2434 go-github-com-gogo-protobuf-protoc-gen-gogo)))
2436 (name "go-github-com-gogo-protobuf-union")
2437 (version (package-version go-github-com-gogo-protobuf))
2439 (build-system trivial-build-system)
2441 '(#:modules ((guix build union))
2443 (use-modules (ice-9 match)
2445 (match %build-inputs
2446 (((names . directories) ...)
2447 (union-build (assoc-ref %outputs "out")
2450 (inputs (map (lambda (package)
2451 (list (package-name package) package))
2453 (synopsis "Union of Go protobuf libraries")
2454 (description "This is a union of Go protobuf libraries")
2455 (home-page (package-home-page go-github-com-gogo-protobuf))
2456 (license (package-license go-github-com-gogo-protobuf))))
2458 (define-public go-github-com-gogo-protobuf
2459 (let ((commit "160de10b2537169b5ae3e7e221d28269ef40d311")
2462 (name "go-github-com-gogo-protobuf")
2463 (version (git-version "0.5" revision commit))
2467 (url "https://github.com/gogo/protobuf")
2469 (file-name (git-file-name name version))
2472 "0hxq28sgxym04rv0q40gpwkh4ni359q21hq3g78wwxwx4qfd4zwm"))))
2473 (build-system go-build-system)
2475 `(#:import-path "github.com/gogo/protobuf/proto"
2476 #:unpack-path "github.com/gogo/protobuf"))
2478 `(("go-github-com-gogo-protobuf-protoc-gen-gogo"
2479 ,go-github-com-gogo-protobuf-protoc-gen-gogo)))
2480 (synopsis "Protocol Buffers for Go with Gadgets")
2481 (description "Gogoprotobuf is a fork of golang/protobuf with extra code
2482 generation features. This code generation is used to achieve:
2484 @item fast marshalling and unmarshalling
2485 @item more canonical Go structures
2486 @item goprotobuf compatibility
2487 @item less typing by optionally generating extra helper code
2488 @item peace of mind by optionally generating test and benchmark code
2489 @item other serialization formats
2491 (home-page "https://github.com/gogo/protobuf")
2492 (license license:bsd-3))))
2494 (define-public go-github-com-gogo-protobuf-protoc-gen-gogo
2495 (let ((commit "efccd33a0c20aa078705571d5ddbfa14c8395a63")
2498 (name "go-github-com-gogo-protobuf-protoc-gen-gogo")
2499 (version (git-version "0.2" revision commit))
2503 (url "https://github.com/gogo/protobuf")
2505 (file-name (git-file-name name version))
2508 "09kfa3aqmhh7p0rc6wd4fw5cjccidsk9vgcy13albv0g8vnbmmgw"))))
2509 (build-system go-build-system)
2511 `(#:import-path "github.com/gogo/protobuf/protoc-gen-gogo"
2512 #:unpack-path "github.com/gogo/protobuf"))
2513 (synopsis "Protocol Buffers for Go with Gadgets")
2514 (description "Gogoprotobuf is a fork of golang/protobuf with extra code
2515 generation features. This code generation is used to achieve:
2517 @item fast marshalling and unmarshalling
2518 @item more canonical Go structures
2519 @item goprotobuf compatibility
2520 @item less typing by optionally generating extra helper code
2521 @item peace of mind by optionally generating test and benchmark code
2522 @item other serialization formats
2524 (home-page "https://github.com/gogo/protobuf")
2525 (license license:bsd-3))))
2527 (define-public go-github-com-gogo-protobuf-proto
2529 "fd322a3c49630fe6d05737e2b7d9426e6680e28d")
2532 (name "go-github-com-gogo-protobuf-proto")
2533 (version (git-version "0.0.0" revision commit))
2538 (url "https://github.com/gogo/protobuf.git")
2540 (file-name (git-file-name name version))
2543 "1zi85584dy91hyrwpanygz1pppi0chn3hzzv128i83i6j45a5fp9"))))
2544 (build-system go-build-system)
2546 '(#:unpack-path "github.com/gogo/protobuf"
2547 #:import-path "github.com/gogo/protobuf/proto"))
2549 (home-page "https://github.com/gogo/protobuf")
2552 (license license:expat))))
2554 (define-public go-github-com-libp2p-go-flow-metrics
2555 (let ((commit "7e5a55af485341567f98d6847a373eb5ddcdcd43")
2558 (name "go-github-com-libp2p-go-flow-metrics")
2559 (version (git-version "0.2.0" revision commit))
2564 (url "https://github.com/libp2p/go-flow-metrics.git")
2566 (file-name (git-file-name name version))
2569 "1p87iyk6q6f3g3xkncssx400qlld8f2z93qiz8m1f97grfyhjif1"))))
2570 (build-system go-build-system)
2572 `(#:import-path "github.com/libp2p/go-flow-metrics"
2573 ;; TODO: Tests hang.
2576 "https://github.com/libp2p/go-flow-metrics")
2577 (synopsis "Simple library for tracking flow metrics")
2578 (description "A simple alternative to rcrowley's @command{go-metrics}
2579 that's a lot faster (and only does simple bandwidth metrics).")
2580 (license license:expat))))
2582 (define-public go-github-com-davecgh-go-spew
2583 (let ((commit "d8f796af33cc11cb798c1aaeb27a4ebc5099927d")
2586 (name "go-github-com-davecgh-go-spew")
2587 (version (git-version "0.0.0" revision commit))
2592 (url "https://github.com/davecgh/go-spew.git")
2594 (file-name (git-file-name name version))
2597 "19z27f306fpsrjdvkzd61w1bdazcdbczjyjck177g33iklinhpvx"))))
2598 (build-system go-build-system)
2600 '(#:unpack-path "github.com/davecgh/go-spew"
2601 #:import-path "github.com/davecgh/go-spew/spew"))
2602 (home-page "https://github.com/davecgh/go-spew")
2603 (synopsis "Deep pretty printer for Go data structures to aid in debugging")
2604 (description "Package @command{spew} implements a deep pretty printer
2605 for Go data structures to aid in debugging.
2607 A quick overview of the additional features spew provides over the built-in printing facilities for Go data types are as follows:
2610 @item Pointers are dereferenced and followed.
2611 @item Circular data structures are detected and handled properly.
2612 @item Custom Stringer/error interfaces are optionally invoked, including on
2614 @item Custom types which only implement the Stringer/error interfaces via a
2615 pointer receiver are optionally invoked when passing non-pointer variables.
2616 @item Byte arrays and slices are dumped like the hexdump -C command which
2617 includes offsets, byte values in hex, and ASCII output (only when using Dump
2620 (license license:isc))))
2622 (define-public go-github-com-btcsuite-btclog
2623 (let ((commit "84c8d2346e9fc8c7b947e243b9c24e6df9fd206a")
2626 (name "go-github-com-btcsuite-btclog")
2627 (version (git-version "0.0.3" revision commit))
2632 (url "https://github.com/btcsuite/btclog.git")
2634 (file-name (git-file-name name version))
2637 "02dl46wcnfpg9sqvg0ipipkpnd7lrf4fnvb9zy56jqa7mfcwc7wk"))))
2638 (build-system go-build-system)
2640 '(#:import-path "github.com/btcsuite/btclog"))
2641 (home-page "https://github.com/btcsuite/btclog")
2642 (synopsis "Subsystem aware logger for Go")
2643 (description "Package @command{btclog} defines a logger interface and
2644 provides a default implementation of a subsystem-aware leveled logger
2645 implementing the same interface.")
2646 (license license:isc))))
2648 (define-public go-github-com-btcsuite-btcd-btcec
2649 (let ((commit "67e573d211ace594f1366b4ce9d39726c4b19bd0")
2652 (name "go-github-com-btcsuite-btcd-btcec")
2653 (version (git-version "0.12.0-beta" revision commit))
2658 (url "https://github.com/btcsuite/btcd.git")
2660 (file-name (git-file-name name version))
2663 "04s92gsy71w1jirlr5lkk9y6r5cparbas7nmf6ywbp7kq7fn8ajn"))))
2664 (build-system go-build-system)
2666 '(#:unpack-path "github.com/btcsuite/btcd"
2667 #:import-path "github.com/btcsuite/btcd/btcec"))
2669 `(("go-github-com-davecgh-go-spew" ,go-github-com-davecgh-go-spew)))
2670 (home-page "https://github.com/btcsuite/btcd")
2671 (synopsis "Elliptic curve cryptography to work with Bitcoin")
2672 (description "Package @command{btcec} implements elliptic curve
2673 cryptography needed for working with Bitcoin (secp256k1 only for now). It is
2674 designed so that it may be used with the standard crypto/ecdsa packages
2675 provided with Go. A comprehensive suite of test is provided to ensure proper
2676 functionality. Package @command{btcec} was originally based on work from
2677 ThePiachu which is licensed under the same terms as Go, but it has
2678 signficantly diverged since then. The @command{btcsuite} developers original
2679 is licensed under the liberal ISC license.
2681 Although this package was primarily written for btcd, it has intentionally
2682 been designed so it can be used as a standalone package for any projects
2683 needing to use secp256k1 elliptic curve cryptography.")
2684 (license license:isc))))
2686 (define-public go-github-com-minio-sha256-simd
2687 (let ((commit "51976451ce1942acbb55707a983ed232fa027110")
2690 (name "go-github-com-minio-sha256-simd")
2691 (version (git-version "0.0.0" revision commit))
2696 (url "https://github.com/minio/sha256-simd.git")
2698 (file-name (git-file-name name version))
2701 "0kaxvpidf6ygkkb06vi95pirll31jnmywhyalfjvf7djhim2wr8f"))))
2702 (build-system go-build-system)
2704 '(#:import-path "github.com/minio/sha256-simd"))
2705 (home-page "https://github.com/minio/sha256-simd")
2706 (synopsis "Accelerate SHA256 computations in pure Go")
2707 (description "Accelerate SHA256 computations in pure Go using AVX512 and
2708 AVX2 for Intel and ARM64 for ARM. On AVX512 it provides an up to 8x
2709 improvement (over 3 GB/s per core) in comparison to AVX2.
2711 This package is designed as a replacement for @command{crypto/sha256}. For
2712 Intel CPUs it has two flavors for AVX512 and AVX2 (AVX/SSE are also
2713 supported). For ARM CPUs with the Cryptography Extensions, advantage is taken
2714 of the SHA2 instructions resulting in a massive performance improvement.
2716 This package uses Golang assembly. The AVX512 version is based on the Intel's
2717 \"multi-buffer crypto library for IPSec\" whereas the other Intel
2718 implementations are described in \"Fast SHA-256 Implementations on Intel
2719 Architecture Processors\" by J. Guilford et al.")
2720 (license license:asl2.0))))
2722 (define-public go-github-com-libp2p-go-libp2p-crypto
2723 (let ((commit "7240b40a3ddc47c4d17c15baabcbe45e5219171b")
2726 (name "go-github-com-libp2p-go-libp2p-crypto")
2727 (version (git-version "2.0.1" revision commit))
2732 (url "https://github.com/libp2p/go-libp2p-crypto.git")
2734 (file-name (git-file-name name version))
2737 "0qwpy57qv5143l9dlfwfvpqsxdd2i4zwnawx1w4pmgxxim3nw1wb"))))
2738 (build-system go-build-system)
2740 '(#:import-path "github.com/libp2p/go-libp2p-crypto"))
2742 `(("go-golang-org-x-crypto-ed25519" ,go-golang-org-x-crypto-ed25519)
2743 ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
2744 ("go-github-com-gogo-protobuf-proto" ,go-github-com-gogo-protobuf-proto)
2745 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)))
2747 "https://github.com/libp2p/go-libp2p-crypto")
2748 (synopsis "Various cryptographic utilities used by IPFS")
2749 (description "Various cryptographic utilities used by IPFS")
2750 (license license:expat))))
2752 (define-public go-github-com-mr-tron-base58
2753 (let ((commit "d724c80ecac7b49e4e562d58b2b4f4ee4ed8c312")
2756 (name "go-github-com-mr-tron-base58")
2757 (version (git-version "1.1.0" revision commit))
2762 (url "https://github.com/mr-tron/base58.git")
2764 (file-name (git-file-name name version))
2767 "12qhgnn9wf3c1ang16r4i778whk4wsrj7d90h2xgmz4fi1469rqa"))))
2768 (build-system go-build-system)
2770 `(#:unpack-path "github.com/mr-tron/base58"
2771 #:import-path "github.com/mr-tron/base58/base58"))
2772 (home-page "https://github.com/mr-tron/base58")
2773 (synopsis "Fast implementation of base58 encoding on Golang")
2774 (description "Fast implementation of base58 encoding on Golang. A
2775 trivial @command{big.Int} encoding benchmark results in 6 times faster
2776 encoding and 8 times faster decoding.")
2777 (license license:expat))))
2779 (define-public go-github-com-gxed-hashland-keccakpg
2780 (let ((commit "d9f6b97f8db22dd1e090fd0bbbe98f09cc7dd0a8")
2783 (name "go-github-com-gxed-hashland-keccakpg")
2784 (version (git-version "0.0.0" revision commit))
2789 (url "https://github.com/gxed/hashland.git")
2791 (file-name (git-file-name name version))
2794 "1q23y4lacsz46k9gmgfw4iwwydw36j2601rbidmmswl94grpc386"))))
2795 (build-system go-build-system)
2797 '(#:unpack-path "github.com/gxed/hashland"
2798 #:import-path "github.com/gxed/hashland/keccakpg"))
2799 (home-page "https://github.com/gxed/hashland")
2800 (synopsis "Implements the Keccak (SHA-3) hash algorithm in Go")
2801 (description "Package @command{keccak} implements the Keccak (SHA-3)
2802 hash algorithm. See http://keccak.noekeon.org.")
2803 (license license:expat))))
2805 (define-public go-github-com-minio-blake2b-simd
2806 (let ((commit "3f5f724cb5b182a5c278d6d3d55b40e7f8c2efb4")
2809 (name "go-github-com-minio-blake2b-simd")
2810 (version (git-version "0.0.0" revision commit))
2815 (url "https://github.com/minio/blake2b-simd.git")
2817 (file-name (git-file-name name version))
2820 "0b6jbnj62c0gmmfd4zdmh8xbg01p80f13yygir9xprqkzk6fikmd"))))
2821 (build-system go-build-system)
2823 '(#:import-path "github.com/minio/blake2b-simd"))
2824 (home-page "https://github.com/minio/blake2b-simd")
2825 (synopsis "Fast hashing in pure Go of BLAKE2b with SIMD instructions")
2826 (description "This package was initially based on the pure go BLAKE2b
2827 implementation of Dmitry Chestnykh and merged with the (cgo dependent) AVX
2828 optimized BLAKE2 implementation (which in turn is based on the official
2829 implementation. It does so by using Go's Assembler for amd64 architectures
2830 with a golang only fallback for other architectures.
2832 In addition to AVX there is also support for AVX2 as well as SSE. Best
2833 performance is obtained with AVX2 which gives roughly a 4X performance
2834 increase approaching hashing speeds of 1GB/sec on a single core.")
2835 (license license:asl2.0))))
2837 (define-public go-github-com-spaolacci-murmur3
2838 (let ((commit "f09979ecbc725b9e6d41a297405f65e7e8804acc")
2841 (name "go-github-com-spaolacci-murmur3")
2842 (version (git-version "1.1" revision commit))
2847 (url "https://github.com/spaolacci/murmur3.git")
2849 (file-name (git-file-name name version))
2852 "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25"))))
2853 (build-system go-build-system)
2855 '(#:import-path "github.com/spaolacci/murmur3"))
2856 (home-page "https://github.com/spaolacci/murmur3")
2857 (synopsis "Native MurmurHash3 Go implementation")
2858 (description "Native Go implementation of Austin Appleby's third
2859 MurmurHash revision (aka MurmurHash3).
2861 Reference algorithm has been slightly hacked as to support the streaming mode
2862 required by Go's standard Hash interface.")
2863 (license license:bsd-3))))
2865 (define-public go-github-com-multiformats-go-multihash
2866 (let ((commit "97cdb562a04c6ef66d8ed40cd62f8fbcddd396d6")
2869 (name "go-github-com-multiformats-go-multihash")
2870 (version (git-version "1.0.8" revision commit))
2875 (url "https://github.com/multiformats/go-multihash.git")
2877 (file-name (git-file-name name version))
2880 "02wd9akrwy4y5m0nig9m24p14bjjgb4n1djydrq8cm4yhbvjrrk0"))))
2881 (build-system go-build-system)
2883 '(#:import-path "github.com/multiformats/go-multihash"))
2885 `(("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2886 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2887 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2888 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2889 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
2890 ("go-golang-org-x-crypto-union" ,(go-golang-org-x-crypto-union))))
2891 (home-page "https://github.com/multiformats/go-multihash")
2892 (synopsis "Multihash implementation in Go")
2893 (description "Multihash implementation in Go.")
2894 (license license:expat))))
2896 (define-public go-github-com-libp2p-go-libp2p-peer
2897 (let ((commit "993d742bc29dcf4894b7730ba610fd78900be76c")
2900 (name "go-github-com-libp2p-go-libp2p-peer")
2901 (version (git-version "2.3.8" revision commit))
2906 (url "https://github.com/libp2p/go-libp2p-peer.git")
2908 (file-name (git-file-name name version))
2911 "1h96qjdi0i1wbr0jliap2903mycphas3ny0zdrm77yca9plcnphh"))))
2912 (build-system go-build-system)
2914 '(#:import-path "github.com/libp2p/go-libp2p-peer"))
2916 `(("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
2917 ("go-github-com-gogo-protobuf-proto" ,go-github-com-gogo-protobuf-proto)
2918 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2919 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2920 ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
2921 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2922 ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
2923 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2924 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
2925 ("go-golang-org-x-crypto-union" ,(go-golang-org-x-crypto-union))))
2926 (home-page "https://github.com/libp2p/go-libp2p-peer")
2927 (synopsis "PKI based identities for use in go-libp2p")
2928 (description "PKI based identities for use in @command{go-libp2p}.")
2929 (license license:expat))))
2931 (define-public go-github-com-libp2p-go-libp2p-protocol
2932 (let ((commit "b29f3d97e3a2fb8b29c5d04290e6cb5c5018004b")
2935 (name "go-github-com-libp2p-go-libp2p-protocol")
2936 (version (git-version "1.0.0" revision commit))
2941 (url "https://github.com/libp2p/go-libp2p-protocol.git")
2943 (file-name (git-file-name name version))
2946 "1xgjfnx9zcqglg9li29wdqywsp8hz22wx6phns9zscni2jsfidld"))))
2947 (build-system go-build-system)
2950 "github.com/libp2p/go-libp2p-protocol"))
2951 (home-page "https://github.com/libp2p/go-libp2p-protocol")
2952 (synopsis "Type for protocol strings in Golang")
2953 (description "Just a type for protocol strings. Nothing more.")
2954 (license license:expat))))
2956 (define-public go-github-com-libp2p-go-libp2p-metrics
2957 (let ((commit "a10ff6e75dae3c868023867e8caa534a04bdc624")
2960 (name "go-github-com-libp2p-go-libp2p-metrics")
2961 (version (git-version "2.1.6" revision commit))
2966 (url "https://github.com/libp2p/go-libp2p-metrics.git")
2968 (file-name (git-file-name name version))
2971 "05wy0cq4h6yg9bzgapcvm2criwriicbswx80ma82gyn4a9fdrk8m"))))
2972 (build-system go-build-system)
2974 '(#:import-path "github.com/libp2p/go-libp2p-metrics"))
2976 `(("go-github-com-libp2p-go-flow-metrics" ,go-github-com-libp2p-go-flow-metrics)
2977 ("go-github-com-libp2p-go-libp2p-peer" ,go-github-com-libp2p-go-libp2p-peer)
2978 ("go-github-com-libp2p-go-libp2p-protocol" ,go-github-com-libp2p-go-libp2p-protocol)
2979 ("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
2980 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2981 ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
2982 ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
2983 ("go-github-com-gogo-protobuf-proto" ,go-github-com-gogo-protobuf-proto)
2984 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2985 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2986 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2987 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
2988 ("go-golang-org-x-crypto-union" ,(go-golang-org-x-crypto-union))))
2989 (home-page "https://github.com/libp2p/go-libp2p-metrics")
2990 (synopsis "Connection wrapper for go-libp2p that provides bandwidth metrics")
2991 (description "A connection wrapper for @command{go-libp2p} that provides bandwidth
2992 statistics for wrapped connections.")
2993 (license license:expat))))
2995 (define-public go-github-com-mitchellh-go-homedir
2996 (let ((commit "ae18d6b8b3205b561c79e8e5f69bff09736185f4")
2999 (name "go-github-com-mitchellh-go-homedir")
3000 (version (git-version "1.0.0" revision commit))
3005 (url "https://github.com/mitchellh/go-homedir.git")
3007 (file-name (git-file-name name version))
3010 "0f0z0aa4wivk4z1y503dmnw0k0g0g403dly8i4q263gfshs82sbq"))))
3011 (build-system go-build-system)
3013 (quote (#:import-path "github.com/mitchellh/go-homedir"
3014 ;; TODO: Tests fail because it tries to access home.
3016 (home-page "https://github.com/mitchellh/go-homedir")
3017 (synopsis "Go library for detecting and expanding the user's home directory without cgo")
3018 (description "This is a Go library for detecting the user's home
3019 directory without the use of @command{cgo}, so the library can be used in
3020 cross-compilation environments.
3022 Usage is simple, just call homedir.Dir() to get the home directory for a user,
3023 and homedir.Expand() to expand the @command{~} in a path to the home
3026 Why not just use @command{os/user}? The built-in @command{os/user} package
3027 requires cgo on Darwin systems. This means that any Go code that uses that
3028 package cannot cross compile. But 99% of the time the use for
3029 @command{os/user} is just to retrieve the home directory, which we can do for
3030 the current user without cgo. This library does that, enabling
3031 cross-compilation.")
3032 (license license:expat))))
3034 (define-public go-github-com-multiformats-go-multiaddr
3035 (let ((commit "fe1c46f8be5af4aff4db286e08839295bd922efb")
3038 (name "go-github-com-multiformats-go-multiaddr")
3039 (version (git-version "1.3.0" revision commit))
3044 (url "https://github.com/multiformats/go-multiaddr.git")
3046 (file-name (git-file-name name version))
3049 "0p5f8h098a4yjjmzsgqs7vhx1iqifb8izwg3559cr4h7clkpzznh"))))
3050 (build-system go-build-system)
3053 "github.com/multiformats/go-multiaddr"))
3055 `(("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
3056 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
3057 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
3058 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
3059 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
3060 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
3061 ("go-golang-org-x-crypto-union" ,(go-golang-org-x-crypto-union))))
3062 (home-page "https://github.com/multiformats/go-multiaddr")
3063 (synopsis "Composable and future-proof network addresses")
3064 (description "Multiaddr is a standard way to represent addresses that
3068 @item Support any standard network protocols.
3069 @item Self-describe (include protocols).
3070 @item Have a binary packed format.
3071 @item Have a nice string representation.
3072 @item Encapsulate well.
3074 (license license:expat))))
3076 (define-public go-github-com-multiformats-go-multiaddr-net
3077 (let ((commit "1cb9a0e8a6de3c8a10f6cee60d01d793603c4f7e")
3080 (name "go-github-com-multiformats-go-multiaddr-net")
3081 (version (git-version "1.6.3" revision commit))
3086 (url "https://github.com/multiformats/go-multiaddr-net.git")
3088 (file-name (git-file-name name version))
3091 "1ypgi47xdz3bh8lh7f8cmk7w3ql9g4izx5l3kzdg9gda1xn5zxq3"))))
3092 (build-system go-build-system)
3094 (quote (#:import-path "github.com/multiformats/go-multiaddr-net"
3095 ;; TODO: Tests fail because they try to access the network.
3098 `(("go-github-com-multiformats-go-multiaddr" ,go-github-com-multiformats-go-multiaddr)
3099 ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
3100 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
3101 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
3102 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
3103 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
3104 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
3105 ("go-golang-org-x-crypto-union" ,(go-golang-org-x-crypto-union))))
3106 (home-page "https://github.com/multiformats/go-multiaddr-net")
3107 (synopsis "Multiaddress net tools")
3108 (description "This package provides Multiaddr specific versions of
3109 common functions in stdlib's @command{net} package. This means wrappers of
3110 standard net symbols like @command{net.Dial} and @command{net.Listen}, as well
3111 as conversion to and from @command{net.Addr}.")
3112 (license license:expat))))
3114 (define-public go-github-com-whyrusleeping-tar-utils
3115 (let ((commit "8c6c8ba81d5c71fd69c0f48dbde4b2fb422b6dfc")
3118 (name "go-github-com-whyrusleeping-tar-utils")
3119 (version (git-version "0.0.0" revision commit))
3124 (url "https://github.com/whyrusleeping/tar-utils.git")
3126 (file-name (git-file-name name version))
3129 "14jjdw3yics0k467xsyk388684wdpi0bbx8nqj0y4pqxa0s0in6s"))))
3130 (build-system go-build-system)
3133 "github.com/whyrusleeping/tar-utils"))
3134 (home-page "https://github.com/whyrusleeping/tar-utils")
3135 (synopsis "Tar utilities extracted from go-ipfs codebase")
3136 (description "Tar utilities extracted from @command{go-ipfs} codebase.")
3137 (license license:expat))))
3139 (define-public go-github-com-cheekybits-is
3140 (let ((commit "68e9c0620927fb5427fda3708222d0edee89eae9")
3143 (name "go-github-com-cheekybits-is")
3144 (version (git-version "0.0.0" revision commit))
3149 (url "https://github.com/cheekybits/is.git")
3151 (file-name (git-file-name name version))
3154 "1mkbyzhwq3rby832ikq00nxv3jnckxsm3949wkxd8ya9js2jmg4d"))))
3155 (build-system go-build-system)
3157 '(#:import-path "github.com/cheekybits/is"))
3158 (home-page "https://github.com/cheekybits/is")
3159 (synopsis "Mini testing helper for Go")
3160 (description "A mini testing helper for Go.
3163 @item It has a simple interface (@command{is.OK} and @command{is.Equal}).
3164 @item It plugs into existing Go toolchain (uses @command{testing.T}).
3165 @item It's obvious for newcomers.
3166 @item It also gives you @command{is.Panic} and @command{is.PanicWith} helpers
3167 - because testing panics is ugly.
3169 (license license:expat))))
3171 (define-public go-github-com-sabhiram-go-gitignore
3172 (let ((commit "d3107576ba9425fc1c85f4b3569c4631b805a02e")
3175 (name "go-github-com-sabhiram-go-gitignore")
3176 (version (git-version "1.0.2" revision commit))
3181 (url "https://github.com/sabhiram/go-gitignore.git")
3183 (file-name (git-file-name name version))
3186 "1rdwyxgcsiwgmlqnc3k6h300mzlvjc3j21np4yh1h476wc8dvl0l"))))
3187 (build-system go-build-system)
3190 "github.com/sabhiram/go-gitignore"))
3192 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
3193 (home-page "https://github.com/sabhiram/go-gitignore")
3194 (synopsis "Gitignore parser for Go")
3195 (description "A @command{.gitignore} parser for Go.")
3196 (license license:expat))))
3198 (define-public go-github-com-urfave-cli
3199 (let ((commit "934abfb2f102315b5794e15ebc7949e4ca253920")
3202 (name "go-github-com-urfave-cli")
3203 (version (git-version "1.19.1" revision commit))
3208 (url "https://github.com/urfave/cli.git")
3210 (file-name (git-file-name name version))
3213 "0c5r8pgj3k48dfcwj8lw3cxkwkl8vh0fhvz5snfdwd0bcxdqx1yq"))))
3214 (build-system go-build-system)
3216 '(#:import-path "github.com/urfave/cli"))
3217 (home-page "https://github.com/urfave/cli")
3218 (synopsis "Simple, fast, and fun package for building command line apps in Go")
3219 (description "@command{cli} is a simple, fast, and fun package for
3220 building command line apps in Go. The goal is to enable developers to write
3221 fast and distributable command line applications in an expressive way.")
3222 (license license:expat))))
3224 (define-public go-github-com-whyrusleeping-json-filter
3225 (let ((commit "ff25329a9528f01c5175414f16cc0a6a162a5b8b")
3228 (name "go-github-com-whyrusleeping-json-filter")
3229 (version (git-version "0.0.0" revision commit))
3234 (url "https://github.com/whyrusleeping/json-filter.git")
3236 (file-name (git-file-name name version))
3239 "0cai0drvx4c8j686l908vpcsz3mw3vxi3ziz94b0f3c5ylpj07j7"))))
3240 (build-system go-build-system)
3243 "github.com/whyrusleeping/json-filter"))
3244 (home-page "https://github.com/whyrusleeping/json-filter")
3245 (synopsis "Library to query JSON objects marshalled into map[string]interface")
3246 (description "A library to query JSON objects marshalled into
3247 @command{map[string]interface{}}.")
3248 (license license:expat))))
3250 (define-public go-github-com-whyrusleeping-progmeter
3251 (let ((commit "f3e57218a75b913eff88d49a52c1debf9684ea04")
3254 (name "go-github-com-whyrusleeping-progmeter")
3255 (version (git-version "0.0.0" revision commit))
3260 (url "https://github.com/whyrusleeping/progmeter.git")
3262 (file-name (git-file-name name version))
3265 "0xs8rz6yhpvj9512c5v3b8dwr2kivywnyyfxzdfbr6fy1xc8zskb"))))
3266 (build-system go-build-system)
3269 "github.com/whyrusleeping/progmeter"))
3270 (home-page "https://github.com/whyrusleeping/progmeter")
3271 (synopsis "Progress meter for Go")
3272 (description "Progress meter for Go.")
3273 (license license:expat))))
3275 (define-public go-github-com-whyrusleeping-stump
3276 (let ((commit "206f8f13aae1697a6fc1f4a55799faf955971fc5")
3279 (name "go-github-com-whyrusleeping-stump")
3280 (version (git-version "0.0.0" revision commit))
3285 (url "https://github.com/whyrusleeping/stump.git")
3287 (file-name (git-file-name name version))
3290 "1s40qdppjnk8gijk7x6kbviiqz62nz3h6gic2q9cwcmq8r5isw7n"))))
3291 (build-system go-build-system)
3293 '(#:import-path "github.com/whyrusleeping/stump"))
3294 (home-page "https://github.com/whyrusleeping/stump")
3295 (synopsis "Very basic logging package for Go")
3296 (description "A simple log library, for when you don't really care to
3297 have super fancy logs.")
3298 (license license:expat))))
3300 (define-public go-github-com-kr-fs
3301 (let ((commit "1455def202f6e05b95cc7bfc7e8ae67ae5141eba")
3304 (name "go-github-com-kr-fs")
3305 (version (git-version "0.1.0" revision commit))
3310 (url "https://github.com/kr/fs.git")
3312 (file-name (git-file-name name version))
3315 "11zg176x9hr9q7fsk95r6q0wf214gg4czy02slax4x56n79g6a7q"))))
3316 (build-system go-build-system)
3318 '(#:import-path "github.com/kr/fs"))
3319 (home-page "https://github.com/kr/fs")
3320 (synopsis "Filesystem-related functions for Go")
3321 (description "Package fs provides filesystem-related functions.")
3322 (license license:bsd-3))))