gnu: Add go-github-com-golangplus-fmt.
[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, 2020 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 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
21 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.com>
22 ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
23 ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
24 ;;; Copyright © 2020 raingloom <raingloom@riseup.net>
25 ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
26 ;;;
27 ;;; This file is part of GNU Guix.
28 ;;;
29 ;;; GNU Guix is free software; you can redistribute it and/or modify it
30 ;;; under the terms of the GNU General Public License as published by
31 ;;; the Free Software Foundation; either version 3 of the License, or (at
32 ;;; your option) any later version.
33 ;;;
34 ;;; GNU Guix is distributed in the hope that it will be useful, but
35 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
36 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
37 ;;; GNU General Public License for more details.
38 ;;;
39 ;;; You should have received a copy of the GNU General Public License
40 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
41
42 (define-module (gnu packages golang)
43 #:use-module ((guix licenses) #:prefix license:)
44 #:use-module (guix utils)
45 #:use-module (guix download)
46 #:use-module (guix git-download)
47 #:use-module (guix packages)
48 #:use-module (guix build-system gnu)
49 #:use-module (guix build-system trivial)
50 #:use-module (guix build-system go)
51 #:use-module (gnu packages)
52 #:use-module (gnu packages admin)
53 #:use-module (gnu packages gcc)
54 #:use-module (gnu packages glib)
55 #:use-module (gnu packages base)
56 #:use-module (gnu packages perl)
57 #:use-module (gnu packages pkg-config)
58 #:use-module (gnu packages pcre)
59 #:use-module (gnu packages lua)
60 #:use-module (gnu packages mp3)
61 #:use-module (gnu packages textutils)
62 #:use-module (gnu packages tls)
63 #:use-module (gnu packages web)
64 #:use-module (ice-9 match)
65 #:use-module (srfi srfi-1))
66
67 ;; According to https://golang.org/doc/install/gccgo, gccgo-4.8.2 includes a
68 ;; complete go-1.1.2 implementation, gccgo-4.9 includes a complete go-1.2
69 ;; implementation, and gccgo-5 a complete implementation of go-1.4. Ultimately
70 ;; we hope to build go-1.5+ with a bootstrap process using gccgo-5. As of
71 ;; go-1.5, go cannot be bootstrapped without go-1.4, so we need to use go-1.4 or
72 ;; gccgo-5. Mips is not officially supported, but it should work if it is
73 ;; bootstrapped.
74
75 (define-public go-1.4
76 (package
77 (name "go")
78 ;; The C-language bootstrap of Go:
79 ;; https://golang.org/doc/install/source#go14
80 (version "1.4-bootstrap-20171003")
81 (source (origin
82 (method url-fetch)
83 (uri (string-append "https://storage.googleapis.com/golang/"
84 name version ".tar.gz"))
85 (sha256
86 (base32
87 "0liybk5z00hizsb5ypkbhqcawnwwa6mkwgvjjg4y3jm3ndg5pzzl"))))
88 (build-system gnu-build-system)
89 (outputs '("out"
90 "doc"
91 "tests"))
92 (arguments
93 `(#:modules ((ice-9 match)
94 (guix build gnu-build-system)
95 (guix build utils)
96 (srfi srfi-1))
97 #:tests? #f ; Tests are run by the all.bash script.
98 ,@(if (string-prefix? "aarch64-linux" (or (%current-system)
99 (%current-target-system)))
100 '(#:system "armhf-linux")
101 '())
102 #:phases
103 (modify-phases %standard-phases
104 (delete 'configure)
105 (add-after 'patch-generated-file-shebangs 'chdir
106 (lambda _
107 (chdir "src")
108 #t))
109 (add-before 'build 'prebuild
110 (lambda* (#:key inputs outputs #:allow-other-keys)
111 (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
112 (ld (string-append (assoc-ref inputs "libc") "/lib"))
113 (loader (car (find-files ld "^ld-linux.+")))
114 (net-base (assoc-ref inputs "net-base"))
115 (tzdata-path
116 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
117 (output (assoc-ref outputs "out")))
118
119 ;; Removing net/ tests, which fail when attempting to access
120 ;; network resources not present in the build container.
121 (for-each delete-file
122 '("net/multicast_test.go" "net/parse_test.go"
123 "net/port_test.go"))
124
125 ;; Add libgcc to the RUNPATH.
126 (substitute* "cmd/go/build.go"
127 (("cgoldflags := \\[\\]string\\{\\}")
128 (string-append "cgoldflags := []string{"
129 "\"-rpath=" gcclib "\"}"))
130 (("ldflags := buildLdflags")
131 (string-append
132 "ldflags := buildLdflags\n"
133 "ldflags = append(ldflags, \"-r\")\n"
134 "ldflags = append(ldflags, \"" gcclib "\")\n")))
135
136 (substitute* "os/os_test.go"
137 (("/usr/bin") (getcwd))
138 (("/bin/pwd") (which "pwd")))
139
140 ;; Disable failing tests: these tests attempt to access
141 ;; commands or network resources which are neither available or
142 ;; necessary for the build to succeed.
143 (for-each
144 (match-lambda
145 ((file regex)
146 (substitute* file
147 ((regex all before test_name)
148 (string-append before "Disabled" test_name)))))
149 '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
150 ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
151 ("os/os_test.go" "(.+)(TestHostname.+)")
152 ("time/format_test.go" "(.+)(TestParseInSydney.+)")
153
154 ;; XXX: This test fails with tzdata 2020b and newer. Later
155 ;; Go releases work fine, so just disable this for the
156 ;; bootstrap Go.
157 ("time/example_test.go" "(.+)(ExampleParseInLocation.+)")
158
159 ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
160 ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
161 ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
162 ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
163 ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
164 ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
165 ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
166 ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
167 ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")))
168
169 (substitute* "net/lookup_unix.go"
170 (("/etc/protocols") (string-append net-base "/etc/protocols")))
171 (substitute* "time/zoneinfo_unix.go"
172 (("/usr/share/zoneinfo/") tzdata-path))
173 (substitute* (find-files "cmd" "asm.c")
174 (("/lib/ld-linux.*\\.so\\.[0-9]") loader))
175 #t)))
176
177 (replace 'build
178 (lambda* (#:key inputs outputs #:allow-other-keys)
179 ;; FIXME: Some of the .a files are not bit-reproducible.
180 (let* ((output (assoc-ref outputs "out")))
181 (setenv "CC" (which "gcc"))
182 (setenv "GOOS" "linux")
183 (setenv "GOROOT" (dirname (getcwd)))
184 (setenv "GOROOT_FINAL" output)
185 (setenv "GO14TESTS" "1")
186 (invoke "sh" "all.bash"))))
187
188 (replace 'install
189 (lambda* (#:key outputs inputs #:allow-other-keys)
190 (let* ((output (assoc-ref outputs "out"))
191 (doc_out (assoc-ref outputs "doc"))
192 (bash (string-append (assoc-ref inputs "bash") "bin/bash"))
193 (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
194 (tests (string-append
195 (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
196 (mkdir-p tests)
197 (copy-recursively "../test" (string-append tests "/test"))
198 (delete-file-recursively "../test")
199 (mkdir-p docs)
200 (copy-recursively "../api" (string-append docs "/api"))
201 (delete-file-recursively "../api")
202 (copy-recursively "../doc" (string-append docs "/doc"))
203 (delete-file-recursively "../doc")
204
205 (for-each (lambda (file)
206 (let ((file (string-append "../" file)))
207 (install-file file docs)
208 (delete-file file)))
209 '("README" "CONTRIBUTORS" "AUTHORS" "PATENTS"
210 "LICENSE" "VERSION" "robots.txt"))
211 (copy-recursively "../" output)
212 #t))))))
213 (inputs
214 `(("tzdata" ,tzdata)
215 ("pcre" ,pcre)
216 ("gcc:lib" ,(canonical-package gcc) "lib")))
217 (native-inputs
218 `(("pkg-config" ,pkg-config)
219 ("which" ,which)
220 ("net-base" ,net-base)
221 ("perl" ,perl)))
222
223 (home-page "https://golang.org/")
224 (synopsis "Compiler and libraries for Go, a statically-typed language")
225 (description "Go, also commonly referred to as golang, is an imperative
226 programming language designed primarily for systems programming. Go is a
227 compiled, statically typed language in the tradition of C and C++, but adds
228 garbage collection, various safety features, and concurrent programming features
229 in the style of communicating sequential processes (@dfn{CSP}).")
230 (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux"))
231 (license license:bsd-3)))
232
233 (define-public go-1.14
234 (package
235 (inherit go-1.4)
236 (name "go")
237 (version "1.14.10")
238 (source
239 (origin
240 (method git-fetch)
241 (uri (git-reference
242 (url "https://github.com/golang/go")
243 (commit (string-append "go" version))))
244 (file-name (git-file-name name version))
245 (sha256
246 (base32
247 "0h1nmqzjc0xxpn6n2hjq7692gdqkznagzdmiq9490yzkrrii2lgk"))))
248 (arguments
249 (substitute-keyword-arguments (package-arguments go-1.4)
250 ((#:system system)
251 (if (string-prefix? "aarch64-linux" (or (%current-system)
252 (%current-target-system)))
253 "aarch64-linux"
254 system))
255 ((#:phases phases)
256 `(modify-phases ,phases
257 (replace 'prebuild
258 (lambda* (#:key inputs outputs #:allow-other-keys)
259 (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
260 (ld (string-append (assoc-ref inputs "libc") "/lib"))
261 (loader (car (find-files ld "^ld-linux.+")))
262 (net-base (assoc-ref inputs "net-base"))
263 (tzdata-path
264 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
265 (output (assoc-ref outputs "out")))
266
267 ;; Having the patch in the 'patches' field of <origin> breaks
268 ;; the 'TestServeContent' test due to the fact that
269 ;; timestamps are reset. Thus, apply it from here.
270 (invoke "patch" "-p2" "--force" "-i"
271 (assoc-ref inputs "go-skip-gc-test.patch"))
272
273 ;; A side effect of these test scripts is testing
274 ;; cgo. Attempts at using cgo flags and directives with these
275 ;; scripts as specified here (https://golang.org/cmd/cgo/)
276 ;; have not worked. The tests continue to state that they can
277 ;; not find object files/headers despite being present.
278 (for-each
279 delete-file
280 '("cmd/go/testdata/script/mod_case_cgo.txt"
281 "cmd/go/testdata/script/list_find.txt"
282 "cmd/go/testdata/script/list_compiled_imports.txt"
283 "cmd/go/testdata/script/cgo_syso_issue29253.txt"
284 "cmd/go/testdata/script/cover_cgo.txt"
285 "cmd/go/testdata/script/cover_cgo_xtest.txt"
286 "cmd/go/testdata/script/cover_cgo_extra_test.txt"
287 "cmd/go/testdata/script/cover_cgo_extra_file.txt"))
288
289 (for-each make-file-writable (find-files "."))
290
291 (substitute* "os/os_test.go"
292 (("/usr/bin") (getcwd))
293 (("/bin/pwd") (which "pwd"))
294 (("/bin/sh") (which "sh")))
295
296 ;; Add libgcc to runpath
297 (substitute* "cmd/link/internal/ld/lib.go"
298 (("!rpath.set") "true"))
299 (substitute* "cmd/go/internal/work/gccgo.go"
300 (("cgoldflags := \\[\\]string\\{\\}")
301 (string-append "cgoldflags := []string{"
302 "\"-rpath=" gcclib "\""
303 "}"))
304 (("\"-lgcc_s\", ")
305 (string-append
306 "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
307 (substitute* "cmd/go/internal/work/gc.go"
308 (("ldflags = setextld\\(ldflags, compiler\\)")
309 (string-append
310 "ldflags = setextld(ldflags, compiler)\n"
311 "ldflags = append(ldflags, \"-r\")\n"
312 "ldflags = append(ldflags, \"" gcclib "\")\n")))
313
314 ;; Disable failing tests: these tests attempt to access
315 ;; commands or network resources which are neither available
316 ;; nor necessary for the build to succeed.
317 (for-each
318 (match-lambda
319 ((file regex)
320 (substitute* file
321 ((regex all before test_name)
322 (string-append before "Disabled" test_name)))))
323 '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
324 ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
325 ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPort.+)")
326 ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPortWithCancel.+)")
327 ;; 127.0.0.1 doesn't exist
328 ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPTR.+)")
329 ;; 127.0.0.1 doesn't exist
330 ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPTRWithCancel.+)")
331 ;; /etc/services doesn't exist
332 ("net/parse_test.go" "(.+)(TestReadLine.+)")
333 ("os/os_test.go" "(.+)(TestHostname.+)")
334 ;; The user's directory doesn't exist
335 ("os/os_test.go" "(.+)(TestUserHomeDir.+)")
336 ("time/format_test.go" "(.+)(TestParseInSydney.+)")
337 ("time/format_test.go" "(.+)(TestParseInLocation.+)")
338 ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
339 ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
340 ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
341 ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
342 ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
343 ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
344 ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
345 ("os/exec/exec_test.go" "(.+)(TestIgnorePipeErrorOnSuccess.+)")
346 ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
347 ("os/exec/exec_test.go" "(.+)(TestExtraFiles/areturn.+)")
348 ("cmd/go/go_test.go" "(.+)(TestCoverageWithCgo.+)")
349 ("cmd/go/go_test.go" "(.+)(TestTwoPkgConfigs.+)")
350 ("os/exec/exec_test.go" "(.+)(TestOutputStderrCapture.+)")
351 ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")
352 ("os/exec/exec_test.go" "(.+)(TestExtraFilesRace.+)")
353 ("net/lookup_test.go" "(.+)(TestLookupPort.+)")
354 ("syscall/exec_linux_test.go"
355 "(.+)(TestCloneNEWUSERAndRemapNoRootDisableSetgroups.+)")))
356
357 ;; These tests fail on aarch64-linux
358 (substitute* "cmd/dist/test.go"
359 (("t.registerHostTest\\(\"testsanitizers/msan.*") ""))
360
361 ;; fix shebang for testar script
362 ;; note the target script is generated at build time.
363 (substitute* "../misc/cgo/testcarchive/carchive_test.go"
364 (("#!/usr/bin/env") (string-append "#!" (which "env"))))
365
366 (substitute* "net/lookup_unix.go"
367 (("/etc/protocols") (string-append net-base "/etc/protocols")))
368 (substitute* "net/port_unix.go"
369 (("/etc/services") (string-append net-base "/etc/services")))
370 (substitute* "time/zoneinfo_unix.go"
371 (("/usr/share/zoneinfo/") tzdata-path))
372 (substitute* (find-files "cmd" "\\.go")
373 (("/lib(64)?/ld-linux.*\\.so\\.[0-9]") loader))
374 #t)))
375 (add-before 'build 'set-bootstrap-variables
376 (lambda* (#:key outputs inputs #:allow-other-keys)
377 ;; Tell the build system where to find the bootstrap Go.
378 (let ((go (assoc-ref inputs "go")))
379 (setenv "GOROOT_BOOTSTRAP" go)
380 (setenv "GOGC" "400")
381 #t)))
382 (replace 'build
383 (lambda* (#:key inputs outputs #:allow-other-keys)
384 ;; FIXME: Some of the .a files are not bit-reproducible.
385 (let* ((output (assoc-ref outputs "out")))
386 (setenv "CC" (which "gcc"))
387 (setenv "GOOS" "linux")
388 (setenv "GOROOT" (dirname (getcwd)))
389 (setenv "GOROOT_FINAL" output)
390 (setenv "CGO_ENABLED" "1")
391 (invoke "sh" "all.bash"))))
392 (replace 'install
393 ;; TODO: Most of this could be factorized with Go 1.4.
394 (lambda* (#:key outputs #:allow-other-keys)
395 (let* ((output (assoc-ref outputs "out"))
396 (doc_out (assoc-ref outputs "doc"))
397 (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
398 (src (string-append
399 (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
400 ;; Prevent installation of the build cache, which contains
401 ;; store references to most of the tools used to build Go and
402 ;; would unnecessarily increase the size of Go's closure if it
403 ;; was installed.
404 (delete-file-recursively "../pkg/obj")
405
406 (mkdir-p src)
407 (copy-recursively "../test" (string-append src "/test"))
408 (delete-file-recursively "../test")
409 (mkdir-p docs)
410 (copy-recursively "../api" (string-append docs "/api"))
411 (delete-file-recursively "../api")
412 (copy-recursively "../doc" (string-append docs "/doc"))
413 (delete-file-recursively "../doc")
414
415 (for-each
416 (lambda (file)
417 (let* ((filein (string-append "../" file))
418 (fileout (string-append docs "/" file)))
419 (copy-file filein fileout)
420 (delete-file filein)))
421 ;; Note the slightly different file names compared to 1.4.
422 '("README.md" "CONTRIBUTORS" "AUTHORS" "PATENTS"
423 "LICENSE" "VERSION" "CONTRIBUTING.md" "robots.txt"))
424
425 (copy-recursively "../" output)
426 #t)))))))
427 (native-inputs
428 `(("go" ,go-1.4)
429 ("go-skip-gc-test.patch" ,(search-patch "go-skip-gc-test.patch"))
430 ,@(match (%current-system)
431 ((or "armhf-linux" "aarch64-linux")
432 `(("gold" ,binutils-gold)))
433 (_ `()))
434 ,@(package-native-inputs go-1.4)))
435 (supported-systems %supported-systems)))
436
437 (define-public go go-1.14)
438
439 (define-public go-github-com-alsm-ioprogress
440 (let ((commit "063c3725f436e7fba0c8f588547bee21ffec7ac5")
441 (revision "0"))
442 (package
443 (name "go-github-com-alsm-ioprogress")
444 (version (git-version "0.0.0" revision commit))
445 (source (origin
446 (method git-fetch)
447 (uri (git-reference
448 (url "https://github.com/alsm/ioprogress")
449 (commit commit)))
450 (file-name (git-file-name name version))
451 (sha256
452 (base32
453 "10ym5qlq77nynmkxbk767f2hfwyxg2k7hrzph05hvgzv833dhivh"))))
454 (build-system go-build-system)
455 (arguments
456 '(#:import-path "github.com/alsm/ioprogress"))
457 (synopsis "Textual progress bars in Go")
458 (description "@code{ioprogress} is a Go library with implementations of
459 @code{io.Reader} and @code{io.Writer} that draws progress bars. The primary use
460 case for these are for command-line applications but alternate progress bar
461 writers can be supplied for alternate environments.")
462 (home-page "https://github.com/alsm/ioprogress")
463 (license license:expat))))
464
465 (define-public go-github-com-aki237-nscjar
466 (let ((commit "e2df936ddd6050d30dd90c7214c02b5019c42f06")
467 (revision "0"))
468 (package
469 (name "go-github-com-aki237-nscjar")
470 (version (git-version "0.0.0" revision commit))
471 (source (origin
472 (method git-fetch)
473 (uri (git-reference
474 (url "https://github.com/aki237/nscjar")
475 (commit commit)))
476 (file-name (git-file-name name version))
477 (sha256
478 (base32
479 "03y7zzq12qvhsq86lb06sgns8xrkblbn7i7wd886wk3zr5574b96"))))
480 (build-system go-build-system)
481 (arguments
482 '(#:import-path "github.com/aki237/nscjar"))
483 (synopsis "Handle Netscape / Mozilla cookies")
484 (description "@code{nscjar} is a Go library used to parse and output
485 Netscape/Mozilla's old-style cookie files. It also implements a simple cookie
486 jar struct to manage the cookies added to the cookie jar.")
487 (home-page "https://github.com/aki237/nscjar")
488 (license license:expat))))
489
490 (define-public go-github-com-golangplus-fmt
491 (package
492 (name "go-github-com-golangplus-fmt")
493 (version "1.0.0")
494 (home-page "https://github.com/golangplus/fmt")
495 (source (origin
496 (method git-fetch)
497 (uri (git-reference
498 (url home-page)
499 (commit (string-append "v" version))))
500 (file-name (git-file-name name version))
501 (sha256
502 (base32 "07d5kxz0f8ss3v46y0c8jg02sagi0wlaaijhjzzp0r462jyzqii7"))))
503 (build-system go-build-system)
504 (arguments
505 '(#:import-path "github.com/golangplus/fmt"))
506 (synopsis "Additions to Go's standard @code{fmt} package")
507 (description "This package provides additions to Go's stdlib @code{fmt}.")
508 (license license:bsd-3)))
509
510 (define-public go-github-com-leodido-go-urn
511 (package
512 (name "go-github-com-leodido-go-urn")
513 (version "1.2.0")
514 (home-page "https://github.com/leodido/go-urn")
515 (source
516 (origin
517 (method git-fetch)
518 (uri (git-reference
519 (url home-page)
520 (commit (string-append "v" version))))
521 (file-name (git-file-name name version))
522 (sha256
523 (base32 "1d4g1vkhc1180l1n7q48vl84b27c7cziywml78cyijbcdz2f8vim"))))
524 (build-system go-build-system)
525 (arguments
526 '(#:import-path "github.com/leodido/go-urn"))
527 (native-inputs
528 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
529 (synopsis "Parser for uniform resource names as seen on RFC 2141")
530 (description
531 "This package implements a parser for uniform resource names (URN) as
532 specified by @uref{https://tools.ietf.org/html/rfc2141, IETF RFC 2141}.")
533 (license license:expat)))
534
535 (define-public go-github.com-jessevdk-go-flags
536 (package
537 (name "go-github.com-jessevdk-go-flags")
538 (version "1.3.0")
539 (source (origin
540 (method git-fetch)
541 (uri (git-reference
542 (url "https://github.com/jessevdk/go-flags")
543 (commit (string-append "v" version))))
544 (file-name (git-file-name name version))
545 (sha256
546 (base32
547 "1jk2k2l10lwrn1r3nxdvbs0yz656830j4khzirw8p4ahs7c5zz36"))))
548 (build-system go-build-system)
549 (arguments
550 '(#:import-path "github.com/jessevdk/go-flags"))
551 (synopsis "Go library for parsing command line arguments")
552 (description
553 "The @code{flags} package provides a command line option parser. The
554 functionality is similar to the go builtin @code{flag} package, but
555 @code{flags} provides more options and uses reflection to provide a succinct
556 way of specifying command line options.")
557 (home-page "https://github.com/jessevdk/go-flags")
558 (license license:bsd-3)))
559
560 (define-public go-gopkg-in-go-playground-assert-v1
561 (package
562 (name "go-gopkg-in-go-playground-assert-v1")
563 (version "1.2.1")
564 (home-page "https://github.com/go-playground/assert")
565 (source
566 (origin
567 (method git-fetch)
568 (uri (git-reference
569 (url home-page)
570 (commit (string-append "v" version))))
571 (file-name (git-file-name name version))
572 (sha256
573 (base32 "1h4amgykpa0djwi619llr3g55p75ia0mi184h9s5zdl8l4rhn9pm"))))
574 (build-system go-build-system)
575 (arguments
576 '(#:import-path "gopkg.in/go-playground/assert.v1"))
577 (synopsis "Basic assertion library used alongside native Go testing")
578 (description
579 "This package provides bassic assertions along with building blocks for
580 custom assertions to be used alongside native Go testing.")
581 (license license:expat)))
582
583 (define-public go-github-com-go-playground-locales
584 (package
585 (name "go-github-com-go-playground-locales")
586 (version "0.13.0")
587 (home-page "https://github.com/go-playground/locales")
588 (source
589 (origin
590 (method git-fetch)
591 (uri (git-reference
592 (url home-page)
593 (commit (string-append "v" version))))
594 (file-name (git-file-name name version))
595 (sha256
596 (base32 "0qydcpkvss3mf8mk3xzg6a34n8i69aydrigcl2apifrkx72jw7pf"))))
597 (build-system go-build-system)
598 (arguments
599 '(#:import-path "github.com/go-playground/locales"))
600 (synopsis "Set of locales generated from the CLDR Unicode Project")
601 (description
602 "This package provides a set of locales generated from the
603 @uref{http://cldr.unicode.org/, Unicode CLDR Project} which can be used
604 independently or within an internalization (i18n) package. Its currently
605 implemented features include
606
607 @itemize
608 @item Rules generated from the CLDR data, v31.0.3
609 @item Contains Cardinal, Ordinal and Range Plural Rules
610 @item Contains Month, Weekday and Timezone translations built in
611 @item Contains Date & Time formatting functions
612 @item Contains Number, Currency, Accounting and Percent formatting functions
613 @item Supports the \"Gregorian\" calendar only
614 @end itemize")
615 (license license:expat)))
616
617 (define-public go-github-com-go-playground-universal-translator
618 (package
619 (name "go-github-com-go-playground-universal-translator")
620 (version "0.17.0")
621 (home-page "https://github.com/go-playground/universal-translator")
622 (source
623 (origin
624 (method git-fetch)
625 (uri (git-reference
626 (url home-page)
627 (commit (string-append "v" version))))
628 (file-name (git-file-name name version))
629 (sha256
630 (base32 "1zdiaisb32iv4x93cpbqrgx8ll7sxh4hcd2iibpswy4bwvjbjlz6"))))
631 (build-system go-build-system)
632 (arguments
633 '(#:import-path "github.com/go-playground/universal-translator"))
634 (propagated-inputs
635 `(("go-github-com-go-playground-locales" ,go-github-com-go-playground-locales)))
636 (synopsis "Translator using Unicode CLDR data and pluralization rules")
637 (description
638 "This package offers an Internalization Translator for Go using
639 @uref{http://cldr.unicode.org/, Unicode CLDR Project} data and pluralization
640 rules. Its currently implemented features include
641
642 @itemize
643 @item Rules generated from the CLDR data, v30.0.3
644 @item Contains Cardinal, Ordinal and Range Plural Rules
645 @item Contains Month, Weekday and Timezone translations built in
646 @item Contains Date & Time formatting functions
647 @item Contains Number, Currency, Accounting and Percent formatting functions
648 @item Supports the \"Gregorian\" calendar only
649 @item Support loading translations from files
650 @item Exporting translations to file(s), mainly for getting them
651 professionally translated
652 @end itemize")
653 (license license:expat)))
654
655 (define-public go-gopkg-in-go-playground-validator-v9
656 (package
657 (name "go-gopkg-in-go-playground-validator-v9")
658 (version "9.31.0")
659 (home-page "https://gopkg.in/go-playground/validator.v9")
660 (source
661 (origin
662 (method git-fetch)
663 (uri (git-reference
664 (url "https://github.com/go-playground/validator")
665 (commit (string-append "v" version))))
666 (file-name (git-file-name name version))
667 (sha256
668 (base32 "1f8c77s8kx9rip2jarv27x5s4xkcmanh4ndyhbcwvrhncs5rq061"))))
669 (build-system go-build-system)
670 (arguments
671 '(#:import-path "gopkg.in/go-playground/validator.v9"))
672 (native-inputs
673 `(("go-gopkg-in-go-playground-assert-v1"
674 ,go-gopkg-in-go-playground-assert-v1)))
675 (propagated-inputs
676 `(("go-github-com-go-playground-universal-translator"
677 ,go-github-com-go-playground-universal-translator)
678 ("go-github-com-leodido-go-urn" ,go-github-com-leodido-go-urn)))
679 (synopsis "Validator for structs and individual fields based on tags")
680 (description
681 "This package implements value validations for structs and individual
682 fields based on tags. It has the following unique features:
683
684 @itemize
685 @item Cross Field and Cross Struct validations by using validation tags or
686 custom validators
687 @item Slice, Array and Map diving, which allows any or all levels of a
688 multidimensional field to be validated
689 @item Ability to dive into both map keys and values for validation
690 @item Handles type interface by determining it's underlying type prior to validation
691 @item Handles custom field types such as sql driver
692 @uref{https://golang.org/src/database/sql/driver/types.go?s=1210:1293#L29,
693 Valuer}
694 @item Alias validation tags, which allows for mapping of several validations
695 to a single tag for easier defining of validations on structs
696 @item Extraction of custom defined Field Name e.g. can specify to extract the
697 JSON name while validating and have it available in the resulting FieldError
698 @item Customizable i18n aware error messages.
699 @item Default validator for the @uref{https://github.com/gin-gonic/gin, gin}
700 web framework
701 @end itemize")
702 (license license:expat)))
703
704 (define-public go-github-com-aws-sdk
705 (package
706 (name "go-github-com-aws-sdk")
707 (version "1.35.2")
708 (source
709 (origin
710 (method git-fetch)
711 (uri (git-reference
712 (url "https://github.com/aws/aws-sdk-go")
713 (commit (string-append "v" version))))
714 (file-name (git-file-name name version))
715 (sha256
716 (base32
717 "1ky5lw2s2zpslnnqcs6hgsrwvwbxwgflb5jwf16dd4aga3vrg10c"))))
718 (build-system go-build-system)
719 (arguments
720 '(#:import-path "github.com/aws/aws-sdk-go/aws"
721 #:unpack-path "github.com/aws/aws-sdk-go"))
722 (propagated-inputs
723 `(("go-github-com-go-sql-driver-mysql" ,go-github-com-go-sql-driver-mysql)
724 ("go-github-com-jmespath-go-jmespath" ,go-github-com-jmespath-go-jmespath)
725 ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
726 ("go-golang-org-x-net" ,go-golang-org-x-net)))
727 (home-page "https://github.com/aws/aws-sdk-go")
728 (synopsis "Library to access Amazon Web Services (AWS)")
729 (description
730 "This is the official AWS SDK for the Go programming language.")
731 (license license:asl2.0)))
732
733 (define-public go-gopkg.in-tomb.v2
734 (let ((commit "d5d1b5820637886def9eef33e03a27a9f166942c")
735 (revision "0"))
736 (package
737 (name "go-gopkg.in-tomb.v2")
738 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
739 (source (origin
740 (method git-fetch)
741 (uri (git-reference
742 (url "https://github.com/go-tomb/tomb")
743 (commit commit)))
744 (file-name (string-append name "-" version ".tar.gz"))
745 (sha256
746 (base32
747 "1sv15sri99szkdz1bkh0ir46w9n8prrwx5hfai13nrhkawfyfy10"))))
748 (build-system go-build-system)
749 (arguments
750 '(#:import-path "gopkg.in/tomb.v2"
751 #:phases
752 (modify-phases %standard-phases
753 (add-after 'unpack 'patch-source
754 (lambda _
755 ;; Add a missing % to fix the compilation of this test
756 (substitute* "src/gopkg.in/tomb.v2/tomb_test.go"
757 (("t.Fatalf\\(`Killf\\(\"BO%s")
758 "t.Fatalf(`Killf(\"BO%%s"))
759 #t)))))
760 (synopsis "@code{tomb} handles clean goroutine tracking and termination")
761 (description
762 "The @code{tomb} package handles clean goroutine tracking and
763 termination.")
764 (home-page "https://gopkg.in/tomb.v2")
765 (license license:bsd-3))))
766
767 (define-public go-gopkg-in-natefinch-lumberjack.v2
768 (package
769 (name "go-gopkg-in-natefinch-lumberjack.v2")
770 (version "2.1")
771 (source
772 (origin
773 (method git-fetch)
774 (uri (git-reference
775 (url "https://github.com/natefinch/lumberjack")
776 (commit (string-append "v" version))))
777 (file-name (git-file-name name version))
778 (sha256
779 (base32
780 "1l3vlv72b7rfkpy1164kwd3qzrqmmjnb67akzxqp2mlvc66k6p3d"))))
781 (build-system go-build-system)
782 (arguments
783 '(#:import-path "gopkg.in/natefinch/lumberjack.v2"))
784 (propagated-inputs
785 `(("github.com/burntsush/toml" ,go-github-com-burntsushi-toml)
786 ("gopkg.in/yaml.v2" ,go-gopkg-in-yaml-v2)))
787 (home-page "https://github.com/natefinch/lumberjack")
788 (synopsis "Rolling logger for Go")
789 (description
790 "Lumberjack is a Go package for writing logs to rolling files.")
791 (license license:expat)))
792
793 (define-public go-github.com-jtolds-gls
794 (package
795 (name "go-github.com-jtolds-gls")
796 (version "4.20")
797 (source (origin
798 (method git-fetch)
799 (uri (git-reference
800 (url "https://github.com/jtolds/gls")
801 (commit (string-append "v" version))))
802 (file-name (git-file-name name version))
803 (sha256
804 (base32
805 "1k7xd2q2ysv2xsh373qs801v6f359240kx0vrl0ydh7731lngvk6"))))
806 (build-system go-build-system)
807 (arguments
808 '(#:import-path "github.com/jtolds/gls"))
809 (synopsis "@code{gls} provides Goroutine local storage")
810 (description
811 "The @code{gls} package provides a way to store a retrieve values
812 per-goroutine.")
813 (home-page "https://github.com/jtolds/gls")
814 (license license:expat)))
815
816 (define-public go-github-com-saracen-walker
817 (package
818 (name "go-github-com-saracen-walker")
819 (version "0.1.1")
820 (source
821 (origin
822 (method git-fetch)
823 (uri (git-reference
824 (url "https://github.com/saracen/walker")
825 (commit (string-append "v" version))))
826 (file-name (git-file-name name version))
827 (sha256
828 (base32 "1rq1lrp99lx7k1ysbfznn4c1iagnxdhb4lnnklsadnnzi3gvygqz"))))
829 (build-system go-build-system)
830 (arguments
831 `(#:import-path "github.com/saracen/walker"))
832 (inputs
833 `(("go-golang-org-x-sync" ,go-golang-org-x-sync)))
834 (home-page "https://github.com/saracen/walker")
835 (synopsis "Faster, parallel version of Go's filepath.Walk")
836 (license license:expat)
837 (description "The @code{walker} function is a faster, parallel version, of
838 @code{filepath.Walk}")))
839
840 (define-public go-github-com-tj-docopt
841 (package
842 (name "go-github-com-tj-docopt")
843 (version "1.0.0")
844 (source (origin
845 (method git-fetch)
846 (uri (git-reference
847 (url "https://github.com/tj/docopt")
848 (commit (string-append "v" version))))
849 (file-name (git-file-name name version))
850 (sha256
851 (base32
852 "06h8hdg1mh3s78zqlr01g4si7k0f0g6pr7fj7lnvfg446hgc7080"))))
853 (build-system go-build-system)
854 (arguments
855 '(#:import-path "github.com/tj/docopt"))
856 (synopsis "Go implementation of docopt")
857 (description
858 "This library allows the user to define a command-line interface from a
859 program's help message rather than specifying it programmatically with
860 command-line parsers.")
861 (home-page "https://github.com/tj/docopt")
862 (license license:expat)))
863
864 (define-public go-github-com-hashicorp-hcl
865 (let ((commit "23c074d0eceb2b8a5bfdbb271ab780cde70f05a8")
866 (revision "0"))
867 (package
868 (name "go-github-com-hashicorp-hcl")
869 (version (git-version "0.0.0" revision commit))
870 (source (origin
871 (method git-fetch)
872 (uri (git-reference
873 (url "https://github.com/hashicorp/hcl")
874 (commit commit)))
875 (file-name (git-file-name name version))
876 (sha256
877 (base32
878 "0db4lpqb5m130rmfy3s3gjjf4dxllypmyrzxv6ggqhkmwmc7w4mc"))))
879 (build-system go-build-system)
880 (arguments
881 '(#:tests? #f
882 #:import-path "github.com/hashicorp/hcl"))
883 (synopsis "Go implementation of HashiCorp Configuration Language")
884 (description
885 "This package contains the main implementation of the @acronym{HCL,
886 HashiCorp Configuration Language}. HCL is designed to be a language for
887 expressing configuration which is easy for both humans and machines to read.")
888 (home-page "https://github.com/hashicorp/hcl")
889 (license license:mpl2.0))))
890
891 (define-public go-golang-org-x-tools
892 (let ((commit "8b927904ee0dec805c89aaf9172f4459296ed6e8")
893 (revision "0"))
894 (package
895 (name "go-golang-org-x-tools")
896 (version (git-version "0.1.3" revision commit))
897 (source (origin
898 (method git-fetch)
899 (uri (git-reference
900 (url "https://go.googlesource.com/tools")
901 (commit commit)))
902 (file-name (string-append "go.googlesource.com-tools-"
903 version "-checkout"))
904 (sha256
905 (base32
906 "0iinb70xhcjsddgi42ia1n745lx2ibnjdm6m2v666qrk3876vpck"))))
907 (build-system go-build-system)
908 (arguments
909 `(#:import-path "golang.org/x/tools"
910 ;; Source-only package
911 #:tests? #f
912 #:phases
913 (modify-phases %standard-phases
914 ;; Source-only package
915 (delete 'build))))
916 (synopsis "Tools that support the Go programming language")
917 (description "This package provides miscellaneous tools that support the
918 Go programming language.")
919 (home-page "https://go.googlesource.com/tools/")
920 (license license:bsd-3))))
921
922 (define-public go-golang-org-x-crypto
923 (let ((commit "2aa609cf4a9d7d1126360de73b55b6002f9e052a")
924 (revision "5"))
925 (package
926 (name "go-golang-org-x-crypto")
927 (version (git-version "0.0.0" revision commit))
928 (source (origin
929 (method git-fetch)
930 (uri (git-reference
931 (url "https://go.googlesource.com/crypto")
932 (commit commit)))
933 (file-name (string-append "go.googlesource.com-crypto-"
934 version "-checkout"))
935 (sha256
936 (base32
937 "1yvis6fqbsd7f356aqyi18f76vnwj3bry6mxqnkvshq4cwrf92il"))))
938 (build-system go-build-system)
939 (arguments
940 '(#:import-path "golang.org/x/crypto"
941 ;; Source-only package
942 #:tests? #f
943 #:phases
944 (modify-phases %standard-phases
945 ;; Source-only package
946 (delete 'build)
947 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
948 (lambda* (#:key outputs #:allow-other-keys)
949 (map (lambda (file)
950 (make-file-writable file))
951 (find-files
952 (string-append (assoc-ref outputs "out")
953 "/src/golang.org/x/crypto/ed25519/testdata")
954 ".*\\.gz$"))
955 #t)))))
956 (propagated-inputs
957 `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
958 (synopsis "Supplementary cryptographic libraries in Go")
959 (description "This package provides supplementary cryptographic libraries
960 for the Go language.")
961 (home-page "https://go.googlesource.com/crypto/")
962 (license license:bsd-3))))
963
964 (define-public go-golang-org-x-net
965 (let ((commit "ba9fcec4b297b415637633c5a6e8fa592e4a16c3")
966 (revision "4"))
967 (package
968 (name "go-golang-org-x-net")
969 (version (git-version "0.0.0" revision commit))
970 (source (origin
971 (method git-fetch)
972 (uri (git-reference
973 (url "https://go.googlesource.com/net")
974 (commit commit)))
975 (file-name (git-file-name name version))
976 (sha256
977 (base32
978 "1hbqvy6r0s5h0dpdqw8fynl3cq0acin3iyqki9xvl5r8h33yb9bx"))))
979 (build-system go-build-system)
980 (arguments
981 `(#:import-path "golang.org/x/net"
982 ; Source-only package
983 #:tests? #f
984 #:phases
985 (modify-phases %standard-phases
986 (delete 'build))))
987 (synopsis "Go supplemental networking libraries")
988 (description "This package provides supplemental Go networking libraries.")
989 (home-page "https://go.googlesource.com/net")
990 (license license:bsd-3))))
991
992 (define-public go-golang-org-x-image
993 (let ((commit "58c23975cae11f062d4b3b0c143fe248faac195d")
994 (revision "1"))
995 (package
996 (name "go-golang-org-x-image")
997 (version (git-version "0.0.0" revision commit))
998 (source (origin
999 (method git-fetch)
1000 (uri (git-reference
1001 (url "https://go.googlesource.com/image")
1002 (commit commit)))
1003 (file-name (string-append "go.googlesource.com-image-"
1004 version "-checkout"))
1005 (sha256
1006 (base32
1007 "0i2p2girc1sfcic6xs6vrq0fp3szfx057xppksb67kliywjjrm5x"))))
1008 (build-system go-build-system)
1009 (arguments
1010 `(#:import-path "golang.org/x/image"
1011 ; Source-only package
1012 #:tests? #f
1013 #:phases
1014 (modify-phases %standard-phases
1015 (delete 'build))))
1016 (home-page "https://go.googlesource.com/image")
1017 (synopsis "Supplemental Go image libraries")
1018 (description "This package provides supplemental Go libraries for image
1019 processing.")
1020 (license license:bsd-3))))
1021
1022 (define-public go-golang-org-x-sync
1023 (let ((commit "6e8e738ad208923de99951fe0b48239bfd864f28")
1024 (revision "1"))
1025 (package
1026 (name "go-golang-org-x-sync")
1027 (version (git-version "0.0.0" revision commit))
1028 (source (origin
1029 (method git-fetch)
1030 (uri (git-reference
1031 (url "https://go.googlesource.com/sync")
1032 (commit commit)))
1033 (file-name (git-file-name name version))
1034 (sha256
1035 (base32
1036 "1avk27pszd5l5df6ff7j78wgla46ir1hhy2jwfl9a3c0ys602yx9"))))
1037 (build-system go-build-system)
1038 (arguments
1039 `(#:import-path "golang.org/x/sync"
1040 #:tests? #f
1041 ;; Source-only package
1042 #:phases
1043 (modify-phases %standard-phases
1044 (delete 'build))))
1045 (synopsis "Additional Go concurrency primitives")
1046 (description "This package provides Go concurrency primitives in addition
1047 to the ones provided by the language and “sync” and “sync/atomic”
1048 packages.")
1049 (home-page "https://go.googlesource.com/sync/")
1050 (license license:bsd-3))))
1051
1052 (define-public go-golang-org-x-sys
1053 (let ((commit "05986578812163b26672dabd9b425240ae2bb0ad")
1054 (revision "7"))
1055 (package
1056 (name "go-golang-org-x-sys")
1057 (version (git-version "0.0.0" revision commit))
1058 (source (origin
1059 (method git-fetch)
1060 (uri (git-reference
1061 (url "https://go.googlesource.com/sys")
1062 (commit commit)))
1063 (file-name (git-file-name name version))
1064 (sha256
1065 (base32
1066 "1q2rxb6z5l6pmlckjsz2l0b8lw7bqgk6frhzbmi1dv0y5irb2ka7"))))
1067 (build-system go-build-system)
1068 (arguments
1069 `(#:import-path "golang.org/x/sys"
1070 ;; Source-only package
1071 #:tests? #f
1072 #:phases
1073 (modify-phases %standard-phases
1074 (delete 'build))))
1075 (synopsis "Go support for low-level system interaction")
1076 (description "This package provides supplemental libraries offering Go
1077 support for low-level interaction with the operating system.")
1078 (home-page "https://go.googlesource.com/sys")
1079 (license license:bsd-3))))
1080
1081 (define-public go-golang-org-x-text
1082 (package
1083 (name "go-golang-org-x-text")
1084 (version "0.3.2")
1085 (source (origin
1086 (method git-fetch)
1087 (uri (git-reference
1088 (url "https://go.googlesource.com/text")
1089 (commit (string-append "v" version))))
1090 (file-name (string-append "go.googlesource.com-text-"
1091 version "-checkout"))
1092 (sha256
1093 (base32
1094 "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"))))
1095 (build-system go-build-system)
1096 (arguments
1097 `(#:import-path "golang.org/x/text"
1098 ; Source-only package
1099 #:tests? #f
1100 #:phases
1101 (modify-phases %standard-phases
1102 (delete 'build))))
1103 (synopsis "Supplemental Go text processing libraries")
1104 (description "This package provides supplemental Go libraries for text
1105 processing.")
1106 (home-page "https://go.googlesource.com/text")
1107 (license license:bsd-3)))
1108
1109 (define-public go-golang-org-x-time
1110 (let ((commit "9d24e82272b4f38b78bc8cff74fa936d31ccd8ef")
1111 (revision "2"))
1112 (package
1113 (name "go-golang-org-x-time")
1114 (version (git-version "0.0.0" revision commit))
1115 (source (origin
1116 (method git-fetch)
1117 (uri (git-reference
1118 (url "https://go.googlesource.com/time")
1119 (commit commit)))
1120 (file-name (git-file-name name version))
1121 (sha256
1122 (base32
1123 "1f5nkr4vys2vbd8wrwyiq2f5wcaahhpxmia85d1gshcbqjqf8dkb"))))
1124 (build-system go-build-system)
1125 (arguments
1126 `(#:import-path "golang.org/x/time"
1127 ; Source-only package
1128 #:tests? #f
1129 #:phases
1130 (modify-phases %standard-phases
1131 (delete 'build))))
1132 ; (propagated-inputs
1133 ; `(("go-golang-org-x-net" ,go-golang-org-x-net)))
1134 (synopsis "Supplemental Go time libraries")
1135 (description "This package provides supplemental Go libraries related to
1136 time.")
1137 (home-page "https://godoc.org/golang.org/x/time/rate")
1138 (license license:bsd-3))))
1139
1140 (define-public go-golang-org-x-oauth2
1141 (let ((commit "0f29369cfe4552d0e4bcddc57cc75f4d7e672a33")
1142 (revision "1"))
1143 (package
1144 (name "go-golang-org-x-oauth2")
1145 (version (git-version "0.0.0" revision commit))
1146 (source (origin
1147 (method git-fetch)
1148 (uri (git-reference
1149 (url "https://go.googlesource.com/oauth2")
1150 (commit commit)))
1151 (file-name (string-append "go.googlesource.com-oauth2-"
1152 version "-checkout"))
1153 (sha256
1154 (base32
1155 "06jwpvx0x2gjn2y959drbcir5kd7vg87k0r1216abk6rrdzzrzi2"))))
1156 (build-system go-build-system)
1157 (arguments
1158 `(#:import-path "golang.org/x/oauth2"))
1159 (propagated-inputs
1160 `(("go-golang-org-x-net" ,go-golang-org-x-net)))
1161 (home-page "https://go.googlesource.com/oauth2")
1162 (synopsis "Client implementation of the OAuth 2.0 spec")
1163 (description "This package contains a client implementation for OAuth 2.0
1164 spec in Go.")
1165 (license license:bsd-3))))
1166
1167 (define-public go-golang-org-x-xerrors
1168 (let ((commit "5ec99f83aff198f5fbd629d6c8d8eb38a04218ca")
1169 (revision "0"))
1170 (package
1171 (name "go-golang-org-x-xerrors")
1172 (version (git-version "0.0.0" revision commit))
1173 (source (origin
1174 (method git-fetch)
1175 (uri (git-reference
1176 (url "https://go.googlesource.com/xerrors")
1177 (commit commit)))
1178 (file-name (git-file-name name version))
1179 (sha256
1180 (base32
1181 "1dbzc3gmf2haazpv7cgmv97rq40g2xzwbglc17vas8dwhgwgwrzb"))))
1182 (build-system go-build-system)
1183 (arguments
1184 '(#:import-path "golang.org/x/xerrors"))
1185 (synopsis "Go 1.13 error values")
1186 (description
1187 "This package holds the transition packages for the new Go 1.13 error values.")
1188 (home-page "https://godoc.org/golang.org/x/xerrors")
1189 (license license:bsd-3))))
1190
1191 (define-public go-github-com-burntsushi-toml
1192 (package
1193 (name "go-github-com-burntsushi-toml")
1194 (version "0.3.1")
1195 (source
1196 (origin
1197 (method git-fetch)
1198 (uri (git-reference
1199 (url "https://github.com/BurntSushi/toml")
1200 (commit (string-append "v" version))))
1201 (file-name (git-file-name name version))
1202 (sha256
1203 (base32
1204 "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6"))))
1205 (build-system go-build-system)
1206 (arguments
1207 '(#:import-path "github.com/BurntSushi/toml"))
1208 (home-page "https://github.com/BurntSushi/toml")
1209 (synopsis "Toml parser and encoder for Go")
1210 (description "This package is toml parser and encoder for Go. The interface
1211 is similar to Go's standard library @code{json} and @code{xml} package.")
1212 (license license:expat)))
1213
1214 (define-public go-github-com-getsentry-raven-go
1215 (let ((commit "5c24d5110e0e198d9ae16f1f3465366085001d92")
1216 (revision "0"))
1217 (package
1218 (name "go-github-com-getsentry-raven-go")
1219 (version (git-version "0.2.0" revision commit))
1220 (source
1221 (origin
1222 (method git-fetch)
1223 (uri (git-reference
1224 (url "https://github.com/getsentry/raven-go")
1225 (commit commit)))
1226 (file-name (git-file-name name version))
1227 (sha256
1228 (base32
1229 "0lvc376sq8r8jhy2v1m6rf1wyld61pvbk0x6j9xpg56ivqy69xs7"))))
1230 (build-system go-build-system)
1231 (arguments
1232 '(#:import-path "github.com/getsentry/raven-go"))
1233 (propagated-inputs
1234 `(("go-github-com-certifi-gocertifi" ,go-github-com-certifi-gocertifi)
1235 ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)))
1236 (home-page "https://github.com/getsentry/raven-go")
1237 (synopsis "Sentry client in Go")
1238 (description "This package is a Go client API for the Sentry event/error
1239 logging system.")
1240 (license license:bsd-3))))
1241
1242 (define-public go-github-com-hashicorp-go-version
1243 (let ((commit
1244 "03c5bf6be031b6dd45afec16b1cf94fc8938bc77")
1245 (revision "0"))
1246 (package
1247 (name "go-github-com-hashicorp-go-version")
1248 (version (git-version "0.0.0" revision commit))
1249 (source
1250 (origin
1251 (method git-fetch)
1252 (uri (git-reference
1253 (url "https://github.com/hashicorp/go-version")
1254 (commit commit)))
1255 (file-name (git-file-name name version))
1256 (sha256
1257 (base32
1258 "0sjq57gpfznaqdrbyb2p0bn90g9h661cvr0jrk6ngags4pbw14ik"))))
1259 (build-system go-build-system)
1260 (arguments
1261 '(#:import-path "github.com/hashicorp/go-version"))
1262 (home-page
1263 "https://github.com/hashicorp/go-version")
1264 (synopsis "Go library for parsing and verifying versions and version
1265 constraints")
1266 (description "This package is a library for parsing versions and version
1267 constraints, and verifying versions against a set of constraints. It can sort
1268 a collection of versions properly, handles prerelease/beta versions, can
1269 increment versions.")
1270 (license license:mpl2.0))))
1271
1272 (define-public go-github-com-jpillora-backoff
1273 (let ((commit
1274 "06c7a16c845dc8e0bf575fafeeca0f5462f5eb4d")
1275 (revision "0"))
1276 (package
1277 (name "go-github-com-jpillora-backoff")
1278 (version (git-version "0.0.0" revision commit))
1279 (source
1280 (origin
1281 (method git-fetch)
1282 (uri (git-reference
1283 (url "https://github.com/jpillora/backoff")
1284 (commit commit)))
1285 (file-name (git-file-name name version))
1286 (sha256
1287 (base32
1288 "0xhvxr7bm47czdc5hy3kl508z3y4j91i2jm7vg774i52zych6k4l"))))
1289 (build-system go-build-system)
1290 (arguments
1291 '(#:import-path "github.com/jpillora/backoff"))
1292 (home-page "https://github.com/jpillora/backoff")
1293 (synopsis "Simple exponential backoff counter in Go")
1294 (description "This package is a simple exponential backoff counter in
1295 Go.")
1296 (license license:expat))))
1297
1298 (define-public go-github-com-stretchr-objx
1299 (package
1300 (name "go-github-com-stretchr-objx")
1301 (version "0.2.0")
1302 (source
1303 (origin
1304 (method git-fetch)
1305 (uri (git-reference
1306 (url "https://github.com/stretchr/objx")
1307 (commit (string-append "v" version))))
1308 (file-name (git-file-name name version))
1309 (sha256
1310 (base32
1311 "0pcdvakxgddaiwcdj73ra4da05a3q4cgwbpm2w75ycq4kzv8ij8k"))))
1312 (build-system go-build-system)
1313 (arguments
1314 '(#:import-path "github.com/stretchr/objx"))
1315 (home-page "https://github.com/stretchr/objx")
1316 (synopsis "Go package for dealing with maps, slices, JSON and other data")
1317 (description "This package provides a Go library for dealing with maps,
1318 slices, JSON and other data.")
1319 (license license:expat)))
1320
1321 (define-public go-github-com-stretchr-testify
1322 (package
1323 (name "go-github-com-stretchr-testify")
1324 (version "1.5.1")
1325 (source
1326 (origin
1327 (method git-fetch)
1328 (uri (git-reference
1329 (url "https://github.com/stretchr/testify")
1330 (commit (string-append "v" version))))
1331 (file-name (git-file-name name version))
1332 (sha256
1333 (base32
1334 "09r89m1wy4cjv2nps1ykp00qjpi0531r07q3s34hr7m6njk4srkl"))))
1335 (build-system go-build-system)
1336 (arguments
1337 '(#:import-path "github.com/stretchr/testify"))
1338 (propagated-inputs
1339 `(("github.com/davecgh/go-spew" ,go-github-com-davecgh-go-spew)
1340 ("github.com/pmezard/go-difflib" ,go-github-com-pmezard-go-difflib)
1341 ("github.com/stretchr/objx" ,go-github-com-stretchr-objx)
1342 ("gopkg.in/yaml.v2" ,go-gopkg-in-yaml-v2)))
1343 (home-page "https://github.com/stretchr/testify")
1344 (synopsis "Go helper library for tests and invariant checking")
1345 (description "This package provide many tools for testifying that your
1346 code will behave as you intend.
1347
1348 Features include:
1349 @itemize
1350 @item Easy assertions
1351 @item Mocking
1352 @item HTTP response trapping
1353 @item Testing suite interfaces and functions.
1354 @end itemize")
1355 (license license:expat)))
1356
1357 (define-public go-github-com-tevino-abool
1358 (let ((commit
1359 "3c25f2fe7cd0ef3eabefce1d90efd69a65d35b12")
1360 (revision "0"))
1361 (package
1362 (name "go-github-com-tevino-abool")
1363 (version (git-version "0.0.0" revision commit))
1364 (source
1365 (origin
1366 (method git-fetch)
1367 (uri (git-reference
1368 (url "https://github.com/tevino/abool")
1369 (commit commit)))
1370 (file-name (git-file-name name version))
1371 (sha256
1372 (base32
1373 "1wxqrclxk93q0aj15z596dx2y57x9nkhi64nbrr5cxnhxn8vwixm"))))
1374 (build-system go-build-system)
1375 (arguments
1376 '(#:import-path "github.com/tevino/abool"))
1377 (home-page "https://github.com/tevino/abool")
1378 (synopsis "Atomic boolean library for Go code")
1379 (description "This package is atomic boolean library for Go code,
1380 optimized for performance yet simple to use.")
1381 (license license:expat))))
1382
1383 (define-public go-github-com-tomnomnom-gron
1384 (package
1385 (name "gron")
1386 (version "0.6.0")
1387 (home-page "https://github.com/tomnomnom/gron")
1388 (source
1389 (origin
1390 (method git-fetch)
1391 (uri (git-reference
1392 (url home-page)
1393 (commit (string-append "v" version))))
1394 (file-name (git-file-name name version))
1395 (sha256
1396 (base32 "05f3w4zr15wd7xk75l12y5kip4gnv719a2x9w2hy23q3pnss9wk0"))))
1397 (build-system go-build-system)
1398 (arguments
1399 (let ((import-path "github.com/tomnomnom/gron"))
1400 `(#:import-path ,import-path
1401 #:phases
1402 (modify-phases %standard-phases
1403 (add-after 'check 'remove-non-source
1404 (lambda _
1405 (for-each (lambda (dir)
1406 (delete-file-recursively
1407 (string-append "src/" ,import-path dir)))
1408 '("/docs" "/script" "/testdata"))
1409 #t))))))
1410 (inputs
1411 `(("github.com/fatih/color" ,go-github-com-fatih-color)
1412 ("github.com/mattn/go-colorable" ,go-github-com-mattn-go-colorable)
1413 ("github.com/mattn/go-isatty" ,go-github-com-mattn-go-isatty)
1414 ("github.com/nwidger/jsoncolor" ,go-github-com-nwidger-jsoncolor)
1415 ("github.com/pkg/errors" ,go-github-com-pkg-errors)))
1416 (synopsis "Transform JSON to make it easier to grep")
1417 (description
1418 "This package transforms JSON into discrete assignments to make it easier
1419 to use line-based tools such as grep to search for what you want and see the
1420 absolute \"path\" to it.")
1421 (license license:expat)))
1422
1423 (define-public go-github-com-tv42-httpunix
1424 (let ((commit "2ba4b9c3382c77e7b9ea89d00746e6111d142a22")
1425 (revision "0"))
1426 (package
1427 (name "go-github-com-tv42-httpunix")
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/tv42/httpunix")
1434 (commit commit)))
1435 (file-name (git-file-name name version))
1436 (sha256
1437 (base32 "0xbwpip2hsfhd2kd878jn5ndl8y1i9658lggha4x3xb5m1rsds9w"))))
1438 (build-system go-build-system)
1439 (arguments
1440 '(#:import-path "github.com/tv42/httpunix"))
1441 (home-page "https://github.com/tv42/httpunix")
1442 (synopsis "Go library to talk HTTP over Unix domain sockets")
1443 (description "This package is a Go library to talk HTTP over Unix domain
1444 sockets.")
1445 (license license:expat))))
1446
1447 (define-public go-github-com-blang-semver
1448 (let ((commit "60ec3488bfea7cca02b021d106d9911120d25fe9")
1449 (revision "0"))
1450 (package
1451 (name "go-github-com-blang-semver")
1452 (version (git-version "0.0.0" revision commit))
1453 (source
1454 (origin
1455 (method git-fetch)
1456 (uri (git-reference
1457 (url "https://github.com/blang/semver")
1458 (commit commit)))
1459 (file-name (git-file-name name version))
1460 (sha256
1461 (base32
1462 "19pli07y5592g4dyjyj0jq5rn548vc3fz0qg3624vm1j5828p1c2"))))
1463 (build-system go-build-system)
1464 (arguments
1465 '(#:import-path "github.com/blang/semver"))
1466 (home-page "https://github.com/blang/semver")
1467 (synopsis "Semantic versioning library written in Go")
1468 (description "Semver is a library for Semantic versioning written in Go.")
1469 (license license:expat))))
1470
1471 (define-public go-github-com-emicklei-go-restful
1472 (package
1473 (name "go-github-com-emicklei-go-restful")
1474 (version "3.4.0")
1475 (source
1476 (origin
1477 (method git-fetch)
1478 (uri (git-reference
1479 (url "https://github.com/emicklei/go-restful")
1480 (commit (string-append "v" version))))
1481 (file-name (git-file-name name version))
1482 (sha256
1483 (base32
1484 "0m1y5a6xr6hmdj77afrvyh2llkbhn1166lcrgis654shl8zs9qhz"))))
1485 (build-system go-build-system)
1486 (arguments
1487 '(#:import-path "github.com/emicklei/go-restful"))
1488 (home-page "https://github.com/emicklei/go-restful")
1489 (synopsis "Build REST-style web services using Go")
1490 (description "This package provides @code{go-restful}, which helps
1491 developers to use @code{http} methods explicitly and in a way that's consistent
1492 with the HTTP protocol definition.")
1493 (license license:expat)))
1494
1495 (define-public go-github-com-google-cadvisor
1496 (let ((commit "2ed7198f77395ee9a172878a0a7ab92ab59a2cfd")
1497 (revision "0"))
1498 (package
1499 (name "go-github-com-google-cadvisor")
1500 (version (git-version "0.0.0" revision commit))
1501 (source
1502 (origin
1503 (method git-fetch)
1504 (uri (git-reference
1505 (url "https://github.com/google/cadvisor")
1506 (commit commit)))
1507 (file-name (git-file-name name version))
1508 (sha256
1509 (base32
1510 "1w8p345z5j0gk3yiq5ah0znd5lfh348p2s624k5r10drz04p3f55"))))
1511 (build-system go-build-system)
1512 (arguments
1513 '(#:import-path "github.com/google/cadvisor"))
1514 (home-page "https://github.com/google/cadvisor")
1515 (synopsis "Analyze resource usage of running containers")
1516 (description "The package provides @code{cadvisor}, which provides
1517 information about the resource usage and performance characteristics of running
1518 containers.")
1519 (license license:asl2.0))))
1520
1521 (define-public go-github-com-google-gofuzz
1522 (let ((commit "fd52762d25a41827db7ef64c43756fd4b9f7e382")
1523 (revision "0"))
1524 (package
1525 (name "go-github-com-google-gofuzz")
1526 (version (git-version "0.0.0" revision commit))
1527 (source
1528 (origin
1529 (method git-fetch)
1530 (uri (git-reference
1531 (url "https://github.com/google/gofuzz")
1532 (commit commit)))
1533 (file-name (git-file-name name version))
1534 (sha256
1535 (base32
1536 "1yxmmr73h0lq7ryf3q9a7pcm2x5xrg4d5bxkq8n5pxwxwyq26kw8"))))
1537 (build-system go-build-system)
1538 (arguments
1539 '(#:import-path "github.com/google/gofuzz"))
1540 (home-page "https://github.com/google/gofuzz")
1541 (synopsis "Fuzz testing library for Go")
1542 (description "Gofuzz is a library for populationg Go objects with random
1543 values for the purpose of fuzz testing.")
1544 (license license:asl2.0))))
1545
1546 (define-public go-github-com-gorilla-css
1547 (package
1548 (name "go-github-com-gorilla-css")
1549 (version "1.0.0")
1550 (source (origin
1551 (method git-fetch)
1552 (uri (git-reference
1553 (url "https://github.com/gorilla/css")
1554 (commit (string-append "v" version))))
1555 (file-name (git-file-name name version))
1556 (sha256
1557 (base32
1558 "116fhy3n7bsq3psyn4pa0i4x9zy916kh1zxslmbbp0p9l4i7ysrj"))))
1559 (build-system go-build-system)
1560 (arguments
1561 `(#:import-path "github.com/gorilla/css/scanner"
1562 #:unpack-path "github.com/gorilla/css"))
1563 (home-page "https://github.com/gorilla/css/")
1564 (synopsis "CSS3 tokenizer")
1565 (description "This package provides a CSS3 tokenizer.")
1566 (license license:bsd-3)))
1567
1568 (define-public go-github-com-gorilla-context
1569 (let ((commit "08b5f424b9271eedf6f9f0ce86cb9396ed337a42")
1570 (revision "0"))
1571 (package
1572 (name "go-github-com-gorilla-context")
1573 (version (git-version "0.0.0" revision commit))
1574 (source
1575 (origin
1576 (method git-fetch)
1577 (uri (git-reference
1578 (url "https://github.com/gorilla/context")
1579 (commit commit)))
1580 (file-name (git-file-name name version))
1581 (sha256
1582 (base32
1583 "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4"))))
1584 (build-system go-build-system)
1585 (arguments
1586 '(#:import-path "github.com/gorilla/context"))
1587 (home-page "https://github.com/gorilla/context")
1588 (synopsis "Go registry for request variables")
1589 (description "This package provides @code{gorilla/context}, which is a general purpose registry for global request variables in the Go programming language.")
1590 (license license:bsd-3))))
1591
1592 (define-public go-github-com-gorilla-mux
1593 (package
1594 (name "go-github-com-gorilla-mux")
1595 (version "1.8.0")
1596 (source
1597 (origin
1598 (method git-fetch)
1599 (uri (git-reference
1600 (url "https://github.com/gorilla/mux")
1601 (commit (string-append "v" version))))
1602 (file-name (git-file-name name version))
1603 (sha256
1604 (base32
1605 "18f0q9qxgq1yh4ji07mqhiydfcwvi56z9d775v7dc7yckj33kpdk"))))
1606 (build-system go-build-system)
1607 (arguments
1608 '(#:import-path "github.com/gorilla/mux"))
1609 (home-page "https://github.com/gorilla/mux")
1610 (synopsis "URL router and dispatcher for Go")
1611 (description
1612 "Gorilla/Mux implements a request router and dispatcher for matching
1613 incoming requests with their respective handler.")
1614 (license license:bsd-3)))
1615
1616 (define-public go-github-com-gorilla-handlers
1617 (package
1618 (name "go-github-com-gorilla-handlers")
1619 (version "1.5.1")
1620 (source
1621 (origin
1622 (method git-fetch)
1623 (uri (git-reference
1624 (url "https://github.com/gorilla/handlers")
1625 (commit (string-append "v" version))))
1626 (file-name (git-file-name name version))
1627 (sha256
1628 (base32
1629 "15gycdz9lkjnsvvichsbdf25vf6pi1sfn41khhz53iqf300l0w0s"))))
1630 (build-system go-build-system)
1631 (propagated-inputs
1632 `(("github.com/felixge/httpsnoop" ,go-github-com-felixge-httpsnoop)))
1633 (arguments
1634 '(#:tests? #f ; Tries to download from the internet
1635 #:import-path "github.com/gorilla/handlers"))
1636 (home-page "https://github.com/gorilla/handlers")
1637 (synopsis "Middleware for Go HTTP services and web applications")
1638 (description "A collection of useful middleware for Go HTTP services
1639 and web applications.")
1640 (license license:bsd-3)))
1641
1642 (define-public go-github-com-gorilla-securecookie
1643 (package
1644 (name "go-github-com-gorilla-securecookie")
1645 (version "1.1.1")
1646 (source
1647 (origin
1648 (method git-fetch)
1649 (uri (git-reference
1650 (url "https://github.com/gorilla/securecookie")
1651 (commit (string-append "v" version))))
1652 (file-name (git-file-name name version))
1653 (sha256
1654 (base32
1655 "16bqimpxs9vj5n59vm04y04v665l7jh0sddxn787pfafyxcmh410"))))
1656 (build-system go-build-system)
1657 (arguments
1658 '(#:import-path "github.com/gorilla/securecookie"))
1659 (home-page "https://github.com/gorilla/securecookie")
1660 (synopsis "Encodes and decodes authenticated and optionally encrypted
1661 cookie values")
1662 (description
1663 "Gorilla/securecookie encodes and decodes authenticated and optionally
1664 encrypted cookie values for Go web applications.")
1665 (license license:bsd-3)))
1666
1667 (define-public go-github-com-gorilla-csrf
1668 (package
1669 (name "go-github-com-gorilla-csrf")
1670 (version "1.7.0")
1671 (source
1672 (origin
1673 (method git-fetch)
1674 (uri (git-reference
1675 (url "https://github.com/gorilla/csrf")
1676 (commit (string-append "v" version))))
1677 (file-name (git-file-name name version))
1678 (sha256
1679 (base32
1680 "0iryq0z48yi7crfbd8jxyn7lh1gsglpiglvjgnf23bz6xfisssav"))))
1681 (build-system go-build-system)
1682 (propagated-inputs
1683 `(("github.com/gorilla/securecookie" ,go-github-com-gorilla-securecookie)
1684 ("github.com/pkg/errors" ,go-github-com-pkg-errors)))
1685 (arguments
1686 '(#:import-path "github.com/gorilla/csrf"))
1687 (home-page "https://github.com/gorilla/csrf")
1688 (synopsis "Cross Site Request Forgery (CSRF) prevention middleware")
1689 (description
1690 "Gorilla/csrf provides Cross Site Request Forgery (CSRF) prevention
1691 middleware for Go web applications and services.")
1692 (license license:bsd-3)))
1693
1694 (define-public go-github-com-jonboulle-clockwork
1695 (let ((commit "e3653ace2d63753697e0e5b07b9393971c0bba9d")
1696 (revision "0"))
1697 (package
1698 (name "go-github-com-jonboulle-clockwork")
1699 (version (git-version "0.0.0" revision commit))
1700 (source
1701 (origin
1702 (method git-fetch)
1703 (uri (git-reference
1704 (url "https://github.com/jonboulle/clockwork")
1705 (commit commit)))
1706 (file-name (git-file-name name version))
1707 (sha256
1708 (base32
1709 "1avzqhks12a8x2yzpvjsf3k0gv9cy7zx2z88hn0scacnxkphisvc"))))
1710 (build-system go-build-system)
1711 (arguments
1712 '(#:import-path "github.com/jonboulle/clockwork"))
1713 (home-page "https://github.com/jonboulle/clockwork")
1714 (synopsis "Fake clock library for Go")
1715 (description
1716 "Replace uses of the @code{time} package with the
1717 @code{clockwork.Clock} interface instead.")
1718 (license license:asl2.0))))
1719
1720 (define-public go-github-com-spf13-afero
1721 (package
1722 (name "go-github-com-spf13-afero")
1723 (version "1.2.2")
1724 (source
1725 (origin
1726 (method git-fetch)
1727 (uri (git-reference
1728 (url "https://github.com/spf13/afero")
1729 (commit (string-append "v" version))))
1730 (file-name (git-file-name name version))
1731 (sha256
1732 (base32
1733 "0j9r65qgd58324m85lkl49vk9dgwd62g7dwvkfcm3k6i9dc555a9"))))
1734 (build-system go-build-system)
1735 (arguments
1736 `(#:import-path "github.com/spf13/afero"))
1737 (propagated-inputs
1738 `(("golang.org/x/text" ,go-golang-org-x-text)))
1739 (home-page "https://github.com/spf13/afero")
1740 (synopsis "File system abstraction for Go")
1741 (description
1742 "This package provides a file system abstraction for Go.")
1743 (license license:asl2.0)))
1744
1745 (define-public go-github-com-spf13-cast
1746 (package
1747 (name "go-github-com-spf13-cast")
1748 (version "1.3.1")
1749 (source
1750 (origin
1751 (method git-fetch)
1752 (uri (git-reference
1753 (url "https://github.com/spf13/cast")
1754 (commit (string-append "v" version))))
1755 (file-name (git-file-name name version))
1756 (sha256
1757 (base32
1758 "0lb84788glr0qzrq2ifi36rgvp96qrgywvxrr3ggq5hrbr38hgn1"))))
1759 (build-system go-build-system)
1760 (arguments
1761 `(#:import-path "github.com/spf13/cast"))
1762 (native-inputs
1763 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
1764 (home-page "https://github.com/spf13/cast")
1765 (synopsis "Safe and easy casting from one type to another in Go")
1766 (description "Safe and easy casting from one type to another in Go")
1767 (license license:expat)))
1768
1769 (define-public go-github-com-spf13-cobra
1770 (package
1771 (name "go-github-com-spf13-cobra")
1772 (version "1.0.0")
1773 (source
1774 (origin
1775 (method git-fetch)
1776 (uri (git-reference
1777 (url "https://github.com/spf13/cobra")
1778 (commit (string-append "v" version))))
1779 (file-name (git-file-name name version))
1780 (sha256
1781 (base32
1782 "0vbppqqhby302a5ayn0296jqr71qkcd4c9am7wzsk6z71fwdsa7h"))))
1783 (build-system go-build-system)
1784 (arguments
1785 `(#:import-path "github.com/spf13/cobra"))
1786 (propagated-inputs
1787 `(("github.com/spf13/pflag" ,go-github-com-spf13-pflag)))
1788 (home-page "https://github.com/spf13/cobra")
1789 (synopsis "Go library for creating CLI applications")
1790 (description "Cobra is both a library for creating powerful modern CLI
1791 applications as well as a program to generate applications and command files.")
1792 (license license:asl2.0)))
1793
1794 (define-public go-github-com-spf13-jwalterweatherman
1795 (package
1796 (name "go-github-com-spf13-jwalterweatherman")
1797 (version "1.1.0")
1798 (source
1799 (origin
1800 (method git-fetch)
1801 (uri (git-reference
1802 (url "https://github.com/spf13/jwalterweatherman")
1803 (commit (string-append "v" version))))
1804 (file-name (git-file-name name version))
1805 (sha256
1806 (base32
1807 "1ywmkwci5zyd88ijym6f30fj5c0k2yayxarkmnazf5ybljv50q7b"))))
1808 (build-system go-build-system)
1809 (arguments
1810 `(#:import-path "github.com/spf13/jwalterweatherman"))
1811 (native-inputs
1812 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
1813 (home-page "https://github.com/spf13/jwalterweatherman")
1814 (synopsis "Go logging library")
1815 (description "Go logging library")
1816 (license license:expat)))
1817
1818 (define-public go-github-com-spf13-pflag
1819 (package
1820 (name "go-github-com-spf13-pflag")
1821 (version "1.0.5")
1822 (source
1823 (origin
1824 (method git-fetch)
1825 (uri (git-reference
1826 (url "https://github.com/spf13/pflag")
1827 (commit (string-append "v" version))))
1828 (file-name (git-file-name name version))
1829 (sha256
1830 (base32
1831 "0gpmacngd0gpslnbkzi263f5ishigzgh6pbdv9hp092rnjl4nd31"))))
1832 (build-system go-build-system)
1833 (arguments
1834 '(#:import-path "github.com/spf13/pflag"))
1835 (home-page "https://github.com/spf13/pflag")
1836 (synopsis "Replacement for Go's @code{flag} package")
1837 (description
1838 "Pflag is library to replace Go's @code{flag} package. It implements
1839 POSIX/GNU-style command-line options with double hyphens. It is is compatible
1840 with the
1841 @uref{https://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html,
1842 GNU extensions} to the POSIX recommendations for command-line options.")
1843 (license license:bsd-3)))
1844
1845 (define-public go-github-com-spf13-viper
1846 (package
1847 (name "go-github-com-spf13-viper")
1848 (version "1.7.0")
1849 (source
1850 (origin
1851 (method git-fetch)
1852 (uri (git-reference
1853 (url "https://github.com/spf13/viper")
1854 (commit (string-append "v" version))))
1855 (file-name (git-file-name name version))
1856 (sha256
1857 (base32
1858 "099n2g7fg6r8hqyszqw2axr775qyhyvwhsykvgw0f0s16ql48h5c"))))
1859 (build-system go-build-system)
1860 (arguments
1861 '(#:import-path "github.com/spf13/viper"))
1862 (propagated-inputs
1863 `(("github.com/spf13/afero" ,go-github-com-spf13-afero)
1864 ("github.com/spf13/cast" ,go-github-com-spf13-cast)
1865 ("github.com/spf13/pflag" ,go-github-com-spf13-pflag)
1866 ("github.com/spf13/jwalterweatherman" ,go-github-com-spf13-jwalterweatherman)
1867 ("github.com/fsnotify/fsnotify" ,go-github-com-fsnotify-fsnotify)
1868 ("github.com/hashicorp/hcl" ,go-github-com-hashicorp-hcl)
1869 ("github.com/magiconair/properties" ,go-github-com-magiconair-properties)
1870 ("github.com/mitchellh/mapstructure" ,go-github-com-mitchellh-mapstructure)
1871 ("github.com/pelletier/go-toml" ,go-github-com-pelletier-go-toml)
1872 ("github.com/subosito/gotenv" ,go-github-com-subosito-gotenv)
1873
1874 ("gopkg.in/ini.v1" ,go-gopkg-in-ini-v1)
1875 ("gopkg.in/yaml.v2" ,go-gopkg-in-yaml-v2)))
1876 (native-inputs
1877 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
1878 (home-page "https://github.com/spf13/viper")
1879 (synopsis "Go configuration with fangs")
1880 (description
1881 "Viper is a complete configuration solution for Go applications including
1882 12-Factor apps. It is designed to work within an application, and can handle
1883 all types of configuration needs and formats.")
1884 (license license:expat)))
1885
1886 (define-public go-github-com-felixge-httpsnoop
1887 (package
1888 (name "go-github-com-felixge-httpsnoop")
1889 (version "1.0.1")
1890 (source
1891 (origin
1892 (method git-fetch)
1893 (uri (git-reference
1894 (url "https://github.com/felixge/httpsnoop")
1895 (commit (string-append "v" version))))
1896 (file-name (git-file-name name version))
1897 (sha256
1898 (base32
1899 "0ncd8lar5zxiwjhsp315s4hsl4bhnm271h49jhyxc66r5yffgmac"))))
1900 (build-system go-build-system)
1901 (arguments
1902 '(#:import-path "github.com/felixge/httpsnoop"))
1903 (home-page "https://github.com/felixge/httpsnoop/")
1904 (synopsis "Capture http related metrics")
1905 (description
1906 "Httpsnoop provides an easy way to capture http related
1907 metrics (i.e. response time, bytes written, and http status code) from your
1908 application's http.Handlers.")
1909 (license license:expat)))
1910
1911 (define-public go-github-com-fsnotify-fsnotify
1912 (package
1913 (name "go-github-com-fsnotify-fsnotify")
1914 (version "1.4.9")
1915 (source
1916 (origin
1917 (method git-fetch)
1918 (uri (git-reference
1919 (url "https://github.com/fsnotify/fsnotify")
1920 (commit (string-append "v" version))))
1921 (file-name (git-file-name name version))
1922 (sha256
1923 (base32
1924 "1i1r72knpbfwwql9frn9bqc3nhfc2ai5m6qllcyr6wban62lr40x"))))
1925 (build-system go-build-system)
1926 (arguments
1927 `(#:import-path "github.com/fsnotify/fsnotify"))
1928 (propagated-inputs
1929 `(("golang.org/x/sys" ,go-golang-org-x-sys)))
1930 (home-page "https://github.com/fsnotify/fsnotify")
1931 (synopsis "File system notifications for Go")
1932 (description "File system notifications for Go")
1933 (license license:bsd-3)))
1934
1935 (define-public go-github-com-magiconair-properties
1936 (package
1937 (name "go-github-com-magiconair-properties")
1938 (version "1.8.4")
1939 (source
1940 (origin
1941 (method git-fetch)
1942 (uri (git-reference
1943 (url "https://github.com/magiconair/properties")
1944 (commit (string-append "v" version))))
1945 (file-name (git-file-name name version))
1946 (sha256
1947 (base32
1948 "0q7d55z0v8y55dyy8nhgdnswf5zkgj3i87irbk294nvzhx01bnxd"))))
1949 (build-system go-build-system)
1950 (arguments
1951 `(#:import-path "github.com/magiconair/properties"))
1952 (home-page "https://github.com/magiconair/properties")
1953 (synopsis "Java properties scanner for Go")
1954 (description "Java properties scanner for Go")
1955 (license license:bsd-2)))
1956
1957 (define-public go-github-com-pelletier-go-toml
1958 (package
1959 (name "go-github-com-pelletier-go-toml")
1960 (version "1.8.0")
1961 (source
1962 (origin
1963 (method git-fetch)
1964 (uri (git-reference
1965 (url "https://github.com/pelletier/go-toml")
1966 (commit (string-append "v" version))))
1967 (file-name (git-file-name name version))
1968 (sha256
1969 (base32
1970 "0fxmjm85c9h43lvqz71wr93fcc63bhj82nwby80222xx8ja63g7y"))))
1971 (build-system go-build-system)
1972 (arguments
1973 `(#:import-path "github.com/pelletier/go-toml"))
1974 (native-inputs
1975 `(("github.com/BurntSushi/toml" ,go-github-com-burntsushi-toml)
1976 ("github.com/davecgh/go-spew" ,go-github-com-davecgh-go-spew)
1977 ("gopkg.in/yaml.v2" ,go-gopkg-in-yaml-v2)))
1978 (home-page "https://github.com/pelletier/go-toml")
1979 (synopsis "Go library for the TOML configuration language")
1980 (description "Go library for the TOML configuration language")
1981 (license license:expat)))
1982
1983 (define-public go-github-com-subosito-gotenv
1984 (package
1985 (name "go-github-com-subosito-gotenv")
1986 (version "1.2.0")
1987 (source
1988 (origin
1989 (method git-fetch)
1990 (uri (git-reference
1991 (url "https://github.com/subosito/gotenv")
1992 (commit (string-append "v" version))))
1993 (file-name (git-file-name name version))
1994 (sha256
1995 (base32
1996 "0mav91j7r4arjkpq5zcf9j74f6pww8ic53x43wy7kg3ibw31yjs5"))))
1997 (build-system go-build-system)
1998 (arguments
1999 `(#:import-path "github.com/subosito/gotenv"))
2000 (native-inputs
2001 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
2002 (home-page "https://github.com/subosito/gotenv")
2003 (synopsis "Go library for loading environment variables from files")
2004 (description "Go library for loading environment variables from files")
2005 (license license:expat)))
2006
2007 (define-public go-github-com-sirupsen-logrus
2008 (package
2009 (name "go-github-com-sirupsen-logrus")
2010 (version "1.0.5")
2011 (source
2012 (origin
2013 (method git-fetch)
2014 (uri (git-reference
2015 (url "https://github.com/sirupsen/logrus")
2016 (commit (string-append "v" version))))
2017 (file-name (git-file-name name version))
2018 (sha256
2019 (base32
2020 "0g5z7al7kky11ai2dhac6gkp3b5pxsvx72yj3xg4wg3265gbn7yz"))))
2021 (build-system go-build-system)
2022 (propagated-inputs
2023 `(("go-golang-org-x-crypto"
2024 ,go-golang-org-x-crypto)
2025 ("go-github-com-stretchr-testify"
2026 ,go-github-com-stretchr-testify)
2027 ("go-golang-org-x-sys" ,go-golang-org-x-sys)))
2028 (arguments
2029 '(#:tests? #f ;FIXME missing dependencies
2030 #:import-path "github.com/sirupsen/logrus"))
2031 (home-page "https://github.com/sirupsen/logrus")
2032 (synopsis "Structured, pluggable logging for Go")
2033 (description "Logrus is a structured logger for Go, completely API
2034 compatible with the standard library logger.")
2035 (license license:expat)))
2036
2037 (define-public go-github-com-rifflock-lfshook
2038 (package
2039 (name "go-github-com-rifflock-lfshook")
2040 (version "2.4")
2041 (source (origin
2042 (method git-fetch)
2043 (uri (git-reference
2044 (url "https://github.com/rifflock/lfshook")
2045 (commit (string-append "v" version))))
2046 (file-name (git-file-name name version))
2047 (sha256
2048 (base32
2049 "0wxqjcjfg8c0klmdgmbw3ckagby3wg9rkga9ihd4fsf05x5scxrc"))))
2050 (build-system go-build-system)
2051 (arguments
2052 `(#:import-path "github.com/rifflock/lfshook"))
2053 (propagated-inputs
2054 `(("go-github-com-sirupsen-logrus" ,go-github-com-sirupsen-logrus)))
2055 (home-page "https://github.com/rifflock/lfshook")
2056 (synopsis "Local File System hook for Logrus logger")
2057 (description "This package provides a hook for Logrus to write directly to
2058 a file on the file system. The log levels are dynamic at instantiation of the
2059 hook, so it is capable of logging at some or all levels.")
2060 (license license:expat)))
2061
2062 (define-public go-github-com-kardianos-osext
2063 (let ((commit "ae77be60afb1dcacde03767a8c37337fad28ac14")
2064 (revision "1"))
2065 (package
2066 (name "go-github-com-kardianos-osext")
2067 (version (git-version "0.0.0" revision commit))
2068 (source (origin
2069 (method git-fetch)
2070 (uri (git-reference
2071 (url "https://github.com/kardianos/osext")
2072 (commit commit)))
2073 (file-name (git-file-name name version))
2074 (sha256
2075 (base32
2076 "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz"))))
2077 (build-system go-build-system)
2078 (arguments
2079 `(#:import-path "github.com/kardianos/osext"
2080 ;; The tests are flaky:
2081 ;; <https://github.com/kardianos/osext/issues/21>
2082 #:tests? #f))
2083 (synopsis "Find the running executable")
2084 (description "Osext provides a method for finding the current executable
2085 file that is running. This can be used for upgrading the current executable or
2086 finding resources located relative to the executable file.")
2087 (home-page "https://github.com/kardianos/osext")
2088 (license license:bsd-3))))
2089
2090 (define-public go-github-com-ayufan-golang-kardianos-service
2091 (let ((commit "0c8eb6d8fff2e2fb884a7bfd23e183fb63c0eff3")
2092 (revision "0"))
2093 (package
2094 (name "go-github-com-ayufan-golang-kardianos-service")
2095 (version (git-version "0.0.0" revision commit))
2096 (source
2097 (origin
2098 (method git-fetch)
2099 (uri (git-reference
2100 (url
2101 "https://github.com/ayufan/golang-kardianos-service")
2102 (commit commit)))
2103 (file-name (git-file-name name version))
2104 (sha256
2105 (base32
2106 "0x0cn7l5gda2khsfypix7adxd5yqighzn04mxjw6hc4ayrh7his5"))))
2107 (build-system go-build-system)
2108 (native-inputs
2109 `(("go-github-com-kardianos-osext"
2110 ,go-github-com-kardianos-osext)))
2111 (arguments
2112 '(#:tests? #f ;FIXME tests fail: Service is not running.
2113 #:import-path "github.com/ayufan/golang-kardianos-service"))
2114 (home-page "https://github.com/ayufan/golang-kardianos-service")
2115 (synopsis "Go interface to a variety of service supervisors")
2116 (description "This package provides @code{service}, a Go module that can
2117 run programs as a service using a variety of supervisors, including systemd,
2118 SysVinit, and more.")
2119 (license license:zlib))))
2120
2121 (define-public go-github-com-docker-distribution
2122 (let ((commit "325b0804fef3a66309d962357aac3c2ce3f4d329")
2123 (revision "0"))
2124 (package
2125 (name "go-github-com-docker-distribution")
2126 (version (git-version "0.0.0" revision commit))
2127 (source
2128 ;; FIXME: This bundles many things, see
2129 ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31881#41>.
2130 (origin
2131 (method git-fetch)
2132 (uri (git-reference
2133 (url "https://github.com/docker/distribution")
2134 (commit commit)))
2135 (file-name (git-file-name name version))
2136 (sha256
2137 (base32
2138 "1yg2zrikn3vkvkx5mn51p6bfjk840qdkn7ahhhvvcsc8mpigrjc6"))))
2139 (build-system go-build-system)
2140 (native-inputs
2141 `(("go-golang-org-x-sys" ,go-golang-org-x-sys)
2142 ("go-github-com-sirupsen-logrus"
2143 ,go-github-com-sirupsen-logrus)
2144 ("go-golang-org-x-crypto"
2145 ,go-golang-org-x-crypto)))
2146 (arguments
2147 '(#:import-path "github.com/docker/distribution"
2148 #:phases
2149 (modify-phases %standard-phases
2150 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
2151 (lambda* (#:key outputs #:allow-other-keys)
2152 (map (lambda (file)
2153 (make-file-writable file))
2154 (find-files
2155 (assoc-ref outputs "out")
2156 ".*\\.gz$"))
2157 #t)))))
2158 (home-page
2159 "https://github.com/docker/distribution")
2160 (synopsis "This package is a Docker toolset to pack, ship, store, and
2161 deliver content")
2162 (description "Docker Distribution is a Docker toolset to pack, ship,
2163 store, and deliver content. It contains Docker Registry 2.0 and libraries
2164 to interact with distribution components.")
2165 (license license:asl2.0))))
2166
2167 (define-public go-github-com-docker-go-connections
2168 (let ((commit "3ede32e2033de7505e6500d6c868c2b9ed9f169d")
2169 (revision "0"))
2170 (package
2171 (name "go-github-com-docker-go-connections")
2172 (version (git-version "0.0.0" revision commit))
2173 (source
2174 (origin
2175 (method git-fetch)
2176 (uri (git-reference
2177 (url "https://github.com/docker/go-connections")
2178 (commit commit)))
2179 (file-name (git-file-name name version))
2180 (sha256
2181 (base32
2182 "0v1pkr8apwmhyzbjfriwdrs1ihlk6pw7izm57r24mf9jdmg3fyb0"))))
2183 (build-system go-build-system)
2184 (arguments
2185 '(#:import-path "github.com/docker/go-connections"))
2186 (home-page "https://github.com/docker/go-connections")
2187 (synopsis "Networking library for Go")
2188 (description
2189 "This package provides a library to work with network connections in
2190 the Go language. In particular it provides tools to deal with network address
2191 translation (NAT), proxies, sockets, and transport layer security (TLS).")
2192 (license license:asl2.0))))
2193
2194 (define-public go-github-com-docker-machine
2195 (let ((commit "7b7a141da84480342357c51838be142bf183b095")
2196 (revision "0"))
2197 (package
2198 (name "go-github-com-docker-machine")
2199 (version (git-version "0.0.0" revision commit))
2200 (source
2201 (origin
2202 (method git-fetch)
2203 (uri (git-reference
2204 (url "https://github.com/docker/machine")
2205 (commit commit)))
2206 (file-name (git-file-name name version))
2207 (sha256
2208 (base32
2209 "0bavk0lvs462yh0lnmnxi9psi5qv1x3nvzmd2b0drsahlp1gxi8s"))))
2210 (build-system go-build-system)
2211 (arguments
2212 '(#:import-path "github.com/docker/machine"))
2213 (home-page "https://github.com/docker/machine")
2214 (synopsis "Machine management for a container-centric world")
2215 (description
2216 "@dfn{Machine} lets you create Docker hosts on your computer, on
2217 hosting providers, and inside your data center. It creates servers, installs
2218 Docker on them, then configures the Docker client to talk to them.")
2219 (license license:asl2.0))))
2220
2221 (define-public go-github-com-gorhill-cronexpr
2222 (let ((commit "f0984319b44273e83de132089ae42b1810f4933b")
2223 (revision "0"))
2224 (package
2225 (name "go-github-com-gorhill-cronexpr")
2226 (version (git-version "0.0.0" revision commit))
2227 (source
2228 (origin
2229 (method git-fetch)
2230 (uri (git-reference
2231 (url "https://github.com/gorhill/cronexpr")
2232 (commit commit)))
2233 (file-name (git-file-name name version))
2234 (sha256
2235 (base32
2236 "0dphhhqy3i7265znv3m8n57l80dmaq6z4hsj5kgd87qd19z8x0l2"))))
2237 (build-system go-build-system)
2238 (arguments
2239 '(#:import-path "github.com/gorhill/cronexpr"))
2240 (home-page "https://github.com/gorhill/cronexpr")
2241 (synopsis "Cron expression parser in the Go language")
2242 (description
2243 "This package provides a cron expression parser in the Go language.
2244 Given a cron expression and a time stamp, you can get the next time stamp
2245 which satisfies the cron expression.")
2246 (license (list license:gpl3+
2247 license:asl2.0)))))
2248
2249 (define-public go-gopkg-in-check-v1
2250 (let ((commit "788fd78401277ebd861206a03c884797c6ec5541")
2251 (revision "1"))
2252 (package
2253 (name "go-gopkg-in-check-v1")
2254 (version (git-version "1.0.0" revision commit))
2255 (source
2256 (origin
2257 (method git-fetch)
2258 (uri (git-reference
2259 (url "https://github.com/go-check/check")
2260 (commit commit)))
2261 (file-name (git-file-name name version))
2262 (sha256
2263 (base32
2264 "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a"))))
2265 (build-system go-build-system)
2266 (arguments
2267 '(#:import-path "gopkg.in/check.v1"))
2268 (propagated-inputs
2269 `(("go-github-com-kr-pretty" ,go-github-com-kr-pretty)))
2270 (home-page "https://gopkg.in/check.v1")
2271 (synopsis "Test framework for the Go language")
2272 (description "This package provides a test library for the Go language.")
2273 (license license:asl2.0))))
2274
2275 (define-public go-gopkg-in-ini-v1
2276 (package
2277 (name "go-gopkg-in-ini-v1")
2278 (version "1.56.0")
2279 (source
2280 (origin
2281 (method git-fetch)
2282 (uri (git-reference
2283 (url "https://github.com/go-ini/ini")
2284 (commit (string-append "v" version))))
2285 (file-name (git-file-name name version))
2286 (sha256
2287 (base32
2288 "0j5z0cngg6mq2f9id083jcdi7k6r2h35714pashv6sdv2q7bmfc5"))))
2289 (build-system go-build-system)
2290 (arguments
2291 '(#:import-path "gopkg.in/ini.v1"
2292 ;; Requires large unpackaged test framework
2293 #:tests? #f))
2294 (home-page "https://gopkg.in/ini.v1")
2295 (synopsis "Go library for ini files")
2296 (description "Go library for ini files")
2297 (license license:asl2.0)))
2298
2299 (define-public go-gopkg-in-yaml-v2
2300 (package
2301 (name "go-gopkg-in-yaml-v2")
2302 (version "2.2.2")
2303 (source
2304 (origin
2305 (method git-fetch)
2306 (uri (git-reference
2307 (url "https://gopkg.in/yaml.v2.git")
2308 (commit (string-append "v" version))))
2309 (file-name (git-file-name name version))
2310 (sha256
2311 (base32
2312 "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa"))))
2313 (build-system go-build-system)
2314 (arguments
2315 '(#:import-path "gopkg.in/yaml.v2"))
2316 (native-inputs
2317 `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
2318 (home-page "https://gopkg.in/yaml.v2")
2319 (synopsis "YAML reader and writer for the Go language")
2320 (description
2321 "This package provides a Go library for encode and decode YAML
2322 values.")
2323 (license license:asl2.0)))
2324
2325 (define-public go-github-com-mattn-go-isatty
2326 (package
2327 (name "go-github-com-mattn-go-isatty")
2328 (version "0.0.11")
2329 (source
2330 (origin
2331 (method git-fetch)
2332 (uri (git-reference
2333 (url "https://github.com/mattn/go-isatty")
2334 (commit (string-append "v" version))))
2335 (file-name (git-file-name name version))
2336 (sha256
2337 (base32
2338 "0h671sv7hfprja495kavazkalkx7xzaqksjh13brcnwq67ijrali"))))
2339 (build-system go-build-system)
2340 (propagated-inputs
2341 `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
2342 (arguments
2343 '(#:import-path "github.com/mattn/go-isatty"))
2344 (home-page "https://github.com/mattn/go-isatty")
2345 (synopsis "Provide @code{isatty} for Golang")
2346 (description "This package provides @code{isatty}, a Go module that can
2347 tell you whether a file descriptor points to a terminal and the type of the
2348 terminal.")
2349 (license license:expat)))
2350
2351 (define-public go-github-com-mattn-go-colorable
2352 (package
2353 (name "go-github-com-mattn-go-colorable")
2354 (version "0.1.8")
2355 (home-page "https://github.com/mattn/go-colorable")
2356 (source
2357 (origin
2358 (method git-fetch)
2359 (uri (git-reference
2360 (url home-page)
2361 (commit (string-append "v" version))))
2362 (file-name (git-file-name name version))
2363 (sha256
2364 (base32
2365 "0q34zqwbnls72md8q8mhj368s7p3i4xspvs3rk8fs76s0pn7dr2l"))))
2366 (build-system go-build-system)
2367 (native-inputs
2368 `(("go-github-com-mattn-go-isatty"
2369 ,go-github-com-mattn-go-isatty)))
2370 (arguments
2371 '(#:import-path "github.com/mattn/go-colorable"))
2372 (synopsis "Handle ANSI color escapes on Windows")
2373 (description "This package provides @code{colorable}, a module that
2374 makes it possible to handle ANSI color escapes on Windows.")
2375 (license license:expat)))
2376
2377 (define-public go-github-com-mattn-go-pointer
2378 (let ((commit "a0a44394634f41e4992b173b24f14fecd3318a67")
2379 (revision "1"))
2380 (package
2381 (name "go-github-com-mattn-go-pointer")
2382 (version (git-version "0.0.0" revision commit))
2383 (source
2384 (origin
2385 (method git-fetch)
2386 (uri (git-reference
2387 (url "https://github.com/mattn/go-pointer")
2388 (commit commit)))
2389 (sha256
2390 (base32
2391 "09w7hcyc0zz2g23vld6jbcmq4ar27xakp1ldjvh549i5izf2anhz"))
2392 (file-name (git-file-name name version))))
2393 (build-system go-build-system)
2394 (arguments
2395 '(#:import-path "github.com/mattn/go-pointer"))
2396 (home-page "https://github.com/mattn/go-pointer")
2397 (synopsis "Utility for cgo")
2398 (description
2399 "This package allows for a cgo argument to be passed a Go pointer.")
2400 (license license:expat))))
2401
2402 (define-public go-github-com-mgutz-ansi
2403 (let ((commit "9520e82c474b0a04dd04f8a40959027271bab992")
2404 (revision "0"))
2405 (package
2406 (name "go-github-com-mgutz-ansi")
2407 (version (git-version "0.0.0" revision commit))
2408 (source
2409 (origin
2410 (method git-fetch)
2411 (uri (git-reference
2412 (url
2413 "https://github.com/mgutz/ansi")
2414 (commit commit)))
2415 (file-name (git-file-name name version))
2416 (sha256
2417 (base32
2418 "00bz22314j26736w1f0q4jy9d9dfaml17vn890n5zqy3cmvmww1j"))))
2419 (build-system go-build-system)
2420 (native-inputs
2421 `(("go-github-com-mattn-go-isatty"
2422 ,go-github-com-mattn-go-isatty)
2423 ("go-github-com-mattn-go-colorable"
2424 ,go-github-com-mattn-go-colorable)))
2425 (arguments
2426 '(#:import-path "github.com/mgutz/ansi"))
2427 (home-page "https://github.com/mgutz/ansi")
2428 (synopsis "Small, fast library to create ANSI colored strings and codes")
2429 (description "This package provides @code{ansi}, a Go module that can
2430 generate ANSI colored strings.")
2431 (license license:expat))))
2432
2433 (define-public go-github-com-aarzilli-golua
2434 (let ((commit "03fc4642d792b1f2bc5e7343b403cf490f8c501d")
2435 (revision "0"))
2436 (package
2437 (name "go-github-com-aarzilli-golua")
2438 (version (git-version "0.0.0" revision commit))
2439 (source
2440 (origin
2441 (method git-fetch)
2442 (uri (git-reference
2443 (url
2444 "https://github.com/aarzilli/golua")
2445 (commit commit)))
2446 (file-name (git-file-name name version))
2447 (sha256
2448 (base32
2449 "1d9hr29i36cza98afj3g6rs3l7xbkprwzz0blcxsr9dd7nak20di"))))
2450 (build-system go-build-system)
2451 ;; From go-1.10 onward, "pkg" compiled libraries are not re-used, so
2452 ;; when this package required as input for another one, it will have to
2453 ;; be built again. Thus its CGO requirements must be made available in
2454 ;; the environment, that is, they must be propagated.
2455 (propagated-inputs
2456 `(("lua" ,lua)))
2457 (arguments
2458 `(#:unpack-path "github.com/aarzilli/golua"
2459 #:import-path "github.com/aarzilli/golua/lua"
2460 #:phases
2461 (modify-phases %standard-phases
2462 ;; While it's possible to fix the CGO_LDFLAGS with the "-tags"
2463 ;; command line argument, go-1.10+ does not re-use the produced pkg
2464 ;; for dependencies, which means we would need to propagate the
2465 ;; same "-tags" argument to all golua referrers. A substitution is
2466 ;; more convenient here. We also need to propagate the lua
2467 ;; dependency to make it available to referrers.
2468 (add-after 'unpack 'fix-lua-ldflags
2469 (lambda _
2470 (substitute* "src/github.com/aarzilli/golua/lua/lua.go"
2471 (("#cgo linux,!llua,!luaa LDFLAGS: -llua5.3")
2472 "#cgo linux,!llua,!luaa LDFLAGS: -llua")))))))
2473 (home-page "https://github.com/aarzilli/golua")
2474 (synopsis "Go Bindings for the Lua C API")
2475 (description "This package provides @code{lua}, a Go module that can
2476 run a Lua virtual machine.")
2477 (license license:expat))))
2478
2479 (define-public go-gitlab-com-ambrevar-golua-unicode
2480 (let ((commit "97ce517e7a1fe2407a90c317a9c74b173d396144")
2481 (revision "0"))
2482 (package
2483 (name "go-gitlab-com-ambrevar-golua-unicode")
2484 (version (git-version "0.0.0" revision commit))
2485 (source
2486 (origin
2487 (method git-fetch)
2488 (uri (git-reference
2489 (url
2490 "https://gitlab.com/ambrevar/golua")
2491 (commit commit)))
2492 (file-name (git-file-name name version))
2493 (sha256
2494 (base32
2495 "1izcp7p8nagjwqd13shb0020w7xhppib1a3glw2d1468bflhksnm"))))
2496 (build-system go-build-system)
2497 (native-inputs
2498 `(("lua" ,lua)
2499 ("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
2500 (arguments
2501 `(#:unpack-path "gitlab.com/ambrevar/golua"
2502 #:import-path "gitlab.com/ambrevar/golua/unicode"
2503 #:phases
2504 (modify-phases %standard-phases
2505 (replace 'check
2506 (lambda* (#:key import-path #:allow-other-keys)
2507 (setenv "USER" "homeless-dude")
2508 (invoke "go" "test" import-path))))))
2509 (home-page "https://gitlab.com/ambrevar/golua")
2510 (synopsis "Add Unicode support to Golua")
2511 (description "This extension to Arzilli's Golua adds Unicode support to
2512 all functions from the Lua string library. Lua patterns are replaced by Go
2513 regexps. This breaks compatibility with Lua, but Unicode support breaks it
2514 anyways and Go regexps are more powerful.")
2515 (license license:expat))))
2516
2517 (define-public go-github-com-yookoala-realpath
2518 (let ((commit "d19ef9c409d9817c1e685775e53d361b03eabbc8")
2519 (revision "0"))
2520 (package
2521 (name "go-github-com-yookoala-realpath")
2522 (version (git-version "0.0.0" revision commit))
2523 (source
2524 (origin
2525 (method git-fetch)
2526 (uri (git-reference
2527 (url
2528 "https://github.com/yookoala/realpath")
2529 (commit commit)))
2530 (file-name (git-file-name name version))
2531 (sha256
2532 (base32
2533 "0qvz1dcdldf53rq69fli76z5k1vr7prx9ds1d5rpzgs68kwn40nw"))))
2534 (build-system go-build-system)
2535 (arguments
2536 `(#:import-path "github.com/yookoala/realpath"))
2537 (home-page "https://github.com/yookoala/realpath")
2538 (synopsis "@code{realpath} for Golang")
2539 (description "This package provides @code{realpath}, a Go module that
2540 when provided with a valid relative path / alias path, it will return you with
2541 a string of its real absolute path in the system.")
2542 (license license:expat))))
2543
2544 (define-public go-gitlab-com-ambrevar-damerau
2545 (let ((commit "883829e1f25fad54015772ea663e69017cf22352")
2546 (revision "0"))
2547 (package
2548 (name "go-gitlab-com-ambrevar-damerau")
2549 (version (git-version "0.0.0" revision commit))
2550 (source
2551 (origin
2552 (method git-fetch)
2553 (uri (git-reference
2554 (url
2555 "https://gitlab.com/ambrevar/damerau")
2556 (commit commit)))
2557 (file-name (git-file-name name version))
2558 (sha256
2559 (base32
2560 "1b9p8fypc914ij1afn6ir346zsgfqrc5mqc1k3d53n4snypq27qv"))))
2561 (build-system go-build-system)
2562 (arguments
2563 `(#:import-path "gitlab.com/ambrevar/damerau"))
2564 (home-page "https://gitlab.com/ambrevar/damerau")
2565 (synopsis "Damerau-Levenshtein distance for Golang")
2566 (description "This is a spelling corrector implementing the
2567 Damerau-Levenshtein distance. Takes a string value input from the user.
2568 Looks for an identical word on a list of words, if none is found, look for a
2569 similar word.")
2570 (license license:expat))))
2571
2572 (define-public go-github-com-stevedonovan-luar
2573 (let ((commit "22d247e5366095f491cd83edf779ee99a78f5ead")
2574 (revision "0"))
2575 (package
2576 (name "go-github-com-stevedonovan-luar")
2577 (version (git-version "0.0.0" revision commit))
2578 (source
2579 (origin
2580 (method git-fetch)
2581 (uri (git-reference
2582 (url
2583 "https://github.com/stevedonovan/luar")
2584 (commit commit)))
2585 (file-name (git-file-name name version))
2586 (sha256
2587 (base32
2588 "1acjgw9cz1l0l9mzkyk7irz6cfk31wnxgbwa805fvm1rqcjzin2c"))))
2589 (build-system go-build-system)
2590 (native-inputs
2591 `(("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
2592 (arguments
2593 `(#:tests? #f ; Upstream tests are broken.
2594 #:import-path "github.com/stevedonovan/luar"))
2595 (home-page "https://github.com/stevedonovan/luar")
2596 (synopsis "Lua reflection bindings for Go")
2597 (description "Luar is designed to make using Lua from Go more
2598 convenient. Go structs, slices and maps can be automatically converted to Lua
2599 tables and vice-versa. The resulting conversion can either be a copy or a
2600 proxy. In the latter case, any change made to the result will reflect on the
2601 source.
2602
2603 Any Go function can be made available to Lua scripts, without having to write
2604 C-style wrappers.
2605
2606 Luar support cyclic structures (lists, etc.).
2607
2608 User-defined types can be made available to Lua as well: their exported
2609 methods can be called and usual operations such as indexing or arithmetic can
2610 be performed.")
2611 (license license:expat))))
2612
2613 (define-public go-github-com-michiwend-golang-pretty
2614 (let ((commit "8ac61812ea3fa540f3f141a444fcb0dd713cdca4")
2615 (revision "0"))
2616 (package
2617 (name "go-github-com-michiwend-golang-pretty")
2618 (version (git-version "0.0.0" revision commit))
2619 (source
2620 (origin
2621 (method git-fetch)
2622 (uri (git-reference
2623 (url
2624 "https://github.com/michiwend/golang-pretty")
2625 (commit commit)))
2626 (file-name (git-file-name name version))
2627 (sha256
2628 (base32
2629 "0rjfms0csjqi91xnddzx3rcrcaikc7xc027617px3kdwdap80ir4"))))
2630 (build-system go-build-system)
2631 (native-inputs
2632 `(("go-github-com-kr-text" ,go-github-com-kr-text)))
2633 (arguments
2634 `(#:tests? #f ; Upstream tests seem to be broken.
2635 #:import-path "github.com/michiwend/golang-pretty"))
2636 (home-page "https://github.com/michiwend/golang-pretty")
2637 (synopsis "Pretty printing for Go values")
2638 (description "Package @code{pretty} provides pretty-printing for Go
2639 values. This is useful during debugging, to avoid wrapping long output lines
2640 in the terminal.
2641
2642 It provides a function, @code{Formatter}, that can be used with any function
2643 that accepts a format string. It also provides convenience wrappers for
2644 functions in packages @code{fmt} and @code{log}.")
2645 (license license:expat))))
2646
2647 (define-public go-github-com-michiwend-gomusicbrainz
2648 (let ((commit "0cdeb13f9b24d2c714feb7e3c63d595cf7121d7d")
2649 (revision "0"))
2650 (package
2651 (name "go-github-com-michiwend-gomusicbrainz")
2652 (version (git-version "0.0.0" revision commit))
2653 (source
2654 (origin
2655 (method git-fetch)
2656 (uri (git-reference
2657 (url
2658 "https://github.com/michiwend/gomusicbrainz")
2659 (commit commit)))
2660 (file-name (git-file-name name version))
2661 (sha256
2662 (base32
2663 "1li9daw0kghb80rdmxbh7g72qhxcvx3rvhwq5gs0jrr9hb8pjvcn"))))
2664 (build-system go-build-system)
2665 (native-inputs
2666 `(("go-github-com-michiwend-golang-pretty" ,go-github-com-michiwend-golang-pretty)
2667 ("go-github-com-kr-text" ,go-github-com-kr-text)))
2668 (arguments
2669 `(#:import-path "github.com/michiwend/gomusicbrainz"))
2670 (home-page "https://github.com/michiwend/gomusicbrainz")
2671 (synopsis "MusicBrainz WS2 client library for Golang")
2672 (description "Currently GoMusicBrainz provides methods to perform search
2673 and lookup requests. Browse requests are not supported yet.")
2674 (license license:expat))))
2675
2676 (define-public go-github-com-wtolson-go-taglib
2677 (let ((commit "6e68349ff94ecea412de7e748cb5eaa26f472777")
2678 (revision "0"))
2679 (package
2680 (name "go-github-com-wtolson-go-taglib")
2681 (version (git-version "0.0.0" revision commit))
2682 (source
2683 (origin
2684 (method git-fetch)
2685 (uri (git-reference
2686 (url
2687 "https://github.com/wtolson/go-taglib")
2688 (commit commit)))
2689 (file-name (git-file-name name version))
2690 (sha256
2691 (base32
2692 "1cpjqnrviwflz150g78iir5ndrp3hh7a93zbp4dwbg6sb2q141p2"))))
2693 (build-system go-build-system)
2694 ;; From go-1.10 onward, "pkg" compiled libraries are not re-used, so
2695 ;; when this package required as input for another one, it will have to
2696 ;; be built again. Thus its CGO requirements must be made available in
2697 ;; the environment, that is, they must be propagated.
2698 (propagated-inputs
2699 `(("pkg-config" ,pkg-config)
2700 ("taglib" ,taglib)))
2701 (arguments
2702 `(#:import-path "github.com/wtolson/go-taglib"
2703 ;; Tests don't pass "vet" on Go since 1.11. See
2704 ;; https://github.com/wtolson/go-taglib/issues/12.
2705 #:phases
2706 (modify-phases %standard-phases
2707 (replace 'check
2708 (lambda* (#:key import-path #:allow-other-keys)
2709 (invoke "go" "test"
2710 "-vet=off"
2711 import-path))))))
2712 (home-page "https://github.com/wtolson/go-taglib")
2713 (synopsis "Go wrapper for taglib")
2714 (description "Go wrapper for taglib")
2715 (license license:unlicense))))
2716
2717 (define-public go-github-com-gogo-protobuf
2718 (package
2719 (name "go-github-com-gogo-protobuf")
2720 (version "1.3.1")
2721 (source (origin
2722 (method git-fetch)
2723 (uri (git-reference
2724 (url "https://github.com/gogo/protobuf")
2725 (commit (string-append "v" version))))
2726 (file-name (git-file-name name version))
2727 (sha256
2728 (base32
2729 "0x77x64sxjgfhmbijqfzmj8h4ar25l2w97h01q3cqs1wk7zfnkhp"))))
2730 (build-system go-build-system)
2731 (arguments
2732 `(#:import-path "github.com/gogo/protobuf"
2733 ; Source-only package
2734 #:tests? #f
2735 #:phases
2736 (modify-phases %standard-phases
2737 (delete 'build))))
2738 (synopsis "Protocol Buffers for Go with Gadgets")
2739 (description "Gogoprotobuf is a fork of golang/protobuf with extra code
2740 generation features. This code generation is used to achieve:
2741 @itemize
2742 @item fast marshalling and unmarshalling
2743 @item more canonical Go structures
2744 @item goprotobuf compatibility
2745 @item less typing by optionally generating extra helper code
2746 @item peace of mind by optionally generating test and benchmark code
2747 @item other serialization formats
2748 @end itemize")
2749 (home-page "https://github.com/gogo/protobuf")
2750 (license license:bsd-3)))
2751
2752 (define-public go-github-com-libp2p-go-flow-metrics
2753 (let ((commit "7e5a55af485341567f98d6847a373eb5ddcdcd43")
2754 (revision "0"))
2755 (package
2756 (name "go-github-com-libp2p-go-flow-metrics")
2757 (version (git-version "0.2.0" revision commit))
2758 (source
2759 (origin
2760 (method git-fetch)
2761 (uri (git-reference
2762 (url "https://github.com/libp2p/go-flow-metrics")
2763 (commit commit)))
2764 (file-name (git-file-name name version))
2765 (sha256
2766 (base32
2767 "1p87iyk6q6f3g3xkncssx400qlld8f2z93qiz8m1f97grfyhjif1"))))
2768 (build-system go-build-system)
2769 (arguments
2770 `(#:import-path "github.com/libp2p/go-flow-metrics"
2771 ;; TODO: Tests hang.
2772 #:tests? #f))
2773 (home-page
2774 "https://github.com/libp2p/go-flow-metrics")
2775 (synopsis "Simple library for tracking flow metrics")
2776 (description "A simple alternative to rcrowley's @command{go-metrics}
2777 that's a lot faster (and only does simple bandwidth metrics).")
2778 (license license:expat))))
2779
2780 (define-public go-github-com-davecgh-go-spew
2781 (package
2782 (name "go-github-com-davecgh-go-spew")
2783 (version "1.1.1")
2784 (source
2785 (origin
2786 (method git-fetch)
2787 (uri (git-reference
2788 (url "https://github.com/davecgh/go-spew")
2789 (commit (string-append "v" version))))
2790 (file-name (git-file-name name version))
2791 (sha256
2792 (base32
2793 "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y"))))
2794 (build-system go-build-system)
2795 (arguments
2796 '(#:unpack-path "github.com/davecgh/go-spew"
2797 #:import-path "github.com/davecgh/go-spew/spew"))
2798 (home-page "https://github.com/davecgh/go-spew")
2799 (synopsis "Deep pretty printer for Go data structures to aid in debugging")
2800 (description "Package @command{spew} implements a deep pretty printer
2801 for Go data structures to aid in debugging.
2802
2803 A quick overview of the additional features spew provides over the built-in printing facilities for Go data types are as follows:
2804
2805 @itemize
2806 @item Pointers are dereferenced and followed.
2807 @item Circular data structures are detected and handled properly.
2808 @item Custom Stringer/error interfaces are optionally invoked, including on
2809 unexported types.
2810 @item Custom types which only implement the Stringer/error interfaces via a
2811 pointer receiver are optionally invoked when passing non-pointer variables.
2812 @item Byte arrays and slices are dumped like the hexdump -C command which
2813 includes offsets, byte values in hex, and ASCII output (only when using Dump
2814 style).
2815 @end itemize\n")
2816 (license license:isc)))
2817
2818 (define-public go-github-com-btcsuite-btclog
2819 (let ((commit "84c8d2346e9fc8c7b947e243b9c24e6df9fd206a")
2820 (revision "0"))
2821 (package
2822 (name "go-github-com-btcsuite-btclog")
2823 (version (git-version "0.0.3" revision commit))
2824 (source
2825 (origin
2826 (method git-fetch)
2827 (uri (git-reference
2828 (url "https://github.com/btcsuite/btclog")
2829 (commit commit)))
2830 (file-name (git-file-name name version))
2831 (sha256
2832 (base32
2833 "02dl46wcnfpg9sqvg0ipipkpnd7lrf4fnvb9zy56jqa7mfcwc7wk"))))
2834 (build-system go-build-system)
2835 (arguments
2836 '(#:import-path "github.com/btcsuite/btclog"))
2837 (home-page "https://github.com/btcsuite/btclog")
2838 (synopsis "Subsystem aware logger for Go")
2839 (description "Package @command{btclog} defines a logger interface and
2840 provides a default implementation of a subsystem-aware leveled logger
2841 implementing the same interface.")
2842 (license license:isc))))
2843
2844 (define-public go-github-com-btcsuite-btcd-btcec
2845 (let ((commit "67e573d211ace594f1366b4ce9d39726c4b19bd0")
2846 (revision "0"))
2847 (package
2848 (name "go-github-com-btcsuite-btcd-btcec")
2849 (version (git-version "0.12.0-beta" revision commit))
2850 (source
2851 (origin
2852 (method git-fetch)
2853 (uri (git-reference
2854 (url "https://github.com/btcsuite/btcd")
2855 (commit commit)))
2856 (file-name (git-file-name name version))
2857 (sha256
2858 (base32
2859 "04s92gsy71w1jirlr5lkk9y6r5cparbas7nmf6ywbp7kq7fn8ajn"))))
2860 (build-system go-build-system)
2861 (arguments
2862 '(#:unpack-path "github.com/btcsuite/btcd"
2863 #:import-path "github.com/btcsuite/btcd/btcec"))
2864 (native-inputs
2865 `(("go-github-com-davecgh-go-spew" ,go-github-com-davecgh-go-spew)))
2866 (home-page "https://github.com/btcsuite/btcd")
2867 (synopsis "Elliptic curve cryptography to work with Bitcoin")
2868 (description "Package @command{btcec} implements elliptic curve
2869 cryptography needed for working with Bitcoin (secp256k1 only for now). It is
2870 designed so that it may be used with the standard crypto/ecdsa packages
2871 provided with Go. A comprehensive suite of test is provided to ensure proper
2872 functionality. Package @command{btcec} was originally based on work from
2873 ThePiachu which is licensed under the same terms as Go, but it has
2874 significantly diverged since then. The @command{btcsuite} developers original
2875 is licensed under the liberal ISC license.
2876
2877 Although this package was primarily written for btcd, it has intentionally
2878 been designed so it can be used as a standalone package for any projects
2879 needing to use secp256k1 elliptic curve cryptography.")
2880 (license license:isc))))
2881
2882 (define-public go-github-com-minio-sha256-simd
2883 (package
2884 (name "go-github-com-minio-sha256-simd")
2885 (version "0.1.1")
2886 (source
2887 (origin
2888 (method git-fetch)
2889 (uri (git-reference
2890 (url "https://github.com/minio/sha256-simd")
2891 (commit (string-append "v" version))))
2892 (file-name (git-file-name name version))
2893 (sha256
2894 (base32
2895 "1j0iqsckm97g4l79vd4mc7apbmkdar23jpzqpnpdhwpfd834j8lp"))))
2896 (build-system go-build-system)
2897 (arguments
2898 '(#:import-path "github.com/minio/sha256-simd"))
2899 (home-page "https://github.com/minio/sha256-simd")
2900 (synopsis "Accelerate SHA256 computations in pure Go")
2901 (description "Accelerate SHA256 computations in pure Go using AVX512 and
2902 AVX2 for Intel and ARM64 for ARM. On AVX512 it provides an up to 8x
2903 improvement (over 3 GB/s per core) in comparison to AVX2.
2904
2905 This package is designed as a replacement for @command{crypto/sha256}. For
2906 Intel CPUs it has two flavors for AVX512 and AVX2 (AVX/SSE are also
2907 supported). For ARM CPUs with the Cryptography Extensions, advantage is taken
2908 of the SHA2 instructions resulting in a massive performance improvement.
2909
2910 This package uses Golang assembly. The AVX512 version is based on the Intel's
2911 \"multi-buffer crypto library for IPSec\" whereas the other Intel
2912 implementations are described in \"Fast SHA-256 Implementations on Intel
2913 Architecture Processors\" by J. Guilford et al.")
2914 (license license:asl2.0)))
2915
2916 (define-public go-github-com-libp2p-go-libp2p-crypto
2917 (let ((commit "7240b40a3ddc47c4d17c15baabcbe45e5219171b")
2918 (revision "0"))
2919 (package
2920 (name "go-github-com-libp2p-go-libp2p-crypto")
2921 (version (git-version "2.0.1" revision commit))
2922 (source
2923 (origin
2924 (method git-fetch)
2925 (uri (git-reference
2926 (url "https://github.com/libp2p/go-libp2p-crypto")
2927 (commit commit)))
2928 (file-name (git-file-name name version))
2929 (sha256
2930 (base32
2931 "0qwpy57qv5143l9dlfwfvpqsxdd2i4zwnawx1w4pmgxxim3nw1wb"))))
2932 (build-system go-build-system)
2933 (arguments
2934 '(#:import-path "github.com/libp2p/go-libp2p-crypto"))
2935 (native-inputs
2936 `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
2937 ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
2938 ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
2939 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)))
2940 (home-page
2941 "https://github.com/libp2p/go-libp2p-crypto")
2942 (synopsis "Various cryptographic utilities used by IPFS")
2943 (description "Various cryptographic utilities used by IPFS")
2944 (license license:expat))))
2945
2946 (define-public go-github-com-mr-tron-base58
2947 (let ((commit "d724c80ecac7b49e4e562d58b2b4f4ee4ed8c312")
2948 (revision "0"))
2949 (package
2950 (name "go-github-com-mr-tron-base58")
2951 (version (git-version "1.1.0" revision commit))
2952 (source
2953 (origin
2954 (method git-fetch)
2955 (uri (git-reference
2956 (url "https://github.com/mr-tron/base58")
2957 (commit commit)))
2958 (file-name (git-file-name name version))
2959 (sha256
2960 (base32
2961 "12qhgnn9wf3c1ang16r4i778whk4wsrj7d90h2xgmz4fi1469rqa"))))
2962 (build-system go-build-system)
2963 (arguments
2964 `(#:unpack-path "github.com/mr-tron/base58"
2965 #:import-path "github.com/mr-tron/base58/base58"))
2966 (home-page "https://github.com/mr-tron/base58")
2967 (synopsis "Fast implementation of base58 encoding on Golang")
2968 (description "Fast implementation of base58 encoding on Golang. A
2969 trivial @command{big.Int} encoding benchmark results in 6 times faster
2970 encoding and 8 times faster decoding.")
2971 (license license:expat))))
2972
2973 (define-public go-github-com-gxed-hashland-keccakpg
2974 (let ((commit "d9f6b97f8db22dd1e090fd0bbbe98f09cc7dd0a8")
2975 (revision "0"))
2976 (package
2977 (name "go-github-com-gxed-hashland-keccakpg")
2978 (version (git-version "0.0.0" revision commit))
2979 (source
2980 (origin
2981 (method git-fetch)
2982 (uri (git-reference
2983 (url "https://github.com/gxed/hashland")
2984 (commit commit)))
2985 (file-name (git-file-name name version))
2986 (sha256
2987 (base32
2988 "1q23y4lacsz46k9gmgfw4iwwydw36j2601rbidmmswl94grpc386"))))
2989 (build-system go-build-system)
2990 (arguments
2991 '(#:unpack-path "github.com/gxed/hashland"
2992 #:import-path "github.com/gxed/hashland/keccakpg"))
2993 (home-page "https://github.com/gxed/hashland")
2994 (synopsis "Implements the Keccak (SHA-3) hash algorithm in Go")
2995 (description "Package @command{keccak} implements the Keccak (SHA-3)
2996 hash algorithm. See http://keccak.noekeon.org.")
2997 (license license:expat))))
2998
2999 (define-public go-github-com-minio-blake2b-simd
3000 (let ((commit "3f5f724cb5b182a5c278d6d3d55b40e7f8c2efb4")
3001 (revision "0"))
3002 (package
3003 (name "go-github-com-minio-blake2b-simd")
3004 (version (git-version "0.0.0" revision commit))
3005 (source
3006 (origin
3007 (method git-fetch)
3008 (uri (git-reference
3009 (url "https://github.com/minio/blake2b-simd")
3010 (commit commit)))
3011 (file-name (git-file-name name version))
3012 (sha256
3013 (base32
3014 "0b6jbnj62c0gmmfd4zdmh8xbg01p80f13yygir9xprqkzk6fikmd"))))
3015 (build-system go-build-system)
3016 (arguments
3017 '(#:import-path "github.com/minio/blake2b-simd"))
3018 (home-page "https://github.com/minio/blake2b-simd")
3019 (synopsis "Fast hashing in pure Go of BLAKE2b with SIMD instructions")
3020 (description "This package was initially based on the pure go BLAKE2b
3021 implementation of Dmitry Chestnykh and merged with the (cgo dependent) AVX
3022 optimized BLAKE2 implementation (which in turn is based on the official
3023 implementation. It does so by using Go's Assembler for amd64 architectures
3024 with a golang only fallback for other architectures.
3025
3026 In addition to AVX there is also support for AVX2 as well as SSE. Best
3027 performance is obtained with AVX2 which gives roughly a 4X performance
3028 increase approaching hashing speeds of 1GB/sec on a single core.")
3029 (license license:asl2.0))))
3030
3031 (define-public go-github-com-spaolacci-murmur3
3032 (package
3033 (name "go-github-com-spaolacci-murmur3")
3034 (version "1.1.0")
3035 (source
3036 (origin
3037 (method git-fetch)
3038 (uri (git-reference
3039 (url "https://github.com/spaolacci/murmur3")
3040 (commit (string-append "v" version))))
3041 (file-name (git-file-name name version))
3042 (sha256
3043 (base32
3044 "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25"))))
3045 (build-system go-build-system)
3046 (arguments
3047 '(#:import-path "github.com/spaolacci/murmur3"))
3048 (home-page "https://github.com/spaolacci/murmur3")
3049 (synopsis "Native MurmurHash3 Go implementation")
3050 (description "Native Go implementation of Austin Appleby's third MurmurHash
3051 revision (aka MurmurHash3).
3052
3053 Reference algorithm has been slightly hacked as to support the streaming mode
3054 required by Go's standard Hash interface.")
3055 (license license:bsd-3)))
3056
3057 (define-public go-github-com-twmb-murmur3
3058 (package
3059 (name "go-github-com-twmb-murmur3")
3060 (version "1.1.3")
3061 (source
3062 (origin
3063 (method git-fetch)
3064 (uri (git-reference
3065 (url "https://github.com/twmb/murmur3")
3066 (commit (string-append "v" version))))
3067 (file-name (git-file-name name version))
3068 (sha256
3069 (base32
3070 "00riapwkyf23l5wyis47mbr8rwr4yrjw491jfc30wpzs111c1gyy"))))
3071 (build-system go-build-system)
3072 (arguments
3073 '(#:import-path "github.com/twmb/murmur3"))
3074 (home-page "https://github.com/twmb/murmur3")
3075 (synopsis "Native MurmurHash3 Go implementation")
3076 (description "Native Go implementation of Austin Appleby's third
3077 MurmurHash revision (aka MurmurHash3).
3078
3079 Reference algorithm has been slightly hacked as to support the streaming mode
3080 required by Go's standard Hash interface.")
3081 (license license:bsd-3)))
3082
3083 (define-public go-github-com-multiformats-go-multihash
3084 (let ((commit "97cdb562a04c6ef66d8ed40cd62f8fbcddd396d6")
3085 (revision "0"))
3086 (package
3087 (name "go-github-com-multiformats-go-multihash")
3088 (version (git-version "1.0.8" revision commit))
3089 (source
3090 (origin
3091 (method git-fetch)
3092 (uri (git-reference
3093 (url "https://github.com/multiformats/go-multihash")
3094 (commit commit)))
3095 (file-name (git-file-name name version))
3096 (sha256
3097 (base32
3098 "02wd9akrwy4y5m0nig9m24p14bjjgb4n1djydrq8cm4yhbvjrrk0"))))
3099 (build-system go-build-system)
3100 (arguments
3101 '(#:import-path "github.com/multiformats/go-multihash"))
3102 (native-inputs
3103 `(("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
3104 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
3105 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
3106 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
3107 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
3108 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
3109 (home-page "https://github.com/multiformats/go-multihash")
3110 (synopsis "Multihash implementation in Go")
3111 (description "Multihash implementation in Go.")
3112 (license license:expat))))
3113
3114 (define-public go-github-com-libp2p-go-libp2p-peer
3115 (let ((commit "993d742bc29dcf4894b7730ba610fd78900be76c")
3116 (revision "0"))
3117 (package
3118 (name "go-github-com-libp2p-go-libp2p-peer")
3119 (version (git-version "2.3.8" revision commit))
3120 (source
3121 (origin
3122 (method git-fetch)
3123 (uri (git-reference
3124 (url "https://github.com/libp2p/go-libp2p-peer")
3125 (commit commit)))
3126 (file-name (git-file-name name version))
3127 (sha256
3128 (base32
3129 "1h96qjdi0i1wbr0jliap2903mycphas3ny0zdrm77yca9plcnphh"))))
3130 (build-system go-build-system)
3131 (arguments
3132 '(#:import-path "github.com/libp2p/go-libp2p-peer"))
3133 (native-inputs
3134 `(("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
3135 ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
3136 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
3137 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
3138 ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
3139 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
3140 ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
3141 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
3142 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
3143 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
3144 (home-page "https://github.com/libp2p/go-libp2p-peer")
3145 (synopsis "PKI based identities for use in go-libp2p")
3146 (description "PKI based identities for use in @command{go-libp2p}.")
3147 (license license:expat))))
3148
3149 (define-public go-github-com-libp2p-go-libp2p-protocol
3150 (let ((commit "b29f3d97e3a2fb8b29c5d04290e6cb5c5018004b")
3151 (revision "0"))
3152 (package
3153 (name "go-github-com-libp2p-go-libp2p-protocol")
3154 (version (git-version "1.0.0" revision commit))
3155 (source
3156 (origin
3157 (method git-fetch)
3158 (uri (git-reference
3159 (url "https://github.com/libp2p/go-libp2p-protocol")
3160 (commit commit)))
3161 (file-name (git-file-name name version))
3162 (sha256
3163 (base32
3164 "1xgjfnx9zcqglg9li29wdqywsp8hz22wx6phns9zscni2jsfidld"))))
3165 (build-system go-build-system)
3166 (arguments
3167 '(#:import-path
3168 "github.com/libp2p/go-libp2p-protocol"))
3169 (home-page "https://github.com/libp2p/go-libp2p-protocol")
3170 (synopsis "Type for protocol strings in Golang")
3171 (description "Just a type for protocol strings. Nothing more.")
3172 (license license:expat))))
3173
3174 (define-public go-github-com-libp2p-go-libp2p-metrics
3175 (let ((commit "a10ff6e75dae3c868023867e8caa534a04bdc624")
3176 (revision "0"))
3177 (package
3178 (name "go-github-com-libp2p-go-libp2p-metrics")
3179 (version (git-version "2.1.6" revision commit))
3180 (source
3181 (origin
3182 (method git-fetch)
3183 (uri (git-reference
3184 (url "https://github.com/libp2p/go-libp2p-metrics")
3185 (commit commit)))
3186 (file-name (git-file-name name version))
3187 (sha256
3188 (base32
3189 "05wy0cq4h6yg9bzgapcvm2criwriicbswx80ma82gyn4a9fdrk8m"))))
3190 (build-system go-build-system)
3191 (arguments
3192 '(#:import-path "github.com/libp2p/go-libp2p-metrics"))
3193 (native-inputs
3194 `(("go-github-com-libp2p-go-flow-metrics" ,go-github-com-libp2p-go-flow-metrics)
3195 ("go-github-com-libp2p-go-libp2p-peer" ,go-github-com-libp2p-go-libp2p-peer)
3196 ("go-github-com-libp2p-go-libp2p-protocol" ,go-github-com-libp2p-go-libp2p-protocol)
3197 ("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
3198 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
3199 ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
3200 ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
3201 ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
3202 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
3203 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
3204 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
3205 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
3206 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
3207 (home-page "https://github.com/libp2p/go-libp2p-metrics")
3208 (synopsis "Connection wrapper for go-libp2p that provides bandwidth metrics")
3209 (description "A connection wrapper for @command{go-libp2p} that provides bandwidth
3210 statistics for wrapped connections.")
3211 (license license:expat))))
3212
3213 (define-public go-github-com-mitchellh-go-homedir
3214 (let ((commit "ae18d6b8b3205b561c79e8e5f69bff09736185f4")
3215 (revision "0"))
3216 (package
3217 (name "go-github-com-mitchellh-go-homedir")
3218 (version (git-version "1.0.0" revision commit))
3219 (source
3220 (origin
3221 (method git-fetch)
3222 (uri (git-reference
3223 (url "https://github.com/mitchellh/go-homedir")
3224 (commit commit)))
3225 (file-name (git-file-name name version))
3226 (sha256
3227 (base32
3228 "0f0z0aa4wivk4z1y503dmnw0k0g0g403dly8i4q263gfshs82sbq"))))
3229 (build-system go-build-system)
3230 (arguments
3231 (quote (#:import-path "github.com/mitchellh/go-homedir"
3232 ;; TODO: Tests fail because it tries to access home.
3233 #:tests? #f)))
3234 (home-page "https://github.com/mitchellh/go-homedir")
3235 (synopsis "Go library for detecting and expanding the user's home directory without cgo")
3236 (description "This is a Go library for detecting the user's home
3237 directory without the use of @command{cgo}, so the library can be used in
3238 cross-compilation environments.
3239
3240 Usage is simple, just call homedir.Dir() to get the home directory for a user,
3241 and homedir.Expand() to expand the @command{~} in a path to the home
3242 directory.
3243
3244 Why not just use @command{os/user}? The built-in @command{os/user} package
3245 requires cgo on Darwin systems. This means that any Go code that uses that
3246 package cannot cross compile. But 99% of the time the use for
3247 @command{os/user} is just to retrieve the home directory, which we can do for
3248 the current user without cgo. This library does that, enabling
3249 cross-compilation.")
3250 (license license:expat))))
3251
3252 (define-public go-github-com-mitchellh-mapstructure
3253 (package
3254 (name "go-github-com-mitchellh-mapstructure")
3255 (version "1.1.2") ;; NOTE: Updating to 1.3.1 breaks tests on viper-1.7.0
3256 (source
3257 (origin
3258 (method git-fetch)
3259 (uri (git-reference
3260 (url "https://github.com/mitchellh/mapstructure")
3261 (commit (string-append "v" version))))
3262 (file-name (git-file-name name version))
3263 (sha256
3264 (base32
3265 "03bpv28jz9zhn4947saqwi328ydj7f6g6pf1m2d4m5zdh5jlfkrr"))))
3266 (build-system go-build-system)
3267 (arguments
3268 `(#:import-path "github.com/mitchellh/mapstructure"))
3269 (home-page "https://github.com/mitchellh/mapstructure")
3270 (synopsis "Go library for decoding generic map values")
3271 (description "Go library for decoding generic map values")
3272 (license license:expat)))
3273
3274 (define-public go-github-com-mitchellh-reflectwalk
3275 (package
3276 (name "go-github-com-mitchellh-reflectwalk")
3277 (version "1.0.1")
3278 (source (origin
3279 (method git-fetch)
3280 (uri (git-reference
3281 (url "https://github.com/mitchellh/reflectwalk")
3282 (commit (string-append "v" version))))
3283 (file-name (git-file-name name version))
3284 (sha256
3285 (base32
3286 "0pa6a3nhzwv5s5yqcmsmsfhdp5ggxsg2wa86f3akawxrhrkjarnx"))))
3287 (build-system go-build-system)
3288 (arguments
3289 `(#:import-path "github.com/mitchellh/reflectwalk"))
3290 (home-page "https://github.com/mitchellh/reflectwalk/")
3291 (synopsis "Walk a value in Go using reflection")
3292 (description "reflectwalk is a Go library for \"walking\" a value in Go
3293 using reflection, in the same way a directory tree can be \"walked\" on the
3294 file system. Walking a complex structure can allow you to do manipulations on
3295 unknown structures such as those decoded from JSON.")
3296 (license license:expat)))
3297
3298 (define-public go-github-com-mitchellh-copystructure
3299 (package
3300 (name "go-github-com-mitchellh-copystructure")
3301 (version "1.0.0")
3302 (source
3303 (origin
3304 (method git-fetch)
3305 (uri (git-reference
3306 (url "https://github.com/mitchellh/copystructure")
3307 (commit (string-append "v" version))))
3308 (file-name (git-file-name name version))
3309 (sha256
3310 (base32
3311 "05njg92w1088v4yl0js0zdrpfq6k37i9j14mxkr3p90p5yd9rrrr"))))
3312 (build-system go-build-system)
3313 (arguments
3314 `(#:import-path "github.com/mitchellh/copystructure"))
3315 (native-inputs
3316 `(("go-github-com-mitchellh-reflectwalk" ,go-github-com-mitchellh-reflectwalk)))
3317 (home-page "https://github.com/mitchellh/copystructure")
3318 (synopsis "Go library for decoding deep copying values")
3319 (description "@code{copystructure} is a Go library for deep copying values
3320 in Go.
3321
3322 This allows you to copy Go values that may contain reference values such as
3323 maps, slices, or pointers, and copy their data as well instead of just their
3324 references.")
3325 (license license:expat)))
3326
3327 (define-public go-github-com-multiformats-go-multiaddr
3328 (let ((commit "fe1c46f8be5af4aff4db286e08839295bd922efb")
3329 (revision "0"))
3330 (package
3331 (name "go-github-com-multiformats-go-multiaddr")
3332 (version (git-version "1.3.0" revision commit))
3333 (source
3334 (origin
3335 (method git-fetch)
3336 (uri (git-reference
3337 (url "https://github.com/multiformats/go-multiaddr")
3338 (commit commit)))
3339 (file-name (git-file-name name version))
3340 (sha256
3341 (base32
3342 "0p5f8h098a4yjjmzsgqs7vhx1iqifb8izwg3559cr4h7clkpzznh"))))
3343 (build-system go-build-system)
3344 (arguments
3345 '(#:import-path
3346 "github.com/multiformats/go-multiaddr"))
3347 (native-inputs
3348 `(("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
3349 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
3350 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
3351 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
3352 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
3353 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
3354 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
3355 (home-page "https://github.com/multiformats/go-multiaddr")
3356 (synopsis "Composable and future-proof network addresses")
3357 (description "Multiaddr is a standard way to represent addresses that
3358 does the following:
3359
3360 @itemize
3361 @item Support any standard network protocols.
3362 @item Self-describe (include protocols).
3363 @item Have a binary packed format.
3364 @item Have a nice string representation.
3365 @item Encapsulate well.
3366 @end itemize\n")
3367 (license license:expat))))
3368
3369 (define-public go-github-com-multiformats-go-multiaddr-net
3370 (let ((commit "1cb9a0e8a6de3c8a10f6cee60d01d793603c4f7e")
3371 (revision "0"))
3372 (package
3373 (name "go-github-com-multiformats-go-multiaddr-net")
3374 (version (git-version "1.6.3" revision commit))
3375 (source
3376 (origin
3377 (method git-fetch)
3378 (uri (git-reference
3379 (url "https://github.com/multiformats/go-multiaddr-net")
3380 (commit commit)))
3381 (file-name (git-file-name name version))
3382 (sha256
3383 (base32
3384 "1ypgi47xdz3bh8lh7f8cmk7w3ql9g4izx5l3kzdg9gda1xn5zxq3"))))
3385 (build-system go-build-system)
3386 (arguments
3387 (quote (#:import-path "github.com/multiformats/go-multiaddr-net"
3388 ;; TODO: Tests fail because they try to access the network.
3389 #:tests? #f)))
3390 (native-inputs
3391 `(("go-github-com-multiformats-go-multiaddr" ,go-github-com-multiformats-go-multiaddr)
3392 ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
3393 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
3394 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
3395 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
3396 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
3397 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
3398 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
3399 (home-page "https://github.com/multiformats/go-multiaddr-net")
3400 (synopsis "Multiaddress net tools")
3401 (description "This package provides Multiaddr specific versions of
3402 common functions in stdlib's @command{net} package. This means wrappers of
3403 standard net symbols like @command{net.Dial} and @command{net.Listen}, as well
3404 as conversion to and from @command{net.Addr}.")
3405 (license license:expat))))
3406
3407 (define-public go-github-com-whyrusleeping-tar-utils
3408 (let ((commit "8c6c8ba81d5c71fd69c0f48dbde4b2fb422b6dfc")
3409 (revision "0"))
3410 (package
3411 (name "go-github-com-whyrusleeping-tar-utils")
3412 (version (git-version "0.0.0" revision commit))
3413 (source
3414 (origin
3415 (method git-fetch)
3416 (uri (git-reference
3417 (url "https://github.com/whyrusleeping/tar-utils")
3418 (commit commit)))
3419 (file-name (git-file-name name version))
3420 (sha256
3421 (base32
3422 "14jjdw3yics0k467xsyk388684wdpi0bbx8nqj0y4pqxa0s0in6s"))))
3423 (build-system go-build-system)
3424 (arguments
3425 '(#:import-path
3426 "github.com/whyrusleeping/tar-utils"))
3427 (home-page "https://github.com/whyrusleeping/tar-utils")
3428 (synopsis "Tar utilities extracted from go-ipfs codebase")
3429 (description "Tar utilities extracted from @command{go-ipfs} codebase.")
3430 (license license:expat))))
3431
3432 (define-public go-github-com-cheekybits-is
3433 (let ((commit "68e9c0620927fb5427fda3708222d0edee89eae9")
3434 (revision "0"))
3435 (package
3436 (name "go-github-com-cheekybits-is")
3437 (version (git-version "0.0.0" revision commit))
3438 (source
3439 (origin
3440 (method git-fetch)
3441 (uri (git-reference
3442 (url "https://github.com/cheekybits/is")
3443 (commit commit)))
3444 (file-name (git-file-name name version))
3445 (sha256
3446 (base32
3447 "1mkbyzhwq3rby832ikq00nxv3jnckxsm3949wkxd8ya9js2jmg4d"))))
3448 (build-system go-build-system)
3449 (arguments
3450 '(#:import-path "github.com/cheekybits/is"))
3451 (home-page "https://github.com/cheekybits/is")
3452 (synopsis "Mini testing helper for Go")
3453 (description "A mini testing helper for Go.
3454
3455 @itemize
3456 @item It has a simple interface (@command{is.OK} and @command{is.Equal}).
3457 @item It plugs into existing Go toolchain (uses @command{testing.T}).
3458 @item It's obvious for newcomers.
3459 @item It also gives you @command{is.Panic} and @command{is.PanicWith} helpers
3460 - because testing panics is ugly.
3461 @end itemize\n")
3462 (license license:expat))))
3463
3464 (define-public go-github-com-sabhiram-go-gitignore
3465 (let ((commit "d3107576ba9425fc1c85f4b3569c4631b805a02e")
3466 (revision "0"))
3467 (package
3468 (name "go-github-com-sabhiram-go-gitignore")
3469 (version (git-version "1.0.2" revision commit))
3470 (source
3471 (origin
3472 (method git-fetch)
3473 (uri (git-reference
3474 (url "https://github.com/sabhiram/go-gitignore")
3475 (commit commit)))
3476 (file-name (git-file-name name version))
3477 (sha256
3478 (base32
3479 "1rdwyxgcsiwgmlqnc3k6h300mzlvjc3j21np4yh1h476wc8dvl0l"))))
3480 (build-system go-build-system)
3481 (arguments
3482 '(#:import-path
3483 "github.com/sabhiram/go-gitignore"))
3484 (native-inputs
3485 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
3486 (home-page "https://github.com/sabhiram/go-gitignore")
3487 (synopsis "Gitignore parser for Go")
3488 (description "A @command{.gitignore} parser for Go.")
3489 (license license:expat))))
3490
3491 (define-public go-github-com-urfave-cli
3492 (package
3493 (name "go-github-com-urfave-cli")
3494 (version "1.22.2")
3495 (source
3496 (origin
3497 (method git-fetch)
3498 (uri (git-reference
3499 (url "https://github.com/urfave/cli")
3500 (commit (string-append "v" version))))
3501 (file-name (git-file-name name version))
3502 (sha256
3503 (base32
3504 "10mcnvi5qmn00vpyk6si8gjka7p654wr9hac4zc9w5h3ickhvbdc"))))
3505 (build-system go-build-system)
3506 (arguments
3507 '(#:import-path "github.com/urfave/cli"))
3508 (propagated-inputs
3509 `(("go-github-com-go-md2man" ,go-github-com-go-md2man)))
3510 (home-page "https://github.com/urfave/cli")
3511 (synopsis "Simple, fast, and fun package for building command line apps in Go")
3512 (description "@command{cli} is a simple, fast, and fun package for
3513 building command line apps in Go. The goal is to enable developers to write
3514 fast and distributable command line applications in an expressive way.")
3515 (license license:expat)))
3516
3517 (define-public go-github-com-go-md2man
3518 (package
3519 (name "go-github-com-go-md2man")
3520 (version "2.0.0")
3521 (source
3522 (origin
3523 (method git-fetch)
3524 (uri (git-reference
3525 (url "https://github.com/cpuguy83/go-md2man")
3526 (commit (string-append "v" version))))
3527 (file-name (git-file-name name version))
3528 (sha256
3529 (base32
3530 "0r1f7v475dxxgzqci1mxfliwadcrk86ippflx9n411325l4g3ghv"))
3531 (modules '((guix build utils)))
3532 (snippet '(begin
3533 (delete-file-recursively "vendor")
3534 #t))))
3535 (build-system go-build-system)
3536 (arguments
3537 '(#:import-path "github.com/cpuguy83/go-md2man"))
3538 (propagated-inputs
3539 `(("go-github-com-russross-blackfriday" ,go-github-com-russross-blackfriday)))
3540 (home-page "https://github.com/cpuguy83/go-md2man")
3541 (synopsis "Convert markdown into roff")
3542 (description "Go-md2man is a Go program that converts markdown to roff for
3543 the purpose of building man pages.")
3544 (license license:expat)))
3545
3546 (define-public go-github-com-russross-blackfriday
3547 (package
3548 (name "go-github-com-russross-blackfriday")
3549 (version "2.0.1")
3550 (source
3551 (origin
3552 (method git-fetch)
3553 (uri (git-reference
3554 (url "https://github.com/russross/blackfriday")
3555 (commit (string-append "v" version))))
3556 (file-name (git-file-name name version))
3557 (sha256
3558 (base32
3559 "0nlz7isdd4rgnwzs68499hlwicxz34j2k2a0b8jy0y7ycd2bcr5j"))))
3560 (build-system go-build-system)
3561 (arguments
3562 '(#:import-path "github.com/russross/blackfriday"))
3563 (propagated-inputs
3564 `(("go-github-com-shurcool-sanitized-anchor-name"
3565 ,go-github-com-shurcool-sanitized-anchor-name)))
3566 (native-inputs
3567 `(("go-github-com-pmezard-go-difflib" ,go-github-com-pmezard-go-difflib)))
3568 (home-page "https://github.com/russross/blackfriday")
3569 (synopsis "Markdown processor in Go")
3570 (description "Blackfriday is a Markdown processor in Go.")
3571 (license license:bsd-2)))
3572
3573 (define-public go-github-com-shurcool-sanitized-anchor-name
3574 (package
3575 (name "go-github-com-shurcool-sanitized-anchor-name")
3576 (version "1.0.0")
3577 (source
3578 (origin
3579 (method git-fetch)
3580 (uri (git-reference
3581 (url "https://github.com/shurcooL/sanitized_anchor_name")
3582 (commit (string-append "v" version))))
3583 (file-name (git-file-name name version))
3584 (sha256
3585 (base32
3586 "1gv9p2nr46z80dnfjsklc6zxbgk96349sdsxjz05f3z6wb6m5l8f"))))
3587 (build-system go-build-system)
3588 (arguments
3589 '(#:import-path "github.com/shurcooL/sanitized_anchor_name"))
3590 (home-page "https://github.com/shurcooL/sanitized_anchor_name")
3591 (synopsis "Create sanitized anchor names")
3592 (description "This package provides a Go program for creating sanitized
3593 anchor names.")
3594 (license license:expat)))
3595
3596 (define-public go-github-com-pmezard-go-difflib
3597 (package
3598 (name "go-github-com-pmezard-go-difflib")
3599 (version "1.0.0")
3600 (source (origin
3601 (method git-fetch)
3602 (uri (git-reference
3603 (url "https://github.com/pmezard/go-difflib")
3604 (commit (string-append "v" version))))
3605 (file-name (git-file-name name version))
3606 (sha256
3607 (base32
3608 "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"))))
3609 (build-system go-build-system)
3610 (arguments
3611 '(#:import-path "github.com/pmezard/go-difflib/difflib"
3612 #:unpack-path "github.com/pmezard/go-difflib/"))
3613 (home-page "https://github.com/pmezard/go-difflib")
3614 (synopsis "Go diff implementation")
3615 (description "This package provides unified and context-aware diffs in Go.")
3616 (license license:bsd-3)))
3617
3618 (define-public go-github-com-whyrusleeping-json-filter
3619 (let ((commit "ff25329a9528f01c5175414f16cc0a6a162a5b8b")
3620 (revision "0"))
3621 (package
3622 (name "go-github-com-whyrusleeping-json-filter")
3623 (version (git-version "0.0.0" revision commit))
3624 (source
3625 (origin
3626 (method git-fetch)
3627 (uri (git-reference
3628 (url "https://github.com/whyrusleeping/json-filter")
3629 (commit commit)))
3630 (file-name (git-file-name name version))
3631 (sha256
3632 (base32
3633 "0cai0drvx4c8j686l908vpcsz3mw3vxi3ziz94b0f3c5ylpj07j7"))))
3634 (build-system go-build-system)
3635 (arguments
3636 '(#:import-path
3637 "github.com/whyrusleeping/json-filter"))
3638 (home-page "https://github.com/whyrusleeping/json-filter")
3639 (synopsis "Library to query JSON objects marshalled into map[string]interface")
3640 (description "A library to query JSON objects marshalled into
3641 @command{map[string]interface{}}.")
3642 (license license:expat))))
3643
3644 (define-public go-github-com-whyrusleeping-progmeter
3645 (let ((commit "f3e57218a75b913eff88d49a52c1debf9684ea04")
3646 (revision "0"))
3647 (package
3648 (name "go-github-com-whyrusleeping-progmeter")
3649 (version (git-version "0.0.0" revision commit))
3650 (source
3651 (origin
3652 (method git-fetch)
3653 (uri (git-reference
3654 (url "https://github.com/whyrusleeping/progmeter")
3655 (commit commit)))
3656 (file-name (git-file-name name version))
3657 (sha256
3658 (base32
3659 "0xs8rz6yhpvj9512c5v3b8dwr2kivywnyyfxzdfbr6fy1xc8zskb"))))
3660 (build-system go-build-system)
3661 (arguments
3662 '(#:import-path
3663 "github.com/whyrusleeping/progmeter"))
3664 (home-page "https://github.com/whyrusleeping/progmeter")
3665 (synopsis "Progress meter for Go")
3666 (description "Progress meter for Go.")
3667 (license license:expat))))
3668
3669 (define-public go-github-com-whyrusleeping-stump
3670 (let ((commit "206f8f13aae1697a6fc1f4a55799faf955971fc5")
3671 (revision "0"))
3672 (package
3673 (name "go-github-com-whyrusleeping-stump")
3674 (version (git-version "0.0.0" revision commit))
3675 (source
3676 (origin
3677 (method git-fetch)
3678 (uri (git-reference
3679 (url "https://github.com/whyrusleeping/stump")
3680 (commit commit)))
3681 (file-name (git-file-name name version))
3682 (sha256
3683 (base32
3684 "1s40qdppjnk8gijk7x6kbviiqz62nz3h6gic2q9cwcmq8r5isw7n"))))
3685 (build-system go-build-system)
3686 (arguments
3687 '(#:import-path "github.com/whyrusleeping/stump"))
3688 (home-page "https://github.com/whyrusleeping/stump")
3689 (synopsis "Very basic logging package for Go")
3690 (description "A simple log library, for when you don't really care to
3691 have super fancy logs.")
3692 (license license:expat))))
3693
3694 (define-public go-github-com-kr-fs
3695 (let ((commit "1455def202f6e05b95cc7bfc7e8ae67ae5141eba")
3696 (revision "0"))
3697 (package
3698 (name "go-github-com-kr-fs")
3699 (version (git-version "0.1.0" revision commit))
3700 (source
3701 (origin
3702 (method git-fetch)
3703 (uri (git-reference
3704 (url "https://github.com/kr/fs")
3705 (commit commit)))
3706 (file-name (git-file-name name version))
3707 (sha256
3708 (base32
3709 "11zg176x9hr9q7fsk95r6q0wf214gg4czy02slax4x56n79g6a7q"))))
3710 (build-system go-build-system)
3711 (arguments
3712 '(#:import-path "github.com/kr/fs"))
3713 (home-page "https://github.com/kr/fs")
3714 (synopsis "File-system-related functions for Go")
3715 (description
3716 "The fs package provides file-system-related Go functions.")
3717 (license license:bsd-3))))
3718
3719 (define-public go-github-com-direnv-go-dotenv
3720 (let ((commit "4cce6d1a66f7bc8dc730eab85cab6af1b801abed")
3721 (revision "0"))
3722 (package
3723 (name "go-github-com-direnv-go-dotenv")
3724 (version (git-version "0.0.0" revision commit))
3725 (source
3726 (origin
3727 (method git-fetch)
3728 (uri (git-reference
3729 (url "https://github.com/direnv/go-dotenv")
3730 (commit commit)))
3731 (file-name (git-file-name name version))
3732 (sha256
3733 (base32
3734 "00wn4fc2lma0csf6ryvlc6k9jbpbifm4n7i3kkd2xrfw5qlm29b6"))))
3735 (build-system go-build-system)
3736 (arguments
3737 '(#:import-path "github.com/direnv/go-dotenv"))
3738 (home-page "https://github.com/direnv/go-dotenv")
3739 (synopsis "Go dotenv parsing library")
3740 (description "This package provides a library for parsing the dotenv
3741 format in Go.")
3742 (license license:expat))))
3743
3744 (define-public go-github-com-kr-pretty
3745 (package
3746 (name "go-github-com-kr-pretty")
3747 (version "0.2.1")
3748 (source (origin
3749 (method git-fetch)
3750 (uri (git-reference
3751 (url "https://github.com/kr/pretty")
3752 (commit (string-append "v" version))))
3753 (file-name (git-file-name name version))
3754 (sha256
3755 (base32
3756 "0vzfz06y9q8gs2nxx0kys0591vzp78k0fvpb8digi5n15h3b25hy"))))
3757 (build-system go-build-system)
3758 (propagated-inputs
3759 `(("go-github-com-kr-text" ,go-github-com-kr-text)))
3760 (arguments
3761 '(#:import-path "github.com/kr/pretty"))
3762 (synopsis "Pretty printer for Go values")
3763 (description "This package provides a pretty printer for Go values.")
3764 (home-page "https://github.com/kr/pretty")
3765 (license license:expat)))
3766
3767 (define-public go-github-com-kylelemons-godebug
3768 (package
3769 (name "go-github-com-kylelemons-godebug")
3770 (version "1.1.0")
3771 (source
3772 (origin
3773 (method git-fetch)
3774 (uri (git-reference
3775 (url "https://github.com/kylelemons/godebug")
3776 (commit (string-append "v" version))))
3777 (file-name (git-file-name name version))
3778 (sha256
3779 (base32
3780 "0dkk3friykg8p6wgqryx6745ahhb9z1j740k7px9dac6v5xjp78c"))))
3781 (build-system go-build-system)
3782 (arguments
3783 '(#:import-path "github.com/kylelemons/godebug/diff"
3784 #:unpack-path "github.com/kylelemons/godebug"))
3785 (home-page "https://github.com/kylelemons/godebug")
3786 (synopsis "Pretty printer for Go values.")
3787 (description
3788 "This package will pretty print a compact representation of a Go data
3789 structure. It can also produce a much more verbose, one-item-per-line
3790 representation suitable for computing diffs.")
3791 (license license:asl2.0)))
3792
3793 (define-public go-github-com-kr-text
3794 (package
3795 (name "go-github-com-kr-text")
3796 (version "0.1.0")
3797 (source (origin
3798 (method git-fetch)
3799 (uri (git-reference
3800 (url "https://github.com/kr/text")
3801 (commit (string-append "v" version))))
3802 (file-name (git-file-name name version))
3803 (sha256
3804 (base32
3805 "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"))))
3806 (build-system go-build-system)
3807 (arguments
3808 '(#:import-path "github.com/kr/text"))
3809 (synopsis "Text formatting in Go")
3810 (description "This package provides a text formatting functions in Go.")
3811 (home-page "https://github.com/kr/text")
3812 (license license:expat)))
3813
3814 (define-public go-golang-org-sql-mock
3815 (let ((commit "e98392b8111b45f8126e00af035a0dd95dc12e8b")
3816 (version "1.3.3")
3817 (revision "1"))
3818 (package
3819 (name "go-golang-org-sql-mock")
3820 (version (git-version version revision commit))
3821 (source (origin
3822 (method git-fetch)
3823 (uri (git-reference
3824 (url "https://github.com/DATA-DOG/go-sqlmock")
3825 (commit commit)))
3826 (file-name (git-file-name name version))
3827 (sha256
3828 (base32
3829 "033vv29g2wf6fd757ajfmha30bqin3b07377037zkl051mk6mghs"))))
3830 (build-system go-build-system)
3831 (arguments
3832 '(#:import-path "github.com/DATA-DOG/go-sqlmock"))
3833 (synopsis "Mock library implementing @code{sql/driver}")
3834 (description "This library simulates SQL-driver behavior in tests
3835 without requiring a real database connection.")
3836 (home-page "https://github.com/DATA-DOG/go-sqlmock")
3837 (license license:expat))))
3838
3839 (define-public go-github-com-go-sql-driver-mysql
3840 (package
3841 (name "go-github-com-go-sql-driver-mysql")
3842 (version "1.5.0")
3843 (source
3844 (origin
3845 (method git-fetch)
3846 (uri (git-reference
3847 (url "https://github.com/go-sql-driver/mysql")
3848 (commit (string-append "v" version))))
3849 (file-name (git-file-name name version))
3850 (sha256
3851 (base32
3852 "11x0m9yf3kdnf6981182r824psgxwfaqhn3x3in4yiidp0w0hk3v"))))
3853 (build-system go-build-system)
3854 (arguments
3855 '(#:tests? #f ;; tests require a network connection
3856 #:import-path "github.com/go-sql-driver/mysql"))
3857 (home-page "https://github.com/go-sql-driver/mysql")
3858 (synopsis "MySQL driver for golang")
3859 (description
3860 "This is a pure Go implementaton of the MySQL API, compatible with
3861 golang's database/sql package.")
3862 (license license:mpl2.0)))
3863
3864 (define-public go-golang-org-colorful
3865 (package
3866 (name "go-golang-org-colorful")
3867 (version "1.0.2")
3868 (source (origin
3869 (method git-fetch)
3870 (uri (git-reference
3871 (url "https://github.com/lucasb-eyer/go-colorful")
3872 (commit (string-append "v" version))))
3873 (file-name (git-file-name name version))
3874 (sha256
3875 (base32
3876 "0fig06880bvk1l92j4127v4x9sar4ds7ga8959gxxghb2w70b7l2"))))
3877 (build-system go-build-system)
3878 (arguments
3879 '(#:import-path "github.com/lucasb-eyer/go-colorful"))
3880 (native-inputs
3881 `(("go-golang-org-sql-mock" ,go-golang-org-sql-mock)))
3882 (synopsis "Convert between colorspaces and generate colors")
3883 (description "This package implements Go's @code{color.Color} interface
3884 and provides a means of converting colors stored as RGB to various
3885 colorspaces.")
3886 (home-page "https://github.com/lucasb-eyer/go-colorful")
3887 (license license:expat)))
3888
3889 (define-public go-github-com-gdamore-encoding
3890 (package
3891 (name "go-github-com-gdamore-encoding")
3892 (version "1.0.0")
3893 (source
3894 (origin
3895 (method git-fetch)
3896 (uri (git-reference
3897 (url "https://github.com/gdamore/encoding")
3898 (commit (string-append "v" version))))
3899 (file-name (git-file-name name version))
3900 (sha256
3901 (base32
3902 "1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9"))))
3903 (build-system go-build-system)
3904 (arguments
3905 '(#:import-path "github.com/gdamore/encoding"))
3906 (inputs
3907 `(("go-golang-org-x-text" ,go-golang-org-x-text)))
3908 (home-page "https://github.com/gdamore/encoding")
3909 (synopsis "Provide encodings missing from Go")
3910 (description "This package provides useful encodings not included in the
3911 standard @code{Text} package, including some for dealing with I/O streams from
3912 non-UTF-friendly sources.")
3913 (license license:expat)))
3914
3915 (define-public go-github-com-gdamore-tcell
3916 (let ((commit "aaadc574a6ed8dc3abe56036ca130dcee1ee6b6e")
3917 (version "1.1.2")
3918 (revision "1"))
3919 (package
3920 (name "go-github-com-gdamore-tcell")
3921 (version (git-version version revision commit))
3922 (source
3923 (origin
3924 (method git-fetch)
3925 (uri (git-reference
3926 (url "https://github.com/gdamore/tcell")
3927 (commit commit)))
3928 (file-name (git-file-name name version))
3929 (sha256
3930 (base32
3931 "0il2nnxp2cqiy73m49215dnf9in3vd25ji8qxbmq87c5qy7i1q9d"))))
3932 (build-system go-build-system)
3933 (arguments
3934 `(#:import-path "github.com/gdamore/tcell"
3935 #:phases
3936 (modify-phases %standard-phases
3937 (add-before 'reset-gzip-timestamps 'make-files-writable
3938 (lambda* (#:key outputs #:allow-other-keys)
3939 ;; Make sure .gz files are writable so that the
3940 ;; 'reset-gzip-timestamps' phase can do its work.
3941 (let ((out (assoc-ref outputs "out")))
3942 (for-each make-file-writable
3943 (find-files out "\\.gz$"))
3944 #t))))))
3945 (inputs
3946 `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
3947 ("go-golang-org-colorful" ,go-golang-org-colorful)
3948 ("go-golang-org-x-text" ,go-golang-org-x-text)
3949 ("go-github-com-gdamore-encoding" ,go-github-com-gdamore-encoding)))
3950 (home-page "https://github.com/gdamore/tcell")
3951 (synopsis "Provide a cell-based view for text terminals")
3952 (description "This package includes a full parser and expander for
3953 terminfo capability strings to avoid hard-coding escape strings for
3954 formatting. It also favors portability, and includes support for all POSIX
3955 systems.")
3956 (license license:expat))))
3957
3958 (define-public go-github-com-mattn-go-shellwords
3959 (let ((commit "2444a32a19f450fabaa0bb3e96a703f15d9a97d2")
3960 (version "1.0.5")
3961 (revision "1"))
3962 (package
3963 (name "go-github-com-mattn-go-shellwords")
3964 (version (git-version version revision commit))
3965 (source
3966 (origin
3967 (method git-fetch)
3968 (uri (git-reference
3969 (url "https://github.com/mattn/go-shellwords")
3970 (commit commit)))
3971 (file-name (git-file-name name version))
3972 (sha256
3973 (base32
3974 "08zcgr1az1n8zaxzwdd205j86hczgyc52nxfnw5avpw7rrkf7v0d"))))
3975 (build-system go-build-system)
3976 (arguments
3977 `(#:import-path "github.com/mattn/go-shellwords"
3978 ;; TODO: can't make homeless-shelter:
3979 ;; go: disabling cache (/homeless-shelter/.cache/go-build) due to
3980 ;; initialization failure: mkdir /homeless-shelter: permission denied
3981
3982 ;; This doesn't seem to work:
3983
3984 ;; #:phases
3985 ;; (modify-phases %standard-phases
3986 ;; (replace 'check
3987 ;; (lambda* (#:key import-path #:allow-other-keys)
3988 ;; (setenv "HOME" "/tmp")
3989 ;; (invoke "go" "test" import-path))))
3990
3991 ;; TODO: There are also a couple of tests that have stymied Debian in
3992 ;; the past. They seem to work when run locally.
3993
3994 #:tests? #f
3995 ))
3996 (home-page "https://github.com/mattn/go-shellwords")
3997 (synopsis "Parse lines into shell words")
3998 (description "This package parses text into shell arguments. Based on
3999 the @code{cpan} module @code{Parse::CommandLine}.")
4000 (license license:expat))))
4001
4002 (define-public go-github-com-burntsushi-locker
4003 (let ((commit "a6e239ea1c69bff1cfdb20c4b73dadf52f784b6a")
4004 (revision "0"))
4005 (package
4006 (name "go-github-com-burntsushi-locker")
4007 (version (git-version "0.0.0" revision commit))
4008 (source
4009 (origin
4010 (method git-fetch)
4011 (uri (git-reference
4012 (url "https://github.com/BurntSushi/locker")
4013 (commit commit)))
4014 (file-name (git-file-name name version))
4015 (sha256
4016 (base32
4017 "1xak4aync4klswq5217qvw191asgla51jr42y94vp109lirm5dzg"))))
4018 (build-system go-build-system)
4019 (arguments
4020 '(#:import-path "github.com/BurntSushi/locker"))
4021 (home-page "https://github.com/BurntSushi/locker")
4022 (synopsis "Manage named ReadWrite mutexes in Go")
4023 (description "Golang package for conveniently using named read/write
4024 locks. These appear to be especially useful for synchronizing access to
4025 session based information in web applications.
4026
4027 The common use case is to use the package level functions, which use a package
4028 level set of locks (safe to use from multiple goroutines
4029 simultaneously). However, you may also create a new separate set of locks
4030 test.
4031
4032 All locks are implemented with read-write mutexes. To use them like a regular
4033 mutex, simply ignore the RLock/RUnlock functions.")
4034 (license license:unlicense))))
4035
4036 (define-public go-github-com-marten-seemann-qtls
4037 (package
4038 (name "go-github-com-marten-seemann-qtls")
4039 (version "0.4.1")
4040 (source (origin
4041 (method git-fetch)
4042 (uri (git-reference
4043 (url "https://github.com/marten-seemann/qtls")
4044 (commit (string-append "v" version))))
4045 (file-name (git-file-name name version))
4046 (sha256
4047 (base32
4048 "0dz60y98nm7l70hamq0v2vrs2dspyr5yqhnrds2dfh7hchxvq76j"))))
4049 (build-system go-build-system)
4050 (arguments
4051 '(#:import-path "github.com/marten-seemann/qtls"
4052 ;; The test suite requires networking.
4053 #:tests? #f))
4054 (propagated-inputs
4055 `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
4056 (synopsis "TLS 1.3 with QUIC in Go")
4057 (description "This package provides @code{qtls}, a QUIC-capable variant of
4058 the Go standard library's TLS 1.3 implementation.")
4059 (home-page "https://github.com/marten-seemann/qtls")
4060 (license license:bsd-3)))
4061
4062 (define-public go-github-com-marten-seemann-chacha20
4063 (package
4064 (name "go-github-com-marten-seemann-chacha20")
4065 (version "0.2.0")
4066 (source (origin
4067 (method git-fetch)
4068 (uri (git-reference
4069 (url "https://github.com/marten-seemann/chacha20")
4070 (commit (string-append "v" version))))
4071 (file-name (git-file-name name version))
4072 (sha256
4073 (base32
4074 "0x1j4cvbap45zk962qkjalc1h3axhzzdy9cdzhcjmprmm1ql4gjm"))))
4075 (build-system go-build-system)
4076 (arguments
4077 '(#:import-path "github.com/marten-seemann/chacha20"))
4078 (synopsis "ChaCha20 in Go")
4079 (description "This package is an external copy of the Go standard library's
4080 internal ChaCha20 package.")
4081 (home-page "https://github.com/marten-seemann/chacha20")
4082 (license license:bsd-3)))
4083
4084 (define-public go-github-com-cheekybits-genny
4085 (package
4086 (name "go-github-com-cheekybits-genny")
4087 (version "1.0.0")
4088 (source (origin
4089 (method git-fetch)
4090 (uri (git-reference
4091 (url "https://github.com/cheekybits/genny")
4092 (commit (string-append "v" version))))
4093 (file-name (git-file-name name version))
4094 (sha256
4095 (base32
4096 "1pcir5ic86713aqa51581rfb67rgc3m0c72ddjfcp3yakv9vyq87"))))
4097 (build-system go-build-system)
4098 (arguments
4099 '(#:import-path "github.com/cheekybits/genny"))
4100 (propagated-inputs
4101 `(("go-golang-org-x-tools" ,go-golang-org-x-tools)))
4102 (synopsis "Generics for Go")
4103 (description "This package provides @code{genny}, a Go language
4104 implementation of generics.")
4105 (home-page "https://github.com/cheekybits/genny/")
4106 (license license:expat)))
4107
4108 (define-public go-github-com-lucas-clemente-quic-go
4109 (package
4110 (name "go-github-com-lucas-clemente-quic-go")
4111 (version "0.14.4")
4112 (source (origin
4113 (method git-fetch)
4114 (uri (git-reference
4115 (url "https://github.com/lucas-clemente/quic-go")
4116 (commit (string-append "v" version))))
4117 (file-name (git-file-name name version))
4118 (sha256
4119 (base32
4120 "04l3gqbc3gh079n8vgnrsf8ypgv8sl63xjf28jqfrb45v2l73vyz"))))
4121 (build-system go-build-system)
4122 (arguments
4123 '(#:import-path "github.com/lucas-clemente/quic-go"
4124 ;; XXX More packages required...
4125 #:tests? #f))
4126 (propagated-inputs
4127 `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
4128 ("go-github-com-cheekybits-genny" ,go-github-com-cheekybits-genny)
4129 ("go-github-com-marten-seemann-chacha20" ,go-github-com-marten-seemann-chacha20)
4130 ("go-github-com-marten-seemann-qtls" ,go-github-com-marten-seemann-qtls)
4131 ("go-github-com-golang-protobuf-proto" ,go-github-com-golang-protobuf-proto)))
4132 (synopsis "QUIC in Go")
4133 (description "This package provides a Go language implementation of the QUIC
4134 network protocol.")
4135 (home-page "https://github.com/lucas-clemente/quic-go")
4136 (license license:expat)))
4137
4138 (define-public go-github-com-francoispqt-gojay
4139 (package
4140 (name "go-github-com-francoispqt-gojay")
4141 (version "1.2.13")
4142 (source (origin
4143 (method git-fetch)
4144 (uri (git-reference
4145 (url "https://github.com/francoispqt/gojay")
4146 (commit (string-append "v" version))))
4147 (file-name (git-file-name name version))
4148 (sha256
4149 (base32
4150 "1ix95qdyajfmxhf9y52vjrih63f181pjs4v5as8905s4d5vmkd06"))))
4151 (build-system go-build-system)
4152 (arguments
4153 '(#:import-path "github.com/francoispqt/gojay"))
4154 (propagated-inputs
4155 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
4156 (synopsis "JSON encoder/decoder with powerful stream API for Golang")
4157 (description "GoJay is a performant JSON encoder/decoder for Golang. It has
4158 a simple API and doesn't use reflection. It relies on small interfaces to
4159 decode/encode structures and slices.")
4160 (home-page "https://github.com/francoispqt/gojay")
4161 (license license:expat)))
4162
4163 (define-public go-github-com-pkg-errors
4164 (package
4165 (name "go-github-com-pkg-errors")
4166 (version "0.9.1")
4167 (source (origin
4168 (method git-fetch)
4169 (uri (git-reference
4170 (url "https://github.com/pkg/errors")
4171 (commit (string-append "v" version))))
4172 (file-name (git-file-name name version))
4173 (sha256
4174 (base32
4175 "1761pybhc2kqr6v5fm8faj08x9bql8427yqg6vnfv6nhrasx1mwq"))))
4176 (build-system go-build-system)
4177 (arguments
4178 `(#:import-path "github.com/pkg/errors"))
4179 (synopsis "Go error handling primitives")
4180 (description "This package provides @code{error}, which offers simple
4181 error handling primitives in Go.")
4182 (home-page "https://github.com/pkg/errors")
4183 (license license:bsd-2)))
4184
4185 (define-public go-github-com-maruel-panicparse
4186 (package
4187 (name "go-github-com-maruel-panicparse")
4188 (version "1.3.0")
4189 (source (origin
4190 (method git-fetch)
4191 (uri (git-reference
4192 (url "https://github.com/maruel/panicparse")
4193 (commit (string-append "v" version))))
4194 (file-name (git-file-name name version))
4195 (sha256
4196 (base32
4197 "13qkn7f64yln8jdmma37h6ra4c7anxkp3vfgvfyb6lb07dpr1ibq"))))
4198 (build-system go-build-system)
4199 (arguments
4200 '(#:import-path "github.com/maruel/panicparse"))
4201 (synopsis "Toolkit for parsing Go stack traces")
4202 (description "This package provides a toolkit for parsing Go language panic
4203 stack traces. It simplifies the traces to make salient information more visible
4204 and aid debugging.")
4205 (home-page "https://github.com/maruel/panicparse")
4206 (license license:asl2.0)))
4207
4208 (define-public go-github-com-robfig-cron
4209 (package
4210 (name "go-github-com-robfig-cron")
4211 (version "3.0.1")
4212 (source
4213 (origin
4214 (method git-fetch)
4215 (uri (git-reference
4216 (url "https://github.com/robfig/cron")
4217 (commit (string-append "v" version))))
4218 (file-name (git-file-name name version))
4219 (sha256
4220 (base32
4221 "1agzbw2dfk2d1mpmddr85s5vh6ygm8kqrvfg87i9d2wqnlsnliqm"))))
4222 (build-system go-build-system)
4223 (arguments
4224 `(#:import-path "github.com/robfig/cron"))
4225 (home-page "https://godoc.org/github.com/robfig/cron")
4226 (synopsis "Cron library for Go")
4227 (description "This package provides a cron library for Go. It implements
4228 a cron spec parser and job runner.")
4229 (license license:expat)))
4230
4231 (define-public go-github-com-shirou-gopsutil
4232 (let ((commit "47ef3260b6bf6ead847e7c8fc4101b33c365e399")
4233 (revision "0"))
4234 (package
4235 (name "go-github-com-shirou-gopsutil")
4236 (version (git-version "v2.19.7" revision commit))
4237 (source (origin
4238 (method git-fetch)
4239 (uri (git-reference
4240 (url "https://github.com/shirou/gopsutil")
4241 (commit commit))) ; XXX
4242 (file-name (git-file-name name version))
4243 (sha256
4244 (base32
4245 "0x1g4r32q4201nr2b754xnrrndmwsrhfr7zg37spya86qrmijnws"))))
4246 (build-system go-build-system)
4247 (arguments
4248 '(#:import-path "github.com/shirou/gopsutil"))
4249 (synopsis "Process and system monitoring in Go")
4250 (description "This package provides a library for retrieving information
4251 on running processes and system utilization (CPU, memory, disks, network,
4252 sensors).")
4253 (home-page "https://github.com/shirou/gopsutil")
4254 (license license:bsd-3))))
4255
4256 (define-public go-github-com-danwakefield-fnmatch
4257 (let ((commit "cbb64ac3d964b81592e64f957ad53df015803288")
4258 (revision "0"))
4259 (package
4260 (name "go-github-com-danwakefield-fnmatch")
4261 (version (git-version "0.0.0" revision commit))
4262 (source
4263 (origin
4264 (method git-fetch)
4265 (uri (git-reference
4266 (url "https://github.com/danwakefield/fnmatch")
4267 (commit commit)))
4268 (sha256
4269 (base32
4270 "0cbf511ppsa6hf59mdl7nbyn2b2n71y0bpkzbmfkdqjhanqh1lqz"))
4271 (file-name (git-file-name name version))))
4272 (build-system go-build-system)
4273 (arguments
4274 '(#:import-path "github.com/danwakefield/fnmatch"))
4275 (home-page "https://github.com/danwakefield/fnmatch")
4276 (synopsis "Updated clone of kballards golang fnmatch gist")
4277 (description "This package provides an updated clone of kballards golang
4278 fnmatch gist (https://gist.github.com/kballard/272720).")
4279 (license license:bsd-2))))
4280
4281 (define-public go-github-com-ddevault-go-libvterm
4282 (let ((commit "b7d861da381071e5d3701e428528d1bfe276e78f")
4283 (revision "0"))
4284 (package
4285 (name "go-github-com-ddevault-go-libvterm")
4286 (version (git-version "0.0.0" revision commit))
4287 (source
4288 (origin
4289 (method git-fetch)
4290 (uri (git-reference
4291 (url "https://github.com/ddevault/go-libvterm")
4292 (commit commit)))
4293 (sha256
4294 (base32
4295 "06vv4pgx0i6hjdjcar4ch18hp9g6q6687mbgkvs8ymmbacyhp7s6"))
4296 (file-name (git-file-name name version))))
4297 (build-system go-build-system)
4298 (arguments
4299 '(#:import-path "github.com/ddevault/go-libvterm"))
4300 (propagated-inputs
4301 `(("go-github-com-mattn-go-pointer" ,go-github-com-mattn-go-pointer)))
4302 (home-page "https://github.com/ddevault/go-libvterm")
4303 (synopsis "Go binding to libvterm")
4304 (description
4305 "This is a fork of another go-libvterm library for use with aerc.")
4306 (license license:expat))))
4307
4308 (define-public go-github-com-emersion-go-imap
4309 (package
4310 (name "go-github-com-emersion-go-imap")
4311 (version "1.0.0")
4312 (source
4313 (origin
4314 (method git-fetch)
4315 (uri (git-reference
4316 (url "https://github.com/emersion/go-imap")
4317 (commit (string-append "v" version))))
4318 (sha256
4319 (base32
4320 "1id8j2d0rn9sj8y62xhyygqpk5ygrcl9jlfx92sm1jsvxsm3kywq"))
4321 (file-name (git-file-name name version))))
4322 (build-system go-build-system)
4323 (arguments
4324 '(#:import-path "github.com/emersion/go-imap"))
4325 (native-inputs
4326 `(("go-golang-org-x-text" ,go-golang-org-x-text)))
4327 (home-page "https://github.com/emersion/go-imap")
4328 (synopsis "IMAP4rev1 library written in Go")
4329 (description "This package provides an IMAP4rev1 library written in Go. It
4330 can be used to build a client and/or a server.")
4331 (license license:expat)))
4332
4333 (define-public go-github-com-emersion-go-sasl
4334 (let ((commit "240c8404624e076f633766c16adbe96c7ac516b7")
4335 (revision "0"))
4336 (package
4337 (name "go-github-com-emersion-go-sasl")
4338 (version (git-version "0.0.0" revision commit))
4339 (source
4340 (origin
4341 (method git-fetch)
4342 (uri (git-reference
4343 (url "https://github.com/emersion/go-sasl")
4344 (commit commit)))
4345 (sha256
4346 (base32
4347 "1py18p3clp474xhx6ypyp0bgv6n1dfm24m95cyyqb0k3vibar6ih"))
4348 (file-name (git-file-name name version))))
4349 (build-system go-build-system)
4350 (arguments
4351 '(#:import-path "github.com/emersion/go-sasl"))
4352 (home-page "https://github.com/emersion/go-sasl")
4353 (synopsis "SASL library written in Go")
4354 (description "This package provides a SASL library written in Go.")
4355 (license license:expat))))
4356
4357 (define-public go-github-com-emersion-go-imap-idle
4358 (let ((commit "2704abd7050ed7f2143753554ee23affdf847bd9")
4359 (revision "0"))
4360 (package
4361 (name "go-github-com-emersion-go-imap-idle")
4362 (version (git-version "0.0.0" revision commit))
4363 (source
4364 (origin
4365 (method git-fetch)
4366 (uri (git-reference
4367 (url "https://github.com/emersion/go-imap-idle")
4368 (commit commit)))
4369 (sha256
4370 (base32
4371 "0blwcadmxgqsdwgr9m4jqfbpfa2viw5ah19xbybpa1z1z4aj5cbc"))
4372 (file-name (git-file-name name version))))
4373 (build-system go-build-system)
4374 (arguments
4375 '(#:import-path "github.com/emersion/go-imap-idle"))
4376 (native-inputs
4377 `(("go-github-com-emersion-go-imap" ,go-github-com-emersion-go-imap)
4378 ("go-github-com-emersion-go-sasl" ,go-github-com-emersion-go-sasl)
4379 ("go-golang-org-x-text" ,go-golang-org-x-text)))
4380 (home-page "https://github.com/emersion/go-imap-idle")
4381 (synopsis "IDLE extension for go-imap")
4382 (description "This package provides an IDLE extension for go-imap.")
4383 (license license:expat))))
4384
4385 (define-public go-github-com-fatih-color
4386 (package
4387 (name "go-github-com-fatih-color")
4388 (version "1.8.0")
4389 (source (origin
4390 (method git-fetch)
4391 (uri (git-reference
4392 (url "https://github.com/fatih/color")
4393 (commit (string-append "v" version))))
4394 (file-name (git-file-name name version))
4395 (sha256
4396 (base32
4397 "1zc0zlilf03h121f9jqq3ar0hfm7706547zysxp2qxbm920pz7h0"))))
4398 (build-system go-build-system)
4399 (arguments
4400 '(#:import-path "github.com/fatih/color"))
4401 (synopsis "Print colored text in Go")
4402 (description "This package provides an ANSI color package to output
4403 colorized or SGR defined output to the standard output.")
4404 (home-page "https://godoc.org/github.com/fatih/color")
4405 (license license:expat)))
4406
4407 (define-public go-github-com-google-go-cmp-cmp
4408 (package
4409 (name "go-github-com-google-go-cmp-cmp")
4410 (version "0.5.2")
4411 (source (origin
4412 (method git-fetch)
4413 (uri (git-reference
4414 (url "https://github.com/google/go-cmp")
4415 (commit (string-append "v" version))))
4416 (file-name (git-file-name name version))
4417 (sha256
4418 (base32
4419 "0qchy411jm9q2l9mf7x3ry2ycaqp9xdhf2nx14qrpzcxfigv2705"))))
4420 (build-system go-build-system)
4421 (arguments
4422 '(#:import-path "github.com/google/go-cmp/cmp"
4423 #:unpack-path "github.com/google/go-cmp"))
4424 (propagated-inputs
4425 `(("go-golang-org-x-xerrors" ,go-golang-org-x-xerrors)))
4426 (synopsis "Determine equality of values in Go")
4427 (description "This package provides a more powerful and safer
4428 alternative to @code{reflect.DeepEqual} for comparing whether two values
4429 are semantically equal in Go (for writing tests).")
4430 (home-page "https://godoc.org/github.com/google/go-cmp/cmp")
4431 (license license:asl2.0)))
4432
4433 (define-public go-github-com-google-uuid
4434 (package
4435 (name "go-github-com-google-uuid")
4436 (version "1.1.1")
4437 (source (origin
4438 (method git-fetch)
4439 (uri (git-reference
4440 (url "https://github.com/google/uuid")
4441 (commit (string-append "v" version))))
4442 (file-name (git-file-name name version))
4443 (sha256
4444 (base32
4445 "0hfxcf9frkb57k6q0rdkrmnfs78ms21r1qfk9fhlqga2yh5xg8zb"))))
4446 (build-system go-build-system)
4447 (arguments
4448 '(#:import-path "github.com/google/uuid"))
4449 (home-page "https://github.com/google/uuid/")
4450 (synopsis "Generate and inspect UUIDs based on RFC 4122 and DCE 1.1")
4451 (description "The uuid package generates and inspects UUIDs based on RFC
4452 4122 and DCE 1.1: Authentication and Security Services.")
4453 (license license:bsd-3)))
4454
4455 (define-public go-github-com-google-goterm
4456 (let ((commit "fc88cf888a3fa99ecc23d1efc1a44284268457d3")
4457 (revision "1"))
4458 (package
4459 (name "go-github-com-google-goterm")
4460 (version (git-version "0.0.1" revision commit))
4461 (source (origin
4462 (method git-fetch)
4463 (uri (git-reference
4464 (url "https://github.com/google/goterm")
4465 (commit commit)))
4466 (file-name (git-file-name name version))
4467 (sha256
4468 (base32
4469 "0809sf02dhg2bjhsz43pmlb5d7nbsnwxls3lw01zw5p7ri9bqwfb"))))
4470 (build-system go-build-system)
4471 (arguments
4472 `(#:import-path "github.com/google/goterm/term"
4473 #:unpack-path "github.com/google/goterm"))
4474 (home-page "https://github.com/google/goterm/")
4475 (synopsis "PTY creation and termios get/set attributes")
4476 (description "The term package implements PTY creation and termios get/set
4477 attributes. It also contains some convenience functions for colors, SSH to
4478 and from termios translations, readCh, reading passwords, etc.")
4479 (license license:bsd-3))))
4480
4481 (define-public go-github-com-google-go-querystring
4482 (let ((commit "992e8021cf787c100d55520d5c906e01536c0a19") ;fix format in tests
4483 (revision "1"))
4484 (package
4485 (name "go-github-com-google-go-querystring")
4486 (version "1.0.0")
4487 (source (origin
4488 (method git-fetch)
4489 (uri (git-reference
4490 (url "https://github.com/google/go-querystring")
4491 (commit commit)))
4492 (file-name (git-file-name name version))
4493 (sha256
4494 (base32
4495 "0mbx4jvf7nz4sk2fgqfq1llz4xb3vc4625b4x398mspr3a5077rs"))))
4496 (build-system go-build-system)
4497 (arguments
4498 `(#:import-path "github.com/google/go-querystring/query"
4499 #:unpack-path "github.com/google/go-querystring"))
4500 (home-page "https://github.com/google/go-querystring/")
4501 (synopsis "Library for encoding structs into URL query parameters")
4502 (description "@code{go-querystring} is Go library for encoding structs
4503 into URL query parameters.")
4504 (license license:bsd-3))))
4505
4506 (define-public go-github-com-google-go-github
4507 (package
4508 (name "go-github-com-google-go-github")
4509 (version "26.1.3")
4510 (source (origin
4511 (method git-fetch)
4512 (uri (git-reference
4513 (url "https://github.com/google/go-github")
4514 (commit (string-append "v" version))))
4515 (file-name (git-file-name name version))
4516 (sha256
4517 (base32
4518 "0x0zz1vcmllp6r6l2qin9b2llm5cxbf6n84rf99h8wrmhvzs2ipi"))))
4519 (build-system go-build-system)
4520 (arguments
4521 `(#:tests? #f ;application/octet-stream instead of text/plain
4522 #:import-path "github.com/google/go-github/v26/github"
4523 #:unpack-path "github.com/google/go-github/v26"))
4524 (native-inputs
4525 `(("go-github-com-google-go-querystring" ,go-github-com-google-go-querystring)
4526 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
4527 (home-page "https://github.com/google/go-github/")
4528 (synopsis "Client library for accessing the GitHub API v3")
4529 (description "@code{go-github} is a Go client library for accessing the
4530 GitHub API v3.")
4531 (license license:bsd-3)))
4532
4533 (define-public go-github-com-google-renameio
4534 (package
4535 (name "go-github-com-google-renameio")
4536 (version "0.1.0")
4537 (source (origin
4538 (method git-fetch)
4539 (uri (git-reference
4540 (url "https://github.com/google/renameio")
4541 (commit (string-append "v" version))))
4542 (file-name (git-file-name name version))
4543 (sha256
4544 (base32
4545 "1ki2x5a9nrj17sn092d6n4zr29lfg5ydv4xz5cp58z6cw8ip43jx"))))
4546 (build-system go-build-system)
4547 (arguments
4548 `(#:import-path "github.com/google/renameio"))
4549 (home-page "https://github.com/google/renameio/")
4550 (synopsis "Atomically create or replace a file or symbolic link")
4551 (description "@code{renameio} Go package provides a way to atomically
4552 create or replace a file or symbolic link.")
4553 (license license:asl2.0)))
4554
4555 (define-public go-golang.org-x-sync-errgroup
4556 (let ((commit "cd5d95a43a6e21273425c7ae415d3df9ea832eeb")
4557 (revision "0"))
4558 (package
4559 (name "go-golang.org-x-sync-errgroup")
4560 (version (git-version "0.0.0" revision commit))
4561 (source (origin
4562 (method git-fetch)
4563 (uri (git-reference
4564 (url "https://go.googlesource.com/sync")
4565 (commit commit)))
4566 (file-name (git-file-name name version))
4567 (sha256
4568 (base32
4569 "1nqkyz2y1qvqcma52ijh02s8aiqmkfb95j08f6zcjhbga3ds6hds"))))
4570 (build-system go-build-system)
4571 (arguments
4572 '(#:import-path "golang.org/x/sync/errgroup"
4573 #:unpack-path "golang.org/x/sync"))
4574 (synopsis "Synchronization, error propagation, and Context cancellation
4575 for groups of goroutines working on subtasks of a common task.")
4576 (description "This package provides synchronization, error propagation,
4577 and Context cancellation for groups of goroutines working on subtasks of a
4578 common task.")
4579 (home-page "https://godoc.org/golang.org/x/sync/errgroup")
4580 (license license:bsd-3))))
4581
4582 (define (go-gotest-tools-source version sha256-base32-hash)
4583 (origin
4584 (method git-fetch)
4585 (uri (git-reference
4586 (url "https://github.com/gotestyourself/gotest.tools")
4587 (commit (string-append "v" version))))
4588 (file-name (git-file-name "go-gotest-tools" version))
4589 (sha256
4590 (base32 sha256-base32-hash))))
4591
4592 ;; Note that version 3.0.0 is incompatible to 2.3.0.
4593 ;; See also <https://github.com/gotestyourself/gotest.tools/issues/166>.
4594 (define (go-gotest-tools-package suffix)
4595 (package
4596 (name (string-append "go-gotest-tools-"
4597 (string-replace-substring suffix "/" "-")))
4598 (version "2.3.0")
4599 (source
4600 (go-gotest-tools-source version
4601 "0071rjxp4xzcr3vprkaj1hdk35a3v45bx8v0ipk16wwc5hx84i2i"))
4602 (build-system go-build-system)
4603 (arguments
4604 `(#:import-path ,(string-append "gotest.tools/" suffix)
4605 #:unpack-path "gotest.tools"))
4606 (synopsis "@code{gotest-tools} part")
4607 (description "This package provides a part of @code{gotest-tools}.")
4608 (home-page "https://github.com/gotestyourself/gotest.tools")
4609 (license license:asl2.0)))
4610
4611 (define-public go-gotest-tools-internal-format
4612 (package (inherit (go-gotest-tools-package "internal/format"))
4613 (native-inputs
4614 `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
4615 ("go-github-com-google-go-cmp-cmp"
4616 ,go-github-com-google-go-cmp-cmp)))
4617 (synopsis "Formats messages for use with gotest-tools")
4618 (description "This package provides a way to format messages for use
4619 with gotest-tools.")))
4620
4621 (define-public go-gotest-tools-internal-difflib
4622 (package (inherit (go-gotest-tools-package "internal/difflib"))
4623 (synopsis "Differences for use with gotest-tools")
4624 (description "This package computes differences for use
4625 with gotest-tools.")))
4626
4627 (define-public go-gotest-tools-internal-source
4628 (package (inherit (go-gotest-tools-package "internal/source"))
4629 (native-inputs
4630 `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
4631 ("go-github-com-google-go-cmp-cmp" ,go-github-com-google-go-cmp-cmp)))
4632 (synopsis "Source code AST formatters for gotest-tools")
4633 (description "This package provides source code AST formatters for
4634 gotest-tools.")))
4635
4636 (define-public go-gotest-tools-assert
4637 (package (inherit (go-gotest-tools-package "assert"))
4638 (name "go-gotest-tools-assert")
4639 (arguments
4640 `(#:tests? #f ; Test failure concerning message formatting (FIXME)
4641 #:import-path "gotest.tools/assert"
4642 #:unpack-path "gotest.tools"))
4643 ;(propagated-inputs
4644 ; `(("go-gotest-tools-internal-format" ,go-gotest-tools-internal-format)))
4645 (native-inputs
4646 `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
4647 ("go-github-com-google-go-cmp-cmp"
4648 ,go-github-com-google-go-cmp-cmp)))
4649 (synopsis "Compare values and fail a test when a comparison fails")
4650 (description "This package provides a way to compare values and fail a
4651 test when a comparison fails.")
4652 (home-page "https://github.com/gotestyourself/gotest.tools")
4653 (license license:asl2.0)))
4654
4655 (define-public gotestsum
4656 (package
4657 (name "gotestsum")
4658 (version "0.4.0")
4659 (source (origin
4660 (method git-fetch)
4661 (uri (git-reference
4662 (url "https://github.com/gotestyourself/gotestsum")
4663 (commit (string-append "v" version))))
4664 (file-name (git-file-name name version))
4665 (sha256
4666 (base32
4667 "0y71qr3ss3hgc8c7nmvpwk946xy1jc5d8whsv6y77wb24ncla7n0"))))
4668 (build-system go-build-system)
4669 (arguments
4670 '(#:import-path "gotest.tools/gotestsum"))
4671 (native-inputs
4672 `(("go-github-com-fatih-color" ,go-github-com-fatih-color)
4673 ("go-golang.org-x-sync-errgroup" ,go-golang.org-x-sync-errgroup)
4674 ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
4675 ("go-github-com-sirupsen-logrus"
4676 ,go-github-com-sirupsen-logrus)
4677 ("go-github-com-spf13-pflag" ,go-github-com-spf13-pflag)
4678 ("go-github-com-jonboulle-clockwork"
4679 ,go-github-com-jonboulle-clockwork)
4680 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
4681 ("go-gotest-tools-assert" ,go-gotest-tools-assert)
4682 ("go-github-com-google-go-cmp-cmp"
4683 ,go-github-com-google-go-cmp-cmp)
4684 ;; TODO: This would be better as a propagated-input of
4685 ;; go-gotest-tools-assert, but that does not work for
4686 ;; some reason.
4687 ("go-gotest-tools-internal-format"
4688 ,go-gotest-tools-internal-format)
4689 ("go-gotest-tools-internal-difflib"
4690 ,go-gotest-tools-internal-difflib)
4691 ("go-gotest-tools-internal-source"
4692 ,go-gotest-tools-internal-source)
4693 ("go-github-com-google-go-cmp-cmp"
4694 ,go-github-com-google-go-cmp-cmp)))
4695 (synopsis "Go test runner with output optimized for humans")
4696 (description "This package provides a @code{go test} runner with output
4697 optimized for humans, JUnit XML for CI integration, and a summary of the
4698 test results.")
4699 (home-page "https://github.com/gotestyourself/gotestsum")
4700 (license license:asl2.0)))
4701
4702 (define-public go-github-com-golang-protobuf-proto
4703 (package
4704 (name "go-github-com-golang-protobuf-proto")
4705 (version "1.3.1")
4706 (source (origin
4707 (method git-fetch)
4708 (uri (git-reference
4709 (url "https://github.com/golang/protobuf")
4710 (commit (string-append "v" version))))
4711 (file-name (git-file-name name version))
4712 (sha256
4713 (base32
4714 "15am4s4646qy6iv0g3kkqq52rzykqjhm4bf08dk0fy2r58knpsyl"))))
4715 (build-system go-build-system)
4716 (arguments
4717 '(#:import-path "github.com/golang/protobuf/proto"
4718 #:unpack-path "github.com/golang/protobuf"
4719 ;; Requires unpackaged golang.org/x/sync/errgroup
4720 #:tests? #f))
4721 (synopsis "Go support for Protocol Buffers")
4722 (description "This package provides Go support for the Protocol Buffers
4723 data serialization format.")
4724 (home-page "https://github.com/golang/protobuf")
4725 (license license:bsd-3)))
4726
4727 (define-public go-github-com-mattn-go-zglob
4728 (package
4729 (name "go-github-com-mattn-go-zglob")
4730 (version "0.0.3")
4731 (source (origin
4732 (method git-fetch)
4733 (uri (git-reference
4734 (url "https://github.com/mattn/go-zglob")
4735 (commit (string-append "v" version))))
4736 (file-name (git-file-name name version))
4737 (sha256
4738 (base32
4739 "1923lvakm66mzy62jmngdvcmbmiqclinsvnghs3907rgygnx1qc1"))))
4740 (build-system go-build-system)
4741 (arguments
4742 `(#:import-path "github.com/mattn/go-zglob"))
4743 (home-page "https://github.com/mattn/go-zglob")
4744 (synopsis "Glob library that descends into other directories")
4745 (description " A glob library that implements descending into other
4746 directories. It is optimized for filewalking. ")
4747 (license license:expat)))
4748
4749 (define-public go-github-com-willf-bitset
4750 (package
4751 (name "go-github-com-willf-bitset")
4752 (version "1.1.10")
4753 (source (origin
4754 (method git-fetch)
4755 (uri (git-reference
4756 (url "https://github.com/willf/bitset")
4757 (commit (string-append "v" version))))
4758 (file-name (git-file-name name version))
4759 (sha256
4760 (base32
4761 "0wpaxg6va3qwd0hq0b8rpb1hswvzzbfm2h8sjmcsdpbkydjjx9zg"))))
4762 (build-system go-build-system)
4763 (arguments
4764 '(#:import-path "github.com/willf/bitset"))
4765 (synopsis "Bitsets in Go")
4766 (description "This package provides a Go implementation of bitsets, which
4767 are a mapping between non-negative integers and boolean values focused on
4768 efficient space usage.")
4769 (home-page "https://github.com/willf/bitset")
4770 (license license:bsd-3)))
4771
4772 (define-public go-github-com-willf-bloom
4773 (package
4774 (name "go-github-com-willf-bloom")
4775 (version "2.0.3")
4776 (source (origin
4777 (method git-fetch)
4778 (uri (git-reference
4779 (url "https://github.com/willf/bloom")
4780 (commit (string-append "v" version))))
4781 (file-name (git-file-name name version))
4782 (sha256
4783 (base32
4784 "0ygan8pgcay7wx3cs3ja8rdqj7nly7v3and97ddcc66020jxchzg"))))
4785 (build-system go-build-system)
4786 (arguments
4787 '(#:import-path "github.com/willf/bloom"
4788 #:phases
4789 (modify-phases %standard-phases
4790 (add-after 'unpack 'patch-import-path
4791 (lambda _
4792 ;; See 'go.mod' in the source distribution of Syncthing 1.5.0 for
4793 ;; more information.
4794 ;; <https://github.com/spaolacci/murmur3/issues/29>
4795 (substitute* "src/github.com/willf/bloom/bloom.go"
4796 (("spaolacci") "twmb"))
4797 #t)))))
4798 (propagated-inputs
4799 `(("go-github-com-twmb-murmur3" ,go-github-com-twmb-murmur3)
4800 ("go-github-com-willf-bitset" ,go-github-com-willf-bitset)))
4801 (synopsis "Bloom filters in Go")
4802 (description "This package provides a Go implementation of bloom filters,
4803 based on murmurhash.")
4804 (home-page "https://github.com/willf/bloom")
4805 (license license:bsd-2)))
4806
4807 (define-public go-golang-org-rainycape-unidecode
4808 (let ((commit "cb7f23ec59bec0d61b19c56cd88cee3d0cc1870c")
4809 (revision "1"))
4810 (package
4811 (name "go-golang-org-rainycape-unidecode")
4812 (version (git-version "0.0.0" revision commit))
4813 (source (origin
4814 (method git-fetch)
4815 (uri (git-reference
4816 (url "https://github.com/rainycape/unidecode")
4817 (commit commit)))
4818 (file-name (string-append "go-golang-org-rainycape-unidecode-"
4819 version "-checkout"))
4820 (sha256
4821 (base32
4822 "1wvzdijd640blwkgmw6h09frkfa04kcpdq87n2zh2ymj1dzla5v5"))))
4823 (build-system go-build-system)
4824 (arguments
4825 `(#:import-path "golang.org/rainycape/unidecode"))
4826 (home-page "https://github.com/rainycape/unidecode")
4827 (synopsis "Unicode transliterator in Golang")
4828 (description "Unicode transliterator in Golang - Replaces non-ASCII
4829 characters with their ASCII approximations.")
4830 (license license:asl2.0))))
4831
4832 (define-public go-github-com-golang-freetype
4833 (let ((commit "e2365dfdc4a05e4b8299a783240d4a7d5a65d4e4")
4834 (revision "1"))
4835 (package
4836 (name "go-github-com-golang-freetype")
4837 (version (git-version "0.0.0" revision commit))
4838 (source (origin
4839 (method git-fetch)
4840 (uri (git-reference
4841 (url "https://github.com/golang/freetype")
4842 (commit commit)))
4843 (file-name (string-append "go-github-com-golang-freetype-"
4844 version "-checkout"))
4845 (sha256
4846 (base32
4847 "194w3djc6fv1rgcjqds085b9fq074panc5vw582bcb8dbfzsrqxc"))))
4848 (build-system go-build-system)
4849 (arguments
4850 `(#:import-path "github.com/golang/freetype"))
4851 (propagated-inputs
4852 `(("go-golang-org-x-image" ,go-golang-org-x-image)))
4853 (home-page "https://github.com/golang/freetype")
4854 (synopsis "Freetype font rasterizer in the Go programming language")
4855 (description "The Freetype font rasterizer in the Go programming language.")
4856 (license (list license:freetype
4857 license:gpl2+)))))
4858
4859 (define-public go-github-com-fogleman-gg
4860 (package
4861 (name "go-github-com-fogleman-gg")
4862 (version "1.3.0")
4863 (source (origin
4864 (method git-fetch)
4865 (uri (git-reference
4866 (url "https://github.com/fogleman/gg")
4867 (commit (string-append "v" version))))
4868 (file-name (git-file-name name version))
4869 (sha256
4870 (base32
4871 "1nkldjghbqnzj2djfaxhiv35kk341xhcrj9m2dwq65v684iqkk8n"))))
4872 (build-system go-build-system)
4873 (arguments
4874 `(#:tests? #f ; Issue with test flags.
4875 #:import-path "github.com/fogleman/gg"))
4876 (propagated-inputs
4877 `(("go-github-com-golang-freetype" ,go-github-com-golang-freetype)))
4878 (home-page "https://github.com/fogleman/gg")
4879 (synopsis "2D rendering in Go")
4880 (description "@code{gg} is a library for rendering 2D graphics in pure Go.")
4881 (license license:expat)))
4882
4883 (define-public go-github-com-gedex-inflector
4884 (let ((commit "16278e9db8130ac7ec405dc174cfb94344f16325")
4885 (revision "1"))
4886 (package
4887 (name "go-github-com-gedex-inflector")
4888 (version (git-version "0.0.0" revision commit))
4889 (source (origin
4890 (method git-fetch)
4891 (uri (git-reference
4892 (url "https://github.com/gedex/inflector")
4893 (commit commit)))
4894 (file-name (string-append "go-github-com-gedex-inflector-"
4895 version "-checkout"))
4896 (sha256
4897 (base32
4898 "05hjqw1m71vww4914d9h6nqa9jw3lgjzwsy7qaffl02s2lh1amks"))))
4899 (build-system go-build-system)
4900 (arguments
4901 `(#:import-path "github.com/gedex/inflector"))
4902 (home-page "https://github.com/gedex/inflector")
4903 (synopsis "Go library that pluralizes and singularizes English nouns")
4904 (description "Go library that pluralizes and singularizes English nouns.")
4905 (license license:bsd-2))))
4906
4907 (define-public go-github-com-klauspost-cpuid
4908 (package
4909 (name "go-github-com-klauspost-cpuid")
4910 (version "1.2.3")
4911 (source (origin
4912 (method git-fetch)
4913 (uri (git-reference
4914 (url "https://github.com/klauspost/cpuid")
4915 (commit (string-append "v" version))))
4916 (file-name (git-file-name name version))
4917 (sha256
4918 (base32
4919 "1s510210wdj5dkamii1qrk7v87k4qpdcrrjzflp5ha9iscw6b06l"))))
4920 (build-system go-build-system)
4921 (arguments
4922 `(#:import-path "github.com/klauspost/cpuid"))
4923 (home-page "https://github.com/klauspost/cpuid")
4924 (synopsis "CPU feature identification for Go")
4925 (description "@code{cpuid} provides information about the CPU running the
4926 current program. CPU features are detected on startup, and kept for fast access
4927 through the life of the application. Currently x86 / x64 (AMD64) is supported,
4928 and no external C (cgo) code is used, which should make the library very eas
4929 to use.")
4930 (license license:expat)))
4931
4932 (define-public go-github-com-pbnjay-memory
4933 (let ((commit "974d429e7ae40c89e7dcd41cfcc22a0bfbe42510")
4934 (revision "1"))
4935 (package
4936 (name "go-github-com-pbnjay-memory")
4937 (version (git-version "0.0.0" revision commit))
4938 (source (origin
4939 (method git-fetch)
4940 (uri (git-reference
4941 (url "https://github.com/pbnjay/memory")
4942 (commit commit)))
4943 (file-name (string-append "go-github-com-pbnjay-memory-"
4944 version "-checkout"))
4945 (sha256
4946 (base32
4947 "0kazg5psdn90pqadrzma5chdwh0l2by9z31sspr47gx93fhjmkkq"))))
4948 (build-system go-build-system)
4949 (arguments
4950 `(#:import-path "github.com/pbnjay/memory"))
4951 (home-page "https://github.com/gedex/inflector")
4952 (synopsis "Go library to report total system memory")
4953 (description "@code{memory} provides a single method reporting total
4954 physical system memory accessible to the kernel. It does not account for memory
4955 used by other processes.")
4956 (license license:bsd-3))))
4957
4958 (define-public go-github-com-surge-glog
4959 (let ((commit "2578deb2b95c665e6b1ebabf304ce2085c9e1985")
4960 (revision "1"))
4961 (package
4962 (name "go-github-com-surge-glog")
4963 (version (git-version "0.0.0" revision commit))
4964 (source (origin
4965 (method git-fetch)
4966 (uri (git-reference
4967 (url "https://github.com/surge/glog")
4968 (commit commit)))
4969 (file-name (string-append "go-github-com-surge-glog-"
4970 version "-checkout"))
4971 (sha256
4972 (base32
4973 "1bxcwxvsvr2hfpjz9hrrn0wrgykwmrbyk567102k3vafw9xdcwk4"))))
4974 (build-system go-build-system)
4975 (arguments
4976 `(#:import-path "github.com/surge/glog"))
4977 (home-page "https://github.com/surge/glog")
4978 (synopsis "Leveled execution logs for Go")
4979 (description "Leveled execution logs for Go.")
4980 (license license:asl2.0))))
4981
4982 (define-public go-github-com-surgebase-porter2
4983 (let ((commit "56e4718818e8dc4ea5ba6348402fc7661863732a")
4984 (revision "1"))
4985 (package
4986 (name "go-github-com-surgebase-porter2")
4987 (version (git-version "0.0.0" revision commit))
4988 (source (origin
4989 (method git-fetch)
4990 (uri (git-reference
4991 (url "https://github.com/surgebase/porter2")
4992 (commit commit)))
4993 (file-name (string-append "go-github-com-surgebase-porter2-"
4994 version "-checkout"))
4995 (sha256
4996 (base32
4997 "1ivcf83jlj9s7q5y9dfbpyl0br35cz8fcp0dm8sxxvqh54py06v2"))))
4998 (build-system go-build-system)
4999 (arguments
5000 `(#:import-path "github.com/surgebase/porter2"))
5001 (native-inputs
5002 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)
5003 ("go-github-com-surge-glog" ,go-github-com-surge-glog)))
5004 (home-page "https://github.com/surgebase/porter2")
5005 (synopsis "Go library implementing english Porter2 stemmer")
5006 (description "Porter2 implements the
5007 @url{http://snowball.tartarus.org/algorithms/english/stemmer.html, english
5008 Porter2 stemmer}. It is written completely using finite state machines to do
5009 suffix comparison, rather than the string-based or tree-based approaches.")
5010 (license license:asl2.0))))
5011
5012 (define-public go-github-com-masterminds-goutils
5013 (package
5014 (name "go-github-com-masterminds-goutils")
5015 (version "1.1.0")
5016 (source (origin
5017 (method git-fetch)
5018 (uri (git-reference
5019 (url "https://github.com/Masterminds/goutils")
5020 (commit (string-append "v" version))))
5021 (file-name (git-file-name name version))
5022 (sha256
5023 (base32
5024 "180px47gj936qyk5bkv5mbbgiil9abdjq6kwkf7sq70vyi9mcfiq"))))
5025 (build-system go-build-system)
5026 (arguments
5027 `(#:import-path "github.com/Masterminds/goutils"))
5028 (home-page "https://github.com/Masterminds/goutils/")
5029 (synopsis "Utility functions to manipulate strings")
5030 (description "GoUtils provides utility functions to manipulate strings in
5031 various ways. It is a Go implementation of some string manipulation libraries
5032 of Java Apache Commons.")
5033 (license license:asl2.0)))
5034
5035 (define-public go-github-com-masterminds-semver
5036 (package
5037 (name "go-github-com-masterminds-semver")
5038 (version "3.1.0")
5039 (source (origin
5040 (method git-fetch)
5041 (uri (git-reference
5042 (url "https://github.com/Masterminds/semver")
5043 (commit (string-append "v" version))))
5044 (file-name (git-file-name name version))
5045 (sha256
5046 (base32
5047 "1g1wizfdy29d02l9dh8gsb029yr4m4swp13swf0pnh9ryh5f1msz"))))
5048 (build-system go-build-system)
5049 (arguments
5050 `(#:import-path "github.com/Masterminds/semver"))
5051 (home-page "https://github.com/Masterminds/semver/")
5052 (synopsis "@code{semver} helps to work with semantic versions")
5053 (description "The semver package provides the ability to work with
5054 semantic versions. Specifically it provides the ability to:
5055 @itemize
5056 @item Parse semantic versions
5057 @item Sort semantic versions
5058 @item Check if a semantic version fits within a set of constraints
5059 @item Optionally work with a @code{v} prefix
5060 @end itemize\n")
5061 (license license:expat)))
5062
5063 (define-public go-github-com-huandu-xstrings
5064 (package
5065 (name "go-github-com-huandu-xstrings")
5066 (version "1.3.2")
5067 (source (origin
5068 (method git-fetch)
5069 (uri (git-reference
5070 (url "https://github.com/huandu/xstrings")
5071 (commit (string-append "v" version))))
5072 (file-name (git-file-name name version))
5073 (sha256
5074 (base32
5075 "0pwar6rc0fqb6pll38a44s81g5kb65vbg71jg5lx8caphjnikq5r"))))
5076 (build-system go-build-system)
5077 (arguments
5078 `(#:import-path "github.com/huandu/xstrings"))
5079 (home-page "https://github.com/huandu/xstrings/")
5080 (synopsis "Collection of string functions")
5081 (description "Go package xstrings is a collection of string functions,
5082 which are widely used in other languages but absent in Go package strings.")
5083 (license license:expat)))
5084
5085 (define-public go-github-com-imdario-mergo
5086 (package
5087 (name "go-github-com-imdario-mergo")
5088 (version "0.3.10")
5089 (source (origin
5090 (method git-fetch)
5091 (uri (git-reference
5092 (url "https://github.com/imdario/mergo")
5093 (commit (string-append "v" version))))
5094 (file-name (git-file-name name version))
5095 (sha256
5096 (base32
5097 "09h765p8yby9r8s0a3hv5kl8n2i382mda76wmvk48w1cc1w9s92p"))))
5098 (build-system go-build-system)
5099 (arguments
5100 `(#:import-path "github.com/imdario/mergo"))
5101 (native-inputs
5102 `(("go-gopkg-in-yaml-v2" ,go-gopkg-in-yaml-v2)))
5103 (home-page "https://github.com/imdario/mergo/")
5104 (synopsis "Helper to merge structs and maps in Golang")
5105 (description "Helper to merge structs and maps in Golang. Useful for
5106 configuration default values, avoiding messy if-statements.
5107
5108 Mergo merges same-type structs and maps by setting default values in
5109 zero-value fields. Mergo won't merge unexported (private) fields. It will do
5110 recursively any exported one. It also won't merge structs inside
5111 maps (because they are not addressable using Go reflection).")
5112 (license license:bsd-3)))
5113
5114 (define-public go-github-com-masterminds-sprig
5115 (package
5116 (name "go-github-com-masterminds-sprig")
5117 (version "3.1.0")
5118 (source (origin
5119 (method git-fetch)
5120 (uri (git-reference
5121 (url "https://github.com/Masterminds/sprig")
5122 (commit (string-append "v" version))))
5123 (file-name (git-file-name name version))
5124 (sha256
5125 (base32
5126 "0wwi8n2adjc5jlga25lqq0hrz4jcgd5vpll68y2dfji034caaq18"))))
5127 (build-system go-build-system)
5128 (arguments
5129 `(#:tests? #f ;network tests only
5130 #:import-path "github.com/Masterminds/sprig"))
5131 (native-inputs
5132 `(("go-github-com-masterminds-goutils" ,go-github-com-masterminds-goutils)
5133 ("go-github-com-masterminds-semver" ,go-github-com-masterminds-semver)
5134 ("go-github-com-google-uuid" ,go-github-com-google-uuid)
5135 ("go-github-com-huandu-xstrings" ,go-github-com-huandu-xstrings)
5136 ("go-github-com-imdario-mergo" ,go-github-com-imdario-mergo)
5137 ("go-github-com-mitchellh-reflectwalk" ,go-github-com-mitchellh-reflectwalk)
5138 ("go-github-com-mitchellh-copystructure" ,go-github-com-mitchellh-copystructure)
5139 ("go-github-com-spf13-cast" ,go-github-com-spf13-cast)
5140 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
5141 ("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
5142 (home-page "https://github.com/Masterminds/sprig/")
5143 (synopsis "Template functions for Go templates")
5144 (description "Sprig is a library that provides more than 100 commonly used
5145 template functions.")
5146 (license license:expat)))
5147
5148 (define-public go-github-com-bmatcuk-doublestar
5149 (package
5150 (name "go-github-com-bmatcuk-doublestar")
5151 (version "1.3.0")
5152 (source (origin
5153 (method git-fetch)
5154 (uri (git-reference
5155 (url "https://github.com/bmatcuk/doublestar")
5156 (commit (string-append "v" version))))
5157 (file-name (git-file-name name version))
5158 (sha256
5159 (base32
5160 "0bk5bixl6rqa8znxghyp6zndbccx9kdyrymjahgyp6qsrp7rk144"))))
5161 (build-system go-build-system)
5162 (arguments
5163 `(#:import-path "github.com/bmatcuk/doublestar"))
5164 (home-page "https://github.com/bmatcuk/doublestar/")
5165 (synopsis "Path pattern matching and globbing supporting doublestar")
5166 (description "@code{doublestar} is a Go implementation of path pattern
5167 matching and globbing with support for \"doublestar\" patterns.")
5168 (license license:expat)))
5169
5170 (define-public go-github-com-dlclark-regexp2
5171 (package
5172 (name "go-github-com-dlclark-regexp2")
5173 (version "1.2.0")
5174 (source (origin
5175 (method git-fetch)
5176 (uri (git-reference
5177 (url "https://github.com/dlclark/regexp2")
5178 (commit (string-append "v" version))))
5179 (file-name (git-file-name name version))
5180 (sha256
5181 (base32
5182 "011l1prsywvhhi0yc7qmpsca1cwavmawyyld5kjzi0ff9ghvj4ng"))))
5183 (build-system go-build-system)
5184 (arguments
5185 `(#:import-path "github.com/dlclark/regexp2"))
5186 (home-page "https://github.com/dlclark/regexp2/")
5187 (synopsis "Full featured regular expressions for Go")
5188 (description "Regexp2 is a feature-rich RegExp engine for Go.")
5189 (license license:expat)))
5190
5191 (define-public go-github-com-alecthomas-colour
5192 (package
5193 (name "go-github-com-alecthomas-colour")
5194 (version "0.1.0")
5195 (source (origin
5196 (method git-fetch)
5197 (uri (git-reference
5198 (url "https://github.com/alecthomas/colour")
5199 (commit (string-append "v" version))))
5200 (file-name (git-file-name name version))
5201 (sha256
5202 (base32
5203 "10zbm12j40ppia4b5ql2blmsps5jhh5d7ffphxx843qk7wlbqnjb"))))
5204 (build-system go-build-system)
5205 (arguments
5206 `(#:import-path "github.com/alecthomas/colour"))
5207 (native-inputs
5208 `(("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)))
5209 (home-page "https://github.com/alecthomas/colour/")
5210 (synopsis "Colour terminal text for Go")
5211 (description "Package colour provides Quake-style colour formatting for
5212 Unix terminals.
5213
5214 The package level functions can be used to write to stdout (or strings or
5215 other files). If stdout is not a terminal, colour formatting will be
5216 stripped.")
5217 (license license:expat)))
5218
5219 (define-public go-github-com-alecthomas-repr
5220 (let ((commit "4184120f674c8860a5b48142509a2411a0a1766f")
5221 (revision "1"))
5222 (package
5223 (name "go-github-com-alecthomas-repr")
5224 (version (git-version "0.0.1" revision commit))
5225 (source (origin
5226 (method git-fetch)
5227 (uri (git-reference
5228 (url "https://github.com/alecthomas/repr")
5229 (commit commit)))
5230 (file-name (git-file-name name version))
5231 (sha256
5232 (base32
5233 "1z0gdkjryxg1ps5fh4ybzip27g9lzdldz4hxqp5j7s2frbzaa9s7"))))
5234 (build-system go-build-system)
5235 (arguments
5236 `(#:import-path "github.com/alecthomas/repr"))
5237 (native-inputs
5238 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
5239 (home-page "https://github.com/alecthomas/repr/")
5240 (synopsis "Represent Go values in an almost direct form")
5241 (description "This package attempts to represent Go values in a form that
5242 can be used almost directly in Go source code.")
5243 (license license:expat))))
5244
5245 (define-public go-github-com-sergi-go-diff
5246 (package
5247 (name "go-github-com-sergi-go-diff")
5248 (version "1.1.0")
5249 (source (origin
5250 (method git-fetch)
5251 (uri (git-reference
5252 (url "https://github.com/sergi/go-diff")
5253 (commit (string-append "v" version))))
5254 (file-name (git-file-name name version))
5255 (sha256
5256 (base32
5257 "0ir8ali2vx0j7pipmlfd6k8c973akyy2nmbjrf008fm800zcp7z2"))))
5258 (build-system go-build-system)
5259 (arguments
5260 `(#:import-path "github.com/sergi/go-diff/diffmatchpatch"
5261 #:unpack-path "github.com/sergi/go-diff"))
5262 (native-inputs
5263 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
5264 (home-page "https://github.com/sergi/go-diff/")
5265 (synopsis "Algorithms to perform operations for synchronizing plain text")
5266 (description "@code{go-diff} offers algorithms to perform operations required for
5267 synchronizing plain text:
5268 @itemize
5269 @item compare two texts and return their differences
5270 @item perform fuzzy matching of text
5271 @item apply patches onto text
5272 @end itemize\n")
5273 (license license:expat)))
5274
5275 (define-public go-github-com-alecthomas-assert
5276 (let ((commit "405dbfeb8e38effee6e723317226e93fff912d06")
5277 (revision "1"))
5278 (package
5279 (name "go-github-com-alecthomas-assert")
5280 (version (git-version "0.0.1" revision commit))
5281 (source (origin
5282 (method git-fetch)
5283 (uri (git-reference
5284 (url "https://github.com/alecthomas/assert")
5285 (commit commit)))
5286 (file-name (git-file-name name version))
5287 (sha256
5288 (base32
5289 "1l567pi17k593nrd1qlbmiq8z9jy3qs60px2a16fdpzjsizwqx8l"))))
5290 (build-system go-build-system)
5291 (arguments
5292 `(#:import-path "github.com/alecthomas/assert"))
5293 (native-inputs
5294 `(("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
5295 ("go-github-com-alecthomas-colour" ,go-github-com-alecthomas-colour)
5296 ("go-github-com-alecthomas-repr" ,go-github-com-alecthomas-repr)
5297 ("go-github-com-sergi-go-diff" ,go-github-com-sergi-go-diff)))
5298 (home-page "https://github.com/alecthomas/assert/")
5299 (synopsis "Go assertion library")
5300 (description "Assertion library that:
5301 @itemize
5302 @item makes spotting differences in equality much easier
5303 @item uses repr and diffmatchpatch to display structural differences in colour
5304 @item aborts tests on first assertion failure
5305 @end itemize\n")
5306 (license license:expat))))
5307
5308 (define-public go-github-com-alecthomas-chroma
5309 (package
5310 (name "go-github-com-alecthomas-chroma")
5311 (version "0.8.0")
5312 (source (origin
5313 (method git-fetch)
5314 (uri (git-reference
5315 (url "https://github.com/alecthomas/chroma")
5316 (commit (string-append "v" version))))
5317 (file-name (git-file-name name version))
5318 (sha256
5319 (base32
5320 "066a6rdmf670d3v5sc7chbn7db09ldgxjympb03pcqwk644dixb1"))))
5321 (build-system go-build-system)
5322 (arguments
5323 `(#:import-path "github.com/alecthomas/chroma"))
5324 (native-inputs
5325 `(("go-github-com-dlclark-regexp2" ,go-github-com-dlclark-regexp2)
5326 ("go-github-com-alecthomas-assert" ,go-github-com-alecthomas-assert)
5327 ("go-github-com-alecthomas-colour" ,go-github-com-alecthomas-colour)
5328 ("go-github-com-alecthomas-repr" ,go-github-com-alecthomas-repr)
5329 ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
5330 ("go-github-com-sergi-go-diff" ,go-github-com-sergi-go-diff)))
5331 (home-page "https://github.com/alecthomas/chroma/")
5332 (synopsis "General purpose syntax highlighter in pure Go")
5333 (description "Chroma takes source code and other structured text and
5334 converts it into syntax highlighted HTML, ANSI-coloured text, etc.")
5335 (license license:expat)))
5336
5337 (define-public go-github-com-andybalholm-cascadia
5338 (package
5339 (name "go-github-com-andybalholm-cascadia")
5340 (version "1.0.0")
5341 (source (origin
5342 (method git-fetch)
5343 (uri (git-reference
5344 (url "https://github.com/andybalholm/cascadia")
5345 (commit (string-append "v" version))))
5346 (file-name (git-file-name name version))
5347 (sha256
5348 (base32
5349 "09j8cavbhqqdxjqrkwbc40g8p0i49zf3184rpjm5p2rjbprcghcc"))))
5350 (build-system go-build-system)
5351 (arguments
5352 `(#:import-path "github.com/andybalholm/cascadia"))
5353 (native-inputs
5354 `(("go-golang-org-x-net" ,go-golang-org-x-net)))
5355 (home-page "https://github.com/andybalholm/cascadia/")
5356 (synopsis "CSS selectors for HTML")
5357 (description "The Cascadia package implements CSS selectors for use with
5358 the parse trees produced by the html package.")
5359 (license license:bsd-2)))
5360
5361 (define-public go-github-com-puerkitobio-goquery
5362 (package
5363 (name "go-github-com-puerkitobio-goquery")
5364 (version "1.5.1")
5365 (source (origin
5366 (method git-fetch)
5367 (uri (git-reference
5368 (url "https://github.com/PuerkitoBio/goquery")
5369 (commit (string-append "v" version))))
5370 (file-name (git-file-name name version))
5371 (sha256
5372 (base32
5373 "08nf88cg663slzqr51k2jxlm1krnh86nrzwbk6v41ccq5jkfm7fx"))))
5374 (build-system go-build-system)
5375 (arguments
5376 `(#:import-path "github.com/PuerkitoBio/goquery"))
5377 (native-inputs
5378 `(("go-github-com-andybalholm-cascadia" ,go-github-com-andybalholm-cascadia)
5379 ("go-golang-org-x-net" ,go-golang-org-x-net)))
5380 (home-page "https://github.com/PuerkitoBio/goquery")
5381 (synopsis "Features similar to jQuery to the Go language")
5382 (description "@code{goquery} brings a syntax and a set of features similar
5383 to jQuery to the Go language.")
5384 (license license:bsd-3)))
5385
5386 (define-public go-github-com-jmespath-go-jmespath
5387 (package
5388 (name "go-github-com-jmespath-go-jmespath")
5389 (version "0.4.0")
5390 (source
5391 (origin
5392 (method git-fetch)
5393 (uri (git-reference
5394 (url "https://github.com/jmespath/go-jmespath")
5395 (commit (string-append "v" version))))
5396 (file-name (git-file-name name version))
5397 (sha256
5398 (base32
5399 "18zyr9nlywmwp3wpzcjxrgq9s9d2mmc6zg6xhsna00m663nkyc3n"))))
5400 (build-system go-build-system)
5401 (arguments
5402 '(#:import-path "github.com/jmespath/go-jmespath"))
5403 (native-inputs
5404 `(("go-github-com-davecgh-go-spew" ,go-github-com-davecgh-go-spew)
5405 ("go-github-com-pmezard-go-difflib" ,go-github-com-pmezard-go-difflib)
5406 ("go-gopkg-in-yaml-v2" ,go-gopkg-in-yaml-v2)))
5407 (home-page "https://github.com/jmespath/go-jmespath")
5408 (synopsis "Golang implementation of JMESPath")
5409 (description
5410 "This package implements JMESPath, a query language for JSON. It
5411 transforms one JSON document into another through a JMESPath expression.")
5412 (license license:asl2.0)))
5413
5414 (define-public go-github-com-aymerick-douceur
5415 (package
5416 (name "go-github-com-aymerick-douceur")
5417 (version "0.2.0")
5418 (source (origin
5419 (method git-fetch)
5420 (uri (git-reference
5421 (url "https://github.com/aymerick/douceur/")
5422 (commit (string-append "v" version))))
5423 (file-name (git-file-name name version))
5424 (sha256
5425 (base32
5426 "1hfysznib0fqbp8vqxpk0xiggpp0ayk2bsddi36vbg6f8zq5f81n"))))
5427 (build-system go-build-system)
5428 (arguments
5429 `(#:import-path "github.com/aymerick/douceur"))
5430 (native-inputs
5431 `(("go-github-com-puerkitobio-goquery" ,go-github-com-puerkitobio-goquery)
5432 ("go-github-com-andybalholm-cascadia" ,go-github-com-andybalholm-cascadia)
5433 ("go-golang-org-x-net" ,go-golang-org-x-net)
5434 ("go-github-com-gorilla-css" ,go-github-com-gorilla-css)))
5435 (home-page "https://github.com/aymerick/douceur/")
5436 (synopsis "CSS parser and inliner")
5437 (description "This package provides a CSS parser and inliner.")
5438 (license license:expat)))
5439
5440 (define-public go-github-com-chris-ramon-douceur
5441 (package
5442 (name "go-github-com-chris-ramon-douceur")
5443 (version "0.2.0")
5444 (source (origin
5445 (method git-fetch)
5446 (uri (git-reference
5447 (url "https://github.com/chris-ramon/douceur")
5448 (commit (string-append "v" version))))
5449 (file-name (git-file-name name version))
5450 (sha256
5451 (base32
5452 "1hfysznib0fqbp8vqxpk0xiggpp0ayk2bsddi36vbg6f8zq5f81n"))))
5453 (build-system go-build-system)
5454 (arguments
5455 `(#:import-path "github.com/chris-ramon/douceur"))
5456 (native-inputs
5457 `(("go-github-com-aymerick-douceur" ,go-github-com-aymerick-douceur)
5458 ("go-github-com-puerkitobio-goquery" ,go-github-com-puerkitobio-goquery)
5459 ("go-github-com-andybalholm-cascadia" ,go-github-com-andybalholm-cascadia)
5460 ("go-golang-org-x-net" ,go-golang-org-x-net)
5461 ("go-github-com-gorilla-css" ,go-github-com-gorilla-css)))
5462 (home-page "https://github.com/chris-ramon/douceur/")
5463 (synopsis "CSS parser and inliner")
5464 (description "This package provides a CSS parser and inliner.")
5465 (license license:expat)))
5466
5467 (define-public go-github-com-microcosm-cc-bluemonday
5468 (package
5469 (name "go-github-com-microcosm-cc-bluemonday")
5470 (version "1.0.3")
5471 (source (origin
5472 (method git-fetch)
5473 (uri (git-reference
5474 (url "https://github.com/microcosm-cc/bluemonday")
5475 (commit (string-append "v" version))))
5476 (file-name (git-file-name name version))
5477 (sha256
5478 (base32
5479 "071ph097c1iwbcc33x6kblj9rxb1r4mp3qfkrj4qw5mg7qcqxydk"))))
5480 (build-system go-build-system)
5481 (arguments
5482 `(#:import-path "github.com/microcosm-cc/bluemonday"))
5483 (native-inputs
5484 `(("go-github-com-chris-ramon-douceur" ,go-github-com-chris-ramon-douceur)
5485 ("go-github-com-aymerick-douceur" ,go-github-com-aymerick-douceur)
5486 ("go-github-com-gorilla-css" ,go-github-com-gorilla-css)
5487 ("go-golang-org-x-net" ,go-golang-org-x-net)))
5488 (home-page "https://github.com/microcosm-cc/bluemonday/")
5489 (synopsis "HTML sanitizer")
5490 (description "@code{bluemonday} is a HTML sanitizer implemented in Go.")
5491 (license license:bsd-3)))
5492
5493 (define-public go-github-com-muesli-reflow-wordwrap
5494 (package
5495 (name "go-github-com-muesli-reflow-wordwrap")
5496 (version "0.1.0")
5497 (source (origin
5498 (method git-fetch)
5499 (uri (git-reference
5500 (url "https://github.com/muesli/reflow")
5501 (commit (string-append "v" version))))
5502 (file-name (git-file-name "go-github-com-muesli-reflow" version))
5503 (sha256
5504 (base32
5505 "1vhynm2n1az13fn03lp0gi28p9mznq1mblglh8f2rb9y1vkd2dqr"))))
5506 (build-system go-build-system)
5507 (arguments
5508 `(#:import-path "github.com/muesli/reflow/wordwrap"
5509 #:unpack-path "github.com/muesli/reflow"))
5510 (native-inputs
5511 `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)))
5512 (home-page "https://github.com/muesli/reflow/")
5513 (synopsis "Collection of methods helping to transform blocks of text")
5514 (description "This package provides a collection of ANSI-aware methods and
5515 io.Writers helping you to transform blocks of text.")
5516 (license license:expat)))
5517
5518 (define-public go-github-com-muesli-reflow-ansi
5519 (package
5520 (inherit go-github-com-muesli-reflow-wordwrap)
5521 (name "go-github-com-muesli-reflow-ansi")
5522 (arguments
5523 `(#:import-path "github.com/muesli/reflow/ansi"
5524 #:unpack-path "github.com/muesli/reflow"))))
5525
5526 (define-public go-github-com-muesli-reflow-indent
5527 (package
5528 (inherit go-github-com-muesli-reflow-wordwrap)
5529 (name "go-github-com-muesli-reflow-indent")
5530 (arguments
5531 `(#:import-path "github.com/muesli/reflow/indent"
5532 #:unpack-path "github.com/muesli/reflow"))))
5533
5534 (define-public go-github-com-muesli-reflow-padding
5535 (package
5536 (inherit go-github-com-muesli-reflow-wordwrap)
5537 (name "go-github-com-muesli-reflow-padding")
5538 (arguments
5539 `(#:import-path "github.com/muesli/reflow/padding"
5540 #:unpack-path "github.com/muesli/reflow"))))
5541
5542 (define-public go-github-com-muesli-termenv
5543 (package
5544 (name "go-github-com-muesli-termenv")
5545 (version "0.7.0")
5546 (source (origin
5547 (method git-fetch)
5548 (uri (git-reference
5549 (url "https://github.com/muesli/termenv")
5550 (commit (string-append "v" version))))
5551 (file-name (git-file-name name version))
5552 (sha256
5553 (base32
5554 "09fwrdhy7c9qlf70h97f5inh6xvkfq1vi8fwx9q7bwmjjbiykk8m"))))
5555 (build-system go-build-system)
5556 (arguments
5557 `(#:import-path "github.com/muesli/termenv"))
5558 (native-inputs
5559 `(("go-github-com-google-goterm" ,go-github-com-google-goterm)
5560 ("go-golang-org-colorful" ,go-golang-org-colorful)
5561 ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
5562 ("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)))
5563 (home-page "https://github.com/muesli/termenv/")
5564 (synopsis "Advanced styling options on the terminal")
5565 (description "termenv lets you safely use advanced styling options on the
5566 terminal. It gathers information about the terminal environment in terms of
5567 its ANSI and color support and offers you convenient methods to colorize and
5568 style your output, without you having to deal with all kinds of weird ANSI
5569 escape sequences and color conversions.")
5570 (license license:expat)))
5571
5572 (define-public go-github-com-nwidger-jsoncolor
5573 (package
5574 (name "go-github-com-nwidger-jsoncolor")
5575 (version "0.3.0")
5576 (home-page "https://github.com/nwidger/jsoncolor")
5577 (source
5578 (origin
5579 (method git-fetch)
5580 (uri (git-reference
5581 (url home-page)
5582 (commit (string-append "v" version))))
5583 (file-name (git-file-name name version))
5584 (sha256
5585 (base32
5586 "13rd146pnj7qm70r1333gyd1f61x40nafxlpvdxlci9h7mx8c5p8"))))
5587 (build-system go-build-system)
5588 (arguments
5589 `(#:import-path "github.com/nwidger/jsoncolor"))
5590 (native-inputs
5591 `(("go-github-com-fatih-color" ,go-github-com-fatih-color)))
5592 (synopsis "Colorized JSON marshalling and encoding")
5593 (description
5594 "@code{jsoncolor} is a drop-in replacement for @code{encoding/json}'s
5595 @code{Marshal} and @code{MarshalIndent} functions and @code{Encoder} type
5596 which produce colorized output using github.com/fatih/color.")
5597 (license license:expat)))
5598
5599 (define-public go-github-com-olekukonko-tablewriter
5600 (package
5601 (name "go-github-com-olekukonko-tablewriter")
5602 (version "0.0.4")
5603 (source (origin
5604 (method git-fetch)
5605 (uri (git-reference
5606 (url "https://github.com/olekukonko/tablewriter")
5607 (commit (string-append "v" version))))
5608 (file-name (git-file-name name version))
5609 (sha256
5610 (base32
5611 "02r0n2b9yh3x8xyf48k17dxlwj234hlgjycylbjxi6qg08hfmz2x"))))
5612 (build-system go-build-system)
5613 (arguments
5614 `(#:import-path "github.com/olekukonko/tablewriter"))
5615 (native-inputs
5616 `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)))
5617 (home-page "https://github.com/olekukonko/tablewriter/")
5618 (synopsis "Generate ASCII table")
5619 (description "This package generates ASCII tables. Features:
5620 @itemize
5621 @item automatic Padding
5622 @item support Multiple Lines
5623 @item supports Alignment
5624 @item support Custom Separators
5625 @item automatic Alignment of numbers and percentage
5626 @item write directly to http , file etc via @code{io.Writer}
5627 @item read directly from CSV file
5628 @item optional row line via @code{SetRowLine}
5629 @item normalise table header
5630 @item make CSV Headers optional
5631 @item enable or disable table border
5632 @item set custom footer support
5633 @item optional identical cells merging
5634 @item set custom caption
5635 @item optional reflowing of paragrpahs in multi-line cells
5636 @end itemize\n")
5637 (license license:expat)))
5638
5639 (define-public go-github-com-yuin-goldmark
5640 (package
5641 (name "go-github-com-yuin-goldmark")
5642 (version "1.2.1")
5643 (source (origin
5644 (method git-fetch)
5645 (uri (git-reference
5646 (url "https://github.com/yuin/goldmark")
5647 (commit (string-append "v" version))))
5648 (file-name (git-file-name name version))
5649 (sha256
5650 (base32
5651 "12rsnsf65drcp0jfw2jl9w589vsn3pxdk1zh3v9q908iigngrcmy"))))
5652 (build-system go-build-system)
5653 (arguments
5654 `(#:import-path "github.com/yuin/goldmark"))
5655 (home-page "https://github.com/yuin/goldmark/")
5656 (synopsis "Markdown parser")
5657 (description "This package provides a markdown parser.")
5658 (license license:expat)))
5659
5660 (define-public go-github-com-charmbracelet-glamour
5661 (package
5662 (name "go-github-com-charmbracelet-glamour")
5663 (version "0.2.0")
5664 (source (origin
5665 (method git-fetch)
5666 (uri (git-reference
5667 (url "https://github.com/charmbracelet/glamour")
5668 (commit (string-append "v" version))))
5669 (file-name (git-file-name name version))
5670 (sha256
5671 (base32
5672 "1idq8d13rp1hx2a1xak31fwl9fmi09p2x4ymvzl7aj850saw5w0z"))))
5673 (build-system go-build-system)
5674 (arguments
5675 `(#:import-path "github.com/charmbracelet/glamour"))
5676 (native-inputs
5677 `(("go-github-com-alecthomas-chroma" ,go-github-com-alecthomas-chroma)
5678 ("go-github-com-danwakefield-fnmatch" ,go-github-com-danwakefield-fnmatch)
5679 ("go-github-com-dlclark-regexp2" ,go-github-com-dlclark-regexp2)
5680 ("go-github-com-microcosm-cc-bluemonday" ,go-github-com-microcosm-cc-bluemonday)
5681 ("go-github-com-chris-ramon-douceur" ,go-github-com-chris-ramon-douceur)
5682 ("go-github-com-aymerick-douceur" ,go-github-com-aymerick-douceur)
5683 ("go-github-com-gorilla-css" ,go-github-com-gorilla-css)
5684 ("go-github-com-muesli-reflow-ansi" ,go-github-com-muesli-reflow-ansi)
5685 ("go-github-com-muesli-reflow-wordwrap" ,go-github-com-muesli-reflow-wordwrap)
5686 ("go-github-com-muesli-reflow-indent" ,go-github-com-muesli-reflow-indent)
5687 ("go-github-com-muesli-reflow-padding" ,go-github-com-muesli-reflow-padding)
5688 ("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
5689 ("go-github-com-muesli-termenv" ,go-github-com-muesli-termenv)
5690 ("go-github-com-google-goterm" ,go-github-com-google-goterm)
5691 ("go-golang-org-colorful" ,go-golang-org-colorful)
5692 ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
5693 ("go-github-com-olekukonko-tablewriter" ,go-github-com-olekukonko-tablewriter)
5694 ("go-github-com-yuin-goldmark" ,go-github-com-yuin-goldmark)
5695 ("go-golang-org-x-net" ,go-golang-org-x-net)))
5696 (home-page "https://github.com/charmbracelet/glamour/")
5697 (synopsis "Write handsome command-line tools with glamour")
5698 (description "@code{glamour} lets you render markdown documents and
5699 templates on ANSI compatible terminals. You can create your own stylesheet or
5700 use one of our glamourous default themes.")
5701 (license license:expat)))
5702
5703 (define-public go-github-com-coreos-go-semver
5704 (package
5705 (name "go-github-com-coreos-go-semver")
5706 (version "0.3.0")
5707 (source (origin
5708 (method git-fetch)
5709 (uri (git-reference
5710 (url "https://github.com/coreos/go-semver")
5711 (commit (string-append "v" version))))
5712 (file-name (git-file-name name version))
5713 (sha256
5714 (base32
5715 "0770h1mpig2j5sbiha3abnwaw8p6dg9i87r8pc7cf6m4kwml3sc9"))))
5716 (build-system go-build-system)
5717 (arguments
5718 `(#:import-path "github.com/coreos/go-semver"))
5719 (home-page "https://github.com/coreos/go-semver/")
5720 (synopsis "Semantic versioning library")
5721 (description "@code{go-semver} is a semantic versioning library for Go.
5722 It lets you parse and compare two semantic version strings.")
5723 (license license:asl2.0)))
5724
5725 (define-public go-github-com-emirpasic-gods
5726 (package
5727 (name "go-github-com-emirpasic-gods")
5728 (version "1.12.0")
5729 (source (origin
5730 (method git-fetch)
5731 (uri (git-reference
5732 (url "https://github.com/emirpasic/gods")
5733 (commit (string-append "v" version))))
5734 (file-name (git-file-name name version))
5735 (sha256
5736 (base32
5737 "0i5qqq7ajvw3mikr95zl9rsnfsjanzwpqqs6kzzplsfgsifybar1"))))
5738 (build-system go-build-system)
5739 (arguments
5740 `(#:import-path "github.com/emirpasic/gods"
5741 ; Source-only package
5742 #:tests? #f
5743 #:phases
5744 (modify-phases %standard-phases
5745 (delete 'build))))
5746 (home-page "https://github.com/emirpasic/gods/")
5747 (synopsis "Implementation of various data structures and algorithms in Go")
5748 (description "This package provides implementation of various data
5749 structures and algorithms in Go.")
5750 (license license:bsd-2)))
5751
5752 (define-public go-gopkg-in-warnings
5753 (package
5754 (name "go-gopkg-in-warnings")
5755 (version "0.1.2")
5756 (source (origin
5757 (method git-fetch)
5758 (uri (git-reference
5759 (url "https://github.com/go-warnings/warnings")
5760 (commit (string-append "v" version))))
5761 (file-name (git-file-name name version))
5762 (sha256
5763 (base32
5764 "1kzj50jn708cingn7a13c2wdlzs6qv89dr2h4zj8d09647vlnd81"))))
5765 (build-system go-build-system)
5766 (arguments
5767 `(#:import-path "gopkg.in/warnings.v0"))
5768 (home-page "https://gopkg.in/warnings.v0")
5769 (synopsis "Error handling with non-fatal errors")
5770 (description "Package warnings implements error handling with non-fatal
5771 errors (warnings).")
5772 (license license:bsd-2)))
5773
5774 (define-public go-github-com-go-git-gcfg
5775 (package
5776 (name "go-github-com-go-git-gcfg")
5777 (version "1.5.0")
5778 (source (origin
5779 (method git-fetch)
5780 (uri (git-reference
5781 (url "https://github.com/go-git/gcfg")
5782 (commit (string-append "v" version))))
5783 (file-name (git-file-name name version))
5784 (sha256
5785 (base32
5786 "1lb14z4j35pwz2b2rbykkpsq515spwbndb00gwn2xlrzn949xb83"))))
5787 (arguments
5788 `(#:import-path "github.com/go-git/gcfg"))
5789 (native-inputs
5790 `(("go-gopkg-in-warnings" ,go-gopkg-in-warnings)
5791 ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)))
5792 (build-system go-build-system)
5793 (home-page "https://github.com/go-git/gcfg/")
5794 (synopsis "Gcfg reads INI-style configuration files into Go structs")
5795 (description "Gcfg reads INI-style configuration files into Go structs.")
5796 (license license:bsd-3)))
5797
5798 (define-public go-github-com-go-git-go-billy
5799 (package
5800 (name "go-github-com-go-git-go-billy")
5801 (version "5.0.0")
5802 (source (origin
5803 (method git-fetch)
5804 (uri (git-reference
5805 (url "https://github.com/go-git/go-billy")
5806 (commit (string-append "v" version))))
5807 (file-name (git-file-name name version))
5808 (sha256
5809 (base32
5810 "1wdzczfk1n50dl2zpgf46m69b0sm8qkan5xyv82pk9x53zm1dmdx"))))
5811 (build-system go-build-system)
5812 (arguments
5813 `(#:import-path "github.com/go-git/go-billy/v5"))
5814 (native-inputs
5815 `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
5816 (home-page "https://github.com/go-git/go-billy/")
5817 (synopsis "File system abstraction for Go")
5818 (description "Billy implements an interface based on the OS's standard
5819 library to develop applications without depending on the underlying storage.
5820 This makes it virtually free to implement mocks and testing over
5821 file system operations.")
5822 (license license:asl2.0)))
5823
5824 (define-public go-github-com-jbenet-go-context
5825 (let ((commit "d14ea06fba99483203c19d92cfcd13ebe73135f4")
5826 (revision "1"))
5827 (package
5828 (name "go-github-com-jbenet-go-context")
5829 (version (git-version "0.0.1" revision commit))
5830 (source (origin
5831 (method git-fetch)
5832 (uri (git-reference
5833 (url "https://github.com/jbenet/go-context")
5834 (commit commit)))
5835 (file-name (git-file-name name version))
5836 (sha256
5837 (base32
5838 "0q91f5549n81w3z5927n4a1mdh220bdmgl42zi3h992dcc4ls0sl"))))
5839 (build-system go-build-system)
5840 (arguments
5841 `(#:import-path "github.com/jbenet/go-context"
5842 ; Source-only package
5843 #:tests? #f
5844 #:phases
5845 (modify-phases %standard-phases
5846 (delete 'build))))
5847 (home-page "https://github.com/jbenet/go-context/")
5848 (synopsis "@code{jbenet's} context extensions")
5849 (description "This package provides @code{jbenet's} context
5850 extensions.")
5851 (license license:expat))))
5852
5853 (define-public go-github-com-kevinburke-ssh-config
5854 (package
5855 (name "go-github-com-kevinburke-ssh-config")
5856 (version "1.0")
5857 (source (origin
5858 (method git-fetch)
5859 (uri (git-reference
5860 (url "https://github.com/kevinburke/ssh_config")
5861 (commit version)))
5862 (file-name (git-file-name name version))
5863 (sha256
5864 (base32
5865 "05jvz5r58a057zxvic9dyr9v2wilha8l6366npwkqgxmnmk9sh5f"))))
5866 (arguments
5867 `(#:import-path "github.com/kevinburke/ssh_config"))
5868 (build-system go-build-system)
5869 (home-page "https://github.com/kevinburke/ssh_config/")
5870 (synopsis "Parser for @file{ssh_config} files")
5871 (description "This is a Go parser for @file{ssh_config} files.
5872 Importantly, this parser attempts to preserve comments in a given file, so you
5873 can manipulate a @file{ssh_config} file from a program.")
5874 (license license:expat)))
5875
5876 (define-public go-github-com-xanzy-ssh-agent
5877 (package
5878 (name "go-github-com-xanzy-ssh-agent")
5879 (version "0.2.1")
5880 (source (origin
5881 (method git-fetch)
5882 (uri (git-reference
5883 (url "https://github.com/xanzy/ssh-agent")
5884 (commit (string-append "v" version))))
5885 (file-name (git-file-name name version))
5886 (sha256
5887 (base32
5888 "1chjlnv5d6svpymxgsr62d992m2xi6jb5lybjc5zn1h3hv1m01av"))))
5889 (build-system go-build-system)
5890 (arguments
5891 `(#:import-path "github.com/xanzy/ssh-agent"))
5892 (native-inputs
5893 `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
5894 (home-page "https://github.com/xanzy/ssh-agent/")
5895 (synopsis "Control ssh-agent from Go")
5896 (description "Package agent implements the ssh-agent protocol, and
5897 provides both a client and a server. The client can talk to a standard
5898 ssh-agent that uses UNIX sockets, and one could implement an alternative
5899 ssh-agent process using the sample server. ")
5900 (license license:asl2.0)))
5901
5902 (define-public go-github-com-alcortesm-tgz
5903 (let ((commit "9c5fe88206d7765837fed3732a42ef88fc51f1a1")
5904 (revision "1"))
5905 (package
5906 (name "go-github-com-alcortesm-tgz")
5907 (version (git-version "0.0.1" revision commit))
5908 (source (origin
5909 (method git-fetch)
5910 (uri (git-reference
5911 (url "https://github.com/alcortesm/tgz")
5912 (commit commit)))
5913 (file-name (git-file-name name version))
5914 (sha256
5915 (base32
5916 "04dcwnz2c2i4wbq2vx3g2wrdgqpncr2r1h6p1k08rdwk4bq1h8c5"))
5917 (modules '((guix build utils)))
5918 (snippet
5919 '(begin
5920 (substitute* "tgz_test.go"
5921 ;; Fix format error
5922 (("t.Fatalf\\(\"%s: unexpected error extracting: %s\", err\\)")
5923 "t.Fatalf(\"%s: unexpected error extracting: %s\", com, err)"))
5924 #t))))
5925 (build-system go-build-system)
5926 (arguments
5927 `(#:import-path "github.com/alcortesm/tgz"
5928 #:phases
5929 (modify-phases %standard-phases
5930 (add-after 'unpack 'make-git-checkout-writable
5931 (lambda* (#:key outputs #:allow-other-keys)
5932 (for-each make-file-writable (find-files "."))
5933 (for-each make-file-writable (find-files (assoc-ref outputs "out")))
5934 #t)))))
5935 (home-page "https://github.com/alcortesm/tgz/")
5936 (synopsis "Go library to extract tgz files to temporal directories")
5937 (description "This package provides a Go library to extract tgz files to
5938 temporal directories.")
5939 (license license:expat))))
5940
5941 (define-public go-github-com-go-git-go-git-fixtures
5942 (package
5943 (name "go-github-com-go-git-go-git-fixtures")
5944 (version "4.0.1")
5945 (source (origin
5946 (method git-fetch)
5947 (uri (git-reference
5948 (url "https://github.com/go-git/go-git-fixtures")
5949 (commit (string-append "v" version))))
5950 (file-name (git-file-name name version))
5951 (sha256
5952 (base32
5953 "002yb1s2mxq2xijkl39ip1iyc3l52k23ikyi9ijfl4bgqxy79ljg"))))
5954 (build-system go-build-system)
5955 (arguments
5956 `(#:import-path "github.com/go-git/go-git-fixtures/v4"
5957 #:phases
5958 (modify-phases %standard-phases
5959 (delete 'reset-gzip-timestamps))))
5960 (native-inputs
5961 `(("go-github-com-alcortesm-tgz" ,go-github-com-alcortesm-tgz)
5962 ("go-github-com-go-git-go-billy" ,go-github-com-go-git-go-billy)
5963 ("go-golang-org-x-sys" ,go-golang-org-x-sys)
5964 ("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
5965 (home-page "https://github.com/go-git/go-git-fixtures/")
5966 (synopsis "Fixtures used by @code{go-git}")
5967 (description "This package provides fixtures used by @code{go-git}.")
5968 (license license:asl2.0)))
5969
5970 (define-public go-github-com-pkg-diff
5971 (let ((commit "531926345625d489a6b56f860a569e68245ace36")
5972 (revision "1"))
5973 (package
5974 (name "go-github-com-pkg-diff")
5975 (version (git-version "0.0.1" revision commit))
5976 (source (origin
5977 (method git-fetch)
5978 (uri (git-reference
5979 (url "https://github.com/pkg/diff")
5980 (commit commit)))
5981 (file-name (git-file-name name version))
5982 (sha256
5983 (base32
5984 "1770m7qhww6lm0wj1v3mhv6hwa2v92p4w2fqxj1xyrg5dd58d944"))))
5985 (build-system go-build-system)
5986 (arguments
5987 `(#:import-path "github.com/pkg/diff"))
5988 (native-inputs
5989 `(("go-github-com-sergi-go-diff" ,go-github-com-sergi-go-diff)))
5990 (home-page "https://github.com/pkg/diff/")
5991 (synopsis "Create and print diffs")
5992 (description
5993 "This package provides a Go library to create and print diffs.")
5994 (license license:bsd-3))))
5995
5996 (define-public go-github-com-twpayne-go-shell
5997 (package
5998 (name "go-github-com-twpayne-go-shell")
5999 (version "0.3.0")
6000 (source (origin
6001 (method git-fetch)
6002 (uri (git-reference
6003 (url "https://github.com/twpayne/go-shell")
6004 (commit (string-append "v" version))))
6005 (file-name (git-file-name name version))
6006 (sha256
6007 (base32
6008 "1hv0ggy3935iddjnmpp9vl0kqjknxpnbmm9w7xr3gds7fpbxz6yp"))))
6009 (build-system go-build-system)
6010 (arguments
6011 `(#:import-path "github.com/twpayne/go-shell"))
6012 (home-page "https://github.com/twpayne/go-shell/")
6013 (synopsis "Shell across multiple platforms")
6014 (description
6015 "Package @code{shell} returns a user's shell across multiple platforms.")
6016 (license license:expat)))
6017
6018 (define-public go-github-com-twpayne-go-vfs
6019 (package
6020 (name "go-github-com-twpayne-go-vfs")
6021 (version "1.5.0")
6022 (source (origin
6023 (method git-fetch)
6024 (uri (git-reference
6025 (url "https://github.com/twpayne/go-vfs")
6026 (commit (string-append "v" version))))
6027 (file-name (git-file-name name version))
6028 (sha256
6029 (base32
6030 "19dm3gi45znwaqbzxhwcgkiz8059bwa3ank80hc6qhdl579bpjnz"))))
6031 (build-system go-build-system)
6032 (arguments
6033 `(#:import-path "github.com/twpayne/go-vfs"))
6034 (native-inputs
6035 `(("go-github-com-bmatcuk-doublestar" ,go-github-com-bmatcuk-doublestar)))
6036 (home-page "https://github.com/twpayne/go-vfs/")
6037 (synopsis "Abstraction of the @code{os} and @code{ioutil} Go packages")
6038 (description "Package @code{vfs} provides an abstraction of the @code{os}
6039 and @code{ioutil} packages that is easy to test.")
6040 (license license:expat)))
6041
6042 (define-public go-github-com-twpayne-go-vfsafero
6043 (package
6044 (name "go-github-com-twpayne-go-vfsafero")
6045 (version "1.0.0")
6046 (source (origin
6047 (method git-fetch)
6048 (uri (git-reference
6049 (url "https://github.com/twpayne/go-vfsafero")
6050 (commit (string-append "v" version))))
6051 (file-name (git-file-name name version))
6052 (sha256
6053 (base32
6054 "18jwxhlrjd06z8xzg9ij0irl4f79jfy5jpwiz6xqlhzb1fja19pw"))))
6055 (build-system go-build-system)
6056 (arguments
6057 `(#:import-path "github.com/twpayne/go-vfsafero"))
6058 (native-inputs
6059 `(("go-github-com-twpayne-go-vfs" ,go-github-com-twpayne-go-vfs)
6060 ("go-github-com-spf13-afero" ,go-github-com-spf13-afero)))
6061 (home-page "https://github.com/twpayne/go-vfsafero/")
6062 (synopsis "Compatibility later between @code{go-vfs} and @code{afero}")
6063 (description
6064 "Package @code{vfsafero} provides a compatibility later between
6065 @code{go-github-com-twpayne-go-vfs} and @code{go-github-com-spf13-afero}.")
6066 (license license:expat)))
6067
6068 (define-public go-github-com-twpayne-go-xdg
6069 (package
6070 (name "go-github-com-twpayne-go-xdg")
6071 (version "3.1.0")
6072 (source (origin
6073 (method git-fetch)
6074 (uri (git-reference
6075 (url "https://github.com/twpayne/go-xdg")
6076 (commit (string-append "v" version))))
6077 (file-name (git-file-name name version))
6078 (sha256
6079 (base32
6080 "0j8q7yzixs6jlaad0lpa8hs6b240gm2cmy0yxgnprrbpa0y2r7ln"))))
6081 (build-system go-build-system)
6082 (arguments
6083 `(#:import-path "github.com/twpayne/go-xdg/v3"))
6084 (native-inputs
6085 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)
6086 ("go-github-com-twpayne-go-vfs" ,go-github-com-twpayne-go-vfs)))
6087 (home-page "https://github.com/twpayne/go-xdg/")
6088 (synopsis "Functions related to freedesktop.org")
6089 (description "Package @code{xdg} provides functions related to
6090 @uref{freedesktop.org}.")
6091 (license license:expat)))
6092
6093 (define-public go-github-com-godbus-dbus
6094 (package
6095 (name "go-github-com-godbus-dbus")
6096 (version "5.0.3")
6097 (source (origin
6098 (method git-fetch)
6099 (uri (git-reference
6100 (url "https://github.com/godbus/dbus")
6101 (commit (string-append "v" version))))
6102 (file-name (git-file-name name version))
6103 (sha256
6104 (base32
6105 "1bkc904073k807yxg6mvqaxrr6ammmhginr9p54jfb55mz3hfw3s"))))
6106 (build-system go-build-system)
6107 (arguments
6108 `(#:tests? #f ;no /var/run/dbus/system_bus_socket
6109 #:import-path "github.com/godbus/dbus"))
6110 (native-inputs
6111 `(("dbus" ,dbus))) ;dbus-launch
6112 (home-page "https://github.com/godbus/dbus/")
6113 (synopsis "Native Go client bindings for the D-Bus")
6114 (description "@code{dbus} is a library that implements native Go client
6115 bindings for the D-Bus message bus system.")
6116 (license license:bsd-2)))
6117
6118 (define-public go-github-com-zalando-go-keyring
6119 (package
6120 (name "go-github-com-zalando-go-keyring")
6121 (version "0.1.0")
6122 (source (origin
6123 (method git-fetch)
6124 (uri (git-reference
6125 (url "https://github.com/zalando/go-keyring")
6126 (commit (string-append "v" version))))
6127 (file-name (git-file-name name version))
6128 (sha256
6129 (base32
6130 "0kj54nkiyccy6m9iy9a53f6412a54xk96j88jaiq35yzdgfa4z3p"))))
6131 (build-system go-build-system)
6132 (arguments
6133 `(#:tests? #f ;XXX: Fix dbus tests
6134 #:import-path "github.com/zalando/go-keyring"))
6135 (native-inputs
6136 `(("go-github-com-godbus-dbus" ,go-github-com-godbus-dbus)
6137 ("dbus" ,dbus)))
6138 (home-page "https://github.com/zalando/go-keyring/")
6139 (synopsis "Library for working with system keyring")
6140 (description "@code{go-keyring} is a library for setting, getting and
6141 deleting secrets from the system keyring.")
6142 (license license:expat)))
6143
6144 (define-public go-etcd-io-bbolt
6145 (package
6146 (name "go-etcd-io-bbolt")
6147 (version "1.3.5")
6148 (source (origin
6149 (method git-fetch)
6150 (uri (git-reference
6151 (url "https://github.com/etcd-io/bbolt")
6152 (commit (string-append "v" version))))
6153 (file-name (git-file-name name version))
6154 (sha256
6155 (base32
6156 "1h64gipvcg7060byv5wjlf524kqwj12p3v08kfh4ygv46vpm8p2r"))))
6157 (build-system go-build-system)
6158 (arguments
6159 `(#:import-path "go.etcd.io/bbolt"))
6160 (home-page "https://pkg.go.dev/go.etcd.io/bbolt/")
6161 (synopsis "Low-level key/value store in Go")
6162 (description "This package implements a low-level key/value store in Go.")
6163 (license license:expat)))
6164
6165 (define-public go-github-com-rogpeppe-go-internal
6166 (package
6167 (name "go-github-com-rogpeppe-go-internal")
6168 (version "1.6.1")
6169 (source (origin
6170 (method git-fetch)
6171 (uri (git-reference
6172 (url "https://github.com/rogpeppe/go-internal")
6173 (commit (string-append "v" version))))
6174 (file-name (git-file-name name version))
6175 (sha256
6176 (base32
6177 "00j2vpp1bsggdvw1winkz23mg0q6drjiir5q0k49pmqx1sh7106l"))))
6178 (build-system go-build-system)
6179 (arguments
6180 `(#:import-path "github.com/rogpeppe/go-internal"
6181 ; Source-only package
6182 #:tests? #f
6183 #:phases
6184 (modify-phases %standard-phases
6185 (delete 'build))))
6186 (home-page "https://github.com/rogpeppe/go-internal/")
6187 (synopsis "Internal packages from the Go standard library")
6188 (description "This repository factors out an opinionated selection of
6189 internal packages and functionality from the Go standard library. Currently
6190 this consists mostly of packages and testing code from within the Go tool
6191 implementation.
6192
6193 Included are the following:
6194 @itemize
6195 @item dirhash: calculate hashes over directory trees the same way that the Go tool does.
6196 @item goproxytest: a GOPROXY implementation designed for test use.
6197 @item gotooltest: Use the Go tool inside test scripts (see testscript below)
6198 @item imports: list of known architectures and OSs, and support for reading import import statements.
6199 @item modfile: read and write go.mod files while preserving formatting and comments.
6200 @item module: module paths and versions.
6201 @item par: do work in parallel.
6202 @item semver: semantic version parsing.
6203 @item testenv: information on the current testing environment.
6204 @item testscript: script-based testing based on txtar files
6205 @item txtar: simple text-based file archives for testing.
6206 @end itemize\n")
6207 (license license:bsd-3)))
6208
6209 (define-public gopkg-in-errgo-fmt-errors
6210 (package
6211 (name "gopkg-in-errgo-fmt-errors")
6212 (version "2.1.0")
6213 (source (origin
6214 (method git-fetch)
6215 (uri (git-reference
6216 (url "https://github.com/go-errgo/errgo")
6217 (commit (string-append "v" version))))
6218 (file-name (git-file-name name version))
6219 (sha256
6220 (base32
6221 "065mbihiy7q67wnql0bzl9y1kkvck5ivra68254zbih52jxwrgr2"))))
6222 (build-system go-build-system)
6223 (arguments
6224 `(#:import-path "gopkg.in/errgo.v2/fmt/errors"
6225 #:tests? #f
6226 ;; Source-only package
6227 #:phases
6228 (modify-phases %standard-phases
6229 (delete 'build))))
6230 (home-page "https://godoc.org/gopkg.in/errgo.v2")
6231 (synopsis "Functions that use the fmt package to format error messages")
6232 (description "This package is the same as @code{gopkg.in/errgo.v2/errors}
6233 except that it adds convenience functions that use the fmt package to format
6234 error messages.")
6235 (license license:bsd-3)))
6236
6237 (define-public go-github-com-arceliar-phony
6238 (let ((commit "d0c68492aca0bd4b5c5c8e0452c9b4c8af923eaf")
6239 (revision "0"))
6240 (package
6241 (name "go-github-com-arceliar-phony")
6242 (version (git-version "0.0.0" revision commit))
6243 (source
6244 (origin
6245 (method git-fetch)
6246 (uri (git-reference
6247 (url "https://github.com/Arceliar/phony")
6248 (commit commit)))
6249 (file-name (git-file-name name version))
6250 (sha256
6251 (base32
6252 "0876y0hlb1zh8hn0pxrb5zfdadvaqmqwlr66p19yl2a76galz992"))))
6253 (arguments
6254 '(#:import-path "github.com/Arceliar/phony"))
6255 (build-system go-build-system)
6256 (home-page "https://github.com/Arceliar/phony")
6257 (synopsis "Very minimal actor model library")
6258 (description "Phony is a very minimal actor model library for Go,
6259 inspired by the causal messaging system in the Pony programming language.")
6260 (license license:expat))))
6261
6262 (define-public go-github-com-cheggaaa-pb
6263 (package
6264 (name "go-github-com-cheggaaa-pb")
6265 (version "3.0.4")
6266 (source
6267 (origin
6268 (method git-fetch)
6269 (uri (git-reference
6270 (url "https://github.com/cheggaaa/pb/")
6271 (commit (string-append "v" version))))
6272 (file-name (git-file-name name version))
6273 (sha256
6274 (base32
6275 "0xhsv9yf3fz918ay6w0d87jnb3hk9vxvi16jk172kqq26x7jixd0"))))
6276 (build-system go-build-system)
6277 (arguments
6278 '(#:import-path "github.com/cheggaaa/pb/"))
6279 (propagated-inputs
6280 `(("go-github-com-fatih-color" ,go-github-com-fatih-color)
6281 ("go-github-com-mattn-go-colorable" ,go-github-com-mattn-go-colorable)
6282 ("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
6283 ("go-golang-org-x-sys" ,go-golang-org-x-sys)))
6284 (native-inputs
6285 `(("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)))
6286 (home-page "https://github.com/cheggaaa/pb/")
6287 (synopsis "Console progress bar for Go")
6288 (description "This package is a Go library that draws progress bars on
6289 the terminal.")
6290 (license license:bsd-3)))
6291
6292 (define-public go-github-com-gologme-log
6293 ;; this is the same as v1.2.0, only the LICENSE file changed
6294 (let ((commit "720ba0b3ccf0a91bc6018c9967a2479f93f56a55"))
6295 (package
6296 (name "go-github-com-gologme-log")
6297 (version "1.2.0")
6298 (source
6299 (origin
6300 (method git-fetch)
6301 (uri (git-reference
6302 (url "https://github.com/gologme/log")
6303 (commit commit)))
6304 (file-name (git-file-name name version))
6305 (sha256
6306 (base32
6307 "0z3gs5ngv2jszp42ypp3ai0pn410v3b2m674g73ma7vsbn2yjk1n"))))
6308 (build-system go-build-system)
6309 (arguments
6310 '(#:import-path "github.com/gologme/log"))
6311 (home-page "https://github.com/gologme/log/")
6312 (synopsis
6313 "Fork of the golang built in log package to add support for levels")
6314 (description "This package is a drop in replacement for the built-in Go
6315 log package. All the functionality of the built-in package still exists and
6316 is unchanged. This package contains a series of small enhancements and
6317 additions.")
6318 (license license:bsd-3))))
6319
6320 (define-public go-github-com-frankban-quicktest
6321 (package
6322 (name "go-github-com-frankban-quicktest")
6323 (version "1.11.1")
6324 (source
6325 (origin
6326 (method git-fetch)
6327 (uri (git-reference
6328 (url "https://github.com/frankban/quicktest")
6329 (commit (string-append "v" version))))
6330 (file-name (git-file-name name version))
6331 (sha256
6332 (base32
6333 "0b1b44b2hli2p969gqz30z8v9z6ahlklpqzi17nwk1lsjz9yv938"))))
6334 (build-system go-build-system)
6335 (arguments
6336 '(#:import-path "github.com/frankban/quicktest"))
6337 (propagated-inputs
6338 `(("go-github-com-google-go-cmp-cmp" ,go-github-com-google-go-cmp-cmp)
6339 ("go-github-com-kr-pretty" ,go-github-com-kr-pretty)))
6340 (home-page "https://github.com/frankban/quicktest")
6341 (synopsis "Quick helpers for testing Go applications")
6342 (description
6343 "Package quicktest provides a collection of Go helpers for writing
6344 tests.")
6345 (license license:expat)))
6346
6347 (define-public go-github-com-bep-golibsass
6348 (package
6349 (name "go-github-com-bep-golibsass")
6350 (version "0.7.0")
6351 (source
6352 (origin
6353 (method git-fetch)
6354 (uri (git-reference
6355 (url "https://github.com/bep/golibsass")
6356 (commit (string-append "v" version))))
6357 (file-name (git-file-name name version))
6358 (sha256
6359 (base32
6360 "0xk3m2ynbydzx87dz573ihwc4ryq0r545vz937szz175ivgfrhh3"))
6361 (modules '((guix build utils)))
6362 (snippet
6363 '(begin
6364 (delete-file-recursively "libsass_src")
6365 #t))))
6366 (build-system go-build-system)
6367 (arguments
6368 '(#:import-path "github.com/bep/golibsass/libsass"
6369 #:unpack-path "github.com/bep/golibsass"
6370 ;; The dev build tag modifies the build to link to system libsass
6371 ;; instead of including the bundled one (which we remove.)
6372 ;; https://github.com/bep/golibsass/blob/v0.7.0/internal/libsass/a__cgo_dev.go
6373 #:build-flags '("-tags" "dev")
6374 #:phases
6375 (modify-phases %standard-phases
6376 (add-before 'build 'generate-bindings
6377 ;; Generate bindings for system libsass, replacing the
6378 ;; pre-generated bindings.
6379 (lambda* (#:key inputs unpack-path #:allow-other-keys)
6380 (mkdir-p (string-append "src/" unpack-path "/internal/libsass"))
6381 (let ((libsass-src (string-append (assoc-ref inputs "libsass-src") "/src")))
6382 (substitute* (string-append "src/" unpack-path "/gen/main.go")
6383 (("filepath.Join\\(rootDir, \"libsass_src\", \"src\"\\)")
6384 (string-append "\"" libsass-src "\""))
6385 (("../../libsass_src/src/")
6386 libsass-src)))
6387 (invoke "go" "generate" (string-append unpack-path "/gen"))
6388 #t))
6389 (replace 'check
6390 (lambda* (#:key tests? import-path #:allow-other-keys)
6391 (if tests?
6392 (invoke "go" "test" import-path "-tags" "dev"))
6393 #t)))))
6394 (propagated-inputs
6395 `(("libsass" ,libsass)))
6396 (native-inputs
6397 `(("go-github-com-frankban-quicktest" ,go-github-com-frankban-quicktest)
6398 ("libsass-src" ,(package-source libsass))))
6399 (home-page "https://github.com/bep/golibsass")
6400 (synopsis "Easy to use Go bindings for LibSass")
6401 (description
6402 "This package provides SCSS compiler support for Go applications.")
6403 (license license:expat)))
6404
6405 (define-public go-github-com-hashicorp-go-syslog
6406 (package
6407 (name "go-github-com-hashicorp-go-syslog")
6408 (version "1.0.0")
6409 (source
6410 (origin
6411 (method git-fetch)
6412 (uri (git-reference
6413 (url "https://github.com/hashicorp/go-syslog")
6414 (commit (string-append "v" version))))
6415 (file-name (git-file-name name version))
6416 (sha256
6417 (base32
6418 "09vccqggz212cg0jir6vv708d6mx0f9w5bxrcdah3h6chgmal6v1"))))
6419 (build-system go-build-system)
6420 (arguments
6421 '(#:import-path "github.com/hashicorp/go-syslog"))
6422 (home-page "https://github.com/hashicorp/go-syslog")
6423 (synopsis "Golang syslog wrapper, cross-compile friendly")
6424 (description "This package is a very simple wrapper around log/syslog")
6425 (license license:expat)))
6426
6427 (define-public go-github-com-hjson-hjson-go
6428 (package
6429 (name "go-github-com-hjson-hjson-go")
6430 (version "3.1.0")
6431 (source
6432 (origin
6433 (method git-fetch)
6434 (uri (git-reference
6435 (url "https://github.com/hjson/hjson-go")
6436 (commit (string-append "v" version))))
6437 (file-name (git-file-name name version))
6438 (sha256
6439 (base32
6440 "1dfdiahimg6z9idg8jiqxwnlwjnmasbjccx8gnag49cz4yfqskaz"))))
6441 (build-system go-build-system)
6442 (arguments
6443 '(#:import-path "github.com/hjson/hjson-go"))
6444 (home-page "https://hjson.org/")
6445 (synopsis "Human JSON implementation for Go")
6446 (description "Hjson is a syntax extension to JSON. It is intended to be
6447 used like a user interface for humans, to read and edit before passing the
6448 JSON data to the machine.")
6449 (license license:expat)))
6450
6451 (define-public go-golang-zx2c4-com-wireguard
6452 (package
6453 (name "go-golang-zx2c4-com-wireguard")
6454 (version "0.0.20200320")
6455 (source
6456 (origin
6457 (method git-fetch)
6458 ;; NOTE: module URL is a redirect
6459 ;; target: git.zx2c4.com/wireguard-go
6460 ;; source: golang.zx2c4.com/wireguard
6461 (uri (git-reference
6462 (url "https://git.zx2c4.com/wireguard-go/")
6463 (commit (string-append "v" version))))
6464 (file-name (git-file-name name version))
6465 (sha256
6466 (base32
6467 "0fy4qsss3i3pkq1rpgjds4aipbwlh1dr9hbbf7jn2a1c63kfks0r"))))
6468 (build-system go-build-system)
6469 (arguments
6470 '(#:import-path "golang.zx2c4.com/wireguard"))
6471 (propagated-inputs
6472 `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
6473 ("go-golang-org-x-net" ,go-golang-org-x-net)
6474 ("go-golang-org-x-sys" ,go-golang-org-x-sys)
6475 ("go-golang-org-x-text" ,go-golang-org-x-text)))
6476 (home-page "https://git.zx2c4.com/wireguard")
6477 (synopsis "Implementation of WireGuard in Go")
6478 (description "This package is a Go Implementation of WireGuard.")
6479 (license license:expat)))
6480
6481 (define-public go-github-com-kardianos-minwinsvc
6482 (package
6483 (name "go-github-com-kardianos-minwinsvc")
6484 (version "1.0.0")
6485 (source
6486 (origin
6487 (method git-fetch)
6488 (uri (git-reference
6489 (url "https://github.com/kardianos/minwinsvc")
6490 (commit (string-append "v" version))))
6491 (file-name (git-file-name name version))
6492 (sha256
6493 (base32
6494 "0z941cxymkjcsj3p5l3g4wm2da3smz7iyqk2wbs5y8lmxd4kfzd8"))))
6495 (build-system go-build-system)
6496 (arguments
6497 '(#:import-path "github.com/kardianos/minwinsvc"))
6498 (home-page "https://github.com/kardianos/minwinsvc/")
6499 ;; some packages (Yggdrasil) need it to compile
6500 ;; it's a tiny package and it's easier to bundle it than to patch it out
6501 (synopsis "Minimal windows only service stub for Go")
6502 (description "Go programs designed to run from most *nix style operating
6503 systems can import this package to enable running programs as services without
6504 modifying them.")
6505 (license license:zlib)))
6506
6507 (define-public go-github-com-goccy-yaml
6508 (package
6509 (name "go-github-com-goccy-yaml")
6510 (version "1.8.0")
6511 (home-page "https://github.com/goccy/go-yaml")
6512 (source
6513 (origin
6514 (method git-fetch)
6515 (uri (git-reference
6516 (url home-page)
6517 (commit (string-append "v" version))))
6518 (file-name (git-file-name name version))
6519 (sha256
6520 (base32 "1nps58dwkd915mx35h5f0dc05b880b4fdl6dcjxpfmmbzyinvg38"))))
6521 (build-system go-build-system)
6522 (arguments
6523 `(#:import-path "github.com/goccy/go-yaml"))
6524 (propagated-inputs
6525 `(("go-github-com-fatih-color" ,go-github-com-fatih-color)
6526 ("go-golang-org-x-xerrors" ,go-golang-org-x-xerrors)))
6527 (native-inputs
6528 `(("go-gopkg-in-go-playground-validator-v9"
6529 ,go-gopkg-in-go-playground-validator-v9)))
6530 (synopsis "YAML support for the Go language")
6531 (description
6532 "This package provides features beyond the
6533 @uref{https://github.com/go-yaml/yaml, defacto YAML library} including:
6534
6535 @itemize
6536 @item Pretty format for error notifications
6537 @item Support Scanner or Lexer or Parser as public API
6538 @item Support Anchor and Alias to Marshaler
6539 @item Allow referencing elements declared in another file via anchors
6540 @item Extract value or AST by YAMLPath (YAMLPath is like a JSONPath)
6541 @end itemize")
6542 (license license:expat)))
6543
6544 (define-public go-github.com-ulikunitz-xz
6545 (package
6546 (name "go-github.com-ulikunitz-xz")
6547 (version "0.5.8")
6548 (source (origin
6549 (method git-fetch)
6550 (uri (git-reference
6551 (url "https://github.com/ulikunitz/xz.git")
6552 (commit (string-append "v" version))))
6553 (file-name (string-append name "-" version "-checkout"))
6554 (sha256
6555 (base32
6556 "1xnsymi5fmmm734bi4c6z57p5cvnyxlpi29yxs4v21w5k763aypd"))))
6557 (build-system go-build-system)
6558 (arguments
6559 `(#:import-path "github.com/ulikunitz/xz"))
6560 (synopsis "Read and write xz compressed streams in Go")
6561 (description "This package provides a library to read and write xz
6562 compressed streams in Go.")
6563 (home-page "https://github.com/ulikunitz/xz")
6564 (license license:bsd-3)))
6565
6566 (define-public go-github-com-songmu-gitconfig
6567 (package
6568 (name "go-github-com-songmu-gitconfig")
6569 (version "0.1.0")
6570 (home-page "https://github.com/songmu/gitconfig")
6571 (source
6572 (origin
6573 (method git-fetch)
6574 (uri (git-reference
6575 (url home-page)
6576 (commit (string-append "v" version))))
6577 (file-name (git-file-name name version))
6578 (sha256
6579 (base32 "1y01h496a7pfj1g2bclls5b0nl3vnj7nz610jj1dzq9kxrwxk7fk"))))
6580 (build-system go-build-system)
6581 (arguments
6582 `(#:import-path "github.com/Songmu/gitconfig"
6583 ;; Package's tests appear to be hardcoded to the author's gitconfig
6584 ;; and require network access.
6585 #:tests? #f))
6586 (propagated-inputs
6587 `(("go-github-com-goccy-yaml" ,go-github-com-goccy-yaml)))
6588 (synopsis "Go library to get configuration values from gitconfig")
6589 (description "@{gitconfig} is a package to get configuration values from gitconfig.")
6590 (license license:expat)))