gnu: go: Update default to 1.11.
[jackhill/guix/guix.git] / gnu / packages / golang.scm
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>
16 ;;;
17 ;;; This file is part of GNU Guix.
18 ;;;
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.
23 ;;;
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.
28 ;;;
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/>.
31
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))
53
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
60 ;; bootstrapped.
61
62 (define-public go-1.4
63 (package
64 (name "go")
65 (version "1.4.3")
66 (source (origin
67 (method url-fetch)
68 (uri (string-append "https://storage.googleapis.com/golang/"
69 name version ".src.tar.gz"))
70 (sha256
71 (base32
72 "0na9yqilzpvq0bjndbibfp07wr796gf252y471cip10bbdqgqiwr"))))
73 (build-system gnu-build-system)
74 (outputs '("out"
75 "doc"
76 "tests"))
77 (arguments
78 `(#:modules ((ice-9 match)
79 (guix build gnu-build-system)
80 (guix build utils)
81 (srfi srfi-1))
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")
86 '())
87 #:phases
88 (modify-phases %standard-phases
89 (delete 'configure)
90 (add-after 'patch-generated-file-shebangs 'chdir
91 (lambda _
92 (chdir "src")
93 #t))
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"))
100 (tzdata-path
101 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
102 (output (assoc-ref outputs "out")))
103
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"
108 "net/port_test.go"))
109
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")
116 (string-append
117 "ldflags := buildLdflags\n"
118 "ldflags = append(ldflags, \"-r\")\n"
119 "ldflags = append(ldflags, \"" gcclib "\")\n")))
120
121 (substitute* "os/os_test.go"
122 (("/usr/bin") (getcwd))
123 (("/bin/pwd") (which "pwd")))
124
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.
128 (for-each
129 (match-lambda
130 ((file regex)
131 (substitute* file
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.+)")
138
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.+)")
145
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.+)")))
155
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))
162 #t)))
163
164 (replace 'build
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"))))
176
177 (replace 'install
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)))
185 (mkdir-p tests)
186 (copy-recursively "../test" (string-append tests "/test"))
187 (delete-file-recursively "../test")
188 (mkdir-p docs)
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")
193
194 (for-each (lambda (file)
195 (let ((file (string-append "../" file)))
196 (install-file file docs)
197 (delete-file file)))
198 '("README" "CONTRIBUTORS" "AUTHORS" "PATENTS"
199 "LICENSE" "VERSION" "robots.txt"))
200 (copy-recursively "../" output)
201 #t))))))
202 (inputs
203 `(("tzdata" ,tzdata)
204 ("pcre" ,pcre)
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")))
210 (native-inputs
211 `(("pkg-config" ,pkg-config)
212 ("which" ,which)
213 ("net-base" ,net-base)
214 ("perl" ,perl)))
215
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)))
225
226 (define-public go-1.9
227 (package
228 (inherit go-1.4)
229 (name "go")
230 (version "1.9.7")
231 (source
232 (origin
233 (method url-fetch)
234 (uri (string-append "https://storage.googleapis.com/golang/"
235 name version ".src.tar.gz"))
236 (sha256
237 (base32
238 "08kpy874x0rx43zpyv5kwd8xj2ma91xm33i0ka2v1v788px18a2q"))))
239 (arguments
240 (substitute-keyword-arguments (package-arguments go-1.4)
241 ((#:phases phases)
242 `(modify-phases ,phases
243 (replace 'prebuild
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"))
250 (tzdata-path
251 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
252 (output (assoc-ref outputs "out")))
253
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"
258 "net/parse_test.go"
259 "net/cgo_unix_test.go"))
260
261 (substitute* "os/os_test.go"
262 (("/usr/bin") (getcwd))
263 (("/bin/pwd") (which "pwd"))
264 (("/bin/sh") (which "sh")))
265
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 "\""
273 "}"))
274 (("ldflags = setextld\\(ldflags, compiler\\)")
275 (string-append
276 "ldflags = setextld(ldflags, compiler)\n"
277 "ldflags = append(ldflags, \"-r\")\n"
278 "ldflags = append(ldflags, \"" gcclib "\")\n"))
279 (("\"-lgcc_s\", ")
280 (string-append
281 "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
282
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.
286 (for-each
287 (match-lambda
288 ((file regex)
289 (substitute* file
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.+)")))
315
316 (substitute* "../misc/cgo/testsanitizers/test.bash"
317 (("(CC=)cc" all var) (string-append var "gcc")))
318
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"))))
323
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))
332 #t)))
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)
339 (setenv "PATH"
340 (string-append out "/bin:"
341 (dirname (getcwd)) "/bin:"
342 (getenv "PATH")))
343
344 ;; XXX: The following variables seem unrelated.
345 (setenv "GOGC" "400")
346 (setenv "GO_TEST_TIMEOUT_SCALE" "9999")
347 #t)))
348
349 (replace 'build
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"))))
359
360 (replace 'install
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))
366 (src (string-append
367 (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
368 (delete-file-recursively "../pkg/bootstrap")
369
370 (mkdir-p src)
371 (copy-recursively "../test" (string-append src "/test"))
372 (delete-file-recursively "../test")
373 (mkdir-p docs)
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")
378
379 (for-each
380 (lambda (file)
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"))
388
389 (copy-recursively "../" output)
390 #t)))))))
391 (native-inputs
392 `(("go" ,go-1.4)
393 ,@(package-native-inputs go-1.4)))
394 (supported-systems %supported-systems)))
395
396 (define-public go-1.11
397 (package
398 (inherit go-1.9)
399 (name "go")
400 (version "1.11.1")
401 (source
402 (origin
403 (method url-fetch)
404 (uri (string-append "https://storage.googleapis.com/golang/"
405 name version ".src.tar.gz"))
406 (sha256
407 (base32
408 "05qivf2f59pv4bfrmdr4m0xvswkmvvl9c5a2h5dy45g2k8b8r3sm"))))
409 (arguments
410 (substitute-keyword-arguments (package-arguments go-1.9)
411 ((#:phases phases)
412 `(modify-phases ,phases
413 (replace 'prebuild
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"))
419 (tzdata-path
420 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
421 (output (assoc-ref outputs "out")))
422
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"
427 "net/parse_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"))
439
440 (substitute* "os/os_test.go"
441 (("/usr/bin") (getcwd))
442 (("/bin/pwd") (which "pwd"))
443 (("/bin/sh") (which "sh")))
444
445 (substitute* "cmd/vendor/golang.org/x/sys/unix/syscall_unix_test.go"
446 (("/usr/bin") "/tmp"))
447
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 "\""
455 "}"))
456 (("\"-lgcc_s\", ")
457 (string-append
458 "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
459 (substitute* "cmd/go/internal/work/gc.go"
460 (("ldflags = setextld\\(ldflags, compiler\\)")
461 (string-append
462 "ldflags = setextld(ldflags, compiler)\n"
463 "ldflags = append(ldflags, \"-r\")\n"
464 "ldflags = append(ldflags, \"" gcclib "\")\n")))
465
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.
469 (for-each
470 (match-lambda
471 ((file regex)
472 (substitute* file
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.+)")))
498
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"))))
503
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))
512 #t)))
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
516 ;; installed.
517 ;; TODO This should be moved into the 'install' phase when Go 1.9 is
518 ;; removed.
519 (add-before 'install 'delete-extraneous-files
520 (lambda _
521 (delete-file-recursively "../pkg/obj")
522 #t))
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")
529 #t)))))))))
530
531 (define-public go go-1.11)
532
533 (define-public go-github-com-alsm-ioprogress
534 (let ((commit "063c3725f436e7fba0c8f588547bee21ffec7ac5")
535 (revision "0"))
536 (package
537 (name "go-github-com-alsm-ioprogress")
538 (version (git-version "0.0.0" revision commit))
539 (source (origin
540 (method git-fetch)
541 (uri (git-reference
542 (url "https://github.com/alsm/ioprogress.git")
543 (commit commit)))
544 (file-name (git-file-name name version))
545 (sha256
546 (base32
547 "10ym5qlq77nynmkxbk767f2hfwyxg2k7hrzph05hvgzv833dhivh"))))
548 (build-system go-build-system)
549 (arguments
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))))
558
559 (define-public go-github-com-aki237-nscjar
560 (let ((commit "e2df936ddd6050d30dd90c7214c02b5019c42f06")
561 (revision "0"))
562 (package
563 (name "go-github-com-aki237-nscjar")
564 (version (git-version "0.0.0" revision commit))
565 (source (origin
566 (method git-fetch)
567 (uri (git-reference
568 (url "https://github.com/aki237/nscjar.git")
569 (commit commit)))
570 (file-name (git-file-name name version))
571 (sha256
572 (base32
573 "03y7zzq12qvhsq86lb06sgns8xrkblbn7i7wd886wk3zr5574b96"))))
574 (build-system go-build-system)
575 (arguments
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))))
583
584 (define-public go-github.com-jessevdk-go-flags
585 (package
586 (name "go-github.com-jessevdk-go-flags")
587 (version "1.3.0")
588 (source (origin
589 (method git-fetch)
590 (uri (git-reference
591 (url "https://github.com/jessevdk/go-flags")
592 (commit (string-append "v" version))))
593 (file-name (git-file-name name version))
594 (sha256
595 (base32
596 "1jk2k2l10lwrn1r3nxdvbs0yz656830j4khzirw8p4ahs7c5zz36"))))
597 (build-system go-build-system)
598 (arguments
599 '(#:import-path "github.com/jessevdk/go-flags"))
600 (synopsis "Go library for parsing command line arguments")
601 (description
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)))
608
609 (define-public go-gopkg.in-tomb.v2
610 (let ((commit "d5d1b5820637886def9eef33e03a27a9f166942c")
611 (revision "0"))
612 (package
613 (name "go-gopkg.in-tomb.v2")
614 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
615 (source (origin
616 (method git-fetch)
617 (uri (git-reference
618 (url "https://github.com/go-tomb/tomb.git")
619 (commit commit)))
620 (file-name (string-append name "-" version ".tar.gz"))
621 (sha256
622 (base32
623 "1sv15sri99szkdz1bkh0ir46w9n8prrwx5hfai13nrhkawfyfy10"))))
624 (build-system go-build-system)
625 (arguments
626 '(#:import-path "gopkg.in/tomb.v2"))
627 (synopsis "@code{tomb} handles clean goroutine tracking and termination")
628 (description
629 "The @code{tomb} package handles clean goroutine tracking and
630 termination.")
631 (home-page "https://gopkg.in/tomb.v2")
632 (license license:bsd-3))))
633
634 (define-public go-github.com-jtolds-gls
635 (package
636 (name "go-github.com-jtolds-gls")
637 (version "4.2.1")
638 (source (origin
639 (method git-fetch)
640 (uri (git-reference
641 (url "https://github.com/jtolds/gls")
642 (commit (string-append "v" version))))
643 (file-name (git-file-name name version))
644 (sha256
645 (base32
646 "1vm37pvn0k4r6d3m620swwgama63laz8hhj3pyisdhxwam4m2g1h"))))
647 (build-system go-build-system)
648 (arguments
649 '(#:import-path "github.com/jtolds/gls"))
650 (synopsis "@code{gls} provides Goroutine local storage")
651 (description
652 "The @code{gls} package provides a way to store a retrieve values
653 per-goroutine.")
654 (home-page "https://github.com/jtolds/gls")
655 (license license:expat)))
656
657 (define-public go-github-com-tj-docopt
658 (package
659 (name "go-github-com-tj-docopt")
660 (version "1.0.0")
661 (source (origin
662 (method git-fetch)
663 (uri (git-reference
664 (url "https://github.com/tj/docopt")
665 (commit (string-append "v" version))))
666 (file-name (git-file-name name version))
667 (sha256
668 (base32
669 "06h8hdg1mh3s78zqlr01g4si7k0f0g6pr7fj7lnvfg446hgc7080"))))
670 (build-system go-build-system)
671 (arguments
672 '(#:import-path "github.com/tj/docopt"))
673 (synopsis "Go implementation of docopt")
674 (description
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)))
680
681 (define-public go-github-com-hashicorp-hcl
682 (let ((commit "23c074d0eceb2b8a5bfdbb271ab780cde70f05a8")
683 (revision "0"))
684 (package
685 (name "go-github-com-hashicorp-hcl")
686 (version (git-version "0.0.0" revision commit))
687 (source (origin
688 (method git-fetch)
689 (uri (git-reference
690 (url "https://github.com/hashicorp/hcl")
691 (commit commit)))
692 (file-name (git-file-name name version))
693 (sha256
694 (base32
695 "0db4lpqb5m130rmfy3s3gjjf4dxllypmyrzxv6ggqhkmwmc7w4mc"))))
696 (build-system go-build-system)
697 (arguments
698 '(#:tests? #f
699 #:import-path "github.com/hashicorp/hcl"))
700 (synopsis "Go implementation of HashiCorp Configuration Language")
701 (description
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))))
707
708 (define-public go-golang-org-x-crypto-bcrypt
709 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
710 (revision "1"))
711 (package
712 (name "go-golang-org-x-crypto-bcrypt")
713 (version (git-version "0.0.0" revision commit))
714 (source (origin
715 (method git-fetch)
716 (uri (git-reference
717 (url "https://go.googlesource.com/crypto")
718 (commit commit)))
719 (file-name (string-append "go.googlesource.com-crypto-"
720 version "-checkout"))
721 (sha256
722 (base32
723 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
724 (build-system go-build-system)
725 (arguments
726 `(#:import-path "golang.org/x/crypto/bcrypt"
727 #:unpack-path "golang.org/x/crypto"
728 #:phases
729 (modify-phases %standard-phases
730 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
731 (lambda* (#:key outputs #:allow-other-keys)
732 (map (lambda (file)
733 (make-file-writable file))
734 (find-files
735 (string-append (assoc-ref outputs "out")
736 "/src/golang.org/x/crypto/ed25519/testdata")
737 ".*\\.gz$"))
738 #t)))))
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))))
744
745 (define-public go-golang-org-x-crypto-blowfish
746 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
747 (revision "1"))
748 (package
749 (name "go-golang-org-x-crypto-blowfish")
750 (version (git-version "0.0.0" revision commit))
751 (source (origin
752 (method git-fetch)
753 (uri (git-reference
754 (url "https://go.googlesource.com/crypto")
755 (commit commit)))
756 (file-name (string-append "go.googlesource.com-crypto-"
757 version "-checkout"))
758 (sha256
759 (base32
760 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
761 (build-system go-build-system)
762 (arguments
763 `(#:import-path "golang.org/x/crypto/blowfish"
764 #:unpack-path "golang.org/x/crypto"
765 #:phases
766 (modify-phases %standard-phases
767 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
768 (lambda* (#:key outputs #:allow-other-keys)
769 (map (lambda (file)
770 (make-file-writable file))
771 (find-files
772 (string-append (assoc-ref outputs "out")
773 "/src/golang.org/x/crypto/ed25519/testdata")
774 ".*\\.gz$"))
775 #t)))))
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))))
781
782 (define-public go-golang-org-x-crypto-pbkdf2
783 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
784 (revision "1"))
785 (package
786 (name "go-golang-org-x-crypto-pbkdf2")
787 (version (git-version "0.0.0" revision commit))
788 (source (origin
789 (method git-fetch)
790 (uri (git-reference
791 (url "https://go.googlesource.com/crypto")
792 (commit commit)))
793 (file-name (string-append "go.googlesource.com-crypto-"
794 version "-checkout"))
795 (sha256
796 (base32
797 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
798 (build-system go-build-system)
799 (arguments
800 `(#:import-path "golang.org/x/crypto/pbkdf2"
801 #:unpack-path "golang.org/x/crypto"
802 #:phases
803 (modify-phases %standard-phases
804 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
805 (lambda* (#:key outputs #:allow-other-keys)
806 (map (lambda (file)
807 (make-file-writable file))
808 (find-files
809 (string-append (assoc-ref outputs "out")
810 "/src/golang.org/x/crypto/ed25519/testdata")
811 ".*\\.gz$"))
812 #t)))))
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))))
818
819 (define-public go-golang-org-x-crypto-tea
820 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
821 (revision "1"))
822 (package
823 (name "go-golang-org-x-crypto-tea")
824 (version (git-version "0.0.0" revision commit))
825 (source (origin
826 (method git-fetch)
827 (uri (git-reference
828 (url "https://go.googlesource.com/crypto")
829 (commit commit)))
830 (file-name (string-append "go.googlesource.com-crypto-"
831 version "-checkout"))
832 (sha256
833 (base32
834 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
835 (build-system go-build-system)
836 (arguments
837 `(#:import-path "golang.org/x/crypto/tea"
838 #:unpack-path "golang.org/x/crypto"
839 #:phases
840 (modify-phases %standard-phases
841 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
842 (lambda* (#:key outputs #:allow-other-keys)
843 (map (lambda (file)
844 (make-file-writable file))
845 (find-files
846 (string-append (assoc-ref outputs "out")
847 "/src/golang.org/x/crypto/ed25519/testdata")
848 ".*\\.gz$"))
849 #t)))))
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))))
855
856 (define-public go-golang-org-x-crypto-salsa20
857 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
858 (revision "1"))
859 (package
860 (name "go-golang-org-x-crypto-salsa20")
861 (version (git-version "0.0.0" revision commit))
862 (source (origin
863 (method git-fetch)
864 (uri (git-reference
865 (url "https://go.googlesource.com/crypto")
866 (commit commit)))
867 (file-name (string-append "go.googlesource.com-crypto-"
868 version "-checkout"))
869 (sha256
870 (base32
871 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
872 (build-system go-build-system)
873 (arguments
874 `(#:import-path "golang.org/x/crypto/salsa20"
875 #:unpack-path "golang.org/x/crypto"
876 #:phases
877 (modify-phases %standard-phases
878 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
879 (lambda* (#:key outputs #:allow-other-keys)
880 (map (lambda (file)
881 (make-file-writable file))
882 (find-files
883 (string-append (assoc-ref outputs "out")
884 "/src/golang.org/x/crypto/ed25519/testdata")
885 ".*\\.gz$"))
886 #t)))))
887 (synopsis "Salsa20 in Go")
888 (description "This packages provides a Go implementation of the Salsa20
889 stream cipher.")
890 (home-page "https://go.googlesource.com/crypto/")
891 (license license:bsd-3))))
892
893 (define-public go-golang-org-x-crypto-cast5
894 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
895 (revision "1"))
896 (package
897 (name "go-golang-org-x-crypto-cast5")
898 (version (git-version "0.0.0" revision commit))
899 (source (origin
900 (method git-fetch)
901 (uri (git-reference
902 (url "https://go.googlesource.com/crypto")
903 (commit commit)))
904 (file-name (string-append "go.googlesource.com-crypto-"
905 version "-checkout"))
906 (sha256
907 (base32
908 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
909 (build-system go-build-system)
910 (arguments
911 `(#:import-path "golang.org/x/crypto/cast5"
912 #:unpack-path "golang.org/x/crypto"
913 #:phases
914 (modify-phases %standard-phases
915 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
916 (lambda* (#:key outputs #:allow-other-keys)
917 (map (lambda (file)
918 (make-file-writable file))
919 (find-files
920 (string-append (assoc-ref outputs "out")
921 "/src/golang.org/x/crypto/ed25519/testdata")
922 ".*\\.gz$"))
923 #t)))))
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))))
929
930 (define-public go-golang-org-x-crypto-twofish
931 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
932 (revision "1"))
933 (package
934 (name "go-golang-org-x-crypto-twofish")
935 (version (git-version "0.0.0" revision commit))
936 (source (origin
937 (method git-fetch)
938 (uri (git-reference
939 (url "https://go.googlesource.com/crypto")
940 (commit commit)))
941 (file-name (string-append "go.googlesource.com-crypto-"
942 version "-checkout"))
943 (sha256
944 (base32
945 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
946 (build-system go-build-system)
947 (arguments
948 `(#:import-path "golang.org/x/crypto/twofish"
949 #:unpack-path "golang.org/x/crypto"
950 #:phases
951 (modify-phases %standard-phases
952 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
953 (lambda* (#:key outputs #:allow-other-keys)
954 (map (lambda (file)
955 (make-file-writable file))
956 (find-files
957 (string-append (assoc-ref outputs "out")
958 "/src/golang.org/x/crypto/ed25519/testdata")
959 ".*\\.gz$"))
960 #t)))))
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))))
966
967 (define-public go-golang-org-x-crypto-xtea
968 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
969 (revision "1"))
970 (package
971 (name "go-golang-org-x-crypto-xtea")
972 (version (git-version "0.0.0" revision commit))
973 (source (origin
974 (method git-fetch)
975 (uri (git-reference
976 (url "https://go.googlesource.com/crypto")
977 (commit commit)))
978 (file-name (string-append "go.googlesource.com-crypto-"
979 version "-checkout"))
980 (sha256
981 (base32
982 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
983 (build-system go-build-system)
984 (arguments
985 `(#:import-path "golang.org/x/crypto/xtea"
986 #:unpack-path "golang.org/x/crypto"
987 #:phases
988 (modify-phases %standard-phases
989 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
990 (lambda* (#:key outputs #:allow-other-keys)
991 (map (lambda (file)
992 (make-file-writable file))
993 (find-files
994 (string-append (assoc-ref outputs "out")
995 "/src/golang.org/x/crypto/ed25519/testdata")
996 ".*\\.gz$"))
997 #t)))))
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))))
1003
1004 (define-public go-golang-org-x-crypto-ed25519
1005 (package
1006 (inherit go-golang-org-x-crypto-bcrypt)
1007 (name "go-golang-org-x-crypto-ed25519")
1008 (arguments
1009 (substitute-keyword-arguments (package-arguments go-golang-org-x-crypto-bcrypt)
1010 ((#:import-path _)
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.")))
1015
1016 (define-public go-golang-org-x-crypto-ripemd160
1017 (package
1018 (inherit go-golang-org-x-crypto-bcrypt)
1019 (name "go-golang-org-x-crypto-ripemd160")
1020 (arguments
1021 (substitute-keyword-arguments (package-arguments go-golang-org-x-crypto-bcrypt)
1022 ((#:import-path _)
1023 "golang.org/x/crypto/ripemd160")))
1024 (synopsis "RIPEMD-160 in Go")
1025 (description "This package provides a Go implementation of the RIPEMD-160
1026 hash algorithm.")))
1027
1028 (define-public go-golang-org-x-crypto-blake2s
1029 (package
1030 (inherit go-golang-org-x-crypto-bcrypt)
1031 (name "go-golang-org-x-crypto-blake2s")
1032 (arguments
1033 (substitute-keyword-arguments (package-arguments go-golang-org-x-crypto-bcrypt)
1034 ((#:import-path _)
1035 "golang.org/x/crypto/blake2s")))
1036 (synopsis "BLAKE2s in Go")
1037 (description "This package provides a Go implementation of the BLAKE2s
1038 hash algorithm.")))
1039
1040 (define-public go-golang-org-x-crypto-sha3
1041 (package
1042 (inherit go-golang-org-x-crypto-bcrypt)
1043 (name "go-golang-org-x-crypto-sha3")
1044 (arguments
1045 (substitute-keyword-arguments (package-arguments go-golang-org-x-crypto-bcrypt)
1046 ((#:import-path _)
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.")))
1052
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)))
1070 (package
1071 (name "go-golang-org-x-crypto")
1072 (version (package-version go-golang-org-x-crypto-bcrypt))
1073 (source #f)
1074 (build-system trivial-build-system)
1075 (arguments
1076 '(#:modules ((guix build union))
1077 #:builder (begin
1078 (use-modules (ice-9 match)
1079 (guix build union))
1080 (match %build-inputs
1081 (((names . directories) ...)
1082 (union-build (assoc-ref %outputs "out")
1083 directories)
1084 #t)))))
1085 (inputs (map (lambda (package)
1086 (list (package-name package) package))
1087 packages))
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))))
1094
1095 (define-public go-golang-org-x-net-ipv4
1096 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1097 (revision "1"))
1098 (package
1099 (name "go-golang-org-x-net-ipv4")
1100 (version (git-version "0.0.0" revision commit))
1101 (source (origin
1102 (method git-fetch)
1103 (uri (git-reference
1104 (url "https://go.googlesource.com/net")
1105 (commit commit)))
1106 (file-name (git-file-name name version))
1107 (sha256
1108 (base32
1109 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1110 (build-system go-build-system)
1111 (arguments
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))))
1119
1120 (define-public go-golang-org-x-net-bpf
1121 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1122 (revision "1"))
1123 (package
1124 (name "go-golang-org-x-net-bpf")
1125 (version (git-version "0.0.0" revision commit))
1126 (source (origin
1127 (method git-fetch)
1128 (uri (git-reference
1129 (url "https://go.googlesource.com/net")
1130 (commit commit)))
1131 (file-name (string-append "go.googlesource.com-net-"
1132 version "-checkout"))
1133 (sha256
1134 (base32
1135 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1136 (build-system go-build-system)
1137 (arguments
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))))
1145
1146 (define-public go-golang-org-x-net-context
1147 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1148 (revision "1"))
1149 (package
1150 (name "go-golang-org-x-net-context")
1151 (version (git-version "0.0.0" revision commit))
1152 (source (origin
1153 (method git-fetch)
1154 (uri (git-reference
1155 (url "https://go.googlesource.com/net")
1156 (commit commit)))
1157 (file-name (string-append "go.googlesource.com-net-"
1158 version "-checkout"))
1159 (sha256
1160 (base32
1161 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1162 (build-system go-build-system)
1163 (arguments
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))))
1172
1173 (define-public go-golang-org-x-net-internal-iana
1174 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1175 (revision "1"))
1176 (package
1177 (name "go-golang-org-x-net-internal-iana")
1178 (version (git-version "0.0.0" revision commit))
1179 (source (origin
1180 (method git-fetch)
1181 (uri (git-reference
1182 (url "https://go.googlesource.com/net")
1183 (commit commit)))
1184 (file-name (string-append "go.googlesource.com-net-"
1185 version "-checkout"))
1186 (sha256
1187 (base32
1188 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1189 (build-system go-build-system)
1190 (arguments
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))))
1198
1199 (define-public go-golang-org-x-net-ipv6
1200 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1201 (revision "1"))
1202 (package
1203 (name "go-golang-org-x-net-ipv6")
1204 (version (git-version "0.0.0" revision commit))
1205 (source (origin
1206 (method git-fetch)
1207 (uri (git-reference
1208 (url "https://go.googlesource.com/net")
1209 (commit commit)))
1210 (file-name (string-append "go.googlesource.com-net-"
1211 version "-checkout"))
1212 (sha256
1213 (base32
1214 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1215 (build-system go-build-system)
1216 (arguments
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))))
1224
1225 (define-public go-golang-org-x-net-proxy
1226 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1227 (revision "1"))
1228 (package
1229 (name "go-golang-org-x-net-proxy")
1230 (version (git-version "0.0.0" revision commit))
1231 (source (origin
1232 (method git-fetch)
1233 (uri (git-reference
1234 (url "https://go.googlesource.com/net")
1235 (commit commit)))
1236 (file-name (string-append "go.googlesource.com-net-"
1237 version "-checkout"))
1238 (sha256
1239 (base32
1240 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1241 (build-system go-build-system)
1242 (arguments
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))))
1250
1251 (define-public go-golang-org-x-sys-unix
1252 (let ((commit "83801418e1b59fb1880e363299581ee543af32ca")
1253 (revision "1"))
1254 (package
1255 (name "go-golang-org-x-sys-unix")
1256 (version (git-version "0.0.0" revision commit))
1257 (source (origin
1258 (method git-fetch)
1259 (uri (git-reference
1260 (url "https://go.googlesource.com/sys")
1261 (commit commit)))
1262 (file-name (git-file-name name version))
1263 (sha256
1264 (base32
1265 "0ilykaanvnzb27d42kmbr4i37hcn7hgqbx98z945gy63aa8dskji"))))
1266 (build-system go-build-system)
1267 (arguments
1268 `(#:import-path "golang.org/x/sys/unix"
1269 #:unpack-path "golang.org/x/sys"
1270 #:phases
1271 (modify-phases %standard-phases
1272 (add-after 'unpack 'patch-tests
1273 (lambda _
1274 (pk (getcwd))
1275 (substitute* "src/golang.org/x/sys/unix/syscall_unix_test.go"
1276 (("/usr/bin") "/tmp"))
1277 #t)))))
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))))
1283
1284 (define-public go-golang-org-x-text-transform
1285 (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
1286 (revision "1"))
1287 (package
1288 (name "go-golang-org-x-text-transform")
1289 (version (git-version "0.0.0" revision commit))
1290 (source (origin
1291 (method git-fetch)
1292 (uri (git-reference
1293 (url "https://go.googlesource.com/text")
1294 (commit commit)))
1295 (file-name (string-append "go.googlesource.com-text-"
1296 version "-checkout"))
1297 (sha256
1298 (base32
1299 "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
1300 (build-system go-build-system)
1301 (arguments
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))))
1311
1312 (define-public go-golang-org-x-text-unicode-norm
1313 (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
1314 (revision "1"))
1315 (package
1316 (name "go-golang-org-x-text-unicode-norm")
1317 (version (git-version "0.0.0" revision commit))
1318 (source (origin
1319 (method git-fetch)
1320 (uri (git-reference
1321 (url "https://go.googlesource.com/text")
1322 (commit commit)))
1323 (file-name (string-append "go.googlesource.com-text-"
1324 version "-checkout"))
1325 (sha256
1326 (base32
1327 "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
1328 (build-system go-build-system)
1329 (arguments
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))))
1337
1338 (define-public go-golang-org-x-time-rate
1339 (let ((commit "6dc17368e09b0e8634d71cac8168d853e869a0c7")
1340 (revision "1"))
1341 (package
1342 (name "go-golang-org-x-time-rate")
1343 (version (git-version "0.0.0" revision commit))
1344 (source (origin
1345 (method git-fetch)
1346 (uri (git-reference
1347 (url "https://go.googlesource.com/time")
1348 (commit commit)))
1349 (file-name (git-file-name name version))
1350 (sha256
1351 (base32
1352 "1fx4cf5fpdz00g3c7vxzy92hdcg0vh4yqw00qp5s52j72qixynbk"))))
1353 (build-system go-build-system)
1354 (arguments
1355 `(#:import-path "golang.org/x/time/rate"
1356 #:unpack-path "golang.org/x/time"))
1357 (propagated-inputs
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
1361 limiting in Go.")
1362 (home-page "https://godoc.org/golang.org/x/time/rate")
1363 (license license:bsd-3))))
1364
1365 (define-public go-golang-org-x-crypto-ssh-terminal
1366 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
1367 (revision "1"))
1368 (package
1369 (name "go-golang-org-x-crypto-ssh-terminal")
1370 (version (git-version "0.0.0" revision commit))
1371 (source (origin
1372 (method git-fetch)
1373 (uri (git-reference
1374 (url "https://go.googlesource.com/crypto")
1375 (commit commit)))
1376 (file-name (string-append "go.googlesource.com-crypto-"
1377 version "-checkout"))
1378 (sha256
1379 (base32
1380 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
1381 (build-system go-build-system)
1382 (inputs
1383 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
1384 (arguments
1385 `(#:import-path "golang.org/x/crypto/ssh/terminal"
1386 #:unpack-path "golang.org/x/crypto"
1387 #:phases
1388 (modify-phases %standard-phases
1389 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1390 (lambda* (#:key outputs #:allow-other-keys)
1391 (map (lambda (file)
1392 (make-file-writable file))
1393 (find-files
1394 (string-append (assoc-ref outputs "out")
1395 "/src/golang.org/x/crypto/ed25519/testdata")
1396 ".*\\.gz$"))
1397 #t)))))
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
1401 systems.")
1402 (home-page "https://go.googlesource.com/crypto/")
1403 (license license:bsd-3))))
1404
1405 (define-public go-github-com-burntsushi-toml
1406 (let ((commit
1407 "a368813c5e648fee92e5f6c30e3944ff9d5e8895")
1408 (revision "0"))
1409 (package
1410 (name "go-github-com-burntsushi-toml")
1411 (version (git-version "0.0.0" revision commit))
1412 (source
1413 (origin
1414 (method git-fetch)
1415 (uri (git-reference
1416 (url "https://github.com/BurntSushi/toml.git")
1417 (commit commit)))
1418 (file-name (git-file-name name version))
1419 (sha256
1420 (base32
1421 "1sjxs2lwc8jpln80s4rlzp7nprbcljhy5mz4rf9995gq93wqnym5"))))
1422 (build-system go-build-system)
1423 (arguments
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}
1429 package.")
1430 (license license:expat))))
1431
1432 (define-public go-github-com-getsentry-raven-go
1433 (let ((commit
1434 "dffeb57df75d6a911f00232155194e43d79d38d7")
1435 (revision "0"))
1436 (package
1437 (name "go-github-com-getsentry-raven-go")
1438 (version (git-version "0.0.0" revision commit))
1439 (source
1440 (origin
1441 (method git-fetch)
1442 (uri (git-reference
1443 (url "https://github.com/getsentry/raven-go.git")
1444 (commit commit)))
1445 (file-name (git-file-name name version))
1446 (sha256
1447 (base32
1448 "13sb9rvl3369m7fah3ss9g0hwky259snqfn8gmbr0h5zvp651lja"))))
1449 (build-system go-build-system)
1450 (arguments
1451 '(#:import-path "github.com/getsentry/raven-go"))
1452 (home-page
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
1456 logging system.")
1457 (license license:bsd-3))))
1458
1459 (define-public go-github-com-hashicorp-go-version
1460 (let ((commit
1461 "03c5bf6be031b6dd45afec16b1cf94fc8938bc77")
1462 (revision "0"))
1463 (package
1464 (name "go-github-com-hashicorp-go-version")
1465 (version (git-version "0.0.0" revision commit))
1466 (source
1467 (origin
1468 (method git-fetch)
1469 (uri (git-reference
1470 (url "https://github.com/hashicorp/go-version.git")
1471 (commit commit)))
1472 (file-name (git-file-name name version))
1473 (sha256
1474 (base32
1475 "0sjq57gpfznaqdrbyb2p0bn90g9h661cvr0jrk6ngags4pbw14ik"))))
1476 (build-system go-build-system)
1477 (arguments
1478 '(#:import-path "github.com/hashicorp/go-version"))
1479 (home-page
1480 "https://github.com/hashicorp/go-version")
1481 (synopsis "Go library for parsing and verifying versions and version
1482 constraints")
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))))
1488
1489 (define-public go-github-com-jpillora-backoff
1490 (let ((commit
1491 "06c7a16c845dc8e0bf575fafeeca0f5462f5eb4d")
1492 (revision "0"))
1493 (package
1494 (name "go-github-com-jpillora-backoff")
1495 (version (git-version "0.0.0" revision commit))
1496 (source
1497 (origin
1498 (method git-fetch)
1499 (uri (git-reference
1500 (url "https://github.com/jpillora/backoff.git")
1501 (commit commit)))
1502 (file-name (git-file-name name version))
1503 (sha256
1504 (base32
1505 "0xhvxr7bm47czdc5hy3kl508z3y4j91i2jm7vg774i52zych6k4l"))))
1506 (build-system go-build-system)
1507 (arguments
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
1512 Go.")
1513 (license license:expat))))
1514
1515 (define-public go-github-com-stretchr-testify
1516 (let ((commit
1517 "b1f989447a57594c728884458a39abf3a73447f7")
1518 (revision "0"))
1519 (package
1520 (name "go-github-com-stretchr-testify")
1521 (version (git-version "1.1.4" revision commit))
1522 (source
1523 (origin
1524 (method git-fetch)
1525 (uri (git-reference
1526 (url "https://github.com/stretchr/testify.git")
1527 (commit commit)))
1528 (file-name (git-file-name name version))
1529 (sha256
1530 (base32
1531 "0p0gkqzh2p8r5g0rxm885ljl7ghih7h7hx9w562imx5ka0vdgixv"))))
1532 (build-system go-build-system)
1533 (arguments
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.
1539
1540 Features include:
1541 @itemize
1542 @item Easy assertions
1543 @item Mocking
1544 @item HTTP response trapping
1545 @item Testing suite interfaces and functions.
1546 @end itemize")
1547 (license license:expat))))
1548
1549 (define-public go-github-com-tevino-abool
1550 (let ((commit
1551 "3c25f2fe7cd0ef3eabefce1d90efd69a65d35b12")
1552 (revision "0"))
1553 (package
1554 (name "go-github-com-tevino-abool")
1555 (version (git-version "0.0.0" revision commit))
1556 (source
1557 (origin
1558 (method git-fetch)
1559 (uri (git-reference
1560 (url "https://github.com/tevino/abool.git")
1561 (commit commit)))
1562 (file-name (git-file-name name version))
1563 (sha256
1564 (base32
1565 "1wxqrclxk93q0aj15z596dx2y57x9nkhi64nbrr5cxnhxn8vwixm"))))
1566 (build-system go-build-system)
1567 (arguments
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))))
1574
1575 (define-public go-github-com-blang-semver
1576 (let ((commit "60ec3488bfea7cca02b021d106d9911120d25fe9")
1577 (revision "0"))
1578 (package
1579 (name "go-github-com-blang-semver")
1580 (version (git-version "0.0.0" revision commit))
1581 (source
1582 (origin
1583 (method git-fetch)
1584 (uri (git-reference
1585 (url "https://github.com/blang/semver.git")
1586 (commit commit)))
1587 (file-name (git-file-name name version))
1588 (sha256
1589 (base32
1590 "19pli07y5592g4dyjyj0jq5rn548vc3fz0qg3624vm1j5828p1c2"))))
1591 (build-system go-build-system)
1592 (arguments
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))))
1598
1599 (define-public go-github-com-emicklei-go-restful
1600 (let ((commit "89ef8af493ab468a45a42bb0d89a06fccdd2fb22")
1601 (revision "0"))
1602 (package
1603 (name "go-github-com-emicklei-go-restful")
1604 (version (git-version "0.0.0" revision commit))
1605 (source
1606 (origin
1607 (method git-fetch)
1608 (uri (git-reference
1609 (url "https://github.com/emicklei/go-restful.git")
1610 (commit commit)))
1611 (file-name (git-file-name name version))
1612 (sha256
1613 (base32
1614 "0rrlfcfq80fkxifpih6bq31vavb5mf4530xz51pp9pq1mn2fzjfh"))))
1615 (build-system go-build-system)
1616 (arguments
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))))
1624
1625 (define-public go-github-com-google-cadvisor
1626 (let ((commit "2ed7198f77395ee9a172878a0a7ab92ab59a2cfd")
1627 (revision "0"))
1628 (package
1629 (name "go-github-com-google-cadvisor")
1630 (version (git-version "0.0.0" revision commit))
1631 (source
1632 (origin
1633 (method git-fetch)
1634 (uri (git-reference
1635 (url "https://github.com/google/cadvisor.git")
1636 (commit commit)))
1637 (file-name (git-file-name name version))
1638 (sha256
1639 (base32
1640 "1w8p345z5j0gk3yiq5ah0znd5lfh348p2s624k5r10drz04p3f55"))))
1641 (build-system go-build-system)
1642 (arguments
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
1648 containers.")
1649 (license license:asl2.0))))
1650
1651 (define-public go-github-com-google-gofuzz
1652 (let ((commit "fd52762d25a41827db7ef64c43756fd4b9f7e382")
1653 (revision "0"))
1654 (package
1655 (name "go-github-com-google-gofuzz")
1656 (version (git-version "0.0.0" revision commit))
1657 (source
1658 (origin
1659 (method git-fetch)
1660 (uri (git-reference
1661 (url "https://github.com/google/gofuzz.git")
1662 (commit commit)))
1663 (file-name (git-file-name name version))
1664 (sha256
1665 (base32
1666 "1yxmmr73h0lq7ryf3q9a7pcm2x5xrg4d5bxkq8n5pxwxwyq26kw8"))))
1667 (build-system go-build-system)
1668 (arguments
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))))
1675
1676 (define-public go-github-com-gorilla-context
1677 (let ((commit "08b5f424b9271eedf6f9f0ce86cb9396ed337a42")
1678 (revision "0"))
1679 (package
1680 (name "go-github-com-gorilla-context")
1681 (version (git-version "0.0.0" revision commit))
1682 (source
1683 (origin
1684 (method git-fetch)
1685 (uri (git-reference
1686 (url "https://github.com/gorilla/context.git")
1687 (commit commit)))
1688 (file-name (git-file-name name version))
1689 (sha256
1690 (base32
1691 "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4"))))
1692 (build-system go-build-system)
1693 (arguments
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))))
1699
1700 (define-public go-github-com-gorilla-mux
1701 (let ((commit "599cba5e7b6137d46ddf58fb1765f5d928e69604")
1702 (revision "0"))
1703 (package
1704 (name "go-github-com-gorilla-mux")
1705 (version (git-version "0.0.0" revision commit))
1706 (source
1707 (origin
1708 (method git-fetch)
1709 (uri (git-reference
1710 (url "https://github.com/gorilla/mux.git")
1711 (commit commit)))
1712 (file-name (git-file-name name version))
1713 (sha256
1714 (base32
1715 "0wd6jjii1kg5s0nk3ri6gqriz6hbd6bbcn6x4jf8n7ncrb8qsxyz"))))
1716 (build-system go-build-system)
1717 (arguments
1718 '(#:import-path "github.com/gorilla/mux"))
1719 (home-page "https://github.com/gorilla/mux")
1720 (synopsis "URL router and dispatcher for Go")
1721 (description
1722 "Gorilla/Mux implements a request router and dispatcher for matching
1723 incoming requests with their respective handler.")
1724 (license license:bsd-3))))
1725
1726 (define-public go-github-com-jonboulle-clockwork
1727 (let ((commit "e3653ace2d63753697e0e5b07b9393971c0bba9d")
1728 (revision "0"))
1729 (package
1730 (name "go-github-com-jonboulle-clockwork")
1731 (version (git-version "0.0.0" revision commit))
1732 (source
1733 (origin
1734 (method git-fetch)
1735 (uri (git-reference
1736 (url "https://github.com/jonboulle/clockwork.git")
1737 (commit commit)))
1738 (file-name (git-file-name name version))
1739 (sha256
1740 (base32
1741 "1avzqhks12a8x2yzpvjsf3k0gv9cy7zx2z88hn0scacnxkphisvc"))))
1742 (build-system go-build-system)
1743 (arguments
1744 '(#:import-path "github.com/jonboulle/clockwork"))
1745 (home-page "https://github.com/jonboulle/clockwork")
1746 (synopsis "Fake clock library for Go")
1747 (description
1748 "Replace uses of the @code{time} package with the
1749 @code{clockwork.Clock} interface instead.")
1750 (license license:asl2.0))))
1751
1752 (define-public go-github-com-spf13-pflag
1753 (let ((commit "4f9190456aed1c2113ca51ea9b89219747458dc1")
1754 (revision "0"))
1755 (package
1756 (name "go-github-com-spf13-pflag")
1757 (version (git-version "0.0.0" revision commit))
1758 (source
1759 (origin
1760 (method git-fetch)
1761 (uri (git-reference
1762 (url "https://github.com/spf13/pflag.git")
1763 (commit commit)))
1764 (file-name (git-file-name name version))
1765 (sha256
1766 (base32
1767 "12vrlcsbwjqlfc49rwky45mbcj74c0kb6z54354pzas6fwzyi1kc"))))
1768 (build-system go-build-system)
1769 (arguments
1770 '(#:import-path "github.com/spf13/pflag"))
1771 (home-page "https://github.com/spf13/pflag")
1772 (synopsis "Replacement for Go's @code{flag} package")
1773 (description
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
1776 with the
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))))
1780
1781 (define-public go-github-com-sirupsen-logrus
1782 (package
1783 (name "go-github-com-sirupsen-logrus")
1784 (version "1.0.5")
1785 (source
1786 (origin
1787 (method git-fetch)
1788 (uri (git-reference
1789 (url "https://github.com/sirupsen/logrus.git")
1790 (commit (string-append "v" version))))
1791 (sha256
1792 (base32
1793 "0g5z7al7kky11ai2dhac6gkp3b5pxsvx72yj3xg4wg3265gbn7yz"))))
1794 (build-system go-build-system)
1795 (native-inputs
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)))
1802 (arguments
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)))
1810
1811 (define-public go-github-com-kardianos-osext
1812 (let ((commit "ae77be60afb1dcacde03767a8c37337fad28ac14")
1813 (revision "1"))
1814 (package
1815 (name "go-github-com-kardianos-osext")
1816 (version (git-version "0.0.0" revision commit))
1817 (source (origin
1818 (method git-fetch)
1819 (uri (git-reference
1820 (url "https://github.com/kardianos/osext")
1821 (commit commit)))
1822 (file-name (git-file-name name version))
1823 (sha256
1824 (base32
1825 "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz"))))
1826 (build-system go-build-system)
1827 (arguments
1828 `(#:import-path "github.com/kardianos/osext"
1829 ;; The tests are flaky:
1830 ;; <https://github.com/kardianos/osext/issues/21>
1831 #:tests? #f))
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))))
1838
1839 (define-public go-github-com-ayufan-golang-kardianos-service
1840 (let ((commit "0c8eb6d8fff2e2fb884a7bfd23e183fb63c0eff3")
1841 (revision "0"))
1842 (package
1843 (name "go-github-com-ayufan-golang-kardianos-service")
1844 (version (git-version "0.0.0" revision commit))
1845 (source
1846 (origin
1847 (method git-fetch)
1848 (uri (git-reference
1849 (url
1850 "https://github.com/ayufan/golang-kardianos-service.git")
1851 (commit commit)))
1852 (file-name (git-file-name name version))
1853 (sha256
1854 (base32
1855 "0x0cn7l5gda2khsfypix7adxd5yqighzn04mxjw6hc4ayrh7his5"))))
1856 (build-system go-build-system)
1857 (native-inputs
1858 `(("go-github-com-kardianos-osext"
1859 ,go-github-com-kardianos-osext)))
1860 (arguments
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))))
1869
1870 (define-public go-github-com-docker-distribution
1871 (let ((commit "325b0804fef3a66309d962357aac3c2ce3f4d329")
1872 (revision "0"))
1873 (package
1874 (name "go-github-com-docker-distribution")
1875 (version (git-version "0.0.0" revision commit))
1876 (source
1877 ;; FIXME: This bundles many things, see
1878 ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31881#41>.
1879 (origin
1880 (method git-fetch)
1881 (uri (git-reference
1882 (url "https://github.com/docker/distribution")
1883 (commit commit)))
1884 (file-name (git-file-name name version))
1885 (sha256
1886 (base32
1887 "1yg2zrikn3vkvkx5mn51p6bfjk840qdkn7ahhhvvcsc8mpigrjc6"))))
1888 (build-system go-build-system)
1889 (native-inputs
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)))
1896 (arguments
1897 '(#:import-path "github.com/docker/distribution"
1898 #:phases
1899 (modify-phases %standard-phases
1900 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1901 (lambda* (#:key outputs #:allow-other-keys)
1902 (map (lambda (file)
1903 (make-file-writable file))
1904 (find-files
1905 (assoc-ref outputs "out")
1906 ".*\\.gz$"))
1907 #t)))))
1908 (home-page
1909 "https://github.com/docker/distribution")
1910 (synopsis "This package is Docker toolset to pack, ship, store, and
1911 deliver content")
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))))
1916
1917 (define-public go-github-com-docker-go-connections
1918 (let ((commit "3ede32e2033de7505e6500d6c868c2b9ed9f169d")
1919 (revision "0"))
1920 (package
1921 (name "go-github-com-docker-go-connections")
1922 (version (git-version "0.0.0" revision commit))
1923 (source
1924 (origin
1925 (method git-fetch)
1926 (uri (git-reference
1927 (url "https://github.com/docker/go-connections.git")
1928 (commit commit)))
1929 (file-name (git-file-name name version))
1930 (sha256
1931 (base32
1932 "0v1pkr8apwmhyzbjfriwdrs1ihlk6pw7izm57r24mf9jdmg3fyb0"))))
1933 (build-system go-build-system)
1934 (arguments
1935 '(#:import-path "github.com/docker/go-connections"))
1936 (home-page "https://github.com/docker/go-connections")
1937 (synopsis "Networking library for Go")
1938 (description
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))))
1943
1944 (define-public go-github-com-docker-machine
1945 (let ((commit "7b7a141da84480342357c51838be142bf183b095")
1946 (revision "0"))
1947 (package
1948 (name "go-github-com-docker-machine")
1949 (version (git-version "0.0.0" revision commit))
1950 (source
1951 (origin
1952 (method git-fetch)
1953 (uri (git-reference
1954 (url "https://github.com/docker/machine.git")
1955 (commit commit)))
1956 (file-name (git-file-name name version))
1957 (sha256
1958 (base32
1959 "0bavk0lvs462yh0lnmnxi9psi5qv1x3nvzmd2b0drsahlp1gxi8s"))))
1960 (build-system go-build-system)
1961 (arguments
1962 '(#:import-path "github.com/docker/machine"))
1963 (home-page "https://github.com/docker/machine")
1964 (synopsis "Machine management for a container-centric world")
1965 (description
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))))
1970
1971 (define-public go-github-com-gorhill-cronexpr
1972 (let ((commit "f0984319b44273e83de132089ae42b1810f4933b")
1973 (revision "0"))
1974 (package
1975 (name "go-github-com-gorhill-cronexpr")
1976 (version (git-version "0.0.0" revision commit))
1977 (source
1978 (origin
1979 (method git-fetch)
1980 (uri (git-reference
1981 (url "https://github.com/gorhill/cronexpr.git")
1982 (commit commit)))
1983 (file-name (git-file-name name version))
1984 (sha256
1985 (base32
1986 "0dphhhqy3i7265znv3m8n57l80dmaq6z4hsj5kgd87qd19z8x0l2"))))
1987 (build-system go-build-system)
1988 (arguments
1989 '(#:import-path "github.com/gorhill/cronexpr"))
1990 (home-page "https://github.com/gorhill/cronexpr")
1991 (synopsis "Cron expression parser in the Go language")
1992 (description
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+
1997 license:asl2.0)))))
1998
1999 (define-public go-gopkg-in-check-v1
2000 (let ((commit "20d25e2804050c1cd24a7eea1e7a6447dd0e74ec")
2001 (revision "0"))
2002 (package
2003 (name "go-gopkg-in-check-v1")
2004 (version (git-version "0.0.0" revision commit))
2005 (source
2006 (origin
2007 (method git-fetch)
2008 (uri (git-reference
2009 (url "https://github.com/go-check/check")
2010 (commit commit)))
2011 (file-name (git-file-name name version))
2012 (sha256
2013 (base32
2014 "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np"))))
2015 (build-system go-build-system)
2016 (arguments
2017 '(#:import-path "gopkg.in/check.v1"))
2018 (home-page "https://gopkg.in/check.v1")
2019 (synopsis "Test framework for the Go language")
2020 (description
2021 "This package provides a test library for the Go language.")
2022 (license license:asl2.0))))
2023
2024 (define-public go-gopkg-in-yaml-v2
2025 (let ((commit "14227de293ca979cf205cd88769fe71ed96a97e2")
2026 (revision "0"))
2027 (package
2028 (name "go-gopkg-in-yaml-v2")
2029 (version (git-version "0.0.0" revision commit))
2030 (source
2031 (origin
2032 (method git-fetch)
2033 (uri (git-reference
2034 (url "https://gopkg.in/yaml.v2.git")
2035 (commit commit)))
2036 (file-name (git-file-name name version))
2037 (sha256
2038 (base32
2039 "038hnrjcnjygyi3qidfrkpkakis82qg381sr495d2s40g2dwlzah"))))
2040 (build-system go-build-system)
2041 (arguments
2042 '(#:import-path "gopkg.in/yaml.v2"))
2043 (native-inputs
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")
2047 (description
2048 "This package provides a Go library for encode and decode YAML
2049 values.")
2050 (license license:asl2.0))))
2051
2052 (define-public go-github-com-mattn-go-isatty
2053 (let ((commit "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c")
2054 (revision "0"))
2055 (package
2056 (name "go-github-com-mattn-go-isatty")
2057 (version (git-version "0.0.0" revision commit))
2058 (source
2059 (origin
2060 (method git-fetch)
2061 (uri (git-reference
2062 (url "https://github.com/mattn/go-isatty")
2063 (commit commit)))
2064 (file-name (git-file-name name version))
2065 (sha256
2066 (base32
2067 "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w"))))
2068 (build-system go-build-system)
2069 (arguments
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
2075 terminal.")
2076 (license license:expat))))
2077
2078 (define-public go-github-com-mattn-go-colorable
2079 (let ((commit "efa589957cd060542a26d2dd7832fd6a6c6c3ade")
2080 (revision "0"))
2081 (package
2082 (name "go-github-com-mattn-go-colorable")
2083 (version (git-version "0.0.0" revision commit))
2084 (source
2085 (origin
2086 (method git-fetch)
2087 (uri (git-reference
2088 (url "https://github.com/mattn/go-colorable")
2089 (commit commit)))
2090 (file-name (git-file-name name version))
2091 (sha256
2092 (base32
2093 "0kshi4hvm0ayrsxqxy0599iv81kryhd2fn9lwjyczpj593cq069r"))))
2094 (build-system go-build-system)
2095 (native-inputs
2096 `(("go-github-com-mattn-go-isatty"
2097 ,go-github-com-mattn-go-isatty)))
2098 (arguments
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))))
2105
2106 (define-public go-github-com-mgutz-ansi
2107 (let ((commit "9520e82c474b0a04dd04f8a40959027271bab992")
2108 (revision "0"))
2109 (package
2110 (name "go-github-com-mgutz-ansi")
2111 (version (git-version "0.0.0" revision commit))
2112 (source
2113 (origin
2114 (method git-fetch)
2115 (uri (git-reference
2116 (url
2117 "https://github.com/mgutz/ansi")
2118 (commit commit)))
2119 (file-name (git-file-name name version))
2120 (sha256
2121 (base32
2122 "00bz22314j26736w1f0q4jy9d9dfaml17vn890n5zqy3cmvmww1j"))))
2123 (build-system go-build-system)
2124 (native-inputs
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)))
2129 (arguments
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))))
2136
2137 (define-public go-github-com-aarzilli-golua
2138 (let ((commit "03fc4642d792b1f2bc5e7343b403cf490f8c501d")
2139 (revision "0"))
2140 (package
2141 (name "go-github-com-aarzilli-golua")
2142 (version (git-version "0.0.0" revision commit))
2143 (source
2144 (origin
2145 (method git-fetch)
2146 (uri (git-reference
2147 (url
2148 "https://github.com/aarzilli/golua")
2149 (commit commit)))
2150 (file-name (git-file-name name version))
2151 (sha256
2152 (base32
2153 "1d9hr29i36cza98afj3g6rs3l7xbkprwzz0blcxsr9dd7nak20di"))))
2154 (build-system go-build-system)
2155 (native-inputs
2156 `(("lua" ,lua)))
2157 (arguments
2158 `(#:unpack-path "github.com/aarzilli/golua"
2159 #:import-path "github.com/aarzilli/golua/lua"
2160 #:phases
2161 (modify-phases %standard-phases
2162 (replace 'build
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.
2169 import-path)))
2170 (replace 'check
2171 (lambda* (#:key import-path #:allow-other-keys)
2172 (invoke "go" "test"
2173 "-tags" "llua" ; Latest Lua on Guix does not have a version number.
2174 import-path))))))
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))))
2180
2181 (define-public go-gitlab-com-ambrevar-golua-unicode
2182 (let ((commit "97ce517e7a1fe2407a90c317a9c74b173d396144")
2183 (revision "0"))
2184 (package
2185 (name "go-gitlab-com-ambrevar-golua-unicode")
2186 (version (git-version "0.0.0" revision commit))
2187 (source
2188 (origin
2189 (method git-fetch)
2190 (uri (git-reference
2191 (url
2192 "https://gitlab.com/ambrevar/golua")
2193 (commit commit)))
2194 (file-name (git-file-name name version))
2195 (sha256
2196 (base32
2197 "1izcp7p8nagjwqd13shb0020w7xhppib1a3glw2d1468bflhksnm"))))
2198 (build-system go-build-system)
2199 (native-inputs
2200 `(("lua" ,lua)
2201 ("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
2202 (arguments
2203 `(#:unpack-path "gitlab.com/ambrevar/golua"
2204 #:import-path "gitlab.com/ambrevar/golua/unicode"
2205 #:phases
2206 (modify-phases %standard-phases
2207 (replace 'check
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))))
2218
2219 (define-public go-github-com-yookoala-realpath
2220 (let ((commit "d19ef9c409d9817c1e685775e53d361b03eabbc8")
2221 (revision "0"))
2222 (package
2223 (name "go-github-com-yookoala-realpath")
2224 (version (git-version "0.0.0" revision commit))
2225 (source
2226 (origin
2227 (method git-fetch)
2228 (uri (git-reference
2229 (url
2230 "https://github.com/yookoala/realpath")
2231 (commit commit)))
2232 (file-name (git-file-name name version))
2233 (sha256
2234 (base32
2235 "0qvz1dcdldf53rq69fli76z5k1vr7prx9ds1d5rpzgs68kwn40nw"))))
2236 (build-system go-build-system)
2237 (arguments
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))))
2245
2246 (define-public go-gitlab-com-ambrevar-damerau
2247 (let ((commit "883829e1f25fad54015772ea663e69017cf22352")
2248 (revision "0"))
2249 (package
2250 (name "go-gitlab-com-ambrevar-damerau")
2251 (version (git-version "0.0.0" revision commit))
2252 (source
2253 (origin
2254 (method git-fetch)
2255 (uri (git-reference
2256 (url
2257 "https://gitlab.com/ambrevar/damerau")
2258 (commit commit)))
2259 (file-name (git-file-name name version))
2260 (sha256
2261 (base32
2262 "1b9p8fypc914ij1afn6ir346zsgfqrc5mqc1k3d53n4snypq27qv"))))
2263 (build-system go-build-system)
2264 (arguments
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
2271 similar word.")
2272 (license license:expat))))
2273
2274 (define-public go-github-com-stevedonovan-luar
2275 (let ((commit "22d247e5366095f491cd83edf779ee99a78f5ead")
2276 (revision "0"))
2277 (package
2278 (name "go-github-com-stevedonovan-luar")
2279 (version (git-version "0.0.0" revision commit))
2280 (source
2281 (origin
2282 (method git-fetch)
2283 (uri (git-reference
2284 (url
2285 "https://github.com/stevedonovan/luar")
2286 (commit commit)))
2287 (file-name (git-file-name name version))
2288 (sha256
2289 (base32
2290 "1acjgw9cz1l0l9mzkyk7irz6cfk31wnxgbwa805fvm1rqcjzin2c"))))
2291 (build-system go-build-system)
2292 (native-inputs
2293 `(("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
2294 (arguments
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
2303 source.
2304
2305 Any Go function can be made available to Lua scripts, without having to write
2306 C-style wrappers.
2307
2308 Luar support cyclic structures (lists, etc.).
2309
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
2312 be performed.")
2313 (license license:expat))))
2314
2315 (define-public go-github-com-kr-text
2316 (let ((commit "e2ffdb16a802fe2bb95e2e35ff34f0e53aeef34f")
2317 (revision "0"))
2318 (package
2319 (name "go-github-com-kr-text")
2320 (version (git-version "0.0.0" revision commit))
2321 (source
2322 (origin
2323 (method git-fetch)
2324 (uri (git-reference
2325 (url
2326 "https://github.com/kr/text")
2327 (commit commit)))
2328 (file-name (git-file-name name version))
2329 (sha256
2330 (base32
2331 "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"))))
2332 (build-system go-build-system)
2333 (arguments
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))))
2340
2341 (define-public go-github-com-michiwend-golang-pretty
2342 (let ((commit "8ac61812ea3fa540f3f141a444fcb0dd713cdca4")
2343 (revision "0"))
2344 (package
2345 (name "go-github-com-michiwend-golang-pretty")
2346 (version (git-version "0.0.0" revision commit))
2347 (source
2348 (origin
2349 (method git-fetch)
2350 (uri (git-reference
2351 (url
2352 "https://github.com/michiwend/golang-pretty")
2353 (commit commit)))
2354 (file-name (git-file-name name version))
2355 (sha256
2356 (base32
2357 "0rjfms0csjqi91xnddzx3rcrcaikc7xc027617px3kdwdap80ir4"))))
2358 (build-system go-build-system)
2359 (native-inputs
2360 `(("go-github-com-kr-text" ,go-github-com-kr-text)))
2361 (arguments
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
2368 in the terminal.
2369
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))))
2374
2375 (define-public go-github-com-michiwend-gomusicbrainz
2376 (let ((commit "0cdeb13f9b24d2c714feb7e3c63d595cf7121d7d")
2377 (revision "0"))
2378 (package
2379 (name "go-github-com-michiwend-gomusicbrainz")
2380 (version (git-version "0.0.0" revision commit))
2381 (source
2382 (origin
2383 (method git-fetch)
2384 (uri (git-reference
2385 (url
2386 "https://github.com/michiwend/gomusicbrainz")
2387 (commit commit)))
2388 (file-name (git-file-name name version))
2389 (sha256
2390 (base32
2391 "1li9daw0kghb80rdmxbh7g72qhxcvx3rvhwq5gs0jrr9hb8pjvcn"))))
2392 (build-system go-build-system)
2393 (native-inputs
2394 `(("go-github-com-michiwend-golang-pretty" ,go-github-com-michiwend-golang-pretty)
2395 ("go-github-com-kr-text" ,go-github-com-kr-text)))
2396 (arguments
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))))
2403
2404 (define-public go-github-com-wtolson-go-taglib
2405 (let ((commit "6e68349ff94ecea412de7e748cb5eaa26f472777")
2406 (revision "0"))
2407 (package
2408 (name "go-github-com-wtolson-go-taglib")
2409 (version (git-version "0.0.0" revision commit))
2410 (source
2411 (origin
2412 (method git-fetch)
2413 (uri (git-reference
2414 (url
2415 "https://github.com/wtolson/go-taglib")
2416 (commit commit)))
2417 (file-name (git-file-name name version))
2418 (sha256
2419 (base32
2420 "1cpjqnrviwflz150g78iir5ndrp3hh7a93zbp4dwbg6sb2q141p2"))))
2421 (build-system go-build-system)
2422 (native-inputs
2423 `(("pkg-config" ,pkg-config)
2424 ("taglib" ,taglib)))
2425 (arguments
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))))
2431
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)))
2435 (package
2436 (name "go-github-com-gogo-protobuf-union")
2437 (version (package-version go-github-com-gogo-protobuf))
2438 (source #f)
2439 (build-system trivial-build-system)
2440 (arguments
2441 '(#:modules ((guix build union))
2442 #:builder (begin
2443 (use-modules (ice-9 match)
2444 (guix build union))
2445 (match %build-inputs
2446 (((names . directories) ...)
2447 (union-build (assoc-ref %outputs "out")
2448 directories)
2449 #t)))))
2450 (inputs (map (lambda (package)
2451 (list (package-name package) package))
2452 packages))
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))))
2457
2458 (define-public go-github-com-gogo-protobuf
2459 (let ((commit "160de10b2537169b5ae3e7e221d28269ef40d311")
2460 (revision "2"))
2461 (package
2462 (name "go-github-com-gogo-protobuf")
2463 (version (git-version "0.5" revision commit))
2464 (source (origin
2465 (method git-fetch)
2466 (uri (git-reference
2467 (url "https://github.com/gogo/protobuf")
2468 (commit commit)))
2469 (file-name (git-file-name name version))
2470 (sha256
2471 (base32
2472 "0hxq28sgxym04rv0q40gpwkh4ni359q21hq3g78wwxwx4qfd4zwm"))))
2473 (build-system go-build-system)
2474 (arguments
2475 `(#:import-path "github.com/gogo/protobuf/proto"
2476 #:unpack-path "github.com/gogo/protobuf"))
2477 (propagated-inputs
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:
2483 @itemize
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
2490 @end itemize")
2491 (home-page "https://github.com/gogo/protobuf")
2492 (license license:bsd-3))))
2493
2494 (define-public go-github-com-gogo-protobuf-protoc-gen-gogo
2495 (let ((commit "efccd33a0c20aa078705571d5ddbfa14c8395a63")
2496 (revision "0"))
2497 (package
2498 (name "go-github-com-gogo-protobuf-protoc-gen-gogo")
2499 (version (git-version "0.2" revision commit))
2500 (source (origin
2501 (method git-fetch)
2502 (uri (git-reference
2503 (url "https://github.com/gogo/protobuf")
2504 (commit commit)))
2505 (file-name (git-file-name name version))
2506 (sha256
2507 (base32
2508 "09kfa3aqmhh7p0rc6wd4fw5cjccidsk9vgcy13albv0g8vnbmmgw"))))
2509 (build-system go-build-system)
2510 (arguments
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:
2516 @itemize
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
2523 @end itemize")
2524 (home-page "https://github.com/gogo/protobuf")
2525 (license license:bsd-3))))
2526
2527 (define-public go-github-com-gogo-protobuf-proto
2528 (let ((commit
2529 "fd322a3c49630fe6d05737e2b7d9426e6680e28d")
2530 (revision "0"))
2531 (package
2532 (name "go-github-com-gogo-protobuf-proto")
2533 (version (git-version "0.0.0" revision commit))
2534 (source
2535 (origin
2536 (method git-fetch)
2537 (uri (git-reference
2538 (url "https://github.com/gogo/protobuf.git")
2539 (commit commit)))
2540 (file-name (git-file-name name version))
2541 (sha256
2542 (base32
2543 "1zi85584dy91hyrwpanygz1pppi0chn3hzzv128i83i6j45a5fp9"))))
2544 (build-system go-build-system)
2545 (arguments
2546 '(#:unpack-path "github.com/gogo/protobuf"
2547 #:import-path "github.com/gogo/protobuf/proto"))
2548 (native-inputs `())
2549 (home-page "https://github.com/gogo/protobuf")
2550 (synopsis "XXX")
2551 (description "XXX")
2552 (license license:expat))))
2553
2554 (define-public go-github-com-libp2p-go-flow-metrics
2555 (let ((commit "7e5a55af485341567f98d6847a373eb5ddcdcd43")
2556 (revision "0"))
2557 (package
2558 (name "go-github-com-libp2p-go-flow-metrics")
2559 (version (git-version "0.2.0" revision commit))
2560 (source
2561 (origin
2562 (method git-fetch)
2563 (uri (git-reference
2564 (url "https://github.com/libp2p/go-flow-metrics.git")
2565 (commit commit)))
2566 (file-name (git-file-name name version))
2567 (sha256
2568 (base32
2569 "1p87iyk6q6f3g3xkncssx400qlld8f2z93qiz8m1f97grfyhjif1"))))
2570 (build-system go-build-system)
2571 (arguments
2572 `(#:import-path "github.com/libp2p/go-flow-metrics"
2573 ;; TODO: Tests hang.
2574 #:tests? #f))
2575 (home-page
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))))
2581
2582 (define-public go-github-com-davecgh-go-spew
2583 (let ((commit "d8f796af33cc11cb798c1aaeb27a4ebc5099927d")
2584 (revision "0"))
2585 (package
2586 (name "go-github-com-davecgh-go-spew")
2587 (version (git-version "0.0.0" revision commit))
2588 (source
2589 (origin
2590 (method git-fetch)
2591 (uri (git-reference
2592 (url "https://github.com/davecgh/go-spew.git")
2593 (commit commit)))
2594 (file-name (git-file-name name version))
2595 (sha256
2596 (base32
2597 "19z27f306fpsrjdvkzd61w1bdazcdbczjyjck177g33iklinhpvx"))))
2598 (build-system go-build-system)
2599 (arguments
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.
2606
2607 A quick overview of the additional features spew provides over the built-in printing facilities for Go data types are as follows:
2608
2609 @itemize
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
2613 unexported types.
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
2618 style).
2619 @end itemize\n")
2620 (license license:isc))))
2621
2622 (define-public go-github-com-btcsuite-btclog
2623 (let ((commit "84c8d2346e9fc8c7b947e243b9c24e6df9fd206a")
2624 (revision "0"))
2625 (package
2626 (name "go-github-com-btcsuite-btclog")
2627 (version (git-version "0.0.3" revision commit))
2628 (source
2629 (origin
2630 (method git-fetch)
2631 (uri (git-reference
2632 (url "https://github.com/btcsuite/btclog.git")
2633 (commit commit)))
2634 (file-name (git-file-name name version))
2635 (sha256
2636 (base32
2637 "02dl46wcnfpg9sqvg0ipipkpnd7lrf4fnvb9zy56jqa7mfcwc7wk"))))
2638 (build-system go-build-system)
2639 (arguments
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))))
2647
2648 (define-public go-github-com-btcsuite-btcd-btcec
2649 (let ((commit "67e573d211ace594f1366b4ce9d39726c4b19bd0")
2650 (revision "0"))
2651 (package
2652 (name "go-github-com-btcsuite-btcd-btcec")
2653 (version (git-version "0.12.0-beta" revision commit))
2654 (source
2655 (origin
2656 (method git-fetch)
2657 (uri (git-reference
2658 (url "https://github.com/btcsuite/btcd.git")
2659 (commit commit)))
2660 (file-name (git-file-name name version))
2661 (sha256
2662 (base32
2663 "04s92gsy71w1jirlr5lkk9y6r5cparbas7nmf6ywbp7kq7fn8ajn"))))
2664 (build-system go-build-system)
2665 (arguments
2666 '(#:unpack-path "github.com/btcsuite/btcd"
2667 #:import-path "github.com/btcsuite/btcd/btcec"))
2668 (native-inputs
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.
2680
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))))
2685
2686 (define-public go-github-com-minio-sha256-simd
2687 (let ((commit "51976451ce1942acbb55707a983ed232fa027110")
2688 (revision "0"))
2689 (package
2690 (name "go-github-com-minio-sha256-simd")
2691 (version (git-version "0.0.0" revision commit))
2692 (source
2693 (origin
2694 (method git-fetch)
2695 (uri (git-reference
2696 (url "https://github.com/minio/sha256-simd.git")
2697 (commit commit)))
2698 (file-name (git-file-name name version))
2699 (sha256
2700 (base32
2701 "0kaxvpidf6ygkkb06vi95pirll31jnmywhyalfjvf7djhim2wr8f"))))
2702 (build-system go-build-system)
2703 (arguments
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.
2710
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.
2715
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))))
2721
2722 (define-public go-github-com-libp2p-go-libp2p-crypto
2723 (let ((commit "7240b40a3ddc47c4d17c15baabcbe45e5219171b")
2724 (revision "0"))
2725 (package
2726 (name "go-github-com-libp2p-go-libp2p-crypto")
2727 (version (git-version "2.0.1" revision commit))
2728 (source
2729 (origin
2730 (method git-fetch)
2731 (uri (git-reference
2732 (url "https://github.com/libp2p/go-libp2p-crypto.git")
2733 (commit commit)))
2734 (file-name (git-file-name name version))
2735 (sha256
2736 (base32
2737 "0qwpy57qv5143l9dlfwfvpqsxdd2i4zwnawx1w4pmgxxim3nw1wb"))))
2738 (build-system go-build-system)
2739 (arguments
2740 '(#:import-path "github.com/libp2p/go-libp2p-crypto"))
2741 (native-inputs
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)))
2746 (home-page
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))))
2751
2752 (define-public go-github-com-mr-tron-base58
2753 (let ((commit "d724c80ecac7b49e4e562d58b2b4f4ee4ed8c312")
2754 (revision "0"))
2755 (package
2756 (name "go-github-com-mr-tron-base58")
2757 (version (git-version "1.1.0" revision commit))
2758 (source
2759 (origin
2760 (method git-fetch)
2761 (uri (git-reference
2762 (url "https://github.com/mr-tron/base58.git")
2763 (commit commit)))
2764 (file-name (git-file-name name version))
2765 (sha256
2766 (base32
2767 "12qhgnn9wf3c1ang16r4i778whk4wsrj7d90h2xgmz4fi1469rqa"))))
2768 (build-system go-build-system)
2769 (arguments
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))))
2778
2779 (define-public go-github-com-gxed-hashland-keccakpg
2780 (let ((commit "d9f6b97f8db22dd1e090fd0bbbe98f09cc7dd0a8")
2781 (revision "0"))
2782 (package
2783 (name "go-github-com-gxed-hashland-keccakpg")
2784 (version (git-version "0.0.0" revision commit))
2785 (source
2786 (origin
2787 (method git-fetch)
2788 (uri (git-reference
2789 (url "https://github.com/gxed/hashland.git")
2790 (commit commit)))
2791 (file-name (git-file-name name version))
2792 (sha256
2793 (base32
2794 "1q23y4lacsz46k9gmgfw4iwwydw36j2601rbidmmswl94grpc386"))))
2795 (build-system go-build-system)
2796 (arguments
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))))
2804
2805 (define-public go-github-com-minio-blake2b-simd
2806 (let ((commit "3f5f724cb5b182a5c278d6d3d55b40e7f8c2efb4")
2807 (revision "0"))
2808 (package
2809 (name "go-github-com-minio-blake2b-simd")
2810 (version (git-version "0.0.0" revision commit))
2811 (source
2812 (origin
2813 (method git-fetch)
2814 (uri (git-reference
2815 (url "https://github.com/minio/blake2b-simd.git")
2816 (commit commit)))
2817 (file-name (git-file-name name version))
2818 (sha256
2819 (base32
2820 "0b6jbnj62c0gmmfd4zdmh8xbg01p80f13yygir9xprqkzk6fikmd"))))
2821 (build-system go-build-system)
2822 (arguments
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.
2831
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))))
2836
2837 (define-public go-github-com-spaolacci-murmur3
2838 (let ((commit "f09979ecbc725b9e6d41a297405f65e7e8804acc")
2839 (revision "0"))
2840 (package
2841 (name "go-github-com-spaolacci-murmur3")
2842 (version (git-version "1.1" revision commit))
2843 (source
2844 (origin
2845 (method git-fetch)
2846 (uri (git-reference
2847 (url "https://github.com/spaolacci/murmur3.git")
2848 (commit commit)))
2849 (file-name (git-file-name name version))
2850 (sha256
2851 (base32
2852 "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25"))))
2853 (build-system go-build-system)
2854 (arguments
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).
2860
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))))
2864
2865 (define-public go-github-com-multiformats-go-multihash
2866 (let ((commit "97cdb562a04c6ef66d8ed40cd62f8fbcddd396d6")
2867 (revision "0"))
2868 (package
2869 (name "go-github-com-multiformats-go-multihash")
2870 (version (git-version "1.0.8" revision commit))
2871 (source
2872 (origin
2873 (method git-fetch)
2874 (uri (git-reference
2875 (url "https://github.com/multiformats/go-multihash.git")
2876 (commit commit)))
2877 (file-name (git-file-name name version))
2878 (sha256
2879 (base32
2880 "02wd9akrwy4y5m0nig9m24p14bjjgb4n1djydrq8cm4yhbvjrrk0"))))
2881 (build-system go-build-system)
2882 (arguments
2883 '(#:import-path "github.com/multiformats/go-multihash"))
2884 (native-inputs
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))))
2895
2896 (define-public go-github-com-libp2p-go-libp2p-peer
2897 (let ((commit "993d742bc29dcf4894b7730ba610fd78900be76c")
2898 (revision "0"))
2899 (package
2900 (name "go-github-com-libp2p-go-libp2p-peer")
2901 (version (git-version "2.3.8" revision commit))
2902 (source
2903 (origin
2904 (method git-fetch)
2905 (uri (git-reference
2906 (url "https://github.com/libp2p/go-libp2p-peer.git")
2907 (commit commit)))
2908 (file-name (git-file-name name version))
2909 (sha256
2910 (base32
2911 "1h96qjdi0i1wbr0jliap2903mycphas3ny0zdrm77yca9plcnphh"))))
2912 (build-system go-build-system)
2913 (arguments
2914 '(#:import-path "github.com/libp2p/go-libp2p-peer"))
2915 (native-inputs
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))))
2930
2931 (define-public go-github-com-libp2p-go-libp2p-protocol
2932 (let ((commit "b29f3d97e3a2fb8b29c5d04290e6cb5c5018004b")
2933 (revision "0"))
2934 (package
2935 (name "go-github-com-libp2p-go-libp2p-protocol")
2936 (version (git-version "1.0.0" revision commit))
2937 (source
2938 (origin
2939 (method git-fetch)
2940 (uri (git-reference
2941 (url "https://github.com/libp2p/go-libp2p-protocol.git")
2942 (commit commit)))
2943 (file-name (git-file-name name version))
2944 (sha256
2945 (base32
2946 "1xgjfnx9zcqglg9li29wdqywsp8hz22wx6phns9zscni2jsfidld"))))
2947 (build-system go-build-system)
2948 (arguments
2949 '(#:import-path
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))))
2955
2956 (define-public go-github-com-libp2p-go-libp2p-metrics
2957 (let ((commit "a10ff6e75dae3c868023867e8caa534a04bdc624")
2958 (revision "0"))
2959 (package
2960 (name "go-github-com-libp2p-go-libp2p-metrics")
2961 (version (git-version "2.1.6" revision commit))
2962 (source
2963 (origin
2964 (method git-fetch)
2965 (uri (git-reference
2966 (url "https://github.com/libp2p/go-libp2p-metrics.git")
2967 (commit commit)))
2968 (file-name (git-file-name name version))
2969 (sha256
2970 (base32
2971 "05wy0cq4h6yg9bzgapcvm2criwriicbswx80ma82gyn4a9fdrk8m"))))
2972 (build-system go-build-system)
2973 (arguments
2974 '(#:import-path "github.com/libp2p/go-libp2p-metrics"))
2975 (native-inputs
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))))
2994
2995 (define-public go-github-com-mitchellh-go-homedir
2996 (let ((commit "ae18d6b8b3205b561c79e8e5f69bff09736185f4")
2997 (revision "0"))
2998 (package
2999 (name "go-github-com-mitchellh-go-homedir")
3000 (version (git-version "1.0.0" revision commit))
3001 (source
3002 (origin
3003 (method git-fetch)
3004 (uri (git-reference
3005 (url "https://github.com/mitchellh/go-homedir.git")
3006 (commit commit)))
3007 (file-name (git-file-name name version))
3008 (sha256
3009 (base32
3010 "0f0z0aa4wivk4z1y503dmnw0k0g0g403dly8i4q263gfshs82sbq"))))
3011 (build-system go-build-system)
3012 (arguments
3013 (quote (#:import-path "github.com/mitchellh/go-homedir"
3014 ;; TODO: Tests fail because it tries to access home.
3015 #:tests? #f)))
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.
3021
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
3024 directory.
3025
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))))
3033
3034 (define-public go-github-com-multiformats-go-multiaddr
3035 (let ((commit "fe1c46f8be5af4aff4db286e08839295bd922efb")
3036 (revision "0"))
3037 (package
3038 (name "go-github-com-multiformats-go-multiaddr")
3039 (version (git-version "1.3.0" revision commit))
3040 (source
3041 (origin
3042 (method git-fetch)
3043 (uri (git-reference
3044 (url "https://github.com/multiformats/go-multiaddr.git")
3045 (commit commit)))
3046 (file-name (git-file-name name version))
3047 (sha256
3048 (base32
3049 "0p5f8h098a4yjjmzsgqs7vhx1iqifb8izwg3559cr4h7clkpzznh"))))
3050 (build-system go-build-system)
3051 (arguments
3052 '(#:import-path
3053 "github.com/multiformats/go-multiaddr"))
3054 (native-inputs
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
3065 does the following:
3066
3067 @itemize
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.
3073 @end itemize\n")
3074 (license license:expat))))
3075
3076 (define-public go-github-com-multiformats-go-multiaddr-net
3077 (let ((commit "1cb9a0e8a6de3c8a10f6cee60d01d793603c4f7e")
3078 (revision "0"))
3079 (package
3080 (name "go-github-com-multiformats-go-multiaddr-net")
3081 (version (git-version "1.6.3" revision commit))
3082 (source
3083 (origin
3084 (method git-fetch)
3085 (uri (git-reference
3086 (url "https://github.com/multiformats/go-multiaddr-net.git")
3087 (commit commit)))
3088 (file-name (git-file-name name version))
3089 (sha256
3090 (base32
3091 "1ypgi47xdz3bh8lh7f8cmk7w3ql9g4izx5l3kzdg9gda1xn5zxq3"))))
3092 (build-system go-build-system)
3093 (arguments
3094 (quote (#:import-path "github.com/multiformats/go-multiaddr-net"
3095 ;; TODO: Tests fail because they try to access the network.
3096 #:tests? #f)))
3097 (native-inputs
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))))
3113
3114 (define-public go-github-com-whyrusleeping-tar-utils
3115 (let ((commit "8c6c8ba81d5c71fd69c0f48dbde4b2fb422b6dfc")
3116 (revision "0"))
3117 (package
3118 (name "go-github-com-whyrusleeping-tar-utils")
3119 (version (git-version "0.0.0" revision commit))
3120 (source
3121 (origin
3122 (method git-fetch)
3123 (uri (git-reference
3124 (url "https://github.com/whyrusleeping/tar-utils.git")
3125 (commit commit)))
3126 (file-name (git-file-name name version))
3127 (sha256
3128 (base32
3129 "14jjdw3yics0k467xsyk388684wdpi0bbx8nqj0y4pqxa0s0in6s"))))
3130 (build-system go-build-system)
3131 (arguments
3132 '(#:import-path
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))))
3138
3139 (define-public go-github-com-cheekybits-is
3140 (let ((commit "68e9c0620927fb5427fda3708222d0edee89eae9")
3141 (revision "0"))
3142 (package
3143 (name "go-github-com-cheekybits-is")
3144 (version (git-version "0.0.0" revision commit))
3145 (source
3146 (origin
3147 (method git-fetch)
3148 (uri (git-reference
3149 (url "https://github.com/cheekybits/is.git")
3150 (commit commit)))
3151 (file-name (git-file-name name version))
3152 (sha256
3153 (base32
3154 "1mkbyzhwq3rby832ikq00nxv3jnckxsm3949wkxd8ya9js2jmg4d"))))
3155 (build-system go-build-system)
3156 (arguments
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.
3161
3162 @itemize
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.
3168 @end itemize\n")
3169 (license license:expat))))
3170
3171 (define-public go-github-com-sabhiram-go-gitignore
3172 (let ((commit "d3107576ba9425fc1c85f4b3569c4631b805a02e")
3173 (revision "0"))
3174 (package
3175 (name "go-github-com-sabhiram-go-gitignore")
3176 (version (git-version "1.0.2" revision commit))
3177 (source
3178 (origin
3179 (method git-fetch)
3180 (uri (git-reference
3181 (url "https://github.com/sabhiram/go-gitignore.git")
3182 (commit commit)))
3183 (file-name (git-file-name name version))
3184 (sha256
3185 (base32
3186 "1rdwyxgcsiwgmlqnc3k6h300mzlvjc3j21np4yh1h476wc8dvl0l"))))
3187 (build-system go-build-system)
3188 (arguments
3189 '(#:import-path
3190 "github.com/sabhiram/go-gitignore"))
3191 (native-inputs
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))))
3197
3198 (define-public go-github-com-urfave-cli
3199 (let ((commit "934abfb2f102315b5794e15ebc7949e4ca253920")
3200 (revision "0"))
3201 (package
3202 (name "go-github-com-urfave-cli")
3203 (version (git-version "1.19.1" revision commit))
3204 (source
3205 (origin
3206 (method git-fetch)
3207 (uri (git-reference
3208 (url "https://github.com/urfave/cli.git")
3209 (commit commit)))
3210 (file-name (git-file-name name version))
3211 (sha256
3212 (base32
3213 "0c5r8pgj3k48dfcwj8lw3cxkwkl8vh0fhvz5snfdwd0bcxdqx1yq"))))
3214 (build-system go-build-system)
3215 (arguments
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))))
3223
3224 (define-public go-github-com-whyrusleeping-json-filter
3225 (let ((commit "ff25329a9528f01c5175414f16cc0a6a162a5b8b")
3226 (revision "0"))
3227 (package
3228 (name "go-github-com-whyrusleeping-json-filter")
3229 (version (git-version "0.0.0" revision commit))
3230 (source
3231 (origin
3232 (method git-fetch)
3233 (uri (git-reference
3234 (url "https://github.com/whyrusleeping/json-filter.git")
3235 (commit commit)))
3236 (file-name (git-file-name name version))
3237 (sha256
3238 (base32
3239 "0cai0drvx4c8j686l908vpcsz3mw3vxi3ziz94b0f3c5ylpj07j7"))))
3240 (build-system go-build-system)
3241 (arguments
3242 '(#:import-path
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))))
3249
3250 (define-public go-github-com-whyrusleeping-progmeter
3251 (let ((commit "f3e57218a75b913eff88d49a52c1debf9684ea04")
3252 (revision "0"))
3253 (package
3254 (name "go-github-com-whyrusleeping-progmeter")
3255 (version (git-version "0.0.0" revision commit))
3256 (source
3257 (origin
3258 (method git-fetch)
3259 (uri (git-reference
3260 (url "https://github.com/whyrusleeping/progmeter.git")
3261 (commit commit)))
3262 (file-name (git-file-name name version))
3263 (sha256
3264 (base32
3265 "0xs8rz6yhpvj9512c5v3b8dwr2kivywnyyfxzdfbr6fy1xc8zskb"))))
3266 (build-system go-build-system)
3267 (arguments
3268 '(#:import-path
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))))
3274
3275 (define-public go-github-com-whyrusleeping-stump
3276 (let ((commit "206f8f13aae1697a6fc1f4a55799faf955971fc5")
3277 (revision "0"))
3278 (package
3279 (name "go-github-com-whyrusleeping-stump")
3280 (version (git-version "0.0.0" revision commit))
3281 (source
3282 (origin
3283 (method git-fetch)
3284 (uri (git-reference
3285 (url "https://github.com/whyrusleeping/stump.git")
3286 (commit commit)))
3287 (file-name (git-file-name name version))
3288 (sha256
3289 (base32
3290 "1s40qdppjnk8gijk7x6kbviiqz62nz3h6gic2q9cwcmq8r5isw7n"))))
3291 (build-system go-build-system)
3292 (arguments
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))))
3299
3300 (define-public go-github-com-kr-fs
3301 (let ((commit "1455def202f6e05b95cc7bfc7e8ae67ae5141eba")
3302 (revision "0"))
3303 (package
3304 (name "go-github-com-kr-fs")
3305 (version (git-version "0.1.0" revision commit))
3306 (source
3307 (origin
3308 (method git-fetch)
3309 (uri (git-reference
3310 (url "https://github.com/kr/fs.git")
3311 (commit commit)))
3312 (file-name (git-file-name name version))
3313 (sha256
3314 (base32
3315 "11zg176x9hr9q7fsk95r6q0wf214gg4czy02slax4x56n79g6a7q"))))
3316 (build-system go-build-system)
3317 (arguments
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))))