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