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