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