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