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