gnu: go-github-com-mitchellh-go-homedir: Update version string.
[jackhill/guix/guix.git] / gnu / packages / golang.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 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, 2018, 2019, 2020 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, 2020 Alex Griffin <a@ajgrf.com>
18 ;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
19 ;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
20 ;;;
21 ;;; This file is part of GNU Guix.
22 ;;;
23 ;;; GNU Guix is free software; you can redistribute it and/or modify it
24 ;;; under the terms of the GNU General Public License as published by
25 ;;; the Free Software Foundation; either version 3 of the License, or (at
26 ;;; your option) any later version.
27 ;;;
28 ;;; GNU Guix is distributed in the hope that it will be useful, but
29 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
30 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31 ;;; GNU General Public License for more details.
32 ;;;
33 ;;; You should have received a copy of the GNU General Public License
34 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
35
36 (define-module (gnu packages golang)
37 #:use-module ((guix licenses) #:prefix license:)
38 #:use-module (guix utils)
39 #:use-module (guix download)
40 #:use-module (guix git-download)
41 #:use-module (guix packages)
42 #:use-module (guix build-system gnu)
43 #:use-module (guix build-system trivial)
44 #:use-module (guix build-system go)
45 #:use-module (gnu packages)
46 #:use-module (gnu packages admin)
47 #:use-module (gnu packages gcc)
48 #:use-module (gnu packages base)
49 #:use-module (gnu packages perl)
50 #:use-module (gnu packages pkg-config)
51 #:use-module (gnu packages pcre)
52 #:use-module (gnu packages lua)
53 #:use-module (gnu packages mp3)
54 #:use-module (gnu packages textutils)
55 #:use-module (gnu packages tls)
56 #:use-module (ice-9 match)
57 #:use-module (srfi srfi-1))
58
59 ;; According to https://golang.org/doc/install/gccgo, gccgo-4.8.2 includes a
60 ;; complete go-1.1.2 implementation, gccgo-4.9 includes a complete go-1.2
61 ;; implementation, and gccgo-5 a complete implementation of go-1.4. Ultimately
62 ;; we hope to build go-1.5+ with a bootstrap process using gccgo-5. As of
63 ;; go-1.5, go cannot be bootstrapped without go-1.4, so we need to use go-1.4 or
64 ;; gccgo-5. Mips is not officially supported, but it should work if it is
65 ;; bootstrapped.
66
67 (define-public go-1.4
68 (package
69 (name "go")
70 ;; The C-language bootstrap of Go:
71 ;; https://golang.org/doc/install/source#go14
72 (version "1.4-bootstrap-20171003")
73 (source (origin
74 (method url-fetch)
75 (uri (string-append "https://storage.googleapis.com/golang/"
76 name version ".tar.gz"))
77 (sha256
78 (base32
79 "0liybk5z00hizsb5ypkbhqcawnwwa6mkwgvjjg4y3jm3ndg5pzzl"))))
80 (build-system gnu-build-system)
81 (outputs '("out"
82 "doc"
83 "tests"))
84 (arguments
85 `(#:modules ((ice-9 match)
86 (guix build gnu-build-system)
87 (guix build utils)
88 (srfi srfi-1))
89 #:tests? #f ; Tests are run by the all.bash script.
90 ,@(if (string-prefix? "aarch64-linux" (or (%current-system)
91 (%current-target-system)))
92 '(#:system "armhf-linux")
93 '())
94 #:phases
95 (modify-phases %standard-phases
96 (delete 'configure)
97 (add-after 'patch-generated-file-shebangs 'chdir
98 (lambda _
99 (chdir "src")
100 #t))
101 (add-before 'build 'prebuild
102 (lambda* (#:key inputs outputs #:allow-other-keys)
103 (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
104 (ld (string-append (assoc-ref inputs "libc") "/lib"))
105 (loader (car (find-files ld "^ld-linux.+")))
106 (net-base (assoc-ref inputs "net-base"))
107 (tzdata-path
108 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
109 (output (assoc-ref outputs "out")))
110
111 ;; Removing net/ tests, which fail when attempting to access
112 ;; network resources not present in the build container.
113 (for-each delete-file
114 '("net/multicast_test.go" "net/parse_test.go"
115 "net/port_test.go"))
116
117 ;; Add libgcc to the RUNPATH.
118 (substitute* "cmd/go/build.go"
119 (("cgoldflags := \\[\\]string\\{\\}")
120 (string-append "cgoldflags := []string{"
121 "\"-rpath=" gcclib "\"}"))
122 (("ldflags := buildLdflags")
123 (string-append
124 "ldflags := buildLdflags\n"
125 "ldflags = append(ldflags, \"-r\")\n"
126 "ldflags = append(ldflags, \"" gcclib "\")\n")))
127
128 (substitute* "os/os_test.go"
129 (("/usr/bin") (getcwd))
130 (("/bin/pwd") (which "pwd")))
131
132 ;; Disable failing tests: these tests attempt to access
133 ;; commands or network resources which are neither available or
134 ;; necessary for the build to succeed.
135 (for-each
136 (match-lambda
137 ((file regex)
138 (substitute* file
139 ((regex all before test_name)
140 (string-append before "Disabled" test_name)))))
141 '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
142 ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
143 ("os/os_test.go" "(.+)(TestHostname.+)")
144 ("time/format_test.go" "(.+)(TestParseInSydney.+)")
145
146 ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
147 ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
148 ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
149 ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
150 ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
151 ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
152 ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
153 ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
154 ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")))
155
156 (substitute* "net/lookup_unix.go"
157 (("/etc/protocols") (string-append net-base "/etc/protocols")))
158 (substitute* "time/zoneinfo_unix.go"
159 (("/usr/share/zoneinfo/") tzdata-path))
160 (substitute* (find-files "cmd" "asm.c")
161 (("/lib/ld-linux.*\\.so\\.[0-9]") loader))
162 #t)))
163
164 (replace 'build
165 (lambda* (#:key inputs outputs #:allow-other-keys)
166 ;; FIXME: Some of the .a files are not bit-reproducible.
167 (let* ((output (assoc-ref outputs "out")))
168 (setenv "CC" (which "gcc"))
169 (setenv "GOOS" "linux")
170 (setenv "GOROOT" (dirname (getcwd)))
171 (setenv "GOROOT_FINAL" output)
172 (setenv "GO14TESTS" "1")
173 (invoke "sh" "all.bash"))))
174
175 (replace 'install
176 (lambda* (#:key outputs inputs #:allow-other-keys)
177 (let* ((output (assoc-ref outputs "out"))
178 (doc_out (assoc-ref outputs "doc"))
179 (bash (string-append (assoc-ref inputs "bash") "bin/bash"))
180 (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
181 (tests (string-append
182 (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
183 (mkdir-p tests)
184 (copy-recursively "../test" (string-append tests "/test"))
185 (delete-file-recursively "../test")
186 (mkdir-p docs)
187 (copy-recursively "../api" (string-append docs "/api"))
188 (delete-file-recursively "../api")
189 (copy-recursively "../doc" (string-append docs "/doc"))
190 (delete-file-recursively "../doc")
191
192 (for-each (lambda (file)
193 (let ((file (string-append "../" file)))
194 (install-file file docs)
195 (delete-file file)))
196 '("README" "CONTRIBUTORS" "AUTHORS" "PATENTS"
197 "LICENSE" "VERSION" "robots.txt"))
198 (copy-recursively "../" output)
199 #t))))))
200 (inputs
201 `(("tzdata" ,tzdata)
202 ("pcre" ,pcre)
203 ("gcc:lib" ,gcc "lib")))
204 (native-inputs
205 `(("pkg-config" ,pkg-config)
206 ("which" ,which)
207 ("net-base" ,net-base)
208 ("perl" ,perl)))
209
210 (home-page "https://golang.org/")
211 (synopsis "Compiler and libraries for Go, a statically-typed language")
212 (description "Go, also commonly referred to as golang, is an imperative
213 programming language designed primarily for systems programming. Go is a
214 compiled, statically typed language in the tradition of C and C++, but adds
215 garbage collection, various safety features, and concurrent programming features
216 in the style of communicating sequential processes (@dfn{CSP}).")
217 (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux"))
218 (license license:bsd-3)))
219
220 (define-public go-1.13
221 (package
222 (inherit go-1.4)
223 (name "go")
224 (version "1.13.9")
225 (source
226 (origin
227 (method url-fetch)
228 (uri (string-append "https://storage.googleapis.com/golang/"
229 name version ".src.tar.gz"))
230 (sha256
231 (base32
232 "07gksk9194wa90xyd6yhagxfv7syvsx29bh8ypc4mg700vc1kfrl"))))
233 (arguments
234 (substitute-keyword-arguments (package-arguments go-1.4)
235 ((#:phases phases)
236 `(modify-phases ,phases
237 (replace 'prebuild
238 (lambda* (#:key inputs outputs #:allow-other-keys)
239 (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
240 (ld (string-append (assoc-ref inputs "libc") "/lib"))
241 (loader (car (find-files ld "^ld-linux.+")))
242 (net-base (assoc-ref inputs "net-base"))
243 (tzdata-path
244 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
245 (output (assoc-ref outputs "out")))
246
247 ;; Having the patch in the 'patches' field of <origin> breaks
248 ;; the 'TestServeContent' test due to the fact that
249 ;; timestamps are reset. Thus, apply it from here.
250 (invoke "patch" "-p2" "--force" "-i"
251 (assoc-ref inputs "go-skip-gc-test.patch"))
252
253 ;; A side effect of these test scripts is testing
254 ;; cgo. Attempts at using cgo flags and directives with these
255 ;; scripts as specified here (https://golang.org/cmd/cgo/)
256 ;; have not worked. The tests continue to state that they can
257 ;; not find object files/headers despite being present.
258 (for-each
259 delete-file
260 '("cmd/go/testdata/script/mod_case_cgo.txt"
261 "cmd/go/testdata/script/list_find.txt"
262 "cmd/go/testdata/script/list_compiled_imports.txt"
263 "cmd/go/testdata/script/cgo_syso_issue29253.txt"))
264
265 (substitute* "os/os_test.go"
266 (("/usr/bin") (getcwd))
267 (("/bin/pwd") (which "pwd"))
268 (("/bin/sh") (which "sh")))
269
270 ;; Add libgcc to runpath
271 (substitute* "cmd/link/internal/ld/lib.go"
272 (("!rpath.set") "true"))
273 (substitute* "cmd/go/internal/work/gccgo.go"
274 (("cgoldflags := \\[\\]string\\{\\}")
275 (string-append "cgoldflags := []string{"
276 "\"-rpath=" gcclib "\""
277 "}"))
278 (("\"-lgcc_s\", ")
279 (string-append
280 "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
281 (substitute* "cmd/go/internal/work/gc.go"
282 (("ldflags = setextld\\(ldflags, compiler\\)")
283 (string-append
284 "ldflags = setextld(ldflags, compiler)\n"
285 "ldflags = append(ldflags, \"-r\")\n"
286 "ldflags = append(ldflags, \"" gcclib "\")\n")))
287
288 ;; Disable failing tests: these tests attempt to access
289 ;; commands or network resources which are neither available
290 ;; nor necessary for the build to succeed.
291 (for-each
292 (match-lambda
293 ((file regex)
294 (substitute* file
295 ((regex all before test_name)
296 (string-append before "Disabled" test_name)))))
297 '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
298 ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
299 ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPort.+)")
300 ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPortWithCancel.+)")
301 ;; 127.0.0.1 doesn't exist
302 ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPTR.+)")
303 ;; 127.0.0.1 doesn't exist
304 ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPTRWithCancel.+)")
305 ;; /etc/services doesn't exist
306 ("net/parse_test.go" "(.+)(TestReadLine.+)")
307 ("os/os_test.go" "(.+)(TestHostname.+)")
308 ;; The user's directory doesn't exist
309 ("os/os_test.go" "(.+)(TestUserHomeDir.+)")
310 ("time/format_test.go" "(.+)(TestParseInSydney.+)")
311 ("time/format_test.go" "(.+)(TestParseInLocation.+)")
312 ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
313 ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
314 ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
315 ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
316 ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
317 ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
318 ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
319 ("os/exec/exec_test.go" "(.+)(TestIgnorePipeErrorOnSuccess.+)")
320 ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
321 ("os/exec/exec_test.go" "(.+)(TestExtraFiles/areturn.+)")
322 ("cmd/go/go_test.go" "(.+)(TestCoverageWithCgo.+)")
323 ("cmd/go/go_test.go" "(.+)(TestTwoPkgConfigs.+)")
324 ("os/exec/exec_test.go" "(.+)(TestOutputStderrCapture.+)")
325 ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")
326 ("os/exec/exec_test.go" "(.+)(TestExtraFilesRace.+)")
327 ("net/lookup_test.go" "(.+)(TestLookupPort.+)")
328 ("syscall/exec_linux_test.go"
329 "(.+)(TestCloneNEWUSERAndRemapNoRootDisableSetgroups.+)")))
330
331 ;; fix shebang for testar script
332 ;; note the target script is generated at build time.
333 (substitute* "../misc/cgo/testcarchive/carchive_test.go"
334 (("#!/usr/bin/env") (string-append "#!" (which "env"))))
335
336 (substitute* "net/lookup_unix.go"
337 (("/etc/protocols") (string-append net-base "/etc/protocols")))
338 (substitute* "net/port_unix.go"
339 (("/etc/services") (string-append net-base "/etc/services")))
340 (substitute* "time/zoneinfo_unix.go"
341 (("/usr/share/zoneinfo/") tzdata-path))
342 (substitute* (find-files "cmd" "\\.go")
343 (("/lib(64)?/ld-linux.*\\.so\\.[0-9]") loader))
344 #t)))
345 (add-before 'build 'set-bootstrap-variables
346 (lambda* (#:key outputs inputs #:allow-other-keys)
347 ;; Tell the build system where to find the bootstrap Go.
348 (let ((go (assoc-ref inputs "go")))
349 (setenv "GOROOT_BOOTSTRAP" go)
350 (setenv "GOGC" "400")
351 #t)))
352 (replace 'build
353 (lambda* (#:key inputs outputs #:allow-other-keys)
354 ;; FIXME: Some of the .a files are not bit-reproducible.
355 (let* ((output (assoc-ref outputs "out")))
356 (setenv "CC" (which "gcc"))
357 (setenv "GOOS" "linux")
358 (setenv "GOROOT" (dirname (getcwd)))
359 (setenv "GOROOT_FINAL" output)
360 (setenv "CGO_ENABLED" "1")
361 (invoke "sh" "all.bash"))))
362
363 (replace 'install
364 ;; TODO: Most of this could be factorized with Go 1.4.
365 (lambda* (#:key outputs #:allow-other-keys)
366 (let* ((output (assoc-ref outputs "out"))
367 (doc_out (assoc-ref outputs "doc"))
368 (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
369 (src (string-append
370 (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
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.13)
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 "2aa609cf4a9d7d1126360de73b55b6002f9e052a")
627 (revision "5"))
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 "1yvis6fqbsd7f356aqyi18f76vnwj3bry6mxqnkvshq4cwrf92il"))))
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 "ba9fcec4b297b415637633c5a6e8fa592e4a16c3")
669 (revision "4"))
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 "1hbqvy6r0s5h0dpdqw8fynl3cq0acin3iyqki9xvl5r8h33yb9bx"))))
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-image
696 (let ((commit "58c23975cae11f062d4b3b0c143fe248faac195d")
697 (revision "1"))
698 (package
699 (name "go-golang-org-x-image")
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/image")
705 (commit commit)))
706 (file-name (string-append "go.googlesource.com-image-"
707 version "-checkout"))
708 (sha256
709 (base32
710 "0i2p2girc1sfcic6xs6vrq0fp3szfx057xppksb67kliywjjrm5x"))))
711 (build-system go-build-system)
712 (arguments
713 `(#:import-path "golang.org/x/image"
714 ; Source-only package
715 #:tests? #f
716 #:phases
717 (modify-phases %standard-phases
718 (delete 'build))))
719 (home-page "https://go.googlesource.com/image")
720 (synopsis "Supplemental Go image libraries")
721 (description "This package provides supplemental Go libraries for image
722 processing.")
723 (license license:bsd-3))))
724
725 (define-public go-golang-org-x-sys
726 (let ((commit "c709ea063b76879dc9915358f55d4d77c16ab6d5")
727 (revision "6"))
728 (package
729 (name "go-golang-org-x-sys")
730 (version (git-version "0.0.0" revision commit))
731 (source (origin
732 (method git-fetch)
733 (uri (git-reference
734 (url "https://go.googlesource.com/sys")
735 (commit commit)))
736 (file-name (git-file-name name version))
737 (sha256
738 (base32
739 "15nq53a6kcqchng4j0d1pjw0m6hny6126nhjdwqw5n9dzh6a226d"))))
740 (build-system go-build-system)
741 (arguments
742 `(#:import-path "golang.org/x/sys"
743 ;; Source-only package
744 #:tests? #f
745 #:phases
746 (modify-phases %standard-phases
747 (delete 'build))))
748 (synopsis "Go support for low-level system interaction")
749 (description "This package provides supplemental libraries offering Go
750 support for low-level interaction with the operating system.")
751 (home-page "https://go.googlesource.com/sys")
752 (license license:bsd-3))))
753
754 (define-public go-golang-org-x-text
755 (package
756 (name "go-golang-org-x-text")
757 (version "0.3.2")
758 (source (origin
759 (method git-fetch)
760 (uri (git-reference
761 (url "https://go.googlesource.com/text")
762 (commit (string-append "v" version))))
763 (file-name (string-append "go.googlesource.com-text-"
764 version "-checkout"))
765 (sha256
766 (base32
767 "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"))))
768 (build-system go-build-system)
769 (arguments
770 `(#:import-path "golang.org/x/text"
771 ; Source-only package
772 #:tests? #f
773 #:phases
774 (modify-phases %standard-phases
775 (delete 'build))))
776 (synopsis "Supplemental Go text processing libraries")
777 (description "This package provides supplemental Go libraries for text
778 processing.")
779 (home-page "https://go.googlesource.com/text")
780 (license license:bsd-3)))
781
782 (define-public go-golang-org-x-time
783 (let ((commit "9d24e82272b4f38b78bc8cff74fa936d31ccd8ef")
784 (revision "2"))
785 (package
786 (name "go-golang-org-x-time")
787 (version (git-version "0.0.0" revision commit))
788 (source (origin
789 (method git-fetch)
790 (uri (git-reference
791 (url "https://go.googlesource.com/time")
792 (commit commit)))
793 (file-name (git-file-name name version))
794 (sha256
795 (base32
796 "1f5nkr4vys2vbd8wrwyiq2f5wcaahhpxmia85d1gshcbqjqf8dkb"))))
797 (build-system go-build-system)
798 (arguments
799 `(#:import-path "golang.org/x/time"
800 ; Source-only package
801 #:tests? #f
802 #:phases
803 (modify-phases %standard-phases
804 (delete 'build))))
805 ; (propagated-inputs
806 ; `(("go-golang-org-x-net" ,go-golang-org-x-net)))
807 (synopsis "Supplemental Go time libraries")
808 (description "This package provides supplemental Go libraries related to
809 time.")
810 (home-page "https://godoc.org/golang.org/x/time/rate")
811 (license license:bsd-3))))
812
813 (define-public go-github-com-burntsushi-toml
814 (package
815 (name "go-github-com-burntsushi-toml")
816 (version "0.3.1")
817 (source
818 (origin
819 (method git-fetch)
820 (uri (git-reference
821 (url "https://github.com/BurntSushi/toml.git")
822 (commit (string-append "v" version))))
823 (file-name (git-file-name name version))
824 (sha256
825 (base32
826 "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6"))))
827 (build-system go-build-system)
828 (arguments
829 '(#:import-path "github.com/BurntSushi/toml"))
830 (home-page "https://github.com/BurntSushi/toml")
831 (synopsis "Toml parser and encoder for Go")
832 (description "This package is toml parser and encoder for Go. The interface
833 is similar to Go's standard library @code{json} and @code{xml} package.")
834 (license license:expat)))
835
836 (define-public go-github-com-getsentry-raven-go
837 (let ((commit "5c24d5110e0e198d9ae16f1f3465366085001d92")
838 (revision "0"))
839 (package
840 (name "go-github-com-getsentry-raven-go")
841 (version (git-version "0.2.0" revision commit))
842 (source
843 (origin
844 (method git-fetch)
845 (uri (git-reference
846 (url "https://github.com/getsentry/raven-go.git")
847 (commit commit)))
848 (file-name (git-file-name name version))
849 (sha256
850 (base32
851 "0lvc376sq8r8jhy2v1m6rf1wyld61pvbk0x6j9xpg56ivqy69xs7"))))
852 (build-system go-build-system)
853 (arguments
854 '(#:import-path "github.com/getsentry/raven-go"))
855 (propagated-inputs
856 `(("go-github-com-certifi-gocertifi" ,go-github-com-certifi-gocertifi)
857 ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)))
858 (home-page "https://github.com/getsentry/raven-go")
859 (synopsis "Sentry client in Go")
860 (description "This package is a Go client API for the Sentry event/error
861 logging system.")
862 (license license:bsd-3))))
863
864 (define-public go-github-com-hashicorp-go-version
865 (let ((commit
866 "03c5bf6be031b6dd45afec16b1cf94fc8938bc77")
867 (revision "0"))
868 (package
869 (name "go-github-com-hashicorp-go-version")
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/hashicorp/go-version.git")
876 (commit commit)))
877 (file-name (git-file-name name version))
878 (sha256
879 (base32
880 "0sjq57gpfznaqdrbyb2p0bn90g9h661cvr0jrk6ngags4pbw14ik"))))
881 (build-system go-build-system)
882 (arguments
883 '(#:import-path "github.com/hashicorp/go-version"))
884 (home-page
885 "https://github.com/hashicorp/go-version")
886 (synopsis "Go library for parsing and verifying versions and version
887 constraints")
888 (description "This package is a library for parsing versions and version
889 constraints, and verifying versions against a set of constraints. It can sort
890 a collection of versions properly, handles prerelease/beta versions, can
891 increment versions.")
892 (license license:mpl2.0))))
893
894 (define-public go-github-com-jpillora-backoff
895 (let ((commit
896 "06c7a16c845dc8e0bf575fafeeca0f5462f5eb4d")
897 (revision "0"))
898 (package
899 (name "go-github-com-jpillora-backoff")
900 (version (git-version "0.0.0" revision commit))
901 (source
902 (origin
903 (method git-fetch)
904 (uri (git-reference
905 (url "https://github.com/jpillora/backoff.git")
906 (commit commit)))
907 (file-name (git-file-name name version))
908 (sha256
909 (base32
910 "0xhvxr7bm47czdc5hy3kl508z3y4j91i2jm7vg774i52zych6k4l"))))
911 (build-system go-build-system)
912 (arguments
913 '(#:import-path "github.com/jpillora/backoff"))
914 (home-page "https://github.com/jpillora/backoff")
915 (synopsis "Simple exponential backoff counter in Go")
916 (description "This package is a simple exponential backoff counter in
917 Go.")
918 (license license:expat))))
919
920 (define-public go-github-com-stretchr-testify
921 (let ((commit
922 "b1f989447a57594c728884458a39abf3a73447f7")
923 (revision "0"))
924 (package
925 (name "go-github-com-stretchr-testify")
926 (version (git-version "1.1.4" revision commit))
927 (source
928 (origin
929 (method git-fetch)
930 (uri (git-reference
931 (url "https://github.com/stretchr/testify.git")
932 (commit commit)))
933 (file-name (git-file-name name version))
934 (sha256
935 (base32
936 "0p0gkqzh2p8r5g0rxm885ljl7ghih7h7hx9w562imx5ka0vdgixv"))))
937 (build-system go-build-system)
938 (arguments
939 '(#:import-path "github.com/stretchr/testify"))
940 (home-page "https://github.com/stretchr/testify")
941 (synopsis "Go helper library for tests and invariant checking")
942 (description "This package provide many tools for testifying that your
943 code will behave as you intend.
944
945 Features include:
946 @itemize
947 @item Easy assertions
948 @item Mocking
949 @item HTTP response trapping
950 @item Testing suite interfaces and functions.
951 @end itemize")
952 (license license:expat))))
953
954 (define-public go-github-com-tevino-abool
955 (let ((commit
956 "3c25f2fe7cd0ef3eabefce1d90efd69a65d35b12")
957 (revision "0"))
958 (package
959 (name "go-github-com-tevino-abool")
960 (version (git-version "0.0.0" revision commit))
961 (source
962 (origin
963 (method git-fetch)
964 (uri (git-reference
965 (url "https://github.com/tevino/abool.git")
966 (commit commit)))
967 (file-name (git-file-name name version))
968 (sha256
969 (base32
970 "1wxqrclxk93q0aj15z596dx2y57x9nkhi64nbrr5cxnhxn8vwixm"))))
971 (build-system go-build-system)
972 (arguments
973 '(#:import-path "github.com/tevino/abool"))
974 (home-page "https://github.com/tevino/abool")
975 (synopsis "Atomic boolean library for Go code")
976 (description "This package is atomic boolean library for Go code,
977 optimized for performance yet simple to use.")
978 (license license:expat))))
979
980 (define-public go-github-com-blang-semver
981 (package
982 (name "go-github-com-blang-semver")
983 (version "4.0.0")
984 (source
985 (origin
986 (method git-fetch)
987 (uri (git-reference
988 (url "https://github.com/blang/semver.git")
989 (commit (string-append "v" version))))
990 (file-name (git-file-name name version))
991 (sha256
992 (base32
993 "14h9ys4n4kx9cbj42lkdf4i5k3nkll6sd62jcvl7cs565v6fiknz"))))
994 (build-system go-build-system)
995 (arguments
996 '(#:import-path "github.com/blang/semver"))
997 (home-page "https://github.com/blang/semver")
998 (synopsis "Semantic versioning library written in Go")
999 (description "Semver is a library for Semantic versioning written in Go.")
1000 (license license:expat)))
1001
1002 (define-public go-github-com-emicklei-go-restful
1003 (let ((commit "89ef8af493ab468a45a42bb0d89a06fccdd2fb22")
1004 (revision "0"))
1005 (package
1006 (name "go-github-com-emicklei-go-restful")
1007 (version (git-version "0.0.0" revision commit))
1008 (source
1009 (origin
1010 (method git-fetch)
1011 (uri (git-reference
1012 (url "https://github.com/emicklei/go-restful.git")
1013 (commit commit)))
1014 (file-name (git-file-name name version))
1015 (sha256
1016 (base32
1017 "0rrlfcfq80fkxifpih6bq31vavb5mf4530xz51pp9pq1mn2fzjfh"))))
1018 (build-system go-build-system)
1019 (arguments
1020 '(#:import-path "github.com/emicklei/go-restful"))
1021 (home-page "https://github.com/emicklei/go-restful")
1022 (synopsis "Build REST-style web services using Go")
1023 (description "This package provides @code{go-restful}, which helps
1024 developers to use @code{http} methods explicitly and in a way that's consistent
1025 with the HTTP protocol definition.")
1026 (license license:expat))))
1027
1028 (define-public go-github-com-google-cadvisor
1029 (let ((commit "2ed7198f77395ee9a172878a0a7ab92ab59a2cfd")
1030 (revision "0"))
1031 (package
1032 (name "go-github-com-google-cadvisor")
1033 (version (git-version "0.0.0" revision commit))
1034 (source
1035 (origin
1036 (method git-fetch)
1037 (uri (git-reference
1038 (url "https://github.com/google/cadvisor.git")
1039 (commit commit)))
1040 (file-name (git-file-name name version))
1041 (sha256
1042 (base32
1043 "1w8p345z5j0gk3yiq5ah0znd5lfh348p2s624k5r10drz04p3f55"))))
1044 (build-system go-build-system)
1045 (arguments
1046 '(#:import-path "github.com/google/cadvisor"))
1047 (home-page "https://github.com/google/cadvisor")
1048 (synopsis "Analyze resource usage of running containers")
1049 (description "The package provides @code{cadvisor}, which provides
1050 information about the resource usage and performance characteristics of running
1051 containers.")
1052 (license license:asl2.0))))
1053
1054 (define-public go-github-com-google-gofuzz
1055 (let ((commit "fd52762d25a41827db7ef64c43756fd4b9f7e382")
1056 (revision "0"))
1057 (package
1058 (name "go-github-com-google-gofuzz")
1059 (version (git-version "0.0.0" revision commit))
1060 (source
1061 (origin
1062 (method git-fetch)
1063 (uri (git-reference
1064 (url "https://github.com/google/gofuzz.git")
1065 (commit commit)))
1066 (file-name (git-file-name name version))
1067 (sha256
1068 (base32
1069 "1yxmmr73h0lq7ryf3q9a7pcm2x5xrg4d5bxkq8n5pxwxwyq26kw8"))))
1070 (build-system go-build-system)
1071 (arguments
1072 '(#:import-path "github.com/google/gofuzz"))
1073 (home-page "https://github.com/google/gofuzz")
1074 (synopsis "Fuzz testing library for Go")
1075 (description "Gofuzz is a library for populationg Go objects with random
1076 values for the purpose of fuzz testing.")
1077 (license license:asl2.0))))
1078
1079 (define-public go-github-com-gorilla-context
1080 (let ((commit "08b5f424b9271eedf6f9f0ce86cb9396ed337a42")
1081 (revision "0"))
1082 (package
1083 (name "go-github-com-gorilla-context")
1084 (version (git-version "0.0.0" revision commit))
1085 (source
1086 (origin
1087 (method git-fetch)
1088 (uri (git-reference
1089 (url "https://github.com/gorilla/context.git")
1090 (commit commit)))
1091 (file-name (git-file-name name version))
1092 (sha256
1093 (base32
1094 "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4"))))
1095 (build-system go-build-system)
1096 (arguments
1097 '(#:import-path "github.com/gorilla/context"))
1098 (home-page "https://github.com/gorilla/context")
1099 (synopsis "Go registry for request variables")
1100 (description "This package provides @code{gorilla/context}, which is a general purpose registry for global request variables in the Go programming language.")
1101 (license license:bsd-3))))
1102
1103 (define-public go-github-com-gorilla-mux
1104 (let ((commit "599cba5e7b6137d46ddf58fb1765f5d928e69604")
1105 (revision "0"))
1106 (package
1107 (name "go-github-com-gorilla-mux")
1108 (version (git-version "0.0.0" revision commit))
1109 (source
1110 (origin
1111 (method git-fetch)
1112 (uri (git-reference
1113 (url "https://github.com/gorilla/mux.git")
1114 (commit commit)))
1115 (file-name (git-file-name name version))
1116 (sha256
1117 (base32
1118 "0wd6jjii1kg5s0nk3ri6gqriz6hbd6bbcn6x4jf8n7ncrb8qsxyz"))))
1119 (build-system go-build-system)
1120 (arguments
1121 '(#:import-path "github.com/gorilla/mux"))
1122 (home-page "https://github.com/gorilla/mux")
1123 (synopsis "URL router and dispatcher for Go")
1124 (description
1125 "Gorilla/Mux implements a request router and dispatcher for matching
1126 incoming requests with their respective handler.")
1127 (license license:bsd-3))))
1128
1129 (define-public go-github-com-jonboulle-clockwork
1130 (let ((commit "e3653ace2d63753697e0e5b07b9393971c0bba9d")
1131 (revision "0"))
1132 (package
1133 (name "go-github-com-jonboulle-clockwork")
1134 (version (git-version "0.0.0" revision commit))
1135 (source
1136 (origin
1137 (method git-fetch)
1138 (uri (git-reference
1139 (url "https://github.com/jonboulle/clockwork.git")
1140 (commit commit)))
1141 (file-name (git-file-name name version))
1142 (sha256
1143 (base32
1144 "1avzqhks12a8x2yzpvjsf3k0gv9cy7zx2z88hn0scacnxkphisvc"))))
1145 (build-system go-build-system)
1146 (arguments
1147 '(#:import-path "github.com/jonboulle/clockwork"))
1148 (home-page "https://github.com/jonboulle/clockwork")
1149 (synopsis "Fake clock library for Go")
1150 (description
1151 "Replace uses of the @code{time} package with the
1152 @code{clockwork.Clock} interface instead.")
1153 (license license:asl2.0))))
1154
1155 (define-public go-github-com-spf13-pflag
1156 (package
1157 (name "go-github-com-spf13-pflag")
1158 (version "1.0.5")
1159 (source
1160 (origin
1161 (method git-fetch)
1162 (uri (git-reference
1163 (url "https://github.com/spf13/pflag.git")
1164 (commit (string-append "v" version))))
1165 (file-name (git-file-name name version))
1166 (sha256
1167 (base32
1168 "0gpmacngd0gpslnbkzi263f5ishigzgh6pbdv9hp092rnjl4nd31"))))
1169 (build-system go-build-system)
1170 (arguments
1171 '(#:import-path "github.com/spf13/pflag"))
1172 (home-page "https://github.com/spf13/pflag")
1173 (synopsis "Replacement for Go's @code{flag} package")
1174 (description
1175 "Pflag is library to replace Go's @code{flag} package. It implements
1176 POSIX/GNU-style command-line options with double hyphens. It is is compatible
1177 with the
1178 @uref{https://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html,
1179 GNU extensions} to the POSIX recommendations for command-line options.")
1180 (license license:bsd-3)))
1181
1182 (define-public go-github-com-sirupsen-logrus
1183 (package
1184 (name "go-github-com-sirupsen-logrus")
1185 (version "1.0.5")
1186 (source
1187 (origin
1188 (method git-fetch)
1189 (uri (git-reference
1190 (url "https://github.com/sirupsen/logrus.git")
1191 (commit (string-append "v" version))))
1192 (file-name (git-file-name name version))
1193 (sha256
1194 (base32
1195 "0g5z7al7kky11ai2dhac6gkp3b5pxsvx72yj3xg4wg3265gbn7yz"))))
1196 (build-system go-build-system)
1197 (propagated-inputs
1198 `(("go-golang-org-x-crypto"
1199 ,go-golang-org-x-crypto)
1200 ("go-github-com-stretchr-testify"
1201 ,go-github-com-stretchr-testify)
1202 ("go-golang-org-x-sys" ,go-golang-org-x-sys)))
1203 (arguments
1204 '(#:tests? #f ;FIXME missing dependencies
1205 #:import-path "github.com/sirupsen/logrus"))
1206 (home-page "https://github.com/sirupsen/logrus")
1207 (synopsis "Structured, pluggable logging for Go")
1208 (description "Logrus is a structured logger for Go, completely API
1209 compatible with the standard library logger.")
1210 (license license:expat)))
1211
1212 (define-public go-github-com-rifflock-lfshook
1213 (package
1214 (name "go-github-com-rifflock-lfshook")
1215 (version "2.4")
1216 (source (origin
1217 (method git-fetch)
1218 (uri (git-reference
1219 (url "https://github.com/rifflock/lfshook.git")
1220 (commit (string-append "v" version))))
1221 (file-name (git-file-name name version))
1222 (sha256
1223 (base32
1224 "0wxqjcjfg8c0klmdgmbw3ckagby3wg9rkga9ihd4fsf05x5scxrc"))))
1225 (build-system go-build-system)
1226 (arguments
1227 `(#:import-path "github.com/rifflock/lfshook"))
1228 (propagated-inputs
1229 `(("go-github-com-sirupsen-logrus" ,go-github-com-sirupsen-logrus)))
1230 (home-page "https://github.com/rifflock/lfshook")
1231 (synopsis "Local File System hook for Logrus logger")
1232 (description "This package provides a hook for Logrus to write directly to
1233 a file on the filesystem. The log levels are dynamic at instantiation of the
1234 hook, so it is capable of logging at some or all levels.")
1235 (license license:expat)))
1236
1237 (define-public go-github-com-kardianos-osext
1238 (let ((commit "ae77be60afb1dcacde03767a8c37337fad28ac14")
1239 (revision "1"))
1240 (package
1241 (name "go-github-com-kardianos-osext")
1242 (version (git-version "0.0.0" revision commit))
1243 (source (origin
1244 (method git-fetch)
1245 (uri (git-reference
1246 (url "https://github.com/kardianos/osext")
1247 (commit commit)))
1248 (file-name (git-file-name name version))
1249 (sha256
1250 (base32
1251 "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz"))))
1252 (build-system go-build-system)
1253 (arguments
1254 `(#:import-path "github.com/kardianos/osext"
1255 ;; The tests are flaky:
1256 ;; <https://github.com/kardianos/osext/issues/21>
1257 #:tests? #f))
1258 (synopsis "Find the running executable")
1259 (description "Osext provides a method for finding the current executable
1260 file that is running. This can be used for upgrading the current executable or
1261 finding resources located relative to the executable file.")
1262 (home-page "https://github.com/kardianos/osext")
1263 (license license:bsd-3))))
1264
1265 (define-public go-github-com-ayufan-golang-kardianos-service
1266 (let ((commit "0c8eb6d8fff2e2fb884a7bfd23e183fb63c0eff3")
1267 (revision "0"))
1268 (package
1269 (name "go-github-com-ayufan-golang-kardianos-service")
1270 (version (git-version "0.0.0" revision commit))
1271 (source
1272 (origin
1273 (method git-fetch)
1274 (uri (git-reference
1275 (url
1276 "https://github.com/ayufan/golang-kardianos-service.git")
1277 (commit commit)))
1278 (file-name (git-file-name name version))
1279 (sha256
1280 (base32
1281 "0x0cn7l5gda2khsfypix7adxd5yqighzn04mxjw6hc4ayrh7his5"))))
1282 (build-system go-build-system)
1283 (native-inputs
1284 `(("go-github-com-kardianos-osext"
1285 ,go-github-com-kardianos-osext)))
1286 (arguments
1287 '(#:tests? #f ;FIXME tests fail: Service is not running.
1288 #:import-path "github.com/ayufan/golang-kardianos-service"))
1289 (home-page "https://github.com/ayufan/golang-kardianos-service")
1290 (synopsis "Go interface to a variety of service supervisors")
1291 (description "This package provides @code{service}, a Go module that can
1292 run programs as a service using a variety of supervisors, including systemd,
1293 SysVinit, and more.")
1294 (license license:zlib))))
1295
1296 (define-public go-github-com-docker-distribution
1297 (let ((commit "325b0804fef3a66309d962357aac3c2ce3f4d329")
1298 (revision "0"))
1299 (package
1300 (name "go-github-com-docker-distribution")
1301 (version (git-version "0.0.0" revision commit))
1302 (source
1303 ;; FIXME: This bundles many things, see
1304 ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31881#41>.
1305 (origin
1306 (method git-fetch)
1307 (uri (git-reference
1308 (url "https://github.com/docker/distribution")
1309 (commit commit)))
1310 (file-name (git-file-name name version))
1311 (sha256
1312 (base32
1313 "1yg2zrikn3vkvkx5mn51p6bfjk840qdkn7ahhhvvcsc8mpigrjc6"))))
1314 (build-system go-build-system)
1315 (native-inputs
1316 `(("go-golang-org-x-sys" ,go-golang-org-x-sys)
1317 ("go-github-com-sirupsen-logrus"
1318 ,go-github-com-sirupsen-logrus)
1319 ("go-golang-org-x-crypto"
1320 ,go-golang-org-x-crypto)))
1321 (arguments
1322 '(#:import-path "github.com/docker/distribution"
1323 #:phases
1324 (modify-phases %standard-phases
1325 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1326 (lambda* (#:key outputs #:allow-other-keys)
1327 (map (lambda (file)
1328 (make-file-writable file))
1329 (find-files
1330 (assoc-ref outputs "out")
1331 ".*\\.gz$"))
1332 #t)))))
1333 (home-page
1334 "https://github.com/docker/distribution")
1335 (synopsis "This package is a Docker toolset to pack, ship, store, and
1336 deliver content")
1337 (description "Docker Distribution is a Docker toolset to pack, ship,
1338 store, and deliver content. It contains Docker Registry 2.0 and libraries
1339 to interact with distribution components.")
1340 (license license:asl2.0))))
1341
1342 (define-public go-github-com-docker-go-connections
1343 (let ((commit "3ede32e2033de7505e6500d6c868c2b9ed9f169d")
1344 (revision "0"))
1345 (package
1346 (name "go-github-com-docker-go-connections")
1347 (version (git-version "0.0.0" revision commit))
1348 (source
1349 (origin
1350 (method git-fetch)
1351 (uri (git-reference
1352 (url "https://github.com/docker/go-connections.git")
1353 (commit commit)))
1354 (file-name (git-file-name name version))
1355 (sha256
1356 (base32
1357 "0v1pkr8apwmhyzbjfriwdrs1ihlk6pw7izm57r24mf9jdmg3fyb0"))))
1358 (build-system go-build-system)
1359 (arguments
1360 '(#:import-path "github.com/docker/go-connections"))
1361 (home-page "https://github.com/docker/go-connections")
1362 (synopsis "Networking library for Go")
1363 (description
1364 "This package provides a library to work with network connections in
1365 the Go language. In particular it provides tools to deal with network address
1366 translation (NAT), proxies, sockets, and transport layer security (TLS).")
1367 (license license:asl2.0))))
1368
1369 (define-public go-github-com-docker-machine
1370 (let ((commit "7b7a141da84480342357c51838be142bf183b095")
1371 (revision "0"))
1372 (package
1373 (name "go-github-com-docker-machine")
1374 (version (git-version "0.0.0" revision commit))
1375 (source
1376 (origin
1377 (method git-fetch)
1378 (uri (git-reference
1379 (url "https://github.com/docker/machine.git")
1380 (commit commit)))
1381 (file-name (git-file-name name version))
1382 (sha256
1383 (base32
1384 "0bavk0lvs462yh0lnmnxi9psi5qv1x3nvzmd2b0drsahlp1gxi8s"))))
1385 (build-system go-build-system)
1386 (arguments
1387 '(#:import-path "github.com/docker/machine"))
1388 (home-page "https://github.com/docker/machine")
1389 (synopsis "Machine management for a container-centric world")
1390 (description
1391 "@dfn{Machine} lets you create Docker hosts on your computer, on
1392 hosting providers, and inside your data center. It creates servers, installs
1393 Docker on them, then configures the Docker client to talk to them.")
1394 (license license:asl2.0))))
1395
1396 (define-public go-github-com-gorhill-cronexpr
1397 (let ((commit "f0984319b44273e83de132089ae42b1810f4933b")
1398 (revision "0"))
1399 (package
1400 (name "go-github-com-gorhill-cronexpr")
1401 (version (git-version "0.0.0" revision commit))
1402 (source
1403 (origin
1404 (method git-fetch)
1405 (uri (git-reference
1406 (url "https://github.com/gorhill/cronexpr.git")
1407 (commit commit)))
1408 (file-name (git-file-name name version))
1409 (sha256
1410 (base32
1411 "0dphhhqy3i7265znv3m8n57l80dmaq6z4hsj5kgd87qd19z8x0l2"))))
1412 (build-system go-build-system)
1413 (arguments
1414 '(#:import-path "github.com/gorhill/cronexpr"))
1415 (home-page "https://github.com/gorhill/cronexpr")
1416 (synopsis "Cron expression parser in the Go language")
1417 (description
1418 "This package provides a cron expression parser in the Go language.
1419 Given a cron expression and a time stamp, you can get the next time stamp
1420 which satisfies the cron expression.")
1421 (license (list license:gpl3+
1422 license:asl2.0)))))
1423
1424 (define-public go-gopkg-in-check-v1
1425 (let ((commit "788fd78401277ebd861206a03c884797c6ec5541")
1426 (revision "1"))
1427 (package
1428 (name "go-gopkg-in-check-v1")
1429 (version (git-version "1.0.0" revision commit))
1430 (source
1431 (origin
1432 (method git-fetch)
1433 (uri (git-reference
1434 (url "https://github.com/go-check/check")
1435 (commit commit)))
1436 (file-name (git-file-name name version))
1437 (sha256
1438 (base32
1439 "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a"))))
1440 (build-system go-build-system)
1441 (arguments
1442 '(#:import-path "gopkg.in/check.v1"))
1443 (propagated-inputs
1444 `(("go-github-com-kr-pretty" ,go-github-com-kr-pretty)))
1445 (home-page "https://gopkg.in/check.v1")
1446 (synopsis "Test framework for the Go language")
1447 (description "This package provides a test library for the Go language.")
1448 (license license:asl2.0))))
1449
1450 (define-public go-gopkg-in-yaml-v2
1451 (package
1452 (name "go-gopkg-in-yaml-v2")
1453 (version "2.2.2")
1454 (source
1455 (origin
1456 (method git-fetch)
1457 (uri (git-reference
1458 (url "https://gopkg.in/yaml.v2.git")
1459 (commit (string-append "v" version))))
1460 (file-name (git-file-name name version))
1461 (sha256
1462 (base32
1463 "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa"))))
1464 (build-system go-build-system)
1465 (arguments
1466 '(#:import-path "gopkg.in/yaml.v2"))
1467 (native-inputs
1468 `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
1469 (home-page "https://gopkg.in/yaml.v2")
1470 (synopsis "YAML reader and writer for the Go language")
1471 (description
1472 "This package provides a Go library for encode and decode YAML
1473 values.")
1474 (license license:asl2.0)))
1475
1476 (define-public go-github-com-mattn-go-isatty
1477 (package
1478 (name "go-github-com-mattn-go-isatty")
1479 (version "0.0.11")
1480 (source
1481 (origin
1482 (method git-fetch)
1483 (uri (git-reference
1484 (url "https://github.com/mattn/go-isatty")
1485 (commit (string-append "v" version))))
1486 (file-name (git-file-name name version))
1487 (sha256
1488 (base32
1489 "0h671sv7hfprja495kavazkalkx7xzaqksjh13brcnwq67ijrali"))))
1490 (build-system go-build-system)
1491 (propagated-inputs
1492 `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
1493 (arguments
1494 '(#:import-path "github.com/mattn/go-isatty"))
1495 (home-page "https://github.com/mattn/go-isatty")
1496 (synopsis "Provide @code{isatty} for Golang")
1497 (description "This package provides @code{isatty}, a Go module that can
1498 tell you whether a file descriptor points to a terminal and the type of the
1499 terminal.")
1500 (license license:expat)))
1501
1502 (define-public go-github-com-mattn-go-colorable
1503 (let ((commit "efa589957cd060542a26d2dd7832fd6a6c6c3ade")
1504 (revision "0"))
1505 (package
1506 (name "go-github-com-mattn-go-colorable")
1507 (version (git-version "0.0.0" revision commit))
1508 (source
1509 (origin
1510 (method git-fetch)
1511 (uri (git-reference
1512 (url "https://github.com/mattn/go-colorable")
1513 (commit commit)))
1514 (file-name (git-file-name name version))
1515 (sha256
1516 (base32
1517 "0kshi4hvm0ayrsxqxy0599iv81kryhd2fn9lwjyczpj593cq069r"))))
1518 (build-system go-build-system)
1519 (native-inputs
1520 `(("go-github-com-mattn-go-isatty"
1521 ,go-github-com-mattn-go-isatty)))
1522 (arguments
1523 '(#:import-path "github.com/mattn/go-colorable"))
1524 (home-page "https://github.com/mattn/go-colorable")
1525 (synopsis "Handle ANSI color escapes on Windows")
1526 (description "This package provides @code{colorable}, a module that
1527 makes it possible to handle ANSI color escapes on Windows.")
1528 (license license:expat))))
1529
1530 (define-public go-github-com-mgutz-ansi
1531 (let ((commit "9520e82c474b0a04dd04f8a40959027271bab992")
1532 (revision "0"))
1533 (package
1534 (name "go-github-com-mgutz-ansi")
1535 (version (git-version "0.0.0" revision commit))
1536 (source
1537 (origin
1538 (method git-fetch)
1539 (uri (git-reference
1540 (url
1541 "https://github.com/mgutz/ansi")
1542 (commit commit)))
1543 (file-name (git-file-name name version))
1544 (sha256
1545 (base32
1546 "00bz22314j26736w1f0q4jy9d9dfaml17vn890n5zqy3cmvmww1j"))))
1547 (build-system go-build-system)
1548 (native-inputs
1549 `(("go-github-com-mattn-go-isatty"
1550 ,go-github-com-mattn-go-isatty)
1551 ("go-github-com-mattn-go-colorable"
1552 ,go-github-com-mattn-go-colorable)))
1553 (arguments
1554 '(#:import-path "github.com/mgutz/ansi"))
1555 (home-page "https://github.com/mgutz/ansi")
1556 (synopsis "Small, fast library to create ANSI colored strings and codes")
1557 (description "This package provides @code{ansi}, a Go module that can
1558 generate ANSI colored strings.")
1559 (license license:expat))))
1560
1561 (define-public go-github-com-aarzilli-golua
1562 (let ((commit "03fc4642d792b1f2bc5e7343b403cf490f8c501d")
1563 (revision "0"))
1564 (package
1565 (name "go-github-com-aarzilli-golua")
1566 (version (git-version "0.0.0" revision commit))
1567 (source
1568 (origin
1569 (method git-fetch)
1570 (uri (git-reference
1571 (url
1572 "https://github.com/aarzilli/golua")
1573 (commit commit)))
1574 (file-name (git-file-name name version))
1575 (sha256
1576 (base32
1577 "1d9hr29i36cza98afj3g6rs3l7xbkprwzz0blcxsr9dd7nak20di"))))
1578 (build-system go-build-system)
1579 ;; From go-1.10 onward, "pkg" compiled libraries are not re-used, so
1580 ;; when this package required as input for another one, it will have to
1581 ;; be built again. Thus its CGO requirements must be made available in
1582 ;; the environment, that is, they must be propagated.
1583 (propagated-inputs
1584 `(("lua" ,lua)))
1585 (arguments
1586 `(#:unpack-path "github.com/aarzilli/golua"
1587 #:import-path "github.com/aarzilli/golua/lua"
1588 #:phases
1589 (modify-phases %standard-phases
1590 ;; While it's possible to fix the CGO_LDFLAGS with the "-tags"
1591 ;; command line argument, go-1.10+ does not re-use the produced pkg
1592 ;; for dependencies, which means we would need to propagate the
1593 ;; same "-tags" argument to all golua referrers. A substitution is
1594 ;; more convenient here. We also need to propagate the lua
1595 ;; dependency to make it available to referrers.
1596 (add-after 'unpack 'fix-lua-ldflags
1597 (lambda _
1598 (substitute* "src/github.com/aarzilli/golua/lua/lua.go"
1599 (("#cgo linux,!llua,!luaa LDFLAGS: -llua5.3")
1600 "#cgo linux,!llua,!luaa LDFLAGS: -llua")))))))
1601 (home-page "https://github.com/aarzilli/golua")
1602 (synopsis "Go Bindings for the Lua C API")
1603 (description "This package provides @code{lua}, a Go module that can
1604 run a Lua virtual machine.")
1605 (license license:expat))))
1606
1607 (define-public go-gitlab-com-ambrevar-golua-unicode
1608 (let ((commit "97ce517e7a1fe2407a90c317a9c74b173d396144")
1609 (revision "0"))
1610 (package
1611 (name "go-gitlab-com-ambrevar-golua-unicode")
1612 (version (git-version "0.0.0" revision commit))
1613 (source
1614 (origin
1615 (method git-fetch)
1616 (uri (git-reference
1617 (url
1618 "https://gitlab.com/ambrevar/golua")
1619 (commit commit)))
1620 (file-name (git-file-name name version))
1621 (sha256
1622 (base32
1623 "1izcp7p8nagjwqd13shb0020w7xhppib1a3glw2d1468bflhksnm"))))
1624 (build-system go-build-system)
1625 (native-inputs
1626 `(("lua" ,lua)
1627 ("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
1628 (arguments
1629 `(#:unpack-path "gitlab.com/ambrevar/golua"
1630 #:import-path "gitlab.com/ambrevar/golua/unicode"
1631 #:phases
1632 (modify-phases %standard-phases
1633 (replace 'check
1634 (lambda* (#:key import-path #:allow-other-keys)
1635 (setenv "USER" "homeless-dude")
1636 (invoke "go" "test" import-path))))))
1637 (home-page "https://gitlab.com/ambrevar/golua")
1638 (synopsis "Add Unicode support to Golua")
1639 (description "This extension to Arzilli's Golua adds Unicode support to
1640 all functions from the Lua string library. Lua patterns are replaced by Go
1641 regexps. This breaks compatibility with Lua, but Unicode support breaks it
1642 anyways and Go regexps are more powerful.")
1643 (license license:expat))))
1644
1645 (define-public go-github-com-yookoala-realpath
1646 (let ((commit "d19ef9c409d9817c1e685775e53d361b03eabbc8")
1647 (revision "0"))
1648 (package
1649 (name "go-github-com-yookoala-realpath")
1650 (version (git-version "0.0.0" revision commit))
1651 (source
1652 (origin
1653 (method git-fetch)
1654 (uri (git-reference
1655 (url
1656 "https://github.com/yookoala/realpath")
1657 (commit commit)))
1658 (file-name (git-file-name name version))
1659 (sha256
1660 (base32
1661 "0qvz1dcdldf53rq69fli76z5k1vr7prx9ds1d5rpzgs68kwn40nw"))))
1662 (build-system go-build-system)
1663 (arguments
1664 `(#:import-path "github.com/yookoala/realpath"))
1665 (home-page "https://github.com/yookoala/realpath")
1666 (synopsis "@code{realpath} for Golang")
1667 (description "This package provides @code{realpath}, a Go module that
1668 when provided with a valid relative path / alias path, it will return you with
1669 a string of its real absolute path in the system.")
1670 (license license:expat))))
1671
1672 (define-public go-gitlab-com-ambrevar-damerau
1673 (let ((commit "883829e1f25fad54015772ea663e69017cf22352")
1674 (revision "0"))
1675 (package
1676 (name "go-gitlab-com-ambrevar-damerau")
1677 (version (git-version "0.0.0" revision commit))
1678 (source
1679 (origin
1680 (method git-fetch)
1681 (uri (git-reference
1682 (url
1683 "https://gitlab.com/ambrevar/damerau")
1684 (commit commit)))
1685 (file-name (git-file-name name version))
1686 (sha256
1687 (base32
1688 "1b9p8fypc914ij1afn6ir346zsgfqrc5mqc1k3d53n4snypq27qv"))))
1689 (build-system go-build-system)
1690 (arguments
1691 `(#:import-path "gitlab.com/ambrevar/damerau"))
1692 (home-page "https://gitlab.com/ambrevar/damerau")
1693 (synopsis "Damerau-Levenshtein distance for Golang")
1694 (description "This is a spelling corrector implementing the
1695 Damerau-Levenshtein distance. Takes a string value input from the user.
1696 Looks for an identical word on a list of words, if none is found, look for a
1697 similar word.")
1698 (license license:expat))))
1699
1700 (define-public go-github-com-stevedonovan-luar
1701 (let ((commit "22d247e5366095f491cd83edf779ee99a78f5ead")
1702 (revision "0"))
1703 (package
1704 (name "go-github-com-stevedonovan-luar")
1705 (version (git-version "0.0.0" revision commit))
1706 (source
1707 (origin
1708 (method git-fetch)
1709 (uri (git-reference
1710 (url
1711 "https://github.com/stevedonovan/luar")
1712 (commit commit)))
1713 (file-name (git-file-name name version))
1714 (sha256
1715 (base32
1716 "1acjgw9cz1l0l9mzkyk7irz6cfk31wnxgbwa805fvm1rqcjzin2c"))))
1717 (build-system go-build-system)
1718 (native-inputs
1719 `(("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
1720 (arguments
1721 `(#:tests? #f ; Upstream tests are broken.
1722 #:import-path "github.com/stevedonovan/luar"))
1723 (home-page "https://github.com/stevedonovan/luar")
1724 (synopsis "Lua reflection bindings for Go")
1725 (description "Luar is designed to make using Lua from Go more
1726 convenient. Go structs, slices and maps can be automatically converted to Lua
1727 tables and vice-versa. The resulting conversion can either be a copy or a
1728 proxy. In the latter case, any change made to the result will reflect on the
1729 source.
1730
1731 Any Go function can be made available to Lua scripts, without having to write
1732 C-style wrappers.
1733
1734 Luar support cyclic structures (lists, etc.).
1735
1736 User-defined types can be made available to Lua as well: their exported
1737 methods can be called and usual operations such as indexing or arithmetic can
1738 be performed.")
1739 (license license:expat))))
1740
1741 (define-public go-github-com-michiwend-golang-pretty
1742 (let ((commit "8ac61812ea3fa540f3f141a444fcb0dd713cdca4")
1743 (revision "0"))
1744 (package
1745 (name "go-github-com-michiwend-golang-pretty")
1746 (version (git-version "0.0.0" revision commit))
1747 (source
1748 (origin
1749 (method git-fetch)
1750 (uri (git-reference
1751 (url
1752 "https://github.com/michiwend/golang-pretty")
1753 (commit commit)))
1754 (file-name (git-file-name name version))
1755 (sha256
1756 (base32
1757 "0rjfms0csjqi91xnddzx3rcrcaikc7xc027617px3kdwdap80ir4"))))
1758 (build-system go-build-system)
1759 (native-inputs
1760 `(("go-github-com-kr-text" ,go-github-com-kr-text)))
1761 (arguments
1762 `(#:tests? #f ; Upstream tests seem to be broken.
1763 #:import-path "github.com/michiwend/golang-pretty"))
1764 (home-page "https://github.com/michiwend/golang-pretty")
1765 (synopsis "Pretty printing for Go values")
1766 (description "Package @code{pretty} provides pretty-printing for Go
1767 values. This is useful during debugging, to avoid wrapping long output lines
1768 in the terminal.
1769
1770 It provides a function, @code{Formatter}, that can be used with any function
1771 that accepts a format string. It also provides convenience wrappers for
1772 functions in packages @code{fmt} and @code{log}.")
1773 (license license:expat))))
1774
1775 (define-public go-github-com-michiwend-gomusicbrainz
1776 (let ((commit "0cdeb13f9b24d2c714feb7e3c63d595cf7121d7d")
1777 (revision "0"))
1778 (package
1779 (name "go-github-com-michiwend-gomusicbrainz")
1780 (version (git-version "0.0.0" revision commit))
1781 (source
1782 (origin
1783 (method git-fetch)
1784 (uri (git-reference
1785 (url
1786 "https://github.com/michiwend/gomusicbrainz")
1787 (commit commit)))
1788 (file-name (git-file-name name version))
1789 (sha256
1790 (base32
1791 "1li9daw0kghb80rdmxbh7g72qhxcvx3rvhwq5gs0jrr9hb8pjvcn"))))
1792 (build-system go-build-system)
1793 (native-inputs
1794 `(("go-github-com-michiwend-golang-pretty" ,go-github-com-michiwend-golang-pretty)
1795 ("go-github-com-kr-text" ,go-github-com-kr-text)))
1796 (arguments
1797 `(#:import-path "github.com/michiwend/gomusicbrainz"))
1798 (home-page "https://github.com/michiwend/gomusicbrainz")
1799 (synopsis "MusicBrainz WS2 client library for Golang")
1800 (description "Currently GoMusicBrainz provides methods to perform search
1801 and lookup requests. Browse requests are not supported yet.")
1802 (license license:expat))))
1803
1804 (define-public go-github-com-wtolson-go-taglib
1805 (let ((commit "6e68349ff94ecea412de7e748cb5eaa26f472777")
1806 (revision "0"))
1807 (package
1808 (name "go-github-com-wtolson-go-taglib")
1809 (version (git-version "0.0.0" revision commit))
1810 (source
1811 (origin
1812 (method git-fetch)
1813 (uri (git-reference
1814 (url
1815 "https://github.com/wtolson/go-taglib")
1816 (commit commit)))
1817 (file-name (git-file-name name version))
1818 (sha256
1819 (base32
1820 "1cpjqnrviwflz150g78iir5ndrp3hh7a93zbp4dwbg6sb2q141p2"))))
1821 (build-system go-build-system)
1822 ;; From go-1.10 onward, "pkg" compiled libraries are not re-used, so
1823 ;; when this package required as input for another one, it will have to
1824 ;; be built again. Thus its CGO requirements must be made available in
1825 ;; the environment, that is, they must be propagated.
1826 (propagated-inputs
1827 `(("pkg-config" ,pkg-config)
1828 ("taglib" ,taglib)))
1829 (arguments
1830 `(#:import-path "github.com/wtolson/go-taglib"
1831 ;; Tests don't pass "vet" on Go since 1.11. See
1832 ;; https://github.com/wtolson/go-taglib/issues/12.
1833 #:phases
1834 (modify-phases %standard-phases
1835 (replace 'check
1836 (lambda* (#:key import-path #:allow-other-keys)
1837 (invoke "go" "test"
1838 "-vet=off"
1839 import-path))))))
1840 (home-page "https://github.com/wtolson/go-taglib")
1841 (synopsis "Go wrapper for taglib")
1842 (description "Go wrapper for taglib")
1843 (license license:unlicense))))
1844
1845 (define-public go-github-com-gogo-protobuf
1846 (package
1847 (name "go-github-com-gogo-protobuf")
1848 (version "1.3.1")
1849 (source (origin
1850 (method git-fetch)
1851 (uri (git-reference
1852 (url "https://github.com/gogo/protobuf")
1853 (commit (string-append "v" version))))
1854 (file-name (git-file-name name version))
1855 (sha256
1856 (base32
1857 "0x77x64sxjgfhmbijqfzmj8h4ar25l2w97h01q3cqs1wk7zfnkhp"))))
1858 (build-system go-build-system)
1859 (arguments
1860 `(#:import-path "github.com/gogo/protobuf"
1861 ; Source-only package
1862 #:tests? #f
1863 #:phases
1864 (modify-phases %standard-phases
1865 (delete 'build))))
1866 (synopsis "Protocol Buffers for Go with Gadgets")
1867 (description "Gogoprotobuf is a fork of golang/protobuf with extra code
1868 generation features. This code generation is used to achieve:
1869 @itemize
1870 @item fast marshalling and unmarshalling
1871 @item more canonical Go structures
1872 @item goprotobuf compatibility
1873 @item less typing by optionally generating extra helper code
1874 @item peace of mind by optionally generating test and benchmark code
1875 @item other serialization formats
1876 @end itemize")
1877 (home-page "https://github.com/gogo/protobuf")
1878 (license license:bsd-3)))
1879
1880 (define-public go-github-com-libp2p-go-flow-metrics
1881 (let ((commit "7e5a55af485341567f98d6847a373eb5ddcdcd43")
1882 (revision "0"))
1883 (package
1884 (name "go-github-com-libp2p-go-flow-metrics")
1885 (version (git-version "0.2.0" revision commit))
1886 (source
1887 (origin
1888 (method git-fetch)
1889 (uri (git-reference
1890 (url "https://github.com/libp2p/go-flow-metrics.git")
1891 (commit commit)))
1892 (file-name (git-file-name name version))
1893 (sha256
1894 (base32
1895 "1p87iyk6q6f3g3xkncssx400qlld8f2z93qiz8m1f97grfyhjif1"))))
1896 (build-system go-build-system)
1897 (arguments
1898 `(#:import-path "github.com/libp2p/go-flow-metrics"
1899 ;; TODO: Tests hang.
1900 #:tests? #f))
1901 (home-page
1902 "https://github.com/libp2p/go-flow-metrics")
1903 (synopsis "Simple library for tracking flow metrics")
1904 (description "A simple alternative to rcrowley's @command{go-metrics}
1905 that's a lot faster (and only does simple bandwidth metrics).")
1906 (license license:expat))))
1907
1908 (define-public go-github-com-davecgh-go-spew
1909 (let ((commit "d8f796af33cc11cb798c1aaeb27a4ebc5099927d")
1910 (revision "0"))
1911 (package
1912 (name "go-github-com-davecgh-go-spew")
1913 (version (git-version "0.0.0" revision commit))
1914 (source
1915 (origin
1916 (method git-fetch)
1917 (uri (git-reference
1918 (url "https://github.com/davecgh/go-spew.git")
1919 (commit commit)))
1920 (file-name (git-file-name name version))
1921 (sha256
1922 (base32
1923 "19z27f306fpsrjdvkzd61w1bdazcdbczjyjck177g33iklinhpvx"))))
1924 (build-system go-build-system)
1925 (arguments
1926 '(#:unpack-path "github.com/davecgh/go-spew"
1927 #:import-path "github.com/davecgh/go-spew/spew"))
1928 (home-page "https://github.com/davecgh/go-spew")
1929 (synopsis "Deep pretty printer for Go data structures to aid in debugging")
1930 (description "Package @command{spew} implements a deep pretty printer
1931 for Go data structures to aid in debugging.
1932
1933 A quick overview of the additional features spew provides over the built-in printing facilities for Go data types are as follows:
1934
1935 @itemize
1936 @item Pointers are dereferenced and followed.
1937 @item Circular data structures are detected and handled properly.
1938 @item Custom Stringer/error interfaces are optionally invoked, including on
1939 unexported types.
1940 @item Custom types which only implement the Stringer/error interfaces via a
1941 pointer receiver are optionally invoked when passing non-pointer variables.
1942 @item Byte arrays and slices are dumped like the hexdump -C command which
1943 includes offsets, byte values in hex, and ASCII output (only when using Dump
1944 style).
1945 @end itemize\n")
1946 (license license:isc))))
1947
1948 (define-public go-github-com-btcsuite-btclog
1949 (let ((commit "84c8d2346e9fc8c7b947e243b9c24e6df9fd206a")
1950 (revision "0"))
1951 (package
1952 (name "go-github-com-btcsuite-btclog")
1953 (version (git-version "0.0.3" revision commit))
1954 (source
1955 (origin
1956 (method git-fetch)
1957 (uri (git-reference
1958 (url "https://github.com/btcsuite/btclog.git")
1959 (commit commit)))
1960 (file-name (git-file-name name version))
1961 (sha256
1962 (base32
1963 "02dl46wcnfpg9sqvg0ipipkpnd7lrf4fnvb9zy56jqa7mfcwc7wk"))))
1964 (build-system go-build-system)
1965 (arguments
1966 '(#:import-path "github.com/btcsuite/btclog"))
1967 (home-page "https://github.com/btcsuite/btclog")
1968 (synopsis "Subsystem aware logger for Go")
1969 (description "Package @command{btclog} defines a logger interface and
1970 provides a default implementation of a subsystem-aware leveled logger
1971 implementing the same interface.")
1972 (license license:isc))))
1973
1974 (define-public go-github-com-btcsuite-btcd-btcec
1975 (let ((commit "67e573d211ace594f1366b4ce9d39726c4b19bd0")
1976 (revision "0"))
1977 (package
1978 (name "go-github-com-btcsuite-btcd-btcec")
1979 (version (git-version "0.12.0-beta" revision commit))
1980 (source
1981 (origin
1982 (method git-fetch)
1983 (uri (git-reference
1984 (url "https://github.com/btcsuite/btcd.git")
1985 (commit commit)))
1986 (file-name (git-file-name name version))
1987 (sha256
1988 (base32
1989 "04s92gsy71w1jirlr5lkk9y6r5cparbas7nmf6ywbp7kq7fn8ajn"))))
1990 (build-system go-build-system)
1991 (arguments
1992 '(#:unpack-path "github.com/btcsuite/btcd"
1993 #:import-path "github.com/btcsuite/btcd/btcec"))
1994 (native-inputs
1995 `(("go-github-com-davecgh-go-spew" ,go-github-com-davecgh-go-spew)))
1996 (home-page "https://github.com/btcsuite/btcd")
1997 (synopsis "Elliptic curve cryptography to work with Bitcoin")
1998 (description "Package @command{btcec} implements elliptic curve
1999 cryptography needed for working with Bitcoin (secp256k1 only for now). It is
2000 designed so that it may be used with the standard crypto/ecdsa packages
2001 provided with Go. A comprehensive suite of test is provided to ensure proper
2002 functionality. Package @command{btcec} was originally based on work from
2003 ThePiachu which is licensed under the same terms as Go, but it has
2004 significantly diverged since then. The @command{btcsuite} developers original
2005 is licensed under the liberal ISC license.
2006
2007 Although this package was primarily written for btcd, it has intentionally
2008 been designed so it can be used as a standalone package for any projects
2009 needing to use secp256k1 elliptic curve cryptography.")
2010 (license license:isc))))
2011
2012 (define-public go-github-com-minio-sha256-simd
2013 (package
2014 (name "go-github-com-minio-sha256-simd")
2015 (version "0.1.1")
2016 (source
2017 (origin
2018 (method git-fetch)
2019 (uri (git-reference
2020 (url "https://github.com/minio/sha256-simd.git")
2021 (commit (string-append "v" version))))
2022 (file-name (git-file-name name version))
2023 (sha256
2024 (base32
2025 "1j0iqsckm97g4l79vd4mc7apbmkdar23jpzqpnpdhwpfd834j8lp"))))
2026 (build-system go-build-system)
2027 (arguments
2028 '(#:import-path "github.com/minio/sha256-simd"))
2029 (home-page "https://github.com/minio/sha256-simd")
2030 (synopsis "Accelerate SHA256 computations in pure Go")
2031 (description "Accelerate SHA256 computations in pure Go using AVX512 and
2032 AVX2 for Intel and ARM64 for ARM. On AVX512 it provides an up to 8x
2033 improvement (over 3 GB/s per core) in comparison to AVX2.
2034
2035 This package is designed as a replacement for @command{crypto/sha256}. For
2036 Intel CPUs it has two flavors for AVX512 and AVX2 (AVX/SSE are also
2037 supported). For ARM CPUs with the Cryptography Extensions, advantage is taken
2038 of the SHA2 instructions resulting in a massive performance improvement.
2039
2040 This package uses Golang assembly. The AVX512 version is based on the Intel's
2041 \"multi-buffer crypto library for IPSec\" whereas the other Intel
2042 implementations are described in \"Fast SHA-256 Implementations on Intel
2043 Architecture Processors\" by J. Guilford et al.")
2044 (license license:asl2.0)))
2045
2046 (define-public go-github-com-libp2p-go-libp2p-crypto
2047 (let ((commit "7240b40a3ddc47c4d17c15baabcbe45e5219171b")
2048 (revision "0"))
2049 (package
2050 (name "go-github-com-libp2p-go-libp2p-crypto")
2051 (version (git-version "2.0.1" revision commit))
2052 (source
2053 (origin
2054 (method git-fetch)
2055 (uri (git-reference
2056 (url "https://github.com/libp2p/go-libp2p-crypto.git")
2057 (commit commit)))
2058 (file-name (git-file-name name version))
2059 (sha256
2060 (base32
2061 "0qwpy57qv5143l9dlfwfvpqsxdd2i4zwnawx1w4pmgxxim3nw1wb"))))
2062 (build-system go-build-system)
2063 (arguments
2064 '(#:import-path "github.com/libp2p/go-libp2p-crypto"))
2065 (native-inputs
2066 `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
2067 ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
2068 ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
2069 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)))
2070 (home-page
2071 "https://github.com/libp2p/go-libp2p-crypto")
2072 (synopsis "Various cryptographic utilities used by IPFS")
2073 (description "Various cryptographic utilities used by IPFS")
2074 (license license:expat))))
2075
2076 (define-public go-github-com-mr-tron-base58
2077 (let ((commit "d724c80ecac7b49e4e562d58b2b4f4ee4ed8c312")
2078 (revision "0"))
2079 (package
2080 (name "go-github-com-mr-tron-base58")
2081 (version (git-version "1.1.0" revision commit))
2082 (source
2083 (origin
2084 (method git-fetch)
2085 (uri (git-reference
2086 (url "https://github.com/mr-tron/base58.git")
2087 (commit commit)))
2088 (file-name (git-file-name name version))
2089 (sha256
2090 (base32
2091 "12qhgnn9wf3c1ang16r4i778whk4wsrj7d90h2xgmz4fi1469rqa"))))
2092 (build-system go-build-system)
2093 (arguments
2094 `(#:unpack-path "github.com/mr-tron/base58"
2095 #:import-path "github.com/mr-tron/base58/base58"))
2096 (home-page "https://github.com/mr-tron/base58")
2097 (synopsis "Fast implementation of base58 encoding on Golang")
2098 (description "Fast implementation of base58 encoding on Golang. A
2099 trivial @command{big.Int} encoding benchmark results in 6 times faster
2100 encoding and 8 times faster decoding.")
2101 (license license:expat))))
2102
2103 (define-public go-github-com-gxed-hashland-keccakpg
2104 (let ((commit "d9f6b97f8db22dd1e090fd0bbbe98f09cc7dd0a8")
2105 (revision "0"))
2106 (package
2107 (name "go-github-com-gxed-hashland-keccakpg")
2108 (version (git-version "0.0.0" revision commit))
2109 (source
2110 (origin
2111 (method git-fetch)
2112 (uri (git-reference
2113 (url "https://github.com/gxed/hashland.git")
2114 (commit commit)))
2115 (file-name (git-file-name name version))
2116 (sha256
2117 (base32
2118 "1q23y4lacsz46k9gmgfw4iwwydw36j2601rbidmmswl94grpc386"))))
2119 (build-system go-build-system)
2120 (arguments
2121 '(#:unpack-path "github.com/gxed/hashland"
2122 #:import-path "github.com/gxed/hashland/keccakpg"))
2123 (home-page "https://github.com/gxed/hashland")
2124 (synopsis "Implements the Keccak (SHA-3) hash algorithm in Go")
2125 (description "Package @command{keccak} implements the Keccak (SHA-3)
2126 hash algorithm. See http://keccak.noekeon.org.")
2127 (license license:expat))))
2128
2129 (define-public go-github-com-minio-blake2b-simd
2130 (let ((commit "3f5f724cb5b182a5c278d6d3d55b40e7f8c2efb4")
2131 (revision "0"))
2132 (package
2133 (name "go-github-com-minio-blake2b-simd")
2134 (version (git-version "0.0.0" revision commit))
2135 (source
2136 (origin
2137 (method git-fetch)
2138 (uri (git-reference
2139 (url "https://github.com/minio/blake2b-simd.git")
2140 (commit commit)))
2141 (file-name (git-file-name name version))
2142 (sha256
2143 (base32
2144 "0b6jbnj62c0gmmfd4zdmh8xbg01p80f13yygir9xprqkzk6fikmd"))))
2145 (build-system go-build-system)
2146 (arguments
2147 '(#:import-path "github.com/minio/blake2b-simd"))
2148 (home-page "https://github.com/minio/blake2b-simd")
2149 (synopsis "Fast hashing in pure Go of BLAKE2b with SIMD instructions")
2150 (description "This package was initially based on the pure go BLAKE2b
2151 implementation of Dmitry Chestnykh and merged with the (cgo dependent) AVX
2152 optimized BLAKE2 implementation (which in turn is based on the official
2153 implementation. It does so by using Go's Assembler for amd64 architectures
2154 with a golang only fallback for other architectures.
2155
2156 In addition to AVX there is also support for AVX2 as well as SSE. Best
2157 performance is obtained with AVX2 which gives roughly a 4X performance
2158 increase approaching hashing speeds of 1GB/sec on a single core.")
2159 (license license:asl2.0))))
2160
2161 (define-public go-github-com-spaolacci-murmur3
2162 (package
2163 (name "go-github-com-spaolacci-murmur3")
2164 (version "1.1.0")
2165 (source
2166 (origin
2167 (method git-fetch)
2168 (uri (git-reference
2169 (url "https://github.com/spaolacci/murmur3.git")
2170 (commit (string-append "v" version))))
2171 (file-name (git-file-name name version))
2172 (sha256
2173 (base32
2174 "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25"))))
2175 (build-system go-build-system)
2176 (arguments
2177 '(#:import-path "github.com/spaolacci/murmur3"))
2178 (home-page "https://github.com/spaolacci/murmur3")
2179 (synopsis "Native MurmurHash3 Go implementation")
2180 (description "Native Go implementation of Austin Appleby's third MurmurHash
2181 revision (aka MurmurHash3).
2182
2183 Reference algorithm has been slightly hacked as to support the streaming mode
2184 required by Go's standard Hash interface.")
2185 (license license:bsd-3)))
2186
2187 (define-public go-github-com-twmb-murmur3
2188 (package
2189 (name "go-github-com-twmb-murmur3")
2190 (version "1.1.3")
2191 (source
2192 (origin
2193 (method git-fetch)
2194 (uri (git-reference
2195 (url "https://github.com/twmb/murmur3.git")
2196 (commit (string-append "v" version))))
2197 (file-name (git-file-name name version))
2198 (sha256
2199 (base32
2200 "00riapwkyf23l5wyis47mbr8rwr4yrjw491jfc30wpzs111c1gyy"))))
2201 (build-system go-build-system)
2202 (arguments
2203 '(#:import-path "github.com/twmb/murmur3"))
2204 (home-page "https://github.com/twmb/murmur3")
2205 (synopsis "Native MurmurHash3 Go implementation")
2206 (description "Native Go implementation of Austin Appleby's third
2207 MurmurHash revision (aka MurmurHash3).
2208
2209 Reference algorithm has been slightly hacked as to support the streaming mode
2210 required by Go's standard Hash interface.")
2211 (license license:bsd-3)))
2212
2213 (define-public go-github-com-multiformats-go-multihash
2214 (let ((commit "97cdb562a04c6ef66d8ed40cd62f8fbcddd396d6")
2215 (revision "0"))
2216 (package
2217 (name "go-github-com-multiformats-go-multihash")
2218 (version (git-version "1.0.8" revision commit))
2219 (source
2220 (origin
2221 (method git-fetch)
2222 (uri (git-reference
2223 (url "https://github.com/multiformats/go-multihash.git")
2224 (commit commit)))
2225 (file-name (git-file-name name version))
2226 (sha256
2227 (base32
2228 "02wd9akrwy4y5m0nig9m24p14bjjgb4n1djydrq8cm4yhbvjrrk0"))))
2229 (build-system go-build-system)
2230 (arguments
2231 '(#:import-path "github.com/multiformats/go-multihash"))
2232 (native-inputs
2233 `(("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2234 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2235 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2236 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2237 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
2238 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
2239 (home-page "https://github.com/multiformats/go-multihash")
2240 (synopsis "Multihash implementation in Go")
2241 (description "Multihash implementation in Go.")
2242 (license license:expat))))
2243
2244 (define-public go-github-com-libp2p-go-libp2p-peer
2245 (let ((commit "993d742bc29dcf4894b7730ba610fd78900be76c")
2246 (revision "0"))
2247 (package
2248 (name "go-github-com-libp2p-go-libp2p-peer")
2249 (version (git-version "2.3.8" revision commit))
2250 (source
2251 (origin
2252 (method git-fetch)
2253 (uri (git-reference
2254 (url "https://github.com/libp2p/go-libp2p-peer.git")
2255 (commit commit)))
2256 (file-name (git-file-name name version))
2257 (sha256
2258 (base32
2259 "1h96qjdi0i1wbr0jliap2903mycphas3ny0zdrm77yca9plcnphh"))))
2260 (build-system go-build-system)
2261 (arguments
2262 '(#:import-path "github.com/libp2p/go-libp2p-peer"))
2263 (native-inputs
2264 `(("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
2265 ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
2266 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2267 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2268 ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
2269 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2270 ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
2271 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2272 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
2273 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
2274 (home-page "https://github.com/libp2p/go-libp2p-peer")
2275 (synopsis "PKI based identities for use in go-libp2p")
2276 (description "PKI based identities for use in @command{go-libp2p}.")
2277 (license license:expat))))
2278
2279 (define-public go-github-com-libp2p-go-libp2p-protocol
2280 (let ((commit "b29f3d97e3a2fb8b29c5d04290e6cb5c5018004b")
2281 (revision "0"))
2282 (package
2283 (name "go-github-com-libp2p-go-libp2p-protocol")
2284 (version (git-version "1.0.0" revision commit))
2285 (source
2286 (origin
2287 (method git-fetch)
2288 (uri (git-reference
2289 (url "https://github.com/libp2p/go-libp2p-protocol.git")
2290 (commit commit)))
2291 (file-name (git-file-name name version))
2292 (sha256
2293 (base32
2294 "1xgjfnx9zcqglg9li29wdqywsp8hz22wx6phns9zscni2jsfidld"))))
2295 (build-system go-build-system)
2296 (arguments
2297 '(#:import-path
2298 "github.com/libp2p/go-libp2p-protocol"))
2299 (home-page "https://github.com/libp2p/go-libp2p-protocol")
2300 (synopsis "Type for protocol strings in Golang")
2301 (description "Just a type for protocol strings. Nothing more.")
2302 (license license:expat))))
2303
2304 (define-public go-github-com-libp2p-go-libp2p-metrics
2305 (let ((commit "a10ff6e75dae3c868023867e8caa534a04bdc624")
2306 (revision "0"))
2307 (package
2308 (name "go-github-com-libp2p-go-libp2p-metrics")
2309 (version (git-version "2.1.6" revision commit))
2310 (source
2311 (origin
2312 (method git-fetch)
2313 (uri (git-reference
2314 (url "https://github.com/libp2p/go-libp2p-metrics.git")
2315 (commit commit)))
2316 (file-name (git-file-name name version))
2317 (sha256
2318 (base32
2319 "05wy0cq4h6yg9bzgapcvm2criwriicbswx80ma82gyn4a9fdrk8m"))))
2320 (build-system go-build-system)
2321 (arguments
2322 '(#:import-path "github.com/libp2p/go-libp2p-metrics"))
2323 (native-inputs
2324 `(("go-github-com-libp2p-go-flow-metrics" ,go-github-com-libp2p-go-flow-metrics)
2325 ("go-github-com-libp2p-go-libp2p-peer" ,go-github-com-libp2p-go-libp2p-peer)
2326 ("go-github-com-libp2p-go-libp2p-protocol" ,go-github-com-libp2p-go-libp2p-protocol)
2327 ("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
2328 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2329 ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
2330 ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
2331 ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
2332 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2333 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2334 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2335 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
2336 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
2337 (home-page "https://github.com/libp2p/go-libp2p-metrics")
2338 (synopsis "Connection wrapper for go-libp2p that provides bandwidth metrics")
2339 (description "A connection wrapper for @command{go-libp2p} that provides bandwidth
2340 statistics for wrapped connections.")
2341 (license license:expat))))
2342
2343 (define-public go-github-com-mitchellh-go-homedir
2344 (package
2345 (name "go-github-com-mitchellh-go-homedir")
2346 (version "1.0.0")
2347 (source
2348 (origin
2349 (method git-fetch)
2350 (uri (git-reference
2351 (url "https://github.com/mitchellh/go-homedir.git")
2352 (commit (string-append "v" version))))
2353 (file-name (git-file-name name version))
2354 (sha256
2355 (base32
2356 "0f0z0aa4wivk4z1y503dmnw0k0g0g403dly8i4q263gfshs82sbq"))))
2357 (build-system go-build-system)
2358 (arguments
2359 (quote (#:import-path "github.com/mitchellh/go-homedir"
2360 ;; TODO: Tests fail because it tries to access home.
2361 #:tests? #f)))
2362 (home-page "https://github.com/mitchellh/go-homedir")
2363 (synopsis "Go library for detecting and expanding the user's home directory without cgo")
2364 (description "This is a Go library for detecting the user's home
2365 directory without the use of @command{cgo}, so the library can be used in
2366 cross-compilation environments.
2367
2368 Usage is simple, just call homedir.Dir() to get the home directory for a user,
2369 and homedir.Expand() to expand the @command{~} in a path to the home
2370 directory.
2371
2372 Why not just use @command{os/user}? The built-in @command{os/user} package
2373 requires cgo on Darwin systems. This means that any Go code that uses that
2374 package cannot cross compile. But 99% of the time the use for
2375 @command{os/user} is just to retrieve the home directory, which we can do for
2376 the current user without cgo. This library does that, enabling
2377 cross-compilation.")
2378 (license license:expat)))
2379
2380 (define-public go-github-com-multiformats-go-multiaddr
2381 (let ((commit "fe1c46f8be5af4aff4db286e08839295bd922efb")
2382 (revision "0"))
2383 (package
2384 (name "go-github-com-multiformats-go-multiaddr")
2385 (version (git-version "1.3.0" revision commit))
2386 (source
2387 (origin
2388 (method git-fetch)
2389 (uri (git-reference
2390 (url "https://github.com/multiformats/go-multiaddr.git")
2391 (commit commit)))
2392 (file-name (git-file-name name version))
2393 (sha256
2394 (base32
2395 "0p5f8h098a4yjjmzsgqs7vhx1iqifb8izwg3559cr4h7clkpzznh"))))
2396 (build-system go-build-system)
2397 (arguments
2398 '(#:import-path
2399 "github.com/multiformats/go-multiaddr"))
2400 (native-inputs
2401 `(("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
2402 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2403 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2404 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2405 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2406 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
2407 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
2408 (home-page "https://github.com/multiformats/go-multiaddr")
2409 (synopsis "Composable and future-proof network addresses")
2410 (description "Multiaddr is a standard way to represent addresses that
2411 does the following:
2412
2413 @itemize
2414 @item Support any standard network protocols.
2415 @item Self-describe (include protocols).
2416 @item Have a binary packed format.
2417 @item Have a nice string representation.
2418 @item Encapsulate well.
2419 @end itemize\n")
2420 (license license:expat))))
2421
2422 (define-public go-github-com-multiformats-go-multiaddr-net
2423 (let ((commit "1cb9a0e8a6de3c8a10f6cee60d01d793603c4f7e")
2424 (revision "0"))
2425 (package
2426 (name "go-github-com-multiformats-go-multiaddr-net")
2427 (version (git-version "1.6.3" revision commit))
2428 (source
2429 (origin
2430 (method git-fetch)
2431 (uri (git-reference
2432 (url "https://github.com/multiformats/go-multiaddr-net.git")
2433 (commit commit)))
2434 (file-name (git-file-name name version))
2435 (sha256
2436 (base32
2437 "1ypgi47xdz3bh8lh7f8cmk7w3ql9g4izx5l3kzdg9gda1xn5zxq3"))))
2438 (build-system go-build-system)
2439 (arguments
2440 (quote (#:import-path "github.com/multiformats/go-multiaddr-net"
2441 ;; TODO: Tests fail because they try to access the network.
2442 #:tests? #f)))
2443 (native-inputs
2444 `(("go-github-com-multiformats-go-multiaddr" ,go-github-com-multiformats-go-multiaddr)
2445 ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
2446 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2447 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2448 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2449 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2450 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
2451 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
2452 (home-page "https://github.com/multiformats/go-multiaddr-net")
2453 (synopsis "Multiaddress net tools")
2454 (description "This package provides Multiaddr specific versions of
2455 common functions in stdlib's @command{net} package. This means wrappers of
2456 standard net symbols like @command{net.Dial} and @command{net.Listen}, as well
2457 as conversion to and from @command{net.Addr}.")
2458 (license license:expat))))
2459
2460 (define-public go-github-com-whyrusleeping-tar-utils
2461 (let ((commit "8c6c8ba81d5c71fd69c0f48dbde4b2fb422b6dfc")
2462 (revision "0"))
2463 (package
2464 (name "go-github-com-whyrusleeping-tar-utils")
2465 (version (git-version "0.0.0" revision commit))
2466 (source
2467 (origin
2468 (method git-fetch)
2469 (uri (git-reference
2470 (url "https://github.com/whyrusleeping/tar-utils.git")
2471 (commit commit)))
2472 (file-name (git-file-name name version))
2473 (sha256
2474 (base32
2475 "14jjdw3yics0k467xsyk388684wdpi0bbx8nqj0y4pqxa0s0in6s"))))
2476 (build-system go-build-system)
2477 (arguments
2478 '(#:import-path
2479 "github.com/whyrusleeping/tar-utils"))
2480 (home-page "https://github.com/whyrusleeping/tar-utils")
2481 (synopsis "Tar utilities extracted from go-ipfs codebase")
2482 (description "Tar utilities extracted from @command{go-ipfs} codebase.")
2483 (license license:expat))))
2484
2485 (define-public go-github-com-cheekybits-is
2486 (let ((commit "68e9c0620927fb5427fda3708222d0edee89eae9")
2487 (revision "0"))
2488 (package
2489 (name "go-github-com-cheekybits-is")
2490 (version (git-version "0.0.0" revision commit))
2491 (source
2492 (origin
2493 (method git-fetch)
2494 (uri (git-reference
2495 (url "https://github.com/cheekybits/is.git")
2496 (commit commit)))
2497 (file-name (git-file-name name version))
2498 (sha256
2499 (base32
2500 "1mkbyzhwq3rby832ikq00nxv3jnckxsm3949wkxd8ya9js2jmg4d"))))
2501 (build-system go-build-system)
2502 (arguments
2503 '(#:import-path "github.com/cheekybits/is"))
2504 (home-page "https://github.com/cheekybits/is")
2505 (synopsis "Mini testing helper for Go")
2506 (description "A mini testing helper for Go.
2507
2508 @itemize
2509 @item It has a simple interface (@command{is.OK} and @command{is.Equal}).
2510 @item It plugs into existing Go toolchain (uses @command{testing.T}).
2511 @item It's obvious for newcomers.
2512 @item It also gives you @command{is.Panic} and @command{is.PanicWith} helpers
2513 - because testing panics is ugly.
2514 @end itemize\n")
2515 (license license:expat))))
2516
2517 (define-public go-github-com-sabhiram-go-gitignore
2518 (let ((commit "d3107576ba9425fc1c85f4b3569c4631b805a02e")
2519 (revision "0"))
2520 (package
2521 (name "go-github-com-sabhiram-go-gitignore")
2522 (version (git-version "1.0.2" revision commit))
2523 (source
2524 (origin
2525 (method git-fetch)
2526 (uri (git-reference
2527 (url "https://github.com/sabhiram/go-gitignore.git")
2528 (commit commit)))
2529 (file-name (git-file-name name version))
2530 (sha256
2531 (base32
2532 "1rdwyxgcsiwgmlqnc3k6h300mzlvjc3j21np4yh1h476wc8dvl0l"))))
2533 (build-system go-build-system)
2534 (arguments
2535 '(#:import-path
2536 "github.com/sabhiram/go-gitignore"))
2537 (native-inputs
2538 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
2539 (home-page "https://github.com/sabhiram/go-gitignore")
2540 (synopsis "Gitignore parser for Go")
2541 (description "A @command{.gitignore} parser for Go.")
2542 (license license:expat))))
2543
2544 (define-public go-github-com-urfave-cli
2545 (package
2546 (name "go-github-com-urfave-cli")
2547 (version "1.22.2")
2548 (source
2549 (origin
2550 (method git-fetch)
2551 (uri (git-reference
2552 (url "https://github.com/urfave/cli.git")
2553 (commit (string-append "v" version))))
2554 (file-name (git-file-name name version))
2555 (sha256
2556 (base32
2557 "10mcnvi5qmn00vpyk6si8gjka7p654wr9hac4zc9w5h3ickhvbdc"))))
2558 (build-system go-build-system)
2559 (arguments
2560 '(#:import-path "github.com/urfave/cli"))
2561 (propagated-inputs
2562 `(("go-github-com-go-md2man" ,go-github-com-go-md2man)))
2563 (home-page "https://github.com/urfave/cli")
2564 (synopsis "Simple, fast, and fun package for building command line apps in Go")
2565 (description "@command{cli} is a simple, fast, and fun package for
2566 building command line apps in Go. The goal is to enable developers to write
2567 fast and distributable command line applications in an expressive way.")
2568 (license license:expat)))
2569
2570 (define-public go-github-com-go-md2man
2571 (package
2572 (name "go-github-com-go-md2man")
2573 (version "2.0.0")
2574 (source
2575 (origin
2576 (method git-fetch)
2577 (uri (git-reference
2578 (url "https://github.com/cpuguy83/go-md2man")
2579 (commit (string-append "v" version))))
2580 (file-name (git-file-name name version))
2581 (sha256
2582 (base32
2583 "0r1f7v475dxxgzqci1mxfliwadcrk86ippflx9n411325l4g3ghv"))
2584 (modules '((guix build utils)))
2585 (snippet '(begin
2586 (delete-file-recursively "vendor")
2587 #t))))
2588 (build-system go-build-system)
2589 (arguments
2590 '(#:import-path "github.com/cpuguy83/go-md2man"))
2591 (propagated-inputs
2592 `(("go-github-com-russross-blackfriday" ,go-github-com-russross-blackfriday)))
2593 (home-page "https://github.com/cpuguy83/go-md2man")
2594 (synopsis "Convert markdown into roff")
2595 (description "Go-md2man is a Go program that converts markdown to roff for
2596 the purpose of building man pages.")
2597 (license license:expat)))
2598
2599 (define-public go-github-com-russross-blackfriday
2600 (package
2601 (name "go-github-com-russross-blackfriday")
2602 (version "2.0.1")
2603 (source
2604 (origin
2605 (method git-fetch)
2606 (uri (git-reference
2607 (url "https://github.com/russross/blackfriday")
2608 (commit (string-append "v" version))))
2609 (file-name (git-file-name name version))
2610 (sha256
2611 (base32
2612 "0nlz7isdd4rgnwzs68499hlwicxz34j2k2a0b8jy0y7ycd2bcr5j"))))
2613 (build-system go-build-system)
2614 (arguments
2615 '(#:import-path "github.com/russross/blackfriday"))
2616 (propagated-inputs
2617 `(("go-github-com-shurcool-sanitized-anchor-name"
2618 ,go-github-com-shurcool-sanitized-anchor-name)))
2619 (native-inputs
2620 `(("go-github-com-pmezard-go-difflib" ,go-github-com-pmezard-go-difflib)))
2621 (home-page "https://github.com/russross/blackfriday")
2622 (synopsis "Markdown processor in Go")
2623 (description "Blackfriday is a Markdown processor in Go.")
2624 (license license:bsd-2)))
2625
2626 (define-public go-github-com-shurcool-sanitized-anchor-name
2627 (package
2628 (name "go-github-com-shurcool-sanitized-anchor-name")
2629 (version "1.0.0")
2630 (source
2631 (origin
2632 (method git-fetch)
2633 (uri (git-reference
2634 (url "https://github.com/shurcooL/sanitized_anchor_name")
2635 (commit (string-append "v" version))))
2636 (file-name (git-file-name name version))
2637 (sha256
2638 (base32
2639 "1gv9p2nr46z80dnfjsklc6zxbgk96349sdsxjz05f3z6wb6m5l8f"))))
2640 (build-system go-build-system)
2641 (arguments
2642 '(#:import-path "github.com/shurcooL/sanitized_anchor_name"))
2643 (home-page "https://github.com/shurcooL/sanitized_anchor_name")
2644 (synopsis "Create sanitized anchor names")
2645 (description "This package provides a Go program for creating sanitized
2646 anchor names.")
2647 (license license:expat)))
2648
2649 (define-public go-github-com-pmezard-go-difflib
2650 (package
2651 (name "go-github-com-pmezard-go-difflib")
2652 (version "1.0.0")
2653 (source (origin
2654 (method git-fetch)
2655 (uri (git-reference
2656 (url "https://github.com/pmezard/go-difflib")
2657 (commit (string-append "v" version))))
2658 (file-name (git-file-name name version))
2659 (sha256
2660 (base32
2661 "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"))))
2662 (build-system go-build-system)
2663 (arguments
2664 '(#:import-path "github.com/pmezard/go-difflib/difflib"
2665 #:unpack-path "github.com/pmezard/go-difflib/"))
2666 (home-page "https://github.com/pmezard/go-difflib")
2667 (synopsis "Go diff implementation")
2668 (description "This package provides unified and context-aware diffs in Go.")
2669 (license license:bsd-3)))
2670
2671 (define-public go-github-com-whyrusleeping-json-filter
2672 (let ((commit "ff25329a9528f01c5175414f16cc0a6a162a5b8b")
2673 (revision "0"))
2674 (package
2675 (name "go-github-com-whyrusleeping-json-filter")
2676 (version (git-version "0.0.0" revision commit))
2677 (source
2678 (origin
2679 (method git-fetch)
2680 (uri (git-reference
2681 (url "https://github.com/whyrusleeping/json-filter.git")
2682 (commit commit)))
2683 (file-name (git-file-name name version))
2684 (sha256
2685 (base32
2686 "0cai0drvx4c8j686l908vpcsz3mw3vxi3ziz94b0f3c5ylpj07j7"))))
2687 (build-system go-build-system)
2688 (arguments
2689 '(#:import-path
2690 "github.com/whyrusleeping/json-filter"))
2691 (home-page "https://github.com/whyrusleeping/json-filter")
2692 (synopsis "Library to query JSON objects marshalled into map[string]interface")
2693 (description "A library to query JSON objects marshalled into
2694 @command{map[string]interface{}}.")
2695 (license license:expat))))
2696
2697 (define-public go-github-com-whyrusleeping-progmeter
2698 (let ((commit "f3e57218a75b913eff88d49a52c1debf9684ea04")
2699 (revision "0"))
2700 (package
2701 (name "go-github-com-whyrusleeping-progmeter")
2702 (version (git-version "0.0.0" revision commit))
2703 (source
2704 (origin
2705 (method git-fetch)
2706 (uri (git-reference
2707 (url "https://github.com/whyrusleeping/progmeter.git")
2708 (commit commit)))
2709 (file-name (git-file-name name version))
2710 (sha256
2711 (base32
2712 "0xs8rz6yhpvj9512c5v3b8dwr2kivywnyyfxzdfbr6fy1xc8zskb"))))
2713 (build-system go-build-system)
2714 (arguments
2715 '(#:import-path
2716 "github.com/whyrusleeping/progmeter"))
2717 (home-page "https://github.com/whyrusleeping/progmeter")
2718 (synopsis "Progress meter for Go")
2719 (description "Progress meter for Go.")
2720 (license license:expat))))
2721
2722 (define-public go-github-com-whyrusleeping-stump
2723 (let ((commit "206f8f13aae1697a6fc1f4a55799faf955971fc5")
2724 (revision "0"))
2725 (package
2726 (name "go-github-com-whyrusleeping-stump")
2727 (version (git-version "0.0.0" revision commit))
2728 (source
2729 (origin
2730 (method git-fetch)
2731 (uri (git-reference
2732 (url "https://github.com/whyrusleeping/stump.git")
2733 (commit commit)))
2734 (file-name (git-file-name name version))
2735 (sha256
2736 (base32
2737 "1s40qdppjnk8gijk7x6kbviiqz62nz3h6gic2q9cwcmq8r5isw7n"))))
2738 (build-system go-build-system)
2739 (arguments
2740 '(#:import-path "github.com/whyrusleeping/stump"))
2741 (home-page "https://github.com/whyrusleeping/stump")
2742 (synopsis "Very basic logging package for Go")
2743 (description "A simple log library, for when you don't really care to
2744 have super fancy logs.")
2745 (license license:expat))))
2746
2747 (define-public go-github-com-kr-fs
2748 (let ((commit "1455def202f6e05b95cc7bfc7e8ae67ae5141eba")
2749 (revision "0"))
2750 (package
2751 (name "go-github-com-kr-fs")
2752 (version (git-version "0.1.0" revision commit))
2753 (source
2754 (origin
2755 (method git-fetch)
2756 (uri (git-reference
2757 (url "https://github.com/kr/fs.git")
2758 (commit commit)))
2759 (file-name (git-file-name name version))
2760 (sha256
2761 (base32
2762 "11zg176x9hr9q7fsk95r6q0wf214gg4czy02slax4x56n79g6a7q"))))
2763 (build-system go-build-system)
2764 (arguments
2765 '(#:import-path "github.com/kr/fs"))
2766 (home-page "https://github.com/kr/fs")
2767 (synopsis "File-system-related functions for Go")
2768 (description
2769 "The fs package provides file-system-related Go functions.")
2770 (license license:bsd-3))))
2771
2772 (define-public go-github-com-direnv-go-dotenv
2773 (let ((commit "4cce6d1a66f7bc8dc730eab85cab6af1b801abed")
2774 (revision "0"))
2775 (package
2776 (name "go-github-com-direnv-go-dotenv")
2777 (version (git-version "0.0.0" revision commit))
2778 (source
2779 (origin
2780 (method git-fetch)
2781 (uri (git-reference
2782 (url "https://github.com/direnv/go-dotenv")
2783 (commit commit)))
2784 (file-name (git-file-name name version))
2785 (sha256
2786 (base32
2787 "00wn4fc2lma0csf6ryvlc6k9jbpbifm4n7i3kkd2xrfw5qlm29b6"))))
2788 (build-system go-build-system)
2789 (arguments
2790 '(#:import-path "github.com/direnv/go-dotenv"))
2791 (home-page "https://github.com/direnv/go-dotenv")
2792 (synopsis "Go dotenv parsing library")
2793 (description "This package provides a library for parsing the dotenv
2794 format in Go.")
2795 (license license:expat))))
2796
2797 (define-public go-github-com-kr-pretty
2798 (package
2799 (name "go-github-com-kr-pretty")
2800 (version "0.2.0")
2801 (source (origin
2802 (method git-fetch)
2803 (uri (git-reference
2804 (url "https://github.com/kr/pretty.git")
2805 (commit (string-append "v" version))))
2806 (file-name (git-file-name name version))
2807 (sha256
2808 (base32
2809 "1ywbfzz1h3a3qd8rpkiqwi1dm4w8ls9ijb4x1b7567grns9f0vnp"))))
2810 (build-system go-build-system)
2811 (propagated-inputs
2812 `(("go-github-com-kr-text" ,go-github-com-kr-text)))
2813 (arguments
2814 '(#:import-path "github.com/kr/pretty"))
2815 (synopsis "A pretty printer for Go values")
2816 (description "This package provides a pretty printer for Go values.")
2817 (home-page "https://github.com/kr/pretty")
2818 (license license:expat)))
2819
2820 (define-public go-github-com-kr-text
2821 (package
2822 (name "go-github-com-kr-text")
2823 (version "0.1.0")
2824 (source (origin
2825 (method git-fetch)
2826 (uri (git-reference
2827 (url "https://github.com/kr/text.git")
2828 (commit (string-append "v" version))))
2829 (file-name (git-file-name name version))
2830 (sha256
2831 (base32
2832 "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"))))
2833 (build-system go-build-system)
2834 (arguments
2835 '(#:import-path "github.com/kr/text"))
2836 (synopsis "Text formatting in Go")
2837 (description "This package provides a text formatting functions in Go.")
2838 (home-page "https://github.com/kr/text")
2839 (license license:expat)))
2840
2841 (define-public go-golang-org-sql-mock
2842 (let ((commit "e98392b8111b45f8126e00af035a0dd95dc12e8b")
2843 (version "1.3.3")
2844 (revision "1"))
2845 (package
2846 (name "go-golang-org-sql-mock")
2847 (version (git-version version revision commit))
2848 (source (origin
2849 (method git-fetch)
2850 (uri (git-reference
2851 (url "https://github.com/DATA-DOG/go-sqlmock")
2852 (commit commit)))
2853 (file-name (git-file-name name version))
2854 (sha256
2855 (base32
2856 "033vv29g2wf6fd757ajfmha30bqin3b07377037zkl051mk6mghs"))))
2857 (build-system go-build-system)
2858 (arguments
2859 '(#:import-path "github.com/DATA-DOG/go-sqlmock"))
2860 (synopsis "Mock library implementing @code{sql/driver}")
2861 (description "This library simulates SQL-driver behavior in tests
2862 without requiring a real database connection.")
2863 (home-page "https://github.com/DATA-DOG/go-sqlmock")
2864 (license license:expat))))
2865
2866 (define-public go-golang-org-colorful
2867 (package
2868 (name "go-golang-org-colorful")
2869 (version "1.0.2")
2870 (source (origin
2871 (method git-fetch)
2872 (uri (git-reference
2873 (url "https://github.com/lucasb-eyer/go-colorful")
2874 (commit (string-append "v" version))))
2875 (file-name (git-file-name name version))
2876 (sha256
2877 (base32
2878 "0fig06880bvk1l92j4127v4x9sar4ds7ga8959gxxghb2w70b7l2"))))
2879 (build-system go-build-system)
2880 (arguments
2881 '(#:import-path "github.com/lucasb-eyer/go-colorful"))
2882 (native-inputs
2883 `(("go-golang-org-sql-mock" ,go-golang-org-sql-mock)))
2884 (synopsis "Convert between colorspaces and generate colors")
2885 (description "This package implements Go's @code{color.Color} interface
2886 and provides a means of converting colors stored as RGB to various
2887 colorspaces.")
2888 (home-page "https://github.com/lucasb-eyer/go-colorful")
2889 (license license:expat)))
2890
2891 (define-public go-github-com-gdamore-encoding
2892 (package
2893 (name "go-github-com-gdamore-encoding")
2894 (version "1.0.0")
2895 (source
2896 (origin
2897 (method git-fetch)
2898 (uri (git-reference
2899 (url "https://github.com/gdamore/encoding")
2900 (commit (string-append "v" version))))
2901 (file-name (git-file-name name version))
2902 (sha256
2903 (base32
2904 "1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9"))))
2905 (build-system go-build-system)
2906 (arguments
2907 '(#:import-path "github.com/gdamore/encoding"))
2908 (inputs
2909 `(("go-golang-org-x-text" ,go-golang-org-x-text)))
2910 (home-page "https://github.com/gdamore/encoding")
2911 (synopsis "Provide encodings missing from Go")
2912 (description "This package provides useful encodings not included in the
2913 standard @code{Text} package, including some for dealing with I/O streams from
2914 non-UTF-friendly sources.")
2915 (license license:expat)))
2916
2917 (define-public go-github-com-gdamore-tcell
2918 (let ((commit "aaadc574a6ed8dc3abe56036ca130dcee1ee6b6e")
2919 (version "1.1.2")
2920 (revision "1"))
2921 (package
2922 (name "go-github-com-gdamore-tcell")
2923 (version (git-version version revision commit))
2924 (source
2925 (origin
2926 (method git-fetch)
2927 (uri (git-reference
2928 (url "https://github.com/gdamore/tcell")
2929 (commit commit)))
2930 (file-name (git-file-name name version))
2931 (sha256
2932 (base32
2933 "0il2nnxp2cqiy73m49215dnf9in3vd25ji8qxbmq87c5qy7i1q9d"))))
2934 (build-system go-build-system)
2935 (arguments
2936 `(#:import-path "github.com/gdamore/tcell"
2937 #:phases
2938 (modify-phases %standard-phases
2939 (add-before 'reset-gzip-timestamps 'make-files-writable
2940 (lambda* (#:key outputs #:allow-other-keys)
2941 ;; Make sure .gz files are writable so that the
2942 ;; 'reset-gzip-timestamps' phase can do its work.
2943 (let ((out (assoc-ref outputs "out")))
2944 (for-each make-file-writable
2945 (find-files out "\\.gz$"))
2946 #t))))))
2947 (inputs
2948 `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
2949 ("go-golang-org-colorful" ,go-golang-org-colorful)
2950 ("go-golang-org-x-text" ,go-golang-org-x-text)
2951 ("go-github-com-gdamore-encoding" ,go-github-com-gdamore-encoding)))
2952 (home-page "https://github.com/gdamore/tcell")
2953 (synopsis "Provide a cell-based view for text terminals")
2954 (description "This package includes a full parser and expander for
2955 terminfo capability strings to avoid hard-coding escape strings for
2956 formatting. It also favors portability, and includes support for all POSIX
2957 systems.")
2958 (license license:expat))))
2959
2960 (define-public go-github-com-mattn-go-shellwords
2961 (let ((commit "2444a32a19f450fabaa0bb3e96a703f15d9a97d2")
2962 (version "1.0.5")
2963 (revision "1"))
2964 (package
2965 (name "go-github-com-mattn-go-shellwords")
2966 (version (git-version version revision commit))
2967 (source
2968 (origin
2969 (method git-fetch)
2970 (uri (git-reference
2971 (url "https://github.com/mattn/go-shellwords")
2972 (commit commit)))
2973 (file-name (git-file-name name version))
2974 (sha256
2975 (base32
2976 "08zcgr1az1n8zaxzwdd205j86hczgyc52nxfnw5avpw7rrkf7v0d"))))
2977 (build-system go-build-system)
2978 (arguments
2979 `(#:import-path "github.com/mattn/go-shellwords"
2980 ;; TODO: can't make homeless-shelter:
2981 ;; go: disabling cache (/homeless-shelter/.cache/go-build) due to
2982 ;; initialization failure: mkdir /homeless-shelter: permission denied
2983
2984 ;; This doesn't seem to work:
2985
2986 ;; #:phases
2987 ;; (modify-phases %standard-phases
2988 ;; (replace 'check
2989 ;; (lambda* (#:key import-path #:allow-other-keys)
2990 ;; (setenv "HOME" "/tmp")
2991 ;; (invoke "go" "test" import-path))))
2992
2993 ;; TODO: There are also a couple of tests that have stymied Debian in
2994 ;; the past. They seem to work when run locally.
2995
2996 #:tests? #f
2997 ))
2998 (home-page "https://github.com/mattn/go-shellwords")
2999 (synopsis "Parse lines into shell words")
3000 (description "This package parses text into shell arguments. Based on
3001 the @code{cpan} module @code{Parse::CommandLine}.")
3002 (license license:expat))))
3003
3004 (define-public go-github-com-burntsushi-locker
3005 (let ((commit "a6e239ea1c69bff1cfdb20c4b73dadf52f784b6a")
3006 (revision "0"))
3007 (package
3008 (name "go-github-com-burntsushi-locker")
3009 (version (git-version "0.0.0" revision commit))
3010 (source
3011 (origin
3012 (method git-fetch)
3013 (uri (git-reference
3014 (url "https://github.com/BurntSushi/locker")
3015 (commit commit)))
3016 (file-name (git-file-name name version))
3017 (sha256
3018 (base32
3019 "1xak4aync4klswq5217qvw191asgla51jr42y94vp109lirm5dzg"))))
3020 (build-system go-build-system)
3021 (arguments
3022 '(#:import-path "github.com/BurntSushi/locker"))
3023 (home-page "https://github.com/BurntSushi/locker")
3024 (synopsis "Manage named ReadWrite mutexes in Go")
3025 (description "Golang package for conveniently using named read/write
3026 locks. These appear to be especially useful for synchronizing access to
3027 session based information in web applications.
3028
3029 The common use case is to use the package level functions, which use a package
3030 level set of locks (safe to use from multiple goroutines
3031 simultaneously). However, you may also create a new separate set of locks
3032 test.
3033
3034 All locks are implemented with read-write mutexes. To use them like a regular
3035 mutex, simply ignore the RLock/RUnlock functions.")
3036 (license license:unlicense))))
3037
3038 (define-public go-github-com-marten-seemann-qtls
3039 (package
3040 (name "go-github-com-marten-seemann-qtls")
3041 (version "0.4.1")
3042 (source (origin
3043 (method git-fetch)
3044 (uri (git-reference
3045 (url "https://github.com/marten-seemann/qtls")
3046 (commit (string-append "v" version))))
3047 (file-name (git-file-name name version))
3048 (sha256
3049 (base32
3050 "0dz60y98nm7l70hamq0v2vrs2dspyr5yqhnrds2dfh7hchxvq76j"))))
3051 (build-system go-build-system)
3052 (arguments
3053 '(#:import-path "github.com/marten-seemann/qtls"
3054 ;; The test suite requires networking.
3055 #:tests? #f))
3056 (propagated-inputs
3057 `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
3058 (synopsis "TLS 1.3 with QUIC in Go")
3059 (description "This package provides @code{qtls}, a QUIC-capable variant of
3060 the Go standard library's TLS 1.3 implementation.")
3061 (home-page "https://github.com/marten-seemann/qtls")
3062 (license license:bsd-3)))
3063
3064 (define-public go-github-com-marten-seemann-chacha20
3065 (package
3066 (name "go-github-com-marten-seemann-chacha20")
3067 (version "0.2.0")
3068 (source (origin
3069 (method git-fetch)
3070 (uri (git-reference
3071 (url "https://github.com/marten-seemann/chacha20")
3072 (commit (string-append "v" version))))
3073 (file-name (git-file-name name version))
3074 (sha256
3075 (base32
3076 "0x1j4cvbap45zk962qkjalc1h3axhzzdy9cdzhcjmprmm1ql4gjm"))))
3077 (build-system go-build-system)
3078 (arguments
3079 '(#:import-path "github.com/marten-seemann/chacha20"))
3080 (synopsis "ChaCha20 in Go")
3081 (description "This package is an external copy of the Go standard library's
3082 internal ChaCha20 package.")
3083 (home-page "https://github.com/marten-seemann/chacha20")
3084 (license license:bsd-3)))
3085
3086 (define-public go-github-com-cheekybits-genny
3087 (package
3088 (name "go-github-com-cheekybits-genny")
3089 (version "1.0.0")
3090 (source (origin
3091 (method git-fetch)
3092 (uri (git-reference
3093 (url "https://github.com/cheekybits/genny")
3094 (commit (string-append "v" version))))
3095 (file-name (git-file-name name version))
3096 (sha256
3097 (base32
3098 "1pcir5ic86713aqa51581rfb67rgc3m0c72ddjfcp3yakv9vyq87"))))
3099 (build-system go-build-system)
3100 (arguments
3101 '(#:import-path "github.com/cheekybits/genny"))
3102 (propagated-inputs
3103 `(("go-golang-org-x-tools" ,go-golang-org-x-tools)))
3104 (synopsis "Generics for Go")
3105 (description "This package provides @code{genny}, a Go language
3106 implementation of generics.")
3107 (home-page "https://github.com/cheekybits/genny/")
3108 (license license:expat)))
3109
3110 (define-public go-github-com-lucas-clemente-quic-go
3111 (package
3112 (name "go-github-com-lucas-clemente-quic-go")
3113 (version "0.14.4")
3114 (source (origin
3115 (method git-fetch)
3116 (uri (git-reference
3117 (url "https://github.com/lucas-clemente/quic-go")
3118 (commit (string-append "v" version))))
3119 (file-name (git-file-name name version))
3120 (sha256
3121 (base32
3122 "04l3gqbc3gh079n8vgnrsf8ypgv8sl63xjf28jqfrb45v2l73vyz"))))
3123 (build-system go-build-system)
3124 (arguments
3125 '(#:import-path "github.com/lucas-clemente/quic-go"
3126 ;; XXX More packages required...
3127 #:tests? #f))
3128 (propagated-inputs
3129 `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
3130 ("go-github-com-cheekybits-genny" ,go-github-com-cheekybits-genny)
3131 ("go-github-com-marten-seemann-chacha20" ,go-github-com-marten-seemann-chacha20)
3132 ("go-github-com-marten-seemann-qtls" ,go-github-com-marten-seemann-qtls)
3133 ("go-github-com-golang-protobuf-proto" ,go-github-com-golang-protobuf-proto)))
3134 (synopsis "QUIC in Go")
3135 (description "This package provides a Go language implementation of the QUIC
3136 network protocol.")
3137 (home-page "https://github.com/lucas-clemente/quic-go")
3138 (license license:expat)))
3139
3140 (define-public go-github-com-francoispqt-gojay
3141 (package
3142 (name "go-github-com-francoispqt-gojay")
3143 (version "1.2.13")
3144 (source (origin
3145 (method git-fetch)
3146 (uri (git-reference
3147 (url "https://github.com/francoispqt/gojay")
3148 (commit (string-append "v" version))))
3149 (file-name (git-file-name name version))
3150 (sha256
3151 (base32
3152 "1ix95qdyajfmxhf9y52vjrih63f181pjs4v5as8905s4d5vmkd06"))))
3153 (build-system go-build-system)
3154 (arguments
3155 '(#:import-path "github.com/francoispqt/gojay"))
3156 (propagated-inputs
3157 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
3158 (synopsis "JSON encoder/decoder with powerful stream API for Golang")
3159 (description "GoJay is a performant JSON encoder/decoder for Golang. It has
3160 a simple API and doesn't use reflection. It relies on small interfaces to
3161 decode/encode structures and slices.")
3162 (home-page "https://github.com/francoispqt/gojay")
3163 (license license:expat)))
3164
3165 (define-public go-github-com-pkg-errors
3166 (package
3167 (name "go-github-com-pkg-errors")
3168 (version "0.9.1")
3169 (source (origin
3170 (method git-fetch)
3171 (uri (git-reference
3172 (url "https://github.com/pkg/errors.git")
3173 (commit (string-append "v" version))))
3174 (file-name (git-file-name name version))
3175 (sha256
3176 (base32
3177 "1761pybhc2kqr6v5fm8faj08x9bql8427yqg6vnfv6nhrasx1mwq"))))
3178 (build-system go-build-system)
3179 (arguments
3180 `(#:import-path "github.com/pkg/errors"))
3181 (synopsis "Go error handling primitives")
3182 (description "This package provides @code{error}, which offers simple
3183 error handling primitives in Go.")
3184 (home-page "https://github.com/pkg/errors")
3185 (license license:bsd-2)))
3186
3187 (define-public go-github-com-maruel-panicparse
3188 (package
3189 (name "go-github-com-maruel-panicparse")
3190 (version "1.3.0")
3191 (source (origin
3192 (method git-fetch)
3193 (uri (git-reference
3194 (url "https://github.com/maruel/panicparse")
3195 (commit (string-append "v" version))))
3196 (file-name (git-file-name name version))
3197 (sha256
3198 (base32
3199 "13qkn7f64yln8jdmma37h6ra4c7anxkp3vfgvfyb6lb07dpr1ibq"))))
3200 (build-system go-build-system)
3201 (arguments
3202 '(#:import-path "github.com/maruel/panicparse"))
3203 (synopsis "Toolkit for parsing Go stack traces")
3204 (description "This package provides a toolkit for parsing Go language panic
3205 stack traces. It simplifies the traces to make salient information more visible
3206 and aid debugging.")
3207 (home-page "https://github.com/maruel/panicparse")
3208 (license license:asl2.0)))
3209
3210 (define-public go-github-com-robfig-cron
3211 (package
3212 (name "go-github-com-robfig-cron")
3213 (version "3.0.0")
3214 (source
3215 (origin
3216 (method git-fetch)
3217 (uri (git-reference
3218 (url "https://github.com/robfig/cron")
3219 (commit (string-append "v" version))))
3220 (file-name (git-file-name name version))
3221 (sha256
3222 (base32
3223 "0bvq5gxkhyj21lq32nma23i4dpwp7bswnp2yks6372ilkcyisx2z"))))
3224 (build-system go-build-system)
3225 (arguments
3226 `(#:import-path "github.com/robfig/cron"))
3227 (home-page "https://godoc.org/github.com/robfig/cron")
3228 (synopsis "Cron library for Go")
3229 (description "This package provides a cron library for Go. It implements
3230 a cron spec parser and job runner.")
3231 (license license:expat)))
3232
3233 (define-public go-github-com-shirou-gopsutil
3234 (let ((commit "47ef3260b6bf6ead847e7c8fc4101b33c365e399")
3235 (revision "0"))
3236 (package
3237 (name "go-github-com-shirou-gopsutil")
3238 (version (git-version "v2.19.7" revision commit))
3239 (source (origin
3240 (method git-fetch)
3241 (uri (git-reference
3242 (url "https://github.com/shirou/gopsutil")
3243 (commit commit))) ; XXX
3244 (file-name (git-file-name name version))
3245 (sha256
3246 (base32
3247 "0x1g4r32q4201nr2b754xnrrndmwsrhfr7zg37spya86qrmijnws"))))
3248 (build-system go-build-system)
3249 (arguments
3250 '(#:import-path "github.com/shirou/gopsutil"))
3251 (synopsis "Process and system monitoring in Go")
3252 (description "This package provides a library for retrieving information
3253 on running processes and system utilization (CPU, memory, disks, network,
3254 sensors).")
3255 (home-page "https://github.com/shirou/gopsutil")
3256 (license license:bsd-3))))
3257
3258 (define-public go-github-com-fatih-color
3259 (package
3260 (name "go-github-com-fatih-color")
3261 (version "1.8.0")
3262 (source (origin
3263 (method git-fetch)
3264 (uri (git-reference
3265 (url "https://github.com/fatih/color.git")
3266 (commit (string-append "v" version))))
3267 (file-name (git-file-name name version))
3268 (sha256
3269 (base32
3270 "1zc0zlilf03h121f9jqq3ar0hfm7706547zysxp2qxbm920pz7h0"))))
3271 (build-system go-build-system)
3272 (arguments
3273 '(#:import-path "github.com/fatih/color"))
3274 (synopsis "Print colored text in Go")
3275 (description "This package provides an ANSI color package to output
3276 colorized or SGR defined output to the standard output.")
3277 (home-page "https://godoc.org/github.com/fatih/color")
3278 (license license:expat)))
3279
3280 (define-public go-github-com-google-go-cmp-cmp
3281 (package
3282 (name "go-github-com-google-go-cmp-cmp")
3283 (version "0.3.1")
3284 (source (origin
3285 (method git-fetch)
3286 (uri (git-reference
3287 (url "https://github.com/google/go-cmp.git")
3288 (commit (string-append "v" version))))
3289 (file-name (git-file-name name version))
3290 (sha256
3291 (base32
3292 "1caw49i0plkjxir7kdf5qhwls3krqwfmi7g4h392rdfwi3kfahx1"))))
3293 (build-system go-build-system)
3294 (arguments
3295 '(#:import-path "github.com/google/go-cmp/cmp"
3296 #:unpack-path "github.com/google/go-cmp"))
3297 (synopsis "Determine equality of values in Go")
3298 (description "This package provides a more powerful and safer
3299 alternative to @code{reflect.DeepEqual} for comparing whether two values
3300 are semantically equal in Go (for writing tests).")
3301 (home-page "https://godoc.org/github.com/google/go-cmp/cmp")
3302 (license license:asl2.0)))
3303
3304 (define-public go-golang.org-x-sync-errgroup
3305 (let ((commit "cd5d95a43a6e21273425c7ae415d3df9ea832eeb")
3306 (revision "0"))
3307 (package
3308 (name "go-golang.org-x-sync-errgroup")
3309 (version (git-version "0.0.0" revision commit))
3310 (source (origin
3311 (method git-fetch)
3312 (uri (git-reference
3313 (url "https://go.googlesource.com/sync")
3314 (commit commit)))
3315 (file-name (git-file-name name version))
3316 (sha256
3317 (base32
3318 "1nqkyz2y1qvqcma52ijh02s8aiqmkfb95j08f6zcjhbga3ds6hds"))))
3319 (build-system go-build-system)
3320 (arguments
3321 '(#:import-path "golang.org/x/sync/errgroup"
3322 #:unpack-path "golang.org/x/sync"))
3323 (synopsis "Synchronization, error propagation, and Context cancellation
3324 for groups of goroutines working on subtasks of a common task.")
3325 (description "This package provides synchronization, error propagation,
3326 and Context cancellation for groups of goroutines working on subtasks of a
3327 common task.")
3328 (home-page "https://godoc.org/golang.org/x/sync/errgroup")
3329 (license license:bsd-3))))
3330
3331 (define (go-gotest-tools-source version sha256-base32-hash)
3332 (origin
3333 (method git-fetch)
3334 (uri (git-reference
3335 (url "https://github.com/gotestyourself/gotest.tools.git")
3336 (commit (string-append "v" version))))
3337 (file-name (git-file-name "go-gotest-tools" version))
3338 (sha256
3339 (base32 sha256-base32-hash))))
3340
3341 ;; Note that version 3.0.0 is incompatible to 2.3.0.
3342 ;; See also <https://github.com/gotestyourself/gotest.tools/issues/166>.
3343 (define (go-gotest-tools-package suffix)
3344 (package
3345 (name (string-append "go-gotest-tools-"
3346 (string-replace-substring suffix "/" "-")))
3347 (version "2.3.0")
3348 (source
3349 (go-gotest-tools-source version
3350 "0071rjxp4xzcr3vprkaj1hdk35a3v45bx8v0ipk16wwc5hx84i2i"))
3351 (build-system go-build-system)
3352 (arguments
3353 `(#:import-path ,(string-append "gotest.tools/" suffix)
3354 #:unpack-path "gotest.tools"))
3355 (synopsis "@code{gotest-tools} part")
3356 (description "This package provides a part of @code{gotest-tools}.")
3357 (home-page "https://github.com/gotestyourself/gotest.tools")
3358 (license license:asl2.0)))
3359
3360 (define-public go-gotest-tools-internal-format
3361 (package (inherit (go-gotest-tools-package "internal/format"))
3362 (native-inputs
3363 `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
3364 ("go-github-com-google-go-cmp-cmp"
3365 ,go-github-com-google-go-cmp-cmp)))
3366 (synopsis "Formats messages for use with gotest-tools")
3367 (description "This package provides a way to format messages for use
3368 with gotest-tools.")))
3369
3370 (define-public go-gotest-tools-internal-difflib
3371 (package (inherit (go-gotest-tools-package "internal/difflib"))
3372 (synopsis "Differences for use with gotest-tools")
3373 (description "This package computes differences for use
3374 with gotest-tools.")))
3375
3376 (define-public go-gotest-tools-internal-source
3377 (package (inherit (go-gotest-tools-package "internal/source"))
3378 (native-inputs
3379 `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
3380 ("go-github-com-google-go-cmp-cmp" ,go-github-com-google-go-cmp-cmp)))
3381 (synopsis "Source code AST formatters for gotest-tools")
3382 (description "This package provides source code AST formatters for
3383 gotest-tools.")))
3384
3385 (define-public go-gotest-tools-assert
3386 (package (inherit (go-gotest-tools-package "assert"))
3387 (name "go-gotest-tools-assert")
3388 (arguments
3389 `(#:tests? #f ; Test failure concerning message formatting (FIXME)
3390 #:import-path "gotest.tools/assert"
3391 #:unpack-path "gotest.tools"))
3392 ;(propagated-inputs
3393 ; `(("go-gotest-tools-internal-format" ,go-gotest-tools-internal-format)))
3394 (native-inputs
3395 `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
3396 ("go-github-com-google-go-cmp-cmp"
3397 ,go-github-com-google-go-cmp-cmp)))
3398 (synopsis "Compare values and fail a test when a comparison fails")
3399 (description "This package provides a way to compare values and fail a
3400 test when a comparison fails.")
3401 (home-page "https://github.com/gotestyourself/gotest.tools")
3402 (license license:asl2.0)))
3403
3404 (define-public gotestsum
3405 (package
3406 (name "gotestsum")
3407 (version "0.4.0")
3408 (source (origin
3409 (method git-fetch)
3410 (uri (git-reference
3411 (url "https://github.com/gotestyourself/gotestsum.git")
3412 (commit (string-append "v" version))))
3413 (file-name (git-file-name name version))
3414 (sha256
3415 (base32
3416 "0y71qr3ss3hgc8c7nmvpwk946xy1jc5d8whsv6y77wb24ncla7n0"))))
3417 (build-system go-build-system)
3418 (arguments
3419 '(#:import-path "gotest.tools/gotestsum"))
3420 (native-inputs
3421 `(("go-github-com-fatih-color" ,go-github-com-fatih-color)
3422 ("go-golang.org-x-sync-errgroup" ,go-golang.org-x-sync-errgroup)
3423 ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
3424 ("go-github-com-sirupsen-logrus"
3425 ,go-github-com-sirupsen-logrus)
3426 ("go-github-com-spf13-pflag" ,go-github-com-spf13-pflag)
3427 ("go-github-com-jonboulle-clockwork"
3428 ,go-github-com-jonboulle-clockwork)
3429 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
3430 ("go-gotest-tools-assert" ,go-gotest-tools-assert)
3431 ("go-github-com-google-go-cmp-cmp"
3432 ,go-github-com-google-go-cmp-cmp)
3433 ;; TODO: This would be better as a propagated-input of
3434 ;; go-gotest-tools-assert, but that does not work for
3435 ;; some reason.
3436 ("go-gotest-tools-internal-format"
3437 ,go-gotest-tools-internal-format)
3438 ("go-gotest-tools-internal-difflib"
3439 ,go-gotest-tools-internal-difflib)
3440 ("go-gotest-tools-internal-source"
3441 ,go-gotest-tools-internal-source)
3442 ("go-github-com-google-go-cmp-cmp"
3443 ,go-github-com-google-go-cmp-cmp)))
3444 (synopsis "Go test runner with output optimized for humans")
3445 (description "This package provides a @code{go test} runner with output
3446 optimized for humans, JUnit XML for CI integration, and a summary of the
3447 test results.")
3448 (home-page "https://github.com/gotestyourself/gotestsum")
3449 (license license:asl2.0)))
3450
3451 (define-public go-github-com-golang-protobuf-proto
3452 (package
3453 (name "go-github-com-golang-protobuf-proto")
3454 (version "1.3.1")
3455 (source (origin
3456 (method git-fetch)
3457 (uri (git-reference
3458 (url "https://github.com/golang/protobuf.git")
3459 (commit (string-append "v" version))))
3460 (file-name (git-file-name name version))
3461 (sha256
3462 (base32
3463 "15am4s4646qy6iv0g3kkqq52rzykqjhm4bf08dk0fy2r58knpsyl"))))
3464 (build-system go-build-system)
3465 (arguments
3466 '(#:import-path "github.com/golang/protobuf/proto"
3467 #:unpack-path "github.com/golang/protobuf"
3468 ;; Requires unpackaged golang.org/x/sync/errgroup
3469 #:tests? #f))
3470 (synopsis "Go support for Protocol Buffers")
3471 (description "This package provides Go support for the Protocol Buffers
3472 data serialization format.")
3473 (home-page "https://github.com/golang/protobuf")
3474 (license license:bsd-3)))
3475
3476 (define-public go-github-com-mattn-go-zglob
3477 (package
3478 (name "go-github-com-mattn-go-zglob")
3479 (version "0.0.1")
3480 (source (origin
3481 (method git-fetch)
3482 (uri (git-reference
3483 (url "https://github.com/mattn/go-zglob.git")
3484 (commit (string-append "v" version))))
3485 (file-name (git-file-name name version))
3486 (sha256
3487 (base32
3488 "1sncdyq5fbd42al4amyy91h7vlzm3wm6c9vl8za2pjgfgsd581fz"))))
3489 (build-system go-build-system)
3490 (arguments
3491 `(#:import-path "github.com/mattn/go-zglob"))
3492 (home-page "https://github.com/mattn/go-zglob")
3493 (synopsis "Glob library that descends into other directories")
3494 (description " A glob library that implements descending into other
3495 directories. It is optimized for filewalking. ")
3496 (license license:expat)))
3497
3498 (define-public go-github-com-willf-bitset
3499 (package
3500 (name "go-github-com-willf-bitset")
3501 (version "1.1.10")
3502 (source (origin
3503 (method git-fetch)
3504 (uri (git-reference
3505 (url "https://github.com/willf/bitset")
3506 (commit (string-append "v" version))))
3507 (file-name (git-file-name name version))
3508 (sha256
3509 (base32
3510 "0wpaxg6va3qwd0hq0b8rpb1hswvzzbfm2h8sjmcsdpbkydjjx9zg"))))
3511 (build-system go-build-system)
3512 (arguments
3513 '(#:import-path "github.com/willf/bitset"))
3514 (synopsis "Bitsets in Go")
3515 (description "This package provides a Go implementation of bitsets, which
3516 are a mapping between non-negative integers and boolean values focused on
3517 efficient space usage.")
3518 (home-page "https://github.com/willf/bitset")
3519 (license license:bsd-3)))
3520
3521 (define-public go-github-com-willf-bloom
3522 (package
3523 (name "go-github-com-willf-bloom")
3524 (version "2.0.3")
3525 (source (origin
3526 (method git-fetch)
3527 (uri (git-reference
3528 (url "https://github.com/willf/bloom")
3529 (commit (string-append "v" version))))
3530 (file-name (git-file-name name version))
3531 (sha256
3532 (base32
3533 "0ygan8pgcay7wx3cs3ja8rdqj7nly7v3and97ddcc66020jxchzg"))))
3534 (build-system go-build-system)
3535 (arguments
3536 '(#:import-path "github.com/willf/bloom"
3537 #:phases
3538 (modify-phases %standard-phases
3539 (add-after 'unpack 'patch-import-path
3540 (lambda _
3541 ;; See 'go.mod' in the source distribution of Syncthing 1.5.0 for
3542 ;; more information.
3543 ;; <https://github.com/spaolacci/murmur3/issues/29>
3544 (substitute* "src/github.com/willf/bloom/bloom.go"
3545 (("spaolacci") "twmb"))
3546 #t)))))
3547 (propagated-inputs
3548 `(("go-github-com-twmb-murmur3" ,go-github-com-twmb-murmur3)
3549 ("go-github-com-willf-bitset" ,go-github-com-willf-bitset)))
3550 (synopsis "Bloom filters in Go")
3551 (description "This package provides a Go implementation of bloom filters,
3552 based on murmurhash.")
3553 (home-page "https://github.com/willf/bloom")
3554 (license license:bsd-2)))
3555
3556 (define-public go-golang-org-rainycape-unidecode
3557 (let ((commit "cb7f23ec59bec0d61b19c56cd88cee3d0cc1870c")
3558 (revision "1"))
3559 (package
3560 (name "go-golang-org-rainycape-unidecode")
3561 (version (git-version "0.0.0" revision commit))
3562 (source (origin
3563 (method git-fetch)
3564 (uri (git-reference
3565 (url "https://github.com/rainycape/unidecode")
3566 (commit commit)))
3567 (file-name (string-append "go-golang-org-rainycape-unidecode-"
3568 version "-checkout"))
3569 (sha256
3570 (base32
3571 "1wvzdijd640blwkgmw6h09frkfa04kcpdq87n2zh2ymj1dzla5v5"))))
3572 (build-system go-build-system)
3573 (arguments
3574 `(#:import-path "golang.org/rainycape/unidecode"))
3575 (home-page "https://github.com/rainycape/unidecode")
3576 (synopsis "Unicode transliterator in Golang")
3577 (description "Unicode transliterator in Golang - Replaces non-ASCII
3578 characters with their ASCII approximations.")
3579 (license license:asl2.0))))
3580
3581 (define-public go-github-com-golang-freetype
3582 (let ((commit "e2365dfdc4a05e4b8299a783240d4a7d5a65d4e4")
3583 (revision "1"))
3584 (package
3585 (name "go-github-com-golang-freetype")
3586 (version (git-version "0.0.0" revision commit))
3587 (source (origin
3588 (method git-fetch)
3589 (uri (git-reference
3590 (url "https://github.com/golang/freetype")
3591 (commit commit)))
3592 (file-name (string-append "go-github-com-golang-freetype-"
3593 version "-checkout"))
3594 (sha256
3595 (base32
3596 "194w3djc6fv1rgcjqds085b9fq074panc5vw582bcb8dbfzsrqxc"))))
3597 (build-system go-build-system)
3598 (arguments
3599 `(#:import-path "github.com/golang/freetype"))
3600 (propagated-inputs
3601 `(("go-golang-org-x-image" ,go-golang-org-x-image)))
3602 (home-page "https://github.com/golang/freetype")
3603 (synopsis "Freetype font rasterizer in the Go programming language")
3604 (description "The Freetype font rasterizer in the Go programming language.")
3605 (license (list license:freetype
3606 license:gpl2+)))))
3607
3608 (define-public go-github-com-fogleman-gg
3609 (package
3610 (name "go-github-com-fogleman-gg")
3611 (version "1.3.0")
3612 (source (origin
3613 (method git-fetch)
3614 (uri (git-reference
3615 (url "https://github.com/fogleman/gg")
3616 (commit (string-append "v" version))))
3617 (file-name (git-file-name name version))
3618 (sha256
3619 (base32
3620 "1nkldjghbqnzj2djfaxhiv35kk341xhcrj9m2dwq65v684iqkk8n"))))
3621 (build-system go-build-system)
3622 (arguments
3623 `(#:tests? #f ; Issue with test flags.
3624 #:import-path "github.com/fogleman/gg"))
3625 (propagated-inputs
3626 `(("go-github-com-golang-freetype" ,go-github-com-golang-freetype)))
3627 (home-page "https://github.com/fogleman/gg")
3628 (synopsis "2D rendering in Go")
3629 (description "@code{gg} is a library for rendering 2D graphics in pure Go.")
3630 (license license:expat)))
3631
3632 (define-public go-github-com-gedex-inflector
3633 (let ((commit "16278e9db8130ac7ec405dc174cfb94344f16325")
3634 (revision "1"))
3635 (package
3636 (name "go-github-com-gedex-inflector")
3637 (version (git-version "0.0.0" revision commit))
3638 (source (origin
3639 (method git-fetch)
3640 (uri (git-reference
3641 (url "https://github.com/gedex/inflector")
3642 (commit commit)))
3643 (file-name (string-append "go-github-com-gedex-inflector-"
3644 version "-checkout"))
3645 (sha256
3646 (base32
3647 "05hjqw1m71vww4914d9h6nqa9jw3lgjzwsy7qaffl02s2lh1amks"))))
3648 (build-system go-build-system)
3649 (arguments
3650 `(#:import-path "github.com/gedex/inflector"))
3651 (home-page "https://github.com/gedex/inflector")
3652 (synopsis "Go library that pluralizes and singularizes English nouns")
3653 (description "Go library that pluralizes and singularizes English nouns.")
3654 (license license:bsd-2))))
3655
3656 (define-public go-github-com-klauspost-cpuid
3657 (package
3658 (name "go-github-com-klauspost-cpuid")
3659 (version "1.2.3")
3660 (source (origin
3661 (method git-fetch)
3662 (uri (git-reference
3663 (url "https://github.com/klauspost/cpuid")
3664 (commit (string-append "v" version))))
3665 (file-name (git-file-name name version))
3666 (sha256
3667 (base32
3668 "1s510210wdj5dkamii1qrk7v87k4qpdcrrjzflp5ha9iscw6b06l"))))
3669 (build-system go-build-system)
3670 (arguments
3671 `(#:import-path "github.com/klauspost/cpuid"))
3672 (home-page "https://github.com/klauspost/cpuid")
3673 (synopsis "CPU feature identification for Go")
3674 (description "@code{cpuid} provides information about the CPU running the
3675 current program. CPU features are detected on startup, and kept for fast access
3676 through the life of the application. Currently x86 / x64 (AMD64) is supported,
3677 and no external C (cgo) code is used, which should make the library very eas
3678 to use.")
3679 (license license:expat)))
3680
3681 (define-public go-github-com-pbnjay-memory
3682 (let ((commit "974d429e7ae40c89e7dcd41cfcc22a0bfbe42510")
3683 (revision "1"))
3684 (package
3685 (name "go-github-com-pbnjay-memory")
3686 (version (git-version "0.0.0" revision commit))
3687 (source (origin
3688 (method git-fetch)
3689 (uri (git-reference
3690 (url "https://github.com/pbnjay/memory")
3691 (commit commit)))
3692 (file-name (string-append "go-github-com-pbnjay-memory-"
3693 version "-checkout"))
3694 (sha256
3695 (base32
3696 "0kazg5psdn90pqadrzma5chdwh0l2by9z31sspr47gx93fhjmkkq"))))
3697 (build-system go-build-system)
3698 (arguments
3699 `(#:import-path "github.com/pbnjay/memory"))
3700 (home-page "https://github.com/gedex/inflector")
3701 (synopsis "Go library to report total system memory")
3702 (description "@code{memory} provides a single method reporting total
3703 physical system memory accessible to the kernel. It does not account for memory
3704 used by other processes.")
3705 (license license:bsd-3))))
3706
3707 (define-public go-github-com-surge-glog
3708 (let ((commit "2578deb2b95c665e6b1ebabf304ce2085c9e1985")
3709 (revision "1"))
3710 (package
3711 (name "go-github-com-surge-glog")
3712 (version (git-version "0.0.0" revision commit))
3713 (source (origin
3714 (method git-fetch)
3715 (uri (git-reference
3716 (url "https://github.com/surge/glog")
3717 (commit commit)))
3718 (file-name (string-append "go-github-com-surge-glog-"
3719 version "-checkout"))
3720 (sha256
3721 (base32
3722 "1bxcwxvsvr2hfpjz9hrrn0wrgykwmrbyk567102k3vafw9xdcwk4"))))
3723 (build-system go-build-system)
3724 (arguments
3725 `(#:import-path "github.com/surge/glog"))
3726 (home-page "https://github.com/surge/glog")
3727 (synopsis "Leveled execution logs for Go")
3728 (description "Leveled execution logs for Go.")
3729 (license license:asl2.0))))
3730
3731 (define-public go-github-com-surgebase-porter2
3732 (let ((commit "56e4718818e8dc4ea5ba6348402fc7661863732a")
3733 (revision "1"))
3734 (package
3735 (name "go-github-com-surgebase-porter2")
3736 (version (git-version "0.0.0" revision commit))
3737 (source (origin
3738 (method git-fetch)
3739 (uri (git-reference
3740 (url "https://github.com/surgebase/porter2")
3741 (commit commit)))
3742 (file-name (string-append "go-github-com-surgebase-porter2-"
3743 version "-checkout"))
3744 (sha256
3745 (base32
3746 "1ivcf83jlj9s7q5y9dfbpyl0br35cz8fcp0dm8sxxvqh54py06v2"))))
3747 (build-system go-build-system)
3748 (arguments
3749 `(#:import-path "github.com/surgebase/porter2"))
3750 (native-inputs
3751 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)
3752 ("go-github-com-surge-glog" ,go-github-com-surge-glog)))
3753 (home-page "https://github.com/surgebase/porter2")
3754 (synopsis "Go library implementing english Porter2 stemmer")
3755 (description "Porter2 implements the
3756 @url{http://snowball.tartarus.org/algorithms/english/stemmer.html, english
3757 Porter2 stemmer}. It is written completely using finite state machines to do
3758 suffix comparison, rather than the string-based or tree-based approaches.")
3759 (license license:asl2.0))))