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