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