gnu: Add go-github-com-andybalholm-cascadia.
[jackhill/guix/guix.git] / gnu / packages / golang.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
3 ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
4 ;;; Copyright © 2016 Andy Wingo <wingo@igalia.com>
5 ;;; Copyright © 2016, 2019 Ludovic Courtès <ludo@gnu.org>
6 ;;; Copyright © 2016, 2017 Petter <petter@mykolab.ch>
7 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Leo Famulari <leo@famulari.name>
8 ;;; Copyright © 2017 Sergei Trofimovich <slyfox@inbox.ru>
9 ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
10 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
11 ;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
12 ;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
13 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
14 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
15 ;;; Copyright @ 2018, 2019, 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
16 ;;; Copyright @ 2019 Giovanni Biscuolo <g@xelera.eu>
17 ;;; Copyright @ 2019, 2020 Alex Griffin <a@ajgrf.com>
18 ;;; Copyright © 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
19 ;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
20 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
21 ;;;
22 ;;; This file is part of GNU Guix.
23 ;;;
24 ;;; GNU Guix is free software; you can redistribute it and/or modify it
25 ;;; under the terms of the GNU General Public License as published by
26 ;;; the Free Software Foundation; either version 3 of the License, or (at
27 ;;; your option) any later version.
28 ;;;
29 ;;; GNU Guix is distributed in the hope that it will be useful, but
30 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
31 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
32 ;;; GNU General Public License for more details.
33 ;;;
34 ;;; You should have received a copy of the GNU General Public License
35 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
36
37 (define-module (gnu packages golang)
38 #:use-module ((guix licenses) #:prefix license:)
39 #:use-module (guix utils)
40 #:use-module (guix download)
41 #:use-module (guix git-download)
42 #:use-module (guix packages)
43 #:use-module (guix build-system gnu)
44 #:use-module (guix build-system trivial)
45 #:use-module (guix build-system go)
46 #:use-module (gnu packages)
47 #:use-module (gnu packages admin)
48 #:use-module (gnu packages gcc)
49 #:use-module (gnu packages base)
50 #:use-module (gnu packages perl)
51 #:use-module (gnu packages pkg-config)
52 #:use-module (gnu packages pcre)
53 #:use-module (gnu packages lua)
54 #:use-module (gnu packages mp3)
55 #:use-module (gnu packages textutils)
56 #:use-module (gnu packages tls)
57 #:use-module (ice-9 match)
58 #:use-module (srfi srfi-1))
59
60 ;; According to https://golang.org/doc/install/gccgo, gccgo-4.8.2 includes a
61 ;; complete go-1.1.2 implementation, gccgo-4.9 includes a complete go-1.2
62 ;; implementation, and gccgo-5 a complete implementation of go-1.4. Ultimately
63 ;; we hope to build go-1.5+ with a bootstrap process using gccgo-5. As of
64 ;; go-1.5, go cannot be bootstrapped without go-1.4, so we need to use go-1.4 or
65 ;; gccgo-5. Mips is not officially supported, but it should work if it is
66 ;; bootstrapped.
67
68 (define-public go-1.4
69 (package
70 (name "go")
71 ;; The C-language bootstrap of Go:
72 ;; https://golang.org/doc/install/source#go14
73 (version "1.4-bootstrap-20171003")
74 (source (origin
75 (method url-fetch)
76 (uri (string-append "https://storage.googleapis.com/golang/"
77 name version ".tar.gz"))
78 (sha256
79 (base32
80 "0liybk5z00hizsb5ypkbhqcawnwwa6mkwgvjjg4y3jm3ndg5pzzl"))))
81 (build-system gnu-build-system)
82 (outputs '("out"
83 "doc"
84 "tests"))
85 (arguments
86 `(#:modules ((ice-9 match)
87 (guix build gnu-build-system)
88 (guix build utils)
89 (srfi srfi-1))
90 #:tests? #f ; Tests are run by the all.bash script.
91 ,@(if (string-prefix? "aarch64-linux" (or (%current-system)
92 (%current-target-system)))
93 '(#:system "armhf-linux")
94 '())
95 #:phases
96 (modify-phases %standard-phases
97 (delete 'configure)
98 (add-after 'patch-generated-file-shebangs 'chdir
99 (lambda _
100 (chdir "src")
101 #t))
102 (add-before 'build 'prebuild
103 (lambda* (#:key inputs outputs #:allow-other-keys)
104 (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
105 (ld (string-append (assoc-ref inputs "libc") "/lib"))
106 (loader (car (find-files ld "^ld-linux.+")))
107 (net-base (assoc-ref inputs "net-base"))
108 (tzdata-path
109 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
110 (output (assoc-ref outputs "out")))
111
112 ;; Removing net/ tests, which fail when attempting to access
113 ;; network resources not present in the build container.
114 (for-each delete-file
115 '("net/multicast_test.go" "net/parse_test.go"
116 "net/port_test.go"))
117
118 ;; Add libgcc to the RUNPATH.
119 (substitute* "cmd/go/build.go"
120 (("cgoldflags := \\[\\]string\\{\\}")
121 (string-append "cgoldflags := []string{"
122 "\"-rpath=" gcclib "\"}"))
123 (("ldflags := buildLdflags")
124 (string-append
125 "ldflags := buildLdflags\n"
126 "ldflags = append(ldflags, \"-r\")\n"
127 "ldflags = append(ldflags, \"" gcclib "\")\n")))
128
129 (substitute* "os/os_test.go"
130 (("/usr/bin") (getcwd))
131 (("/bin/pwd") (which "pwd")))
132
133 ;; Disable failing tests: these tests attempt to access
134 ;; commands or network resources which are neither available or
135 ;; necessary for the build to succeed.
136 (for-each
137 (match-lambda
138 ((file regex)
139 (substitute* file
140 ((regex all before test_name)
141 (string-append before "Disabled" test_name)))))
142 '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
143 ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
144 ("os/os_test.go" "(.+)(TestHostname.+)")
145 ("time/format_test.go" "(.+)(TestParseInSydney.+)")
146
147 ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
148 ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
149 ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
150 ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
151 ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
152 ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
153 ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
154 ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
155 ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")))
156
157 (substitute* "net/lookup_unix.go"
158 (("/etc/protocols") (string-append net-base "/etc/protocols")))
159 (substitute* "time/zoneinfo_unix.go"
160 (("/usr/share/zoneinfo/") tzdata-path))
161 (substitute* (find-files "cmd" "asm.c")
162 (("/lib/ld-linux.*\\.so\\.[0-9]") loader))
163 #t)))
164
165 (replace 'build
166 (lambda* (#:key inputs outputs #:allow-other-keys)
167 ;; FIXME: Some of the .a files are not bit-reproducible.
168 (let* ((output (assoc-ref outputs "out")))
169 (setenv "CC" (which "gcc"))
170 (setenv "GOOS" "linux")
171 (setenv "GOROOT" (dirname (getcwd)))
172 (setenv "GOROOT_FINAL" output)
173 (setenv "GO14TESTS" "1")
174 (invoke "sh" "all.bash"))))
175
176 (replace 'install
177 (lambda* (#:key outputs inputs #:allow-other-keys)
178 (let* ((output (assoc-ref outputs "out"))
179 (doc_out (assoc-ref outputs "doc"))
180 (bash (string-append (assoc-ref inputs "bash") "bin/bash"))
181 (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
182 (tests (string-append
183 (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
184 (mkdir-p tests)
185 (copy-recursively "../test" (string-append tests "/test"))
186 (delete-file-recursively "../test")
187 (mkdir-p docs)
188 (copy-recursively "../api" (string-append docs "/api"))
189 (delete-file-recursively "../api")
190 (copy-recursively "../doc" (string-append docs "/doc"))
191 (delete-file-recursively "../doc")
192
193 (for-each (lambda (file)
194 (let ((file (string-append "../" file)))
195 (install-file file docs)
196 (delete-file file)))
197 '("README" "CONTRIBUTORS" "AUTHORS" "PATENTS"
198 "LICENSE" "VERSION" "robots.txt"))
199 (copy-recursively "../" output)
200 #t))))))
201 (inputs
202 `(("tzdata" ,tzdata)
203 ("pcre" ,pcre)
204 ("gcc:lib" ,(canonical-package gcc) "lib")))
205 (native-inputs
206 `(("pkg-config" ,pkg-config)
207 ("which" ,which)
208 ("net-base" ,net-base)
209 ("perl" ,perl)))
210
211 (home-page "https://golang.org/")
212 (synopsis "Compiler and libraries for Go, a statically-typed language")
213 (description "Go, also commonly referred to as golang, is an imperative
214 programming language designed primarily for systems programming. Go is a
215 compiled, statically typed language in the tradition of C and C++, but adds
216 garbage collection, various safety features, and concurrent programming features
217 in the style of communicating sequential processes (@dfn{CSP}).")
218 (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux"))
219 (license license:bsd-3)))
220
221 (define-public go-1.14
222 (package
223 (inherit go-1.4)
224 (name "go")
225 (version "1.14.4")
226 (source
227 (origin
228 (method git-fetch)
229 (uri (git-reference
230 (url "https://github.com/golang/go")
231 (commit (string-append "go" version))))
232 (file-name (git-file-name name version))
233 (sha256
234 (base32
235 "08bazglmqp123c9dgrxflvxd011xsqfxsgah2kzbvca0mhm6qcm3"))))
236 (arguments
237 (substitute-keyword-arguments (package-arguments go-1.4)
238 ((#:system system)
239 (if (string-prefix? "aarch64-linux" (or (%current-system)
240 (%current-target-system)))
241 "aarch64-linux"
242 system))
243 ((#:phases phases)
244 `(modify-phases ,phases
245 (replace 'prebuild
246 (lambda* (#:key inputs outputs #:allow-other-keys)
247 (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
248 (ld (string-append (assoc-ref inputs "libc") "/lib"))
249 (loader (car (find-files ld "^ld-linux.+")))
250 (net-base (assoc-ref inputs "net-base"))
251 (tzdata-path
252 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
253 (output (assoc-ref outputs "out")))
254
255 ;; Having the patch in the 'patches' field of <origin> breaks
256 ;; the 'TestServeContent' test due to the fact that
257 ;; timestamps are reset. Thus, apply it from here.
258 (invoke "patch" "-p2" "--force" "-i"
259 (assoc-ref inputs "go-skip-gc-test.patch"))
260
261 ;; A side effect of these test scripts is testing
262 ;; cgo. Attempts at using cgo flags and directives with these
263 ;; scripts as specified here (https://golang.org/cmd/cgo/)
264 ;; have not worked. The tests continue to state that they can
265 ;; not find object files/headers despite being present.
266 (for-each
267 delete-file
268 '("cmd/go/testdata/script/mod_case_cgo.txt"
269 "cmd/go/testdata/script/list_find.txt"
270 "cmd/go/testdata/script/list_compiled_imports.txt"
271 "cmd/go/testdata/script/cgo_syso_issue29253.txt"
272 "cmd/go/testdata/script/cover_cgo.txt"
273 "cmd/go/testdata/script/cover_cgo_xtest.txt"
274 "cmd/go/testdata/script/cover_cgo_extra_test.txt"
275 "cmd/go/testdata/script/cover_cgo_extra_file.txt"))
276
277 (for-each make-file-writable (find-files "."))
278
279 (substitute* "os/os_test.go"
280 (("/usr/bin") (getcwd))
281 (("/bin/pwd") (which "pwd"))
282 (("/bin/sh") (which "sh")))
283
284 ;; Add libgcc to runpath
285 (substitute* "cmd/link/internal/ld/lib.go"
286 (("!rpath.set") "true"))
287 (substitute* "cmd/go/internal/work/gccgo.go"
288 (("cgoldflags := \\[\\]string\\{\\}")
289 (string-append "cgoldflags := []string{"
290 "\"-rpath=" gcclib "\""
291 "}"))
292 (("\"-lgcc_s\", ")
293 (string-append
294 "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
295 (substitute* "cmd/go/internal/work/gc.go"
296 (("ldflags = setextld\\(ldflags, compiler\\)")
297 (string-append
298 "ldflags = setextld(ldflags, compiler)\n"
299 "ldflags = append(ldflags, \"-r\")\n"
300 "ldflags = append(ldflags, \"" gcclib "\")\n")))
301
302 ;; Disable failing tests: these tests attempt to access
303 ;; commands or network resources which are neither available
304 ;; nor necessary for the build to succeed.
305 (for-each
306 (match-lambda
307 ((file regex)
308 (substitute* file
309 ((regex all before test_name)
310 (string-append before "Disabled" test_name)))))
311 '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
312 ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
313 ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPort.+)")
314 ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPortWithCancel.+)")
315 ;; 127.0.0.1 doesn't exist
316 ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPTR.+)")
317 ;; 127.0.0.1 doesn't exist
318 ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPTRWithCancel.+)")
319 ;; /etc/services doesn't exist
320 ("net/parse_test.go" "(.+)(TestReadLine.+)")
321 ("os/os_test.go" "(.+)(TestHostname.+)")
322 ;; The user's directory doesn't exist
323 ("os/os_test.go" "(.+)(TestUserHomeDir.+)")
324 ("time/format_test.go" "(.+)(TestParseInSydney.+)")
325 ("time/format_test.go" "(.+)(TestParseInLocation.+)")
326 ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
327 ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
328 ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
329 ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
330 ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
331 ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
332 ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
333 ("os/exec/exec_test.go" "(.+)(TestIgnorePipeErrorOnSuccess.+)")
334 ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
335 ("os/exec/exec_test.go" "(.+)(TestExtraFiles/areturn.+)")
336 ("cmd/go/go_test.go" "(.+)(TestCoverageWithCgo.+)")
337 ("cmd/go/go_test.go" "(.+)(TestTwoPkgConfigs.+)")
338 ("os/exec/exec_test.go" "(.+)(TestOutputStderrCapture.+)")
339 ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")
340 ("os/exec/exec_test.go" "(.+)(TestExtraFilesRace.+)")
341 ("net/lookup_test.go" "(.+)(TestLookupPort.+)")
342 ("syscall/exec_linux_test.go"
343 "(.+)(TestCloneNEWUSERAndRemapNoRootDisableSetgroups.+)")))
344
345 ;; These tests fail on aarch64-linux
346 (substitute* "cmd/dist/test.go"
347 (("t.registerHostTest\\(\"testsanitizers/msan.*") ""))
348
349 ;; fix shebang for testar script
350 ;; note the target script is generated at build time.
351 (substitute* "../misc/cgo/testcarchive/carchive_test.go"
352 (("#!/usr/bin/env") (string-append "#!" (which "env"))))
353
354 (substitute* "net/lookup_unix.go"
355 (("/etc/protocols") (string-append net-base "/etc/protocols")))
356 (substitute* "net/port_unix.go"
357 (("/etc/services") (string-append net-base "/etc/services")))
358 (substitute* "time/zoneinfo_unix.go"
359 (("/usr/share/zoneinfo/") tzdata-path))
360 (substitute* (find-files "cmd" "\\.go")
361 (("/lib(64)?/ld-linux.*\\.so\\.[0-9]") loader))
362 #t)))
363 (add-before 'build 'set-bootstrap-variables
364 (lambda* (#:key outputs inputs #:allow-other-keys)
365 ;; Tell the build system where to find the bootstrap Go.
366 (let ((go (assoc-ref inputs "go")))
367 (setenv "GOROOT_BOOTSTRAP" go)
368 (setenv "GOGC" "400")
369 #t)))
370 (replace 'build
371 (lambda* (#:key inputs outputs #:allow-other-keys)
372 ;; FIXME: Some of the .a files are not bit-reproducible.
373 (let* ((output (assoc-ref outputs "out")))
374 (setenv "CC" (which "gcc"))
375 (setenv "GOOS" "linux")
376 (setenv "GOROOT" (dirname (getcwd)))
377 (setenv "GOROOT_FINAL" output)
378 (setenv "CGO_ENABLED" "1")
379 (invoke "sh" "all.bash"))))
380 (replace 'install
381 ;; TODO: Most of this could be factorized with Go 1.4.
382 (lambda* (#:key outputs #:allow-other-keys)
383 (let* ((output (assoc-ref outputs "out"))
384 (doc_out (assoc-ref outputs "doc"))
385 (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
386 (src (string-append
387 (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
388 ;; Prevent installation of the build cache, which contains
389 ;; store references to most of the tools used to build Go and
390 ;; would unnecessarily increase the size of Go's closure if it
391 ;; was installed.
392 (delete-file-recursively "../pkg/obj")
393
394 (mkdir-p src)
395 (copy-recursively "../test" (string-append src "/test"))
396 (delete-file-recursively "../test")
397 (mkdir-p docs)
398 (copy-recursively "../api" (string-append docs "/api"))
399 (delete-file-recursively "../api")
400 (copy-recursively "../doc" (string-append docs "/doc"))
401 (delete-file-recursively "../doc")
402
403 (for-each
404 (lambda (file)
405 (let* ((filein (string-append "../" file))
406 (fileout (string-append docs "/" file)))
407 (copy-file filein fileout)
408 (delete-file filein)))
409 ;; Note the slightly different file names compared to 1.4.
410 '("README.md" "CONTRIBUTORS" "AUTHORS" "PATENTS"
411 "LICENSE" "VERSION" "CONTRIBUTING.md" "robots.txt"))
412
413 (copy-recursively "../" output)
414 #t)))))))
415 (native-inputs
416 `(("go" ,go-1.4)
417 ("go-skip-gc-test.patch" ,(search-patch "go-skip-gc-test.patch"))
418 ,@(match (%current-system)
419 ((or "armhf-linux" "aarch64-linux")
420 `(("gold" ,binutils-gold)))
421 (_ `()))
422 ,@(package-native-inputs go-1.4)))
423 (supported-systems %supported-systems)))
424
425 (define-public go go-1.14)
426
427 (define-public go-github-com-alsm-ioprogress
428 (let ((commit "063c3725f436e7fba0c8f588547bee21ffec7ac5")
429 (revision "0"))
430 (package
431 (name "go-github-com-alsm-ioprogress")
432 (version (git-version "0.0.0" revision commit))
433 (source (origin
434 (method git-fetch)
435 (uri (git-reference
436 (url "https://github.com/alsm/ioprogress")
437 (commit commit)))
438 (file-name (git-file-name name version))
439 (sha256
440 (base32
441 "10ym5qlq77nynmkxbk767f2hfwyxg2k7hrzph05hvgzv833dhivh"))))
442 (build-system go-build-system)
443 (arguments
444 '(#:import-path "github.com/alsm/ioprogress"))
445 (synopsis "Textual progress bars in Go")
446 (description "@code{ioprogress} is a Go library with implementations of
447 @code{io.Reader} and @code{io.Writer} that draws progress bars. The primary use
448 case for these are for command-line applications but alternate progress bar
449 writers can be supplied for alternate environments.")
450 (home-page "https://github.com/alsm/ioprogress")
451 (license license:expat))))
452
453 (define-public go-github-com-aki237-nscjar
454 (let ((commit "e2df936ddd6050d30dd90c7214c02b5019c42f06")
455 (revision "0"))
456 (package
457 (name "go-github-com-aki237-nscjar")
458 (version (git-version "0.0.0" revision commit))
459 (source (origin
460 (method git-fetch)
461 (uri (git-reference
462 (url "https://github.com/aki237/nscjar")
463 (commit commit)))
464 (file-name (git-file-name name version))
465 (sha256
466 (base32
467 "03y7zzq12qvhsq86lb06sgns8xrkblbn7i7wd886wk3zr5574b96"))))
468 (build-system go-build-system)
469 (arguments
470 '(#:import-path "github.com/aki237/nscjar"))
471 (synopsis "Handle Netscape / Mozilla cookies")
472 (description "@code{nscjar} is a Go library used to parse and output
473 Netscape/Mozilla's old-style cookie files. It also implements a simple cookie
474 jar struct to manage the cookies added to the cookie jar.")
475 (home-page "https://github.com/aki237/nscjar")
476 (license license:expat))))
477
478 (define-public go-github.com-jessevdk-go-flags
479 (package
480 (name "go-github.com-jessevdk-go-flags")
481 (version "1.3.0")
482 (source (origin
483 (method git-fetch)
484 (uri (git-reference
485 (url "https://github.com/jessevdk/go-flags")
486 (commit (string-append "v" version))))
487 (file-name (git-file-name name version))
488 (sha256
489 (base32
490 "1jk2k2l10lwrn1r3nxdvbs0yz656830j4khzirw8p4ahs7c5zz36"))))
491 (build-system go-build-system)
492 (arguments
493 '(#:import-path "github.com/jessevdk/go-flags"))
494 (synopsis "Go library for parsing command line arguments")
495 (description
496 "The @code{flags} package provides a command line option parser. The
497 functionality is similar to the go builtin @code{flag} package, but
498 @code{flags} provides more options and uses reflection to provide a succinct
499 way of specifying command line options.")
500 (home-page "https://github.com/jessevdk/go-flags")
501 (license license:bsd-3)))
502
503 (define-public go-gopkg.in-tomb.v2
504 (let ((commit "d5d1b5820637886def9eef33e03a27a9f166942c")
505 (revision "0"))
506 (package
507 (name "go-gopkg.in-tomb.v2")
508 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
509 (source (origin
510 (method git-fetch)
511 (uri (git-reference
512 (url "https://github.com/go-tomb/tomb")
513 (commit commit)))
514 (file-name (string-append name "-" version ".tar.gz"))
515 (sha256
516 (base32
517 "1sv15sri99szkdz1bkh0ir46w9n8prrwx5hfai13nrhkawfyfy10"))))
518 (build-system go-build-system)
519 (arguments
520 '(#:import-path "gopkg.in/tomb.v2"
521 #:phases
522 (modify-phases %standard-phases
523 (add-after 'unpack 'patch-source
524 (lambda _
525 ;; Add a missing % to fix the compilation of this test
526 (substitute* "src/gopkg.in/tomb.v2/tomb_test.go"
527 (("t.Fatalf\\(`Killf\\(\"BO%s")
528 "t.Fatalf(`Killf(\"BO%%s"))
529 #t)))))
530 (synopsis "@code{tomb} handles clean goroutine tracking and termination")
531 (description
532 "The @code{tomb} package handles clean goroutine tracking and
533 termination.")
534 (home-page "https://gopkg.in/tomb.v2")
535 (license license:bsd-3))))
536
537 (define-public go-github.com-jtolds-gls
538 (package
539 (name "go-github.com-jtolds-gls")
540 (version "4.20")
541 (source (origin
542 (method git-fetch)
543 (uri (git-reference
544 (url "https://github.com/jtolds/gls")
545 (commit (string-append "v" version))))
546 (file-name (git-file-name name version))
547 (sha256
548 (base32
549 "1k7xd2q2ysv2xsh373qs801v6f359240kx0vrl0ydh7731lngvk6"))))
550 (build-system go-build-system)
551 (arguments
552 '(#:import-path "github.com/jtolds/gls"))
553 (synopsis "@code{gls} provides Goroutine local storage")
554 (description
555 "The @code{gls} package provides a way to store a retrieve values
556 per-goroutine.")
557 (home-page "https://github.com/jtolds/gls")
558 (license license:expat)))
559
560 (define-public go-github-com-tj-docopt
561 (package
562 (name "go-github-com-tj-docopt")
563 (version "1.0.0")
564 (source (origin
565 (method git-fetch)
566 (uri (git-reference
567 (url "https://github.com/tj/docopt")
568 (commit (string-append "v" version))))
569 (file-name (git-file-name name version))
570 (sha256
571 (base32
572 "06h8hdg1mh3s78zqlr01g4si7k0f0g6pr7fj7lnvfg446hgc7080"))))
573 (build-system go-build-system)
574 (arguments
575 '(#:import-path "github.com/tj/docopt"))
576 (synopsis "Go implementation of docopt")
577 (description
578 "This library allows the user to define a command-line interface from a
579 program's help message rather than specifying it programmatically with
580 command-line parsers.")
581 (home-page "https://github.com/tj/docopt")
582 (license license:expat)))
583
584 (define-public go-github-com-hashicorp-hcl
585 (let ((commit "23c074d0eceb2b8a5bfdbb271ab780cde70f05a8")
586 (revision "0"))
587 (package
588 (name "go-github-com-hashicorp-hcl")
589 (version (git-version "0.0.0" revision commit))
590 (source (origin
591 (method git-fetch)
592 (uri (git-reference
593 (url "https://github.com/hashicorp/hcl")
594 (commit commit)))
595 (file-name (git-file-name name version))
596 (sha256
597 (base32
598 "0db4lpqb5m130rmfy3s3gjjf4dxllypmyrzxv6ggqhkmwmc7w4mc"))))
599 (build-system go-build-system)
600 (arguments
601 '(#:tests? #f
602 #:import-path "github.com/hashicorp/hcl"))
603 (synopsis "Go implementation of HashiCorp Configuration Language")
604 (description
605 "This package contains the main implementation of the @acronym{HCL,
606 HashiCorp Configuration Language}. HCL is designed to be a language for
607 expressing configuration which is easy for both humans and machines to read.")
608 (home-page "https://github.com/hashicorp/hcl")
609 (license license:mpl2.0))))
610
611 (define-public go-golang-org-x-tools
612 (let ((commit "8b927904ee0dec805c89aaf9172f4459296ed6e8")
613 (revision "0"))
614 (package
615 (name "go-golang-org-x-tools")
616 (version (git-version "0.1.3" revision commit))
617 (source (origin
618 (method git-fetch)
619 (uri (git-reference
620 (url "https://go.googlesource.com/tools")
621 (commit commit)))
622 (file-name (string-append "go.googlesource.com-tools-"
623 version "-checkout"))
624 (sha256
625 (base32
626 "0iinb70xhcjsddgi42ia1n745lx2ibnjdm6m2v666qrk3876vpck"))))
627 (build-system go-build-system)
628 (arguments
629 `(#:import-path "golang.org/x/tools"
630 ;; Source-only package
631 #:tests? #f
632 #:phases
633 (modify-phases %standard-phases
634 ;; Source-only package
635 (delete 'build))))
636 (synopsis "Tools that support the Go programming language")
637 (description "This package provides miscellaneous tools that support the
638 Go programming language.")
639 (home-page "https://go.googlesource.com/tools/")
640 (license license:bsd-3))))
641
642 (define-public go-golang-org-x-crypto
643 (let ((commit "2aa609cf4a9d7d1126360de73b55b6002f9e052a")
644 (revision "5"))
645 (package
646 (name "go-golang-org-x-crypto")
647 (version (git-version "0.0.0" revision commit))
648 (source (origin
649 (method git-fetch)
650 (uri (git-reference
651 (url "https://go.googlesource.com/crypto")
652 (commit commit)))
653 (file-name (string-append "go.googlesource.com-crypto-"
654 version "-checkout"))
655 (sha256
656 (base32
657 "1yvis6fqbsd7f356aqyi18f76vnwj3bry6mxqnkvshq4cwrf92il"))))
658 (build-system go-build-system)
659 (arguments
660 '(#:import-path "golang.org/x/crypto"
661 ;; Source-only package
662 #:tests? #f
663 #:phases
664 (modify-phases %standard-phases
665 ;; Source-only package
666 (delete 'build)
667 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
668 (lambda* (#:key outputs #:allow-other-keys)
669 (map (lambda (file)
670 (make-file-writable file))
671 (find-files
672 (string-append (assoc-ref outputs "out")
673 "/src/golang.org/x/crypto/ed25519/testdata")
674 ".*\\.gz$"))
675 #t)))))
676 (propagated-inputs
677 `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
678 (synopsis "Supplementary cryptographic libraries in Go")
679 (description "This package provides supplementary cryptographic libraries
680 for the Go language.")
681 (home-page "https://go.googlesource.com/crypto/")
682 (license license:bsd-3))))
683
684 (define-public go-golang-org-x-net
685 (let ((commit "ba9fcec4b297b415637633c5a6e8fa592e4a16c3")
686 (revision "4"))
687 (package
688 (name "go-golang-org-x-net")
689 (version (git-version "0.0.0" revision commit))
690 (source (origin
691 (method git-fetch)
692 (uri (git-reference
693 (url "https://go.googlesource.com/net")
694 (commit commit)))
695 (file-name (git-file-name name version))
696 (sha256
697 (base32
698 "1hbqvy6r0s5h0dpdqw8fynl3cq0acin3iyqki9xvl5r8h33yb9bx"))))
699 (build-system go-build-system)
700 (arguments
701 `(#:import-path "golang.org/x/net"
702 ; Source-only package
703 #:tests? #f
704 #:phases
705 (modify-phases %standard-phases
706 (delete 'build))))
707 (synopsis "Go supplemental networking libraries")
708 (description "This package provides supplemental Go networking libraries.")
709 (home-page "https://go.googlesource.com/net")
710 (license license:bsd-3))))
711
712 (define-public go-golang-org-x-image
713 (let ((commit "58c23975cae11f062d4b3b0c143fe248faac195d")
714 (revision "1"))
715 (package
716 (name "go-golang-org-x-image")
717 (version (git-version "0.0.0" revision commit))
718 (source (origin
719 (method git-fetch)
720 (uri (git-reference
721 (url "https://go.googlesource.com/image")
722 (commit commit)))
723 (file-name (string-append "go.googlesource.com-image-"
724 version "-checkout"))
725 (sha256
726 (base32
727 "0i2p2girc1sfcic6xs6vrq0fp3szfx057xppksb67kliywjjrm5x"))))
728 (build-system go-build-system)
729 (arguments
730 `(#:import-path "golang.org/x/image"
731 ; Source-only package
732 #:tests? #f
733 #:phases
734 (modify-phases %standard-phases
735 (delete 'build))))
736 (home-page "https://go.googlesource.com/image")
737 (synopsis "Supplemental Go image libraries")
738 (description "This package provides supplemental Go libraries for image
739 processing.")
740 (license license:bsd-3))))
741
742 (define-public go-golang-org-x-sys
743 (let ((commit "c709ea063b76879dc9915358f55d4d77c16ab6d5")
744 (revision "6"))
745 (package
746 (name "go-golang-org-x-sys")
747 (version (git-version "0.0.0" revision commit))
748 (source (origin
749 (method git-fetch)
750 (uri (git-reference
751 (url "https://go.googlesource.com/sys")
752 (commit commit)))
753 (file-name (git-file-name name version))
754 (sha256
755 (base32
756 "15nq53a6kcqchng4j0d1pjw0m6hny6126nhjdwqw5n9dzh6a226d"))))
757 (build-system go-build-system)
758 (arguments
759 `(#:import-path "golang.org/x/sys"
760 ;; Source-only package
761 #:tests? #f
762 #:phases
763 (modify-phases %standard-phases
764 (delete 'build))))
765 (synopsis "Go support for low-level system interaction")
766 (description "This package provides supplemental libraries offering Go
767 support for low-level interaction with the operating system.")
768 (home-page "https://go.googlesource.com/sys")
769 (license license:bsd-3))))
770
771 (define-public go-golang-org-x-text
772 (package
773 (name "go-golang-org-x-text")
774 (version "0.3.2")
775 (source (origin
776 (method git-fetch)
777 (uri (git-reference
778 (url "https://go.googlesource.com/text")
779 (commit (string-append "v" version))))
780 (file-name (string-append "go.googlesource.com-text-"
781 version "-checkout"))
782 (sha256
783 (base32
784 "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"))))
785 (build-system go-build-system)
786 (arguments
787 `(#:import-path "golang.org/x/text"
788 ; Source-only package
789 #:tests? #f
790 #:phases
791 (modify-phases %standard-phases
792 (delete 'build))))
793 (synopsis "Supplemental Go text processing libraries")
794 (description "This package provides supplemental Go libraries for text
795 processing.")
796 (home-page "https://go.googlesource.com/text")
797 (license license:bsd-3)))
798
799 (define-public go-golang-org-x-time
800 (let ((commit "9d24e82272b4f38b78bc8cff74fa936d31ccd8ef")
801 (revision "2"))
802 (package
803 (name "go-golang-org-x-time")
804 (version (git-version "0.0.0" revision commit))
805 (source (origin
806 (method git-fetch)
807 (uri (git-reference
808 (url "https://go.googlesource.com/time")
809 (commit commit)))
810 (file-name (git-file-name name version))
811 (sha256
812 (base32
813 "1f5nkr4vys2vbd8wrwyiq2f5wcaahhpxmia85d1gshcbqjqf8dkb"))))
814 (build-system go-build-system)
815 (arguments
816 `(#:import-path "golang.org/x/time"
817 ; Source-only package
818 #:tests? #f
819 #:phases
820 (modify-phases %standard-phases
821 (delete 'build))))
822 ; (propagated-inputs
823 ; `(("go-golang-org-x-net" ,go-golang-org-x-net)))
824 (synopsis "Supplemental Go time libraries")
825 (description "This package provides supplemental Go libraries related to
826 time.")
827 (home-page "https://godoc.org/golang.org/x/time/rate")
828 (license license:bsd-3))))
829
830 (define-public go-golang-org-x-oauth2
831 (let ((commit "0f29369cfe4552d0e4bcddc57cc75f4d7e672a33")
832 (revision "1"))
833 (package
834 (name "go-golang-org-x-oauth2")
835 (version (git-version "0.0.0" revision commit))
836 (source (origin
837 (method git-fetch)
838 (uri (git-reference
839 (url "https://go.googlesource.com/oauth2")
840 (commit commit)))
841 (file-name (string-append "go.googlesource.com-oauth2-"
842 version "-checkout"))
843 (sha256
844 (base32
845 "06jwpvx0x2gjn2y959drbcir5kd7vg87k0r1216abk6rrdzzrzi2"))))
846 (build-system go-build-system)
847 (arguments
848 `(#:import-path "golang.org/x/oauth2"))
849 (propagated-inputs
850 `(("go-golang-org-x-net" ,go-golang-org-x-net)))
851 (home-page "https://go.googlesource.com/oauth2")
852 (synopsis "Client implementation of the OAuth 2.0 spec")
853 (description "This package contains a client implementation for OAuth 2.0
854 spec in Go.")
855 (license license:bsd-3))))
856
857 (define-public go-github-com-burntsushi-toml
858 (package
859 (name "go-github-com-burntsushi-toml")
860 (version "0.3.1")
861 (source
862 (origin
863 (method git-fetch)
864 (uri (git-reference
865 (url "https://github.com/BurntSushi/toml")
866 (commit (string-append "v" version))))
867 (file-name (git-file-name name version))
868 (sha256
869 (base32
870 "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6"))))
871 (build-system go-build-system)
872 (arguments
873 '(#:import-path "github.com/BurntSushi/toml"))
874 (home-page "https://github.com/BurntSushi/toml")
875 (synopsis "Toml parser and encoder for Go")
876 (description "This package is toml parser and encoder for Go. The interface
877 is similar to Go's standard library @code{json} and @code{xml} package.")
878 (license license:expat)))
879
880 (define-public go-github-com-getsentry-raven-go
881 (let ((commit "5c24d5110e0e198d9ae16f1f3465366085001d92")
882 (revision "0"))
883 (package
884 (name "go-github-com-getsentry-raven-go")
885 (version (git-version "0.2.0" revision commit))
886 (source
887 (origin
888 (method git-fetch)
889 (uri (git-reference
890 (url "https://github.com/getsentry/raven-go")
891 (commit commit)))
892 (file-name (git-file-name name version))
893 (sha256
894 (base32
895 "0lvc376sq8r8jhy2v1m6rf1wyld61pvbk0x6j9xpg56ivqy69xs7"))))
896 (build-system go-build-system)
897 (arguments
898 '(#:import-path "github.com/getsentry/raven-go"))
899 (propagated-inputs
900 `(("go-github-com-certifi-gocertifi" ,go-github-com-certifi-gocertifi)
901 ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)))
902 (home-page "https://github.com/getsentry/raven-go")
903 (synopsis "Sentry client in Go")
904 (description "This package is a Go client API for the Sentry event/error
905 logging system.")
906 (license license:bsd-3))))
907
908 (define-public go-github-com-hashicorp-go-version
909 (let ((commit
910 "03c5bf6be031b6dd45afec16b1cf94fc8938bc77")
911 (revision "0"))
912 (package
913 (name "go-github-com-hashicorp-go-version")
914 (version (git-version "0.0.0" revision commit))
915 (source
916 (origin
917 (method git-fetch)
918 (uri (git-reference
919 (url "https://github.com/hashicorp/go-version")
920 (commit commit)))
921 (file-name (git-file-name name version))
922 (sha256
923 (base32
924 "0sjq57gpfznaqdrbyb2p0bn90g9h661cvr0jrk6ngags4pbw14ik"))))
925 (build-system go-build-system)
926 (arguments
927 '(#:import-path "github.com/hashicorp/go-version"))
928 (home-page
929 "https://github.com/hashicorp/go-version")
930 (synopsis "Go library for parsing and verifying versions and version
931 constraints")
932 (description "This package is a library for parsing versions and version
933 constraints, and verifying versions against a set of constraints. It can sort
934 a collection of versions properly, handles prerelease/beta versions, can
935 increment versions.")
936 (license license:mpl2.0))))
937
938 (define-public go-github-com-jpillora-backoff
939 (let ((commit
940 "06c7a16c845dc8e0bf575fafeeca0f5462f5eb4d")
941 (revision "0"))
942 (package
943 (name "go-github-com-jpillora-backoff")
944 (version (git-version "0.0.0" revision commit))
945 (source
946 (origin
947 (method git-fetch)
948 (uri (git-reference
949 (url "https://github.com/jpillora/backoff")
950 (commit commit)))
951 (file-name (git-file-name name version))
952 (sha256
953 (base32
954 "0xhvxr7bm47czdc5hy3kl508z3y4j91i2jm7vg774i52zych6k4l"))))
955 (build-system go-build-system)
956 (arguments
957 '(#:import-path "github.com/jpillora/backoff"))
958 (home-page "https://github.com/jpillora/backoff")
959 (synopsis "Simple exponential backoff counter in Go")
960 (description "This package is a simple exponential backoff counter in
961 Go.")
962 (license license:expat))))
963
964 (define-public go-github-com-stretchr-objx
965 (package
966 (name "go-github-com-stretchr-objx")
967 (version "0.2.0")
968 (source
969 (origin
970 (method git-fetch)
971 (uri (git-reference
972 (url "https://github.com/stretchr/objx")
973 (commit (string-append "v" version))))
974 (file-name (git-file-name name version))
975 (sha256
976 (base32
977 "0pcdvakxgddaiwcdj73ra4da05a3q4cgwbpm2w75ycq4kzv8ij8k"))))
978 (build-system go-build-system)
979 (arguments
980 '(#:import-path "github.com/stretchr/objx"))
981 (home-page "https://github.com/stretchr/objx")
982 (synopsis "Go package for dealing with maps, slices, JSON and other data")
983 (description "This package provides a Go library for dealing with maps,
984 slices, JSON and other data.")
985 (license license:expat)))
986
987 (define-public go-github-com-stretchr-testify
988 (package
989 (name "go-github-com-stretchr-testify")
990 (version "1.5.1")
991 (source
992 (origin
993 (method git-fetch)
994 (uri (git-reference
995 (url "https://github.com/stretchr/testify")
996 (commit (string-append "v" version))))
997 (file-name (git-file-name name version))
998 (sha256
999 (base32
1000 "09r89m1wy4cjv2nps1ykp00qjpi0531r07q3s34hr7m6njk4srkl"))))
1001 (build-system go-build-system)
1002 (arguments
1003 '(#:import-path "github.com/stretchr/testify"))
1004 (propagated-inputs
1005 `(("github.com/davecgh/go-spew" ,go-github-com-davecgh-go-spew)
1006 ("github.com/pmezard/go-difflib" ,go-github-com-pmezard-go-difflib)
1007 ("github.com/stretchr/objx" ,go-github-com-stretchr-objx)
1008 ("gopkg.in/yaml.v2" ,go-gopkg-in-yaml-v2)))
1009 (home-page "https://github.com/stretchr/testify")
1010 (synopsis "Go helper library for tests and invariant checking")
1011 (description "This package provide many tools for testifying that your
1012 code will behave as you intend.
1013
1014 Features include:
1015 @itemize
1016 @item Easy assertions
1017 @item Mocking
1018 @item HTTP response trapping
1019 @item Testing suite interfaces and functions.
1020 @end itemize")
1021 (license license:expat)))
1022
1023 (define-public go-github-com-tevino-abool
1024 (let ((commit
1025 "3c25f2fe7cd0ef3eabefce1d90efd69a65d35b12")
1026 (revision "0"))
1027 (package
1028 (name "go-github-com-tevino-abool")
1029 (version (git-version "0.0.0" revision commit))
1030 (source
1031 (origin
1032 (method git-fetch)
1033 (uri (git-reference
1034 (url "https://github.com/tevino/abool")
1035 (commit commit)))
1036 (file-name (git-file-name name version))
1037 (sha256
1038 (base32
1039 "1wxqrclxk93q0aj15z596dx2y57x9nkhi64nbrr5cxnhxn8vwixm"))))
1040 (build-system go-build-system)
1041 (arguments
1042 '(#:import-path "github.com/tevino/abool"))
1043 (home-page "https://github.com/tevino/abool")
1044 (synopsis "Atomic boolean library for Go code")
1045 (description "This package is atomic boolean library for Go code,
1046 optimized for performance yet simple to use.")
1047 (license license:expat))))
1048
1049 (define-public go-github-com-blang-semver
1050 (let ((commit "60ec3488bfea7cca02b021d106d9911120d25fe9")
1051 (revision "0"))
1052 (package
1053 (name "go-github-com-blang-semver")
1054 (version (git-version "0.0.0" revision commit))
1055 (source
1056 (origin
1057 (method git-fetch)
1058 (uri (git-reference
1059 (url "https://github.com/blang/semver")
1060 (commit commit)))
1061 (file-name (git-file-name name version))
1062 (sha256
1063 (base32
1064 "19pli07y5592g4dyjyj0jq5rn548vc3fz0qg3624vm1j5828p1c2"))))
1065 (build-system go-build-system)
1066 (arguments
1067 '(#:import-path "github.com/blang/semver"))
1068 (home-page "https://github.com/blang/semver")
1069 (synopsis "Semantic versioning library written in Go")
1070 (description "Semver is a library for Semantic versioning written in Go.")
1071 (license license:expat))))
1072
1073 (define-public go-github-com-emicklei-go-restful
1074 (let ((commit "89ef8af493ab468a45a42bb0d89a06fccdd2fb22")
1075 (revision "0"))
1076 (package
1077 (name "go-github-com-emicklei-go-restful")
1078 (version (git-version "0.0.0" revision commit))
1079 (source
1080 (origin
1081 (method git-fetch)
1082 (uri (git-reference
1083 (url "https://github.com/emicklei/go-restful")
1084 (commit commit)))
1085 (file-name (git-file-name name version))
1086 (sha256
1087 (base32
1088 "0rrlfcfq80fkxifpih6bq31vavb5mf4530xz51pp9pq1mn2fzjfh"))))
1089 (build-system go-build-system)
1090 (arguments
1091 '(#:import-path "github.com/emicklei/go-restful"))
1092 (home-page "https://github.com/emicklei/go-restful")
1093 (synopsis "Build REST-style web services using Go")
1094 (description "This package provides @code{go-restful}, which helps
1095 developers to use @code{http} methods explicitly and in a way that's consistent
1096 with the HTTP protocol definition.")
1097 (license license:expat))))
1098
1099 (define-public go-github-com-google-cadvisor
1100 (let ((commit "2ed7198f77395ee9a172878a0a7ab92ab59a2cfd")
1101 (revision "0"))
1102 (package
1103 (name "go-github-com-google-cadvisor")
1104 (version (git-version "0.0.0" revision commit))
1105 (source
1106 (origin
1107 (method git-fetch)
1108 (uri (git-reference
1109 (url "https://github.com/google/cadvisor")
1110 (commit commit)))
1111 (file-name (git-file-name name version))
1112 (sha256
1113 (base32
1114 "1w8p345z5j0gk3yiq5ah0znd5lfh348p2s624k5r10drz04p3f55"))))
1115 (build-system go-build-system)
1116 (arguments
1117 '(#:import-path "github.com/google/cadvisor"))
1118 (home-page "https://github.com/google/cadvisor")
1119 (synopsis "Analyze resource usage of running containers")
1120 (description "The package provides @code{cadvisor}, which provides
1121 information about the resource usage and performance characteristics of running
1122 containers.")
1123 (license license:asl2.0))))
1124
1125 (define-public go-github-com-google-gofuzz
1126 (let ((commit "fd52762d25a41827db7ef64c43756fd4b9f7e382")
1127 (revision "0"))
1128 (package
1129 (name "go-github-com-google-gofuzz")
1130 (version (git-version "0.0.0" revision commit))
1131 (source
1132 (origin
1133 (method git-fetch)
1134 (uri (git-reference
1135 (url "https://github.com/google/gofuzz")
1136 (commit commit)))
1137 (file-name (git-file-name name version))
1138 (sha256
1139 (base32
1140 "1yxmmr73h0lq7ryf3q9a7pcm2x5xrg4d5bxkq8n5pxwxwyq26kw8"))))
1141 (build-system go-build-system)
1142 (arguments
1143 '(#:import-path "github.com/google/gofuzz"))
1144 (home-page "https://github.com/google/gofuzz")
1145 (synopsis "Fuzz testing library for Go")
1146 (description "Gofuzz is a library for populationg Go objects with random
1147 values for the purpose of fuzz testing.")
1148 (license license:asl2.0))))
1149
1150 (define-public go-github-com-gorilla-context
1151 (let ((commit "08b5f424b9271eedf6f9f0ce86cb9396ed337a42")
1152 (revision "0"))
1153 (package
1154 (name "go-github-com-gorilla-context")
1155 (version (git-version "0.0.0" revision commit))
1156 (source
1157 (origin
1158 (method git-fetch)
1159 (uri (git-reference
1160 (url "https://github.com/gorilla/context")
1161 (commit commit)))
1162 (file-name (git-file-name name version))
1163 (sha256
1164 (base32
1165 "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4"))))
1166 (build-system go-build-system)
1167 (arguments
1168 '(#:import-path "github.com/gorilla/context"))
1169 (home-page "https://github.com/gorilla/context")
1170 (synopsis "Go registry for request variables")
1171 (description "This package provides @code{gorilla/context}, which is a general purpose registry for global request variables in the Go programming language.")
1172 (license license:bsd-3))))
1173
1174 (define-public go-github-com-gorilla-mux
1175 (let ((commit "599cba5e7b6137d46ddf58fb1765f5d928e69604")
1176 (revision "0"))
1177 (package
1178 (name "go-github-com-gorilla-mux")
1179 (version (git-version "0.0.0" revision commit))
1180 (source
1181 (origin
1182 (method git-fetch)
1183 (uri (git-reference
1184 (url "https://github.com/gorilla/mux")
1185 (commit commit)))
1186 (file-name (git-file-name name version))
1187 (sha256
1188 (base32
1189 "0wd6jjii1kg5s0nk3ri6gqriz6hbd6bbcn6x4jf8n7ncrb8qsxyz"))))
1190 (build-system go-build-system)
1191 (arguments
1192 '(#:import-path "github.com/gorilla/mux"))
1193 (home-page "https://github.com/gorilla/mux")
1194 (synopsis "URL router and dispatcher for Go")
1195 (description
1196 "Gorilla/Mux implements a request router and dispatcher for matching
1197 incoming requests with their respective handler.")
1198 (license license:bsd-3))))
1199
1200 (define-public go-github-com-jonboulle-clockwork
1201 (let ((commit "e3653ace2d63753697e0e5b07b9393971c0bba9d")
1202 (revision "0"))
1203 (package
1204 (name "go-github-com-jonboulle-clockwork")
1205 (version (git-version "0.0.0" revision commit))
1206 (source
1207 (origin
1208 (method git-fetch)
1209 (uri (git-reference
1210 (url "https://github.com/jonboulle/clockwork")
1211 (commit commit)))
1212 (file-name (git-file-name name version))
1213 (sha256
1214 (base32
1215 "1avzqhks12a8x2yzpvjsf3k0gv9cy7zx2z88hn0scacnxkphisvc"))))
1216 (build-system go-build-system)
1217 (arguments
1218 '(#:import-path "github.com/jonboulle/clockwork"))
1219 (home-page "https://github.com/jonboulle/clockwork")
1220 (synopsis "Fake clock library for Go")
1221 (description
1222 "Replace uses of the @code{time} package with the
1223 @code{clockwork.Clock} interface instead.")
1224 (license license:asl2.0))))
1225
1226 (define-public go-github-com-spf13-afero
1227 (package
1228 (name "go-github-com-spf13-afero")
1229 (version "1.2.2")
1230 (source
1231 (origin
1232 (method git-fetch)
1233 (uri (git-reference
1234 (url "https://github.com/spf13/afero")
1235 (commit (string-append "v" version))))
1236 (file-name (git-file-name name version))
1237 (sha256
1238 (base32
1239 "0j9r65qgd58324m85lkl49vk9dgwd62g7dwvkfcm3k6i9dc555a9"))))
1240 (build-system go-build-system)
1241 (arguments
1242 `(#:import-path "github.com/spf13/afero"))
1243 (propagated-inputs
1244 `(("golang.org/x/text" ,go-golang-org-x-text)))
1245 (home-page "https://github.com/spf13/afero")
1246 (synopsis "File system abstraction for Go")
1247 (description
1248 "This package provides a file system abstraction for Go.")
1249 (license license:asl2.0)))
1250
1251 (define-public go-github-com-spf13-cast
1252 (package
1253 (name "go-github-com-spf13-cast")
1254 (version "1.3.1")
1255 (source
1256 (origin
1257 (method git-fetch)
1258 (uri (git-reference
1259 (url "https://github.com/spf13/cast")
1260 (commit (string-append "v" version))))
1261 (file-name (git-file-name name version))
1262 (sha256
1263 (base32
1264 "0lb84788glr0qzrq2ifi36rgvp96qrgywvxrr3ggq5hrbr38hgn1"))))
1265 (build-system go-build-system)
1266 (arguments
1267 `(#:import-path "github.com/spf13/cast"))
1268 (native-inputs
1269 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
1270 (home-page "https://github.com/spf13/cast")
1271 (synopsis "Safe and easy casting from one type to another in Go")
1272 (description "Safe and easy casting from one type to another in Go")
1273 (license license:expat)))
1274
1275 (define-public go-github-com-spf13-cobra
1276 (package
1277 (name "go-github-com-spf13-cobra")
1278 (version "1.0.0")
1279 (source
1280 (origin
1281 (method git-fetch)
1282 (uri (git-reference
1283 (url "https://github.com/spf13/cobra")
1284 (commit (string-append "v" version))))
1285 (file-name (git-file-name name version))
1286 (sha256
1287 (base32
1288 "0vbppqqhby302a5ayn0296jqr71qkcd4c9am7wzsk6z71fwdsa7h"))))
1289 (build-system go-build-system)
1290 (arguments
1291 `(#:import-path "github.com/spf13/cobra"))
1292 (propagated-inputs
1293 `(("github.com/spf13/pflag" ,go-github-com-spf13-pflag)))
1294 (home-page "https://github.com/spf13/cobra")
1295 (synopsis "Go library for creating CLI applications")
1296 (description "Cobra is both a library for creating powerful modern CLI
1297 applications as well as a program to generate applications and command files.")
1298 (license license:asl2.0)))
1299
1300 (define-public go-github-com-spf13-jwalterweatherman
1301 (package
1302 (name "go-github-com-spf13-jwalterweatherman")
1303 (version "1.1.0")
1304 (source
1305 (origin
1306 (method git-fetch)
1307 (uri (git-reference
1308 (url "https://github.com/spf13/jwalterweatherman")
1309 (commit (string-append "v" version))))
1310 (file-name (git-file-name name version))
1311 (sha256
1312 (base32
1313 "1ywmkwci5zyd88ijym6f30fj5c0k2yayxarkmnazf5ybljv50q7b"))))
1314 (build-system go-build-system)
1315 (arguments
1316 `(#:import-path "github.com/spf13/jwalterweatherman"))
1317 (native-inputs
1318 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
1319 (home-page "https://github.com/spf13/jwalterweatherman")
1320 (synopsis "Go logging library")
1321 (description "Go logging library")
1322 (license license:expat)))
1323
1324 (define-public go-github-com-spf13-pflag
1325 (package
1326 (name "go-github-com-spf13-pflag")
1327 (version "1.0.5")
1328 (source
1329 (origin
1330 (method git-fetch)
1331 (uri (git-reference
1332 (url "https://github.com/spf13/pflag")
1333 (commit (string-append "v" version))))
1334 (file-name (git-file-name name version))
1335 (sha256
1336 (base32
1337 "0gpmacngd0gpslnbkzi263f5ishigzgh6pbdv9hp092rnjl4nd31"))))
1338 (build-system go-build-system)
1339 (arguments
1340 '(#:import-path "github.com/spf13/pflag"))
1341 (home-page "https://github.com/spf13/pflag")
1342 (synopsis "Replacement for Go's @code{flag} package")
1343 (description
1344 "Pflag is library to replace Go's @code{flag} package. It implements
1345 POSIX/GNU-style command-line options with double hyphens. It is is compatible
1346 with the
1347 @uref{https://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html,
1348 GNU extensions} to the POSIX recommendations for command-line options.")
1349 (license license:bsd-3)))
1350
1351 (define-public go-github-com-spf13-viper
1352 (package
1353 (name "go-github-com-spf13-viper")
1354 (version "1.7.0")
1355 (source
1356 (origin
1357 (method git-fetch)
1358 (uri (git-reference
1359 (url "https://github.com/spf13/viper")
1360 (commit (string-append "v" version))))
1361 (file-name (git-file-name name version))
1362 (sha256
1363 (base32
1364 "099n2g7fg6r8hqyszqw2axr775qyhyvwhsykvgw0f0s16ql48h5c"))))
1365 (build-system go-build-system)
1366 (arguments
1367 '(#:import-path "github.com/spf13/viper"))
1368 (propagated-inputs
1369 `(("github.com/spf13/afero" ,go-github-com-spf13-afero)
1370 ("github.com/spf13/cast" ,go-github-com-spf13-cast)
1371 ("github.com/spf13/pflag" ,go-github-com-spf13-pflag)
1372 ("github.com/spf13/jwalterweatherman" ,go-github-com-spf13-jwalterweatherman)
1373 ("github.com/fsnotify/fsnotify" ,go-github-com-fsnotify-fsnotify)
1374 ("github.com/hashicorp/hcl" ,go-github-com-hashicorp-hcl)
1375 ("github.com/magiconair/properties" ,go-github-com-magiconair-properties)
1376 ("github.com/mitchellh/mapstructure" ,go-github-com-mitchellh-mapstructure)
1377 ("github.com/pelletier/go-toml" ,go-github-com-pelletier-go-toml)
1378 ("github.com/subosito/gotenv" ,go-github-com-subosito-gotenv)
1379
1380 ("gopkg.in/ini.v1" ,go-gopkg-in-ini-v1)
1381 ("gopkg.in/yaml.v2" ,go-gopkg-in-yaml-v2)))
1382 (native-inputs
1383 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
1384 (home-page "https://github.com/spf13/viper")
1385 (synopsis "Go configuration with fangs")
1386 (description
1387 "Viper is a complete configuration solution for Go applications including
1388 12-Factor apps. It is designed to work within an application, and can handle
1389 all types of configuration needs and formats.")
1390 (license license:expat)))
1391
1392 (define-public go-github-com-fsnotify-fsnotify
1393 (package
1394 (name "go-github-com-fsnotify-fsnotify")
1395 (version "1.4.9")
1396 (source
1397 (origin
1398 (method git-fetch)
1399 (uri (git-reference
1400 (url "https://github.com/fsnotify/fsnotify")
1401 (commit (string-append "v" version))))
1402 (file-name (git-file-name name version))
1403 (sha256
1404 (base32
1405 "1i1r72knpbfwwql9frn9bqc3nhfc2ai5m6qllcyr6wban62lr40x"))))
1406 (build-system go-build-system)
1407 (arguments
1408 `(#:import-path "github.com/fsnotify/fsnotify"))
1409 (propagated-inputs
1410 `(("golang.org/x/sys" ,go-golang-org-x-sys)))
1411 (home-page "https://github.com/fsnotify/fsnotify")
1412 (synopsis "File system notifications for Go")
1413 (description "File system notifications for Go")
1414 (license license:bsd-3)))
1415
1416 (define-public go-github-com-magiconair-properties
1417 (package
1418 (name "go-github-com-magiconair-properties")
1419 (version "1.8.1")
1420 (source
1421 (origin
1422 (method git-fetch)
1423 (uri (git-reference
1424 (url "https://github.com/magiconair/properties")
1425 (commit (string-append "v" version))))
1426 (file-name (git-file-name name version))
1427 (sha256
1428 (base32
1429 "19zqw1x0w0crh8zc84yy82nkcc5yjz72gviaf2xjgfm5a8np7nyb"))))
1430 (build-system go-build-system)
1431 (arguments
1432 `(#:import-path "github.com/magiconair/properties"))
1433 (home-page "https://github.com/magiconair/properties")
1434 (synopsis "Java properties scanner for Go")
1435 (description "Java properties scanner for Go")
1436 (license license:bsd-2)))
1437
1438 (define-public go-github-com-pelletier-go-toml
1439 (package
1440 (name "go-github-com-pelletier-go-toml")
1441 (version "1.8.0")
1442 (source
1443 (origin
1444 (method git-fetch)
1445 (uri (git-reference
1446 (url "https://github.com/pelletier/go-toml")
1447 (commit (string-append "v" version))))
1448 (file-name (git-file-name name version))
1449 (sha256
1450 (base32
1451 "0fxmjm85c9h43lvqz71wr93fcc63bhj82nwby80222xx8ja63g7y"))))
1452 (build-system go-build-system)
1453 (arguments
1454 `(#:import-path "github.com/pelletier/go-toml"))
1455 (native-inputs
1456 `(("github.com/BurntSushi/toml" ,go-github-com-burntsushi-toml)
1457 ("github.com/davecgh/go-spew" ,go-github-com-davecgh-go-spew)
1458 ("gopkg.in/yaml.v2" ,go-gopkg-in-yaml-v2)))
1459 (home-page "https://github.com/pelletier/go-toml")
1460 (synopsis "Go library for the TOML configuration language")
1461 (description "Go library for the TOML configuration language")
1462 (license license:expat)))
1463
1464 (define-public go-github-com-subosito-gotenv
1465 (package
1466 (name "go-github-com-subosito-gotenv")
1467 (version "1.2.0")
1468 (source
1469 (origin
1470 (method git-fetch)
1471 (uri (git-reference
1472 (url "https://github.com/subosito/gotenv")
1473 (commit (string-append "v" version))))
1474 (file-name (git-file-name name version))
1475 (sha256
1476 (base32
1477 "0mav91j7r4arjkpq5zcf9j74f6pww8ic53x43wy7kg3ibw31yjs5"))))
1478 (build-system go-build-system)
1479 (arguments
1480 `(#:import-path "github.com/subosito/gotenv"))
1481 (native-inputs
1482 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
1483 (home-page "https://github.com/subosito/gotenv")
1484 (synopsis "Go library for loading environment variables from files")
1485 (description "Go library for loading environment variables from files")
1486 (license license:expat)))
1487
1488 (define-public go-github-com-sirupsen-logrus
1489 (package
1490 (name "go-github-com-sirupsen-logrus")
1491 (version "1.0.5")
1492 (source
1493 (origin
1494 (method git-fetch)
1495 (uri (git-reference
1496 (url "https://github.com/sirupsen/logrus")
1497 (commit (string-append "v" version))))
1498 (file-name (git-file-name name version))
1499 (sha256
1500 (base32
1501 "0g5z7al7kky11ai2dhac6gkp3b5pxsvx72yj3xg4wg3265gbn7yz"))))
1502 (build-system go-build-system)
1503 (propagated-inputs
1504 `(("go-golang-org-x-crypto"
1505 ,go-golang-org-x-crypto)
1506 ("go-github-com-stretchr-testify"
1507 ,go-github-com-stretchr-testify)
1508 ("go-golang-org-x-sys" ,go-golang-org-x-sys)))
1509 (arguments
1510 '(#:tests? #f ;FIXME missing dependencies
1511 #:import-path "github.com/sirupsen/logrus"))
1512 (home-page "https://github.com/sirupsen/logrus")
1513 (synopsis "Structured, pluggable logging for Go")
1514 (description "Logrus is a structured logger for Go, completely API
1515 compatible with the standard library logger.")
1516 (license license:expat)))
1517
1518 (define-public go-github-com-rifflock-lfshook
1519 (package
1520 (name "go-github-com-rifflock-lfshook")
1521 (version "2.4")
1522 (source (origin
1523 (method git-fetch)
1524 (uri (git-reference
1525 (url "https://github.com/rifflock/lfshook")
1526 (commit (string-append "v" version))))
1527 (file-name (git-file-name name version))
1528 (sha256
1529 (base32
1530 "0wxqjcjfg8c0klmdgmbw3ckagby3wg9rkga9ihd4fsf05x5scxrc"))))
1531 (build-system go-build-system)
1532 (arguments
1533 `(#:import-path "github.com/rifflock/lfshook"))
1534 (propagated-inputs
1535 `(("go-github-com-sirupsen-logrus" ,go-github-com-sirupsen-logrus)))
1536 (home-page "https://github.com/rifflock/lfshook")
1537 (synopsis "Local File System hook for Logrus logger")
1538 (description "This package provides a hook for Logrus to write directly to
1539 a file on the file system. The log levels are dynamic at instantiation of the
1540 hook, so it is capable of logging at some or all levels.")
1541 (license license:expat)))
1542
1543 (define-public go-github-com-kardianos-osext
1544 (let ((commit "ae77be60afb1dcacde03767a8c37337fad28ac14")
1545 (revision "1"))
1546 (package
1547 (name "go-github-com-kardianos-osext")
1548 (version (git-version "0.0.0" revision commit))
1549 (source (origin
1550 (method git-fetch)
1551 (uri (git-reference
1552 (url "https://github.com/kardianos/osext")
1553 (commit commit)))
1554 (file-name (git-file-name name version))
1555 (sha256
1556 (base32
1557 "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz"))))
1558 (build-system go-build-system)
1559 (arguments
1560 `(#:import-path "github.com/kardianos/osext"
1561 ;; The tests are flaky:
1562 ;; <https://github.com/kardianos/osext/issues/21>
1563 #:tests? #f))
1564 (synopsis "Find the running executable")
1565 (description "Osext provides a method for finding the current executable
1566 file that is running. This can be used for upgrading the current executable or
1567 finding resources located relative to the executable file.")
1568 (home-page "https://github.com/kardianos/osext")
1569 (license license:bsd-3))))
1570
1571 (define-public go-github-com-ayufan-golang-kardianos-service
1572 (let ((commit "0c8eb6d8fff2e2fb884a7bfd23e183fb63c0eff3")
1573 (revision "0"))
1574 (package
1575 (name "go-github-com-ayufan-golang-kardianos-service")
1576 (version (git-version "0.0.0" revision commit))
1577 (source
1578 (origin
1579 (method git-fetch)
1580 (uri (git-reference
1581 (url
1582 "https://github.com/ayufan/golang-kardianos-service.git")
1583 (commit commit)))
1584 (file-name (git-file-name name version))
1585 (sha256
1586 (base32
1587 "0x0cn7l5gda2khsfypix7adxd5yqighzn04mxjw6hc4ayrh7his5"))))
1588 (build-system go-build-system)
1589 (native-inputs
1590 `(("go-github-com-kardianos-osext"
1591 ,go-github-com-kardianos-osext)))
1592 (arguments
1593 '(#:tests? #f ;FIXME tests fail: Service is not running.
1594 #:import-path "github.com/ayufan/golang-kardianos-service"))
1595 (home-page "https://github.com/ayufan/golang-kardianos-service")
1596 (synopsis "Go interface to a variety of service supervisors")
1597 (description "This package provides @code{service}, a Go module that can
1598 run programs as a service using a variety of supervisors, including systemd,
1599 SysVinit, and more.")
1600 (license license:zlib))))
1601
1602 (define-public go-github-com-docker-distribution
1603 (let ((commit "325b0804fef3a66309d962357aac3c2ce3f4d329")
1604 (revision "0"))
1605 (package
1606 (name "go-github-com-docker-distribution")
1607 (version (git-version "0.0.0" revision commit))
1608 (source
1609 ;; FIXME: This bundles many things, see
1610 ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31881#41>.
1611 (origin
1612 (method git-fetch)
1613 (uri (git-reference
1614 (url "https://github.com/docker/distribution")
1615 (commit commit)))
1616 (file-name (git-file-name name version))
1617 (sha256
1618 (base32
1619 "1yg2zrikn3vkvkx5mn51p6bfjk840qdkn7ahhhvvcsc8mpigrjc6"))))
1620 (build-system go-build-system)
1621 (native-inputs
1622 `(("go-golang-org-x-sys" ,go-golang-org-x-sys)
1623 ("go-github-com-sirupsen-logrus"
1624 ,go-github-com-sirupsen-logrus)
1625 ("go-golang-org-x-crypto"
1626 ,go-golang-org-x-crypto)))
1627 (arguments
1628 '(#:import-path "github.com/docker/distribution"
1629 #:phases
1630 (modify-phases %standard-phases
1631 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1632 (lambda* (#:key outputs #:allow-other-keys)
1633 (map (lambda (file)
1634 (make-file-writable file))
1635 (find-files
1636 (assoc-ref outputs "out")
1637 ".*\\.gz$"))
1638 #t)))))
1639 (home-page
1640 "https://github.com/docker/distribution")
1641 (synopsis "This package is a Docker toolset to pack, ship, store, and
1642 deliver content")
1643 (description "Docker Distribution is a Docker toolset to pack, ship,
1644 store, and deliver content. It contains Docker Registry 2.0 and libraries
1645 to interact with distribution components.")
1646 (license license:asl2.0))))
1647
1648 (define-public go-github-com-docker-go-connections
1649 (let ((commit "3ede32e2033de7505e6500d6c868c2b9ed9f169d")
1650 (revision "0"))
1651 (package
1652 (name "go-github-com-docker-go-connections")
1653 (version (git-version "0.0.0" revision commit))
1654 (source
1655 (origin
1656 (method git-fetch)
1657 (uri (git-reference
1658 (url "https://github.com/docker/go-connections")
1659 (commit commit)))
1660 (file-name (git-file-name name version))
1661 (sha256
1662 (base32
1663 "0v1pkr8apwmhyzbjfriwdrs1ihlk6pw7izm57r24mf9jdmg3fyb0"))))
1664 (build-system go-build-system)
1665 (arguments
1666 '(#:import-path "github.com/docker/go-connections"))
1667 (home-page "https://github.com/docker/go-connections")
1668 (synopsis "Networking library for Go")
1669 (description
1670 "This package provides a library to work with network connections in
1671 the Go language. In particular it provides tools to deal with network address
1672 translation (NAT), proxies, sockets, and transport layer security (TLS).")
1673 (license license:asl2.0))))
1674
1675 (define-public go-github-com-docker-machine
1676 (let ((commit "7b7a141da84480342357c51838be142bf183b095")
1677 (revision "0"))
1678 (package
1679 (name "go-github-com-docker-machine")
1680 (version (git-version "0.0.0" revision commit))
1681 (source
1682 (origin
1683 (method git-fetch)
1684 (uri (git-reference
1685 (url "https://github.com/docker/machine")
1686 (commit commit)))
1687 (file-name (git-file-name name version))
1688 (sha256
1689 (base32
1690 "0bavk0lvs462yh0lnmnxi9psi5qv1x3nvzmd2b0drsahlp1gxi8s"))))
1691 (build-system go-build-system)
1692 (arguments
1693 '(#:import-path "github.com/docker/machine"))
1694 (home-page "https://github.com/docker/machine")
1695 (synopsis "Machine management for a container-centric world")
1696 (description
1697 "@dfn{Machine} lets you create Docker hosts on your computer, on
1698 hosting providers, and inside your data center. It creates servers, installs
1699 Docker on them, then configures the Docker client to talk to them.")
1700 (license license:asl2.0))))
1701
1702 (define-public go-github-com-gorhill-cronexpr
1703 (let ((commit "f0984319b44273e83de132089ae42b1810f4933b")
1704 (revision "0"))
1705 (package
1706 (name "go-github-com-gorhill-cronexpr")
1707 (version (git-version "0.0.0" revision commit))
1708 (source
1709 (origin
1710 (method git-fetch)
1711 (uri (git-reference
1712 (url "https://github.com/gorhill/cronexpr")
1713 (commit commit)))
1714 (file-name (git-file-name name version))
1715 (sha256
1716 (base32
1717 "0dphhhqy3i7265znv3m8n57l80dmaq6z4hsj5kgd87qd19z8x0l2"))))
1718 (build-system go-build-system)
1719 (arguments
1720 '(#:import-path "github.com/gorhill/cronexpr"))
1721 (home-page "https://github.com/gorhill/cronexpr")
1722 (synopsis "Cron expression parser in the Go language")
1723 (description
1724 "This package provides a cron expression parser in the Go language.
1725 Given a cron expression and a time stamp, you can get the next time stamp
1726 which satisfies the cron expression.")
1727 (license (list license:gpl3+
1728 license:asl2.0)))))
1729
1730 (define-public go-gopkg-in-check-v1
1731 (let ((commit "788fd78401277ebd861206a03c884797c6ec5541")
1732 (revision "1"))
1733 (package
1734 (name "go-gopkg-in-check-v1")
1735 (version (git-version "1.0.0" revision commit))
1736 (source
1737 (origin
1738 (method git-fetch)
1739 (uri (git-reference
1740 (url "https://github.com/go-check/check")
1741 (commit commit)))
1742 (file-name (git-file-name name version))
1743 (sha256
1744 (base32
1745 "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a"))))
1746 (build-system go-build-system)
1747 (arguments
1748 '(#:import-path "gopkg.in/check.v1"))
1749 (propagated-inputs
1750 `(("go-github-com-kr-pretty" ,go-github-com-kr-pretty)))
1751 (home-page "https://gopkg.in/check.v1")
1752 (synopsis "Test framework for the Go language")
1753 (description "This package provides a test library for the Go language.")
1754 (license license:asl2.0))))
1755
1756 (define-public go-gopkg-in-ini-v1
1757 (package
1758 (name "go-gopkg-in-ini-v1")
1759 (version "1.56.0")
1760 (source
1761 (origin
1762 (method git-fetch)
1763 (uri (git-reference
1764 (url "https://github.com/go-ini/ini")
1765 (commit (string-append "v" version))))
1766 (file-name (git-file-name name version))
1767 (sha256
1768 (base32
1769 "0j5z0cngg6mq2f9id083jcdi7k6r2h35714pashv6sdv2q7bmfc5"))))
1770 (build-system go-build-system)
1771 (arguments
1772 '(#:import-path "gopkg.in/ini.v1"
1773 ;; Requires large unpackaged test framework
1774 #:tests? #f))
1775 (home-page "https://gopkg.in/ini.v1")
1776 (synopsis "Go library for ini files")
1777 (description "Go library for ini files")
1778 (license license:asl2.0)))
1779
1780 (define-public go-gopkg-in-yaml-v2
1781 (package
1782 (name "go-gopkg-in-yaml-v2")
1783 (version "2.2.2")
1784 (source
1785 (origin
1786 (method git-fetch)
1787 (uri (git-reference
1788 (url "https://gopkg.in/yaml.v2.git")
1789 (commit (string-append "v" version))))
1790 (file-name (git-file-name name version))
1791 (sha256
1792 (base32
1793 "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa"))))
1794 (build-system go-build-system)
1795 (arguments
1796 '(#:import-path "gopkg.in/yaml.v2"))
1797 (native-inputs
1798 `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
1799 (home-page "https://gopkg.in/yaml.v2")
1800 (synopsis "YAML reader and writer for the Go language")
1801 (description
1802 "This package provides a Go library for encode and decode YAML
1803 values.")
1804 (license license:asl2.0)))
1805
1806 (define-public go-github-com-mattn-go-isatty
1807 (package
1808 (name "go-github-com-mattn-go-isatty")
1809 (version "0.0.11")
1810 (source
1811 (origin
1812 (method git-fetch)
1813 (uri (git-reference
1814 (url "https://github.com/mattn/go-isatty")
1815 (commit (string-append "v" version))))
1816 (file-name (git-file-name name version))
1817 (sha256
1818 (base32
1819 "0h671sv7hfprja495kavazkalkx7xzaqksjh13brcnwq67ijrali"))))
1820 (build-system go-build-system)
1821 (propagated-inputs
1822 `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
1823 (arguments
1824 '(#:import-path "github.com/mattn/go-isatty"))
1825 (home-page "https://github.com/mattn/go-isatty")
1826 (synopsis "Provide @code{isatty} for Golang")
1827 (description "This package provides @code{isatty}, a Go module that can
1828 tell you whether a file descriptor points to a terminal and the type of the
1829 terminal.")
1830 (license license:expat)))
1831
1832 (define-public go-github-com-mattn-go-colorable
1833 (let ((commit "efa589957cd060542a26d2dd7832fd6a6c6c3ade")
1834 (revision "0"))
1835 (package
1836 (name "go-github-com-mattn-go-colorable")
1837 (version (git-version "0.0.0" revision commit))
1838 (source
1839 (origin
1840 (method git-fetch)
1841 (uri (git-reference
1842 (url "https://github.com/mattn/go-colorable")
1843 (commit commit)))
1844 (file-name (git-file-name name version))
1845 (sha256
1846 (base32
1847 "0kshi4hvm0ayrsxqxy0599iv81kryhd2fn9lwjyczpj593cq069r"))))
1848 (build-system go-build-system)
1849 (native-inputs
1850 `(("go-github-com-mattn-go-isatty"
1851 ,go-github-com-mattn-go-isatty)))
1852 (arguments
1853 '(#:import-path "github.com/mattn/go-colorable"))
1854 (home-page "https://github.com/mattn/go-colorable")
1855 (synopsis "Handle ANSI color escapes on Windows")
1856 (description "This package provides @code{colorable}, a module that
1857 makes it possible to handle ANSI color escapes on Windows.")
1858 (license license:expat))))
1859
1860 (define-public go-github-com-mattn-go-pointer
1861 (let ((commit "a0a44394634f41e4992b173b24f14fecd3318a67")
1862 (revision "1"))
1863 (package
1864 (name "go-github-com-mattn-go-pointer")
1865 (version (git-version "0.0.0" revision commit))
1866 (source
1867 (origin
1868 (method git-fetch)
1869 (uri (git-reference
1870 (url "https://github.com/mattn/go-pointer")
1871 (commit commit)))
1872 (sha256
1873 (base32
1874 "09w7hcyc0zz2g23vld6jbcmq4ar27xakp1ldjvh549i5izf2anhz"))
1875 (file-name (git-file-name name version))))
1876 (build-system go-build-system)
1877 (arguments
1878 '(#:import-path "github.com/mattn/go-pointer"))
1879 (home-page "https://github.com/mattn/go-pointer")
1880 (synopsis "Utility for cgo")
1881 (description
1882 "This package allows for a cgo argument to be passed a Go pointer.")
1883 (license license:expat))))
1884
1885 (define-public go-github-com-mgutz-ansi
1886 (let ((commit "9520e82c474b0a04dd04f8a40959027271bab992")
1887 (revision "0"))
1888 (package
1889 (name "go-github-com-mgutz-ansi")
1890 (version (git-version "0.0.0" revision commit))
1891 (source
1892 (origin
1893 (method git-fetch)
1894 (uri (git-reference
1895 (url
1896 "https://github.com/mgutz/ansi")
1897 (commit commit)))
1898 (file-name (git-file-name name version))
1899 (sha256
1900 (base32
1901 "00bz22314j26736w1f0q4jy9d9dfaml17vn890n5zqy3cmvmww1j"))))
1902 (build-system go-build-system)
1903 (native-inputs
1904 `(("go-github-com-mattn-go-isatty"
1905 ,go-github-com-mattn-go-isatty)
1906 ("go-github-com-mattn-go-colorable"
1907 ,go-github-com-mattn-go-colorable)))
1908 (arguments
1909 '(#:import-path "github.com/mgutz/ansi"))
1910 (home-page "https://github.com/mgutz/ansi")
1911 (synopsis "Small, fast library to create ANSI colored strings and codes")
1912 (description "This package provides @code{ansi}, a Go module that can
1913 generate ANSI colored strings.")
1914 (license license:expat))))
1915
1916 (define-public go-github-com-aarzilli-golua
1917 (let ((commit "03fc4642d792b1f2bc5e7343b403cf490f8c501d")
1918 (revision "0"))
1919 (package
1920 (name "go-github-com-aarzilli-golua")
1921 (version (git-version "0.0.0" revision commit))
1922 (source
1923 (origin
1924 (method git-fetch)
1925 (uri (git-reference
1926 (url
1927 "https://github.com/aarzilli/golua")
1928 (commit commit)))
1929 (file-name (git-file-name name version))
1930 (sha256
1931 (base32
1932 "1d9hr29i36cza98afj3g6rs3l7xbkprwzz0blcxsr9dd7nak20di"))))
1933 (build-system go-build-system)
1934 ;; From go-1.10 onward, "pkg" compiled libraries are not re-used, so
1935 ;; when this package required as input for another one, it will have to
1936 ;; be built again. Thus its CGO requirements must be made available in
1937 ;; the environment, that is, they must be propagated.
1938 (propagated-inputs
1939 `(("lua" ,lua)))
1940 (arguments
1941 `(#:unpack-path "github.com/aarzilli/golua"
1942 #:import-path "github.com/aarzilli/golua/lua"
1943 #:phases
1944 (modify-phases %standard-phases
1945 ;; While it's possible to fix the CGO_LDFLAGS with the "-tags"
1946 ;; command line argument, go-1.10+ does not re-use the produced pkg
1947 ;; for dependencies, which means we would need to propagate the
1948 ;; same "-tags" argument to all golua referrers. A substitution is
1949 ;; more convenient here. We also need to propagate the lua
1950 ;; dependency to make it available to referrers.
1951 (add-after 'unpack 'fix-lua-ldflags
1952 (lambda _
1953 (substitute* "src/github.com/aarzilli/golua/lua/lua.go"
1954 (("#cgo linux,!llua,!luaa LDFLAGS: -llua5.3")
1955 "#cgo linux,!llua,!luaa LDFLAGS: -llua")))))))
1956 (home-page "https://github.com/aarzilli/golua")
1957 (synopsis "Go Bindings for the Lua C API")
1958 (description "This package provides @code{lua}, a Go module that can
1959 run a Lua virtual machine.")
1960 (license license:expat))))
1961
1962 (define-public go-gitlab-com-ambrevar-golua-unicode
1963 (let ((commit "97ce517e7a1fe2407a90c317a9c74b173d396144")
1964 (revision "0"))
1965 (package
1966 (name "go-gitlab-com-ambrevar-golua-unicode")
1967 (version (git-version "0.0.0" revision commit))
1968 (source
1969 (origin
1970 (method git-fetch)
1971 (uri (git-reference
1972 (url
1973 "https://gitlab.com/ambrevar/golua")
1974 (commit commit)))
1975 (file-name (git-file-name name version))
1976 (sha256
1977 (base32
1978 "1izcp7p8nagjwqd13shb0020w7xhppib1a3glw2d1468bflhksnm"))))
1979 (build-system go-build-system)
1980 (native-inputs
1981 `(("lua" ,lua)
1982 ("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
1983 (arguments
1984 `(#:unpack-path "gitlab.com/ambrevar/golua"
1985 #:import-path "gitlab.com/ambrevar/golua/unicode"
1986 #:phases
1987 (modify-phases %standard-phases
1988 (replace 'check
1989 (lambda* (#:key import-path #:allow-other-keys)
1990 (setenv "USER" "homeless-dude")
1991 (invoke "go" "test" import-path))))))
1992 (home-page "https://gitlab.com/ambrevar/golua")
1993 (synopsis "Add Unicode support to Golua")
1994 (description "This extension to Arzilli's Golua adds Unicode support to
1995 all functions from the Lua string library. Lua patterns are replaced by Go
1996 regexps. This breaks compatibility with Lua, but Unicode support breaks it
1997 anyways and Go regexps are more powerful.")
1998 (license license:expat))))
1999
2000 (define-public go-github-com-yookoala-realpath
2001 (let ((commit "d19ef9c409d9817c1e685775e53d361b03eabbc8")
2002 (revision "0"))
2003 (package
2004 (name "go-github-com-yookoala-realpath")
2005 (version (git-version "0.0.0" revision commit))
2006 (source
2007 (origin
2008 (method git-fetch)
2009 (uri (git-reference
2010 (url
2011 "https://github.com/yookoala/realpath")
2012 (commit commit)))
2013 (file-name (git-file-name name version))
2014 (sha256
2015 (base32
2016 "0qvz1dcdldf53rq69fli76z5k1vr7prx9ds1d5rpzgs68kwn40nw"))))
2017 (build-system go-build-system)
2018 (arguments
2019 `(#:import-path "github.com/yookoala/realpath"))
2020 (home-page "https://github.com/yookoala/realpath")
2021 (synopsis "@code{realpath} for Golang")
2022 (description "This package provides @code{realpath}, a Go module that
2023 when provided with a valid relative path / alias path, it will return you with
2024 a string of its real absolute path in the system.")
2025 (license license:expat))))
2026
2027 (define-public go-gitlab-com-ambrevar-damerau
2028 (let ((commit "883829e1f25fad54015772ea663e69017cf22352")
2029 (revision "0"))
2030 (package
2031 (name "go-gitlab-com-ambrevar-damerau")
2032 (version (git-version "0.0.0" revision commit))
2033 (source
2034 (origin
2035 (method git-fetch)
2036 (uri (git-reference
2037 (url
2038 "https://gitlab.com/ambrevar/damerau")
2039 (commit commit)))
2040 (file-name (git-file-name name version))
2041 (sha256
2042 (base32
2043 "1b9p8fypc914ij1afn6ir346zsgfqrc5mqc1k3d53n4snypq27qv"))))
2044 (build-system go-build-system)
2045 (arguments
2046 `(#:import-path "gitlab.com/ambrevar/damerau"))
2047 (home-page "https://gitlab.com/ambrevar/damerau")
2048 (synopsis "Damerau-Levenshtein distance for Golang")
2049 (description "This is a spelling corrector implementing the
2050 Damerau-Levenshtein distance. Takes a string value input from the user.
2051 Looks for an identical word on a list of words, if none is found, look for a
2052 similar word.")
2053 (license license:expat))))
2054
2055 (define-public go-github-com-stevedonovan-luar
2056 (let ((commit "22d247e5366095f491cd83edf779ee99a78f5ead")
2057 (revision "0"))
2058 (package
2059 (name "go-github-com-stevedonovan-luar")
2060 (version (git-version "0.0.0" revision commit))
2061 (source
2062 (origin
2063 (method git-fetch)
2064 (uri (git-reference
2065 (url
2066 "https://github.com/stevedonovan/luar")
2067 (commit commit)))
2068 (file-name (git-file-name name version))
2069 (sha256
2070 (base32
2071 "1acjgw9cz1l0l9mzkyk7irz6cfk31wnxgbwa805fvm1rqcjzin2c"))))
2072 (build-system go-build-system)
2073 (native-inputs
2074 `(("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
2075 (arguments
2076 `(#:tests? #f ; Upstream tests are broken.
2077 #:import-path "github.com/stevedonovan/luar"))
2078 (home-page "https://github.com/stevedonovan/luar")
2079 (synopsis "Lua reflection bindings for Go")
2080 (description "Luar is designed to make using Lua from Go more
2081 convenient. Go structs, slices and maps can be automatically converted to Lua
2082 tables and vice-versa. The resulting conversion can either be a copy or a
2083 proxy. In the latter case, any change made to the result will reflect on the
2084 source.
2085
2086 Any Go function can be made available to Lua scripts, without having to write
2087 C-style wrappers.
2088
2089 Luar support cyclic structures (lists, etc.).
2090
2091 User-defined types can be made available to Lua as well: their exported
2092 methods can be called and usual operations such as indexing or arithmetic can
2093 be performed.")
2094 (license license:expat))))
2095
2096 (define-public go-github-com-michiwend-golang-pretty
2097 (let ((commit "8ac61812ea3fa540f3f141a444fcb0dd713cdca4")
2098 (revision "0"))
2099 (package
2100 (name "go-github-com-michiwend-golang-pretty")
2101 (version (git-version "0.0.0" revision commit))
2102 (source
2103 (origin
2104 (method git-fetch)
2105 (uri (git-reference
2106 (url
2107 "https://github.com/michiwend/golang-pretty")
2108 (commit commit)))
2109 (file-name (git-file-name name version))
2110 (sha256
2111 (base32
2112 "0rjfms0csjqi91xnddzx3rcrcaikc7xc027617px3kdwdap80ir4"))))
2113 (build-system go-build-system)
2114 (native-inputs
2115 `(("go-github-com-kr-text" ,go-github-com-kr-text)))
2116 (arguments
2117 `(#:tests? #f ; Upstream tests seem to be broken.
2118 #:import-path "github.com/michiwend/golang-pretty"))
2119 (home-page "https://github.com/michiwend/golang-pretty")
2120 (synopsis "Pretty printing for Go values")
2121 (description "Package @code{pretty} provides pretty-printing for Go
2122 values. This is useful during debugging, to avoid wrapping long output lines
2123 in the terminal.
2124
2125 It provides a function, @code{Formatter}, that can be used with any function
2126 that accepts a format string. It also provides convenience wrappers for
2127 functions in packages @code{fmt} and @code{log}.")
2128 (license license:expat))))
2129
2130 (define-public go-github-com-michiwend-gomusicbrainz
2131 (let ((commit "0cdeb13f9b24d2c714feb7e3c63d595cf7121d7d")
2132 (revision "0"))
2133 (package
2134 (name "go-github-com-michiwend-gomusicbrainz")
2135 (version (git-version "0.0.0" revision commit))
2136 (source
2137 (origin
2138 (method git-fetch)
2139 (uri (git-reference
2140 (url
2141 "https://github.com/michiwend/gomusicbrainz")
2142 (commit commit)))
2143 (file-name (git-file-name name version))
2144 (sha256
2145 (base32
2146 "1li9daw0kghb80rdmxbh7g72qhxcvx3rvhwq5gs0jrr9hb8pjvcn"))))
2147 (build-system go-build-system)
2148 (native-inputs
2149 `(("go-github-com-michiwend-golang-pretty" ,go-github-com-michiwend-golang-pretty)
2150 ("go-github-com-kr-text" ,go-github-com-kr-text)))
2151 (arguments
2152 `(#:import-path "github.com/michiwend/gomusicbrainz"))
2153 (home-page "https://github.com/michiwend/gomusicbrainz")
2154 (synopsis "MusicBrainz WS2 client library for Golang")
2155 (description "Currently GoMusicBrainz provides methods to perform search
2156 and lookup requests. Browse requests are not supported yet.")
2157 (license license:expat))))
2158
2159 (define-public go-github-com-wtolson-go-taglib
2160 (let ((commit "6e68349ff94ecea412de7e748cb5eaa26f472777")
2161 (revision "0"))
2162 (package
2163 (name "go-github-com-wtolson-go-taglib")
2164 (version (git-version "0.0.0" revision commit))
2165 (source
2166 (origin
2167 (method git-fetch)
2168 (uri (git-reference
2169 (url
2170 "https://github.com/wtolson/go-taglib")
2171 (commit commit)))
2172 (file-name (git-file-name name version))
2173 (sha256
2174 (base32
2175 "1cpjqnrviwflz150g78iir5ndrp3hh7a93zbp4dwbg6sb2q141p2"))))
2176 (build-system go-build-system)
2177 ;; From go-1.10 onward, "pkg" compiled libraries are not re-used, so
2178 ;; when this package required as input for another one, it will have to
2179 ;; be built again. Thus its CGO requirements must be made available in
2180 ;; the environment, that is, they must be propagated.
2181 (propagated-inputs
2182 `(("pkg-config" ,pkg-config)
2183 ("taglib" ,taglib)))
2184 (arguments
2185 `(#:import-path "github.com/wtolson/go-taglib"
2186 ;; Tests don't pass "vet" on Go since 1.11. See
2187 ;; https://github.com/wtolson/go-taglib/issues/12.
2188 #:phases
2189 (modify-phases %standard-phases
2190 (replace 'check
2191 (lambda* (#:key import-path #:allow-other-keys)
2192 (invoke "go" "test"
2193 "-vet=off"
2194 import-path))))))
2195 (home-page "https://github.com/wtolson/go-taglib")
2196 (synopsis "Go wrapper for taglib")
2197 (description "Go wrapper for taglib")
2198 (license license:unlicense))))
2199
2200 (define-public go-github-com-gogo-protobuf
2201 (package
2202 (name "go-github-com-gogo-protobuf")
2203 (version "1.3.1")
2204 (source (origin
2205 (method git-fetch)
2206 (uri (git-reference
2207 (url "https://github.com/gogo/protobuf")
2208 (commit (string-append "v" version))))
2209 (file-name (git-file-name name version))
2210 (sha256
2211 (base32
2212 "0x77x64sxjgfhmbijqfzmj8h4ar25l2w97h01q3cqs1wk7zfnkhp"))))
2213 (build-system go-build-system)
2214 (arguments
2215 `(#:import-path "github.com/gogo/protobuf"
2216 ; Source-only package
2217 #:tests? #f
2218 #:phases
2219 (modify-phases %standard-phases
2220 (delete 'build))))
2221 (synopsis "Protocol Buffers for Go with Gadgets")
2222 (description "Gogoprotobuf is a fork of golang/protobuf with extra code
2223 generation features. This code generation is used to achieve:
2224 @itemize
2225 @item fast marshalling and unmarshalling
2226 @item more canonical Go structures
2227 @item goprotobuf compatibility
2228 @item less typing by optionally generating extra helper code
2229 @item peace of mind by optionally generating test and benchmark code
2230 @item other serialization formats
2231 @end itemize")
2232 (home-page "https://github.com/gogo/protobuf")
2233 (license license:bsd-3)))
2234
2235 (define-public go-github-com-libp2p-go-flow-metrics
2236 (let ((commit "7e5a55af485341567f98d6847a373eb5ddcdcd43")
2237 (revision "0"))
2238 (package
2239 (name "go-github-com-libp2p-go-flow-metrics")
2240 (version (git-version "0.2.0" revision commit))
2241 (source
2242 (origin
2243 (method git-fetch)
2244 (uri (git-reference
2245 (url "https://github.com/libp2p/go-flow-metrics")
2246 (commit commit)))
2247 (file-name (git-file-name name version))
2248 (sha256
2249 (base32
2250 "1p87iyk6q6f3g3xkncssx400qlld8f2z93qiz8m1f97grfyhjif1"))))
2251 (build-system go-build-system)
2252 (arguments
2253 `(#:import-path "github.com/libp2p/go-flow-metrics"
2254 ;; TODO: Tests hang.
2255 #:tests? #f))
2256 (home-page
2257 "https://github.com/libp2p/go-flow-metrics")
2258 (synopsis "Simple library for tracking flow metrics")
2259 (description "A simple alternative to rcrowley's @command{go-metrics}
2260 that's a lot faster (and only does simple bandwidth metrics).")
2261 (license license:expat))))
2262
2263 (define-public go-github-com-davecgh-go-spew
2264 (package
2265 (name "go-github-com-davecgh-go-spew")
2266 (version "1.1.1")
2267 (source
2268 (origin
2269 (method git-fetch)
2270 (uri (git-reference
2271 (url "https://github.com/davecgh/go-spew")
2272 (commit (string-append "v" version))))
2273 (file-name (git-file-name name version))
2274 (sha256
2275 (base32
2276 "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y"))))
2277 (build-system go-build-system)
2278 (arguments
2279 '(#:unpack-path "github.com/davecgh/go-spew"
2280 #:import-path "github.com/davecgh/go-spew/spew"))
2281 (home-page "https://github.com/davecgh/go-spew")
2282 (synopsis "Deep pretty printer for Go data structures to aid in debugging")
2283 (description "Package @command{spew} implements a deep pretty printer
2284 for Go data structures to aid in debugging.
2285
2286 A quick overview of the additional features spew provides over the built-in printing facilities for Go data types are as follows:
2287
2288 @itemize
2289 @item Pointers are dereferenced and followed.
2290 @item Circular data structures are detected and handled properly.
2291 @item Custom Stringer/error interfaces are optionally invoked, including on
2292 unexported types.
2293 @item Custom types which only implement the Stringer/error interfaces via a
2294 pointer receiver are optionally invoked when passing non-pointer variables.
2295 @item Byte arrays and slices are dumped like the hexdump -C command which
2296 includes offsets, byte values in hex, and ASCII output (only when using Dump
2297 style).
2298 @end itemize\n")
2299 (license license:isc)))
2300
2301 (define-public go-github-com-btcsuite-btclog
2302 (let ((commit "84c8d2346e9fc8c7b947e243b9c24e6df9fd206a")
2303 (revision "0"))
2304 (package
2305 (name "go-github-com-btcsuite-btclog")
2306 (version (git-version "0.0.3" revision commit))
2307 (source
2308 (origin
2309 (method git-fetch)
2310 (uri (git-reference
2311 (url "https://github.com/btcsuite/btclog")
2312 (commit commit)))
2313 (file-name (git-file-name name version))
2314 (sha256
2315 (base32
2316 "02dl46wcnfpg9sqvg0ipipkpnd7lrf4fnvb9zy56jqa7mfcwc7wk"))))
2317 (build-system go-build-system)
2318 (arguments
2319 '(#:import-path "github.com/btcsuite/btclog"))
2320 (home-page "https://github.com/btcsuite/btclog")
2321 (synopsis "Subsystem aware logger for Go")
2322 (description "Package @command{btclog} defines a logger interface and
2323 provides a default implementation of a subsystem-aware leveled logger
2324 implementing the same interface.")
2325 (license license:isc))))
2326
2327 (define-public go-github-com-btcsuite-btcd-btcec
2328 (let ((commit "67e573d211ace594f1366b4ce9d39726c4b19bd0")
2329 (revision "0"))
2330 (package
2331 (name "go-github-com-btcsuite-btcd-btcec")
2332 (version (git-version "0.12.0-beta" revision commit))
2333 (source
2334 (origin
2335 (method git-fetch)
2336 (uri (git-reference
2337 (url "https://github.com/btcsuite/btcd")
2338 (commit commit)))
2339 (file-name (git-file-name name version))
2340 (sha256
2341 (base32
2342 "04s92gsy71w1jirlr5lkk9y6r5cparbas7nmf6ywbp7kq7fn8ajn"))))
2343 (build-system go-build-system)
2344 (arguments
2345 '(#:unpack-path "github.com/btcsuite/btcd"
2346 #:import-path "github.com/btcsuite/btcd/btcec"))
2347 (native-inputs
2348 `(("go-github-com-davecgh-go-spew" ,go-github-com-davecgh-go-spew)))
2349 (home-page "https://github.com/btcsuite/btcd")
2350 (synopsis "Elliptic curve cryptography to work with Bitcoin")
2351 (description "Package @command{btcec} implements elliptic curve
2352 cryptography needed for working with Bitcoin (secp256k1 only for now). It is
2353 designed so that it may be used with the standard crypto/ecdsa packages
2354 provided with Go. A comprehensive suite of test is provided to ensure proper
2355 functionality. Package @command{btcec} was originally based on work from
2356 ThePiachu which is licensed under the same terms as Go, but it has
2357 significantly diverged since then. The @command{btcsuite} developers original
2358 is licensed under the liberal ISC license.
2359
2360 Although this package was primarily written for btcd, it has intentionally
2361 been designed so it can be used as a standalone package for any projects
2362 needing to use secp256k1 elliptic curve cryptography.")
2363 (license license:isc))))
2364
2365 (define-public go-github-com-minio-sha256-simd
2366 (package
2367 (name "go-github-com-minio-sha256-simd")
2368 (version "0.1.1")
2369 (source
2370 (origin
2371 (method git-fetch)
2372 (uri (git-reference
2373 (url "https://github.com/minio/sha256-simd")
2374 (commit (string-append "v" version))))
2375 (file-name (git-file-name name version))
2376 (sha256
2377 (base32
2378 "1j0iqsckm97g4l79vd4mc7apbmkdar23jpzqpnpdhwpfd834j8lp"))))
2379 (build-system go-build-system)
2380 (arguments
2381 '(#:import-path "github.com/minio/sha256-simd"))
2382 (home-page "https://github.com/minio/sha256-simd")
2383 (synopsis "Accelerate SHA256 computations in pure Go")
2384 (description "Accelerate SHA256 computations in pure Go using AVX512 and
2385 AVX2 for Intel and ARM64 for ARM. On AVX512 it provides an up to 8x
2386 improvement (over 3 GB/s per core) in comparison to AVX2.
2387
2388 This package is designed as a replacement for @command{crypto/sha256}. For
2389 Intel CPUs it has two flavors for AVX512 and AVX2 (AVX/SSE are also
2390 supported). For ARM CPUs with the Cryptography Extensions, advantage is taken
2391 of the SHA2 instructions resulting in a massive performance improvement.
2392
2393 This package uses Golang assembly. The AVX512 version is based on the Intel's
2394 \"multi-buffer crypto library for IPSec\" whereas the other Intel
2395 implementations are described in \"Fast SHA-256 Implementations on Intel
2396 Architecture Processors\" by J. Guilford et al.")
2397 (license license:asl2.0)))
2398
2399 (define-public go-github-com-libp2p-go-libp2p-crypto
2400 (let ((commit "7240b40a3ddc47c4d17c15baabcbe45e5219171b")
2401 (revision "0"))
2402 (package
2403 (name "go-github-com-libp2p-go-libp2p-crypto")
2404 (version (git-version "2.0.1" revision commit))
2405 (source
2406 (origin
2407 (method git-fetch)
2408 (uri (git-reference
2409 (url "https://github.com/libp2p/go-libp2p-crypto")
2410 (commit commit)))
2411 (file-name (git-file-name name version))
2412 (sha256
2413 (base32
2414 "0qwpy57qv5143l9dlfwfvpqsxdd2i4zwnawx1w4pmgxxim3nw1wb"))))
2415 (build-system go-build-system)
2416 (arguments
2417 '(#:import-path "github.com/libp2p/go-libp2p-crypto"))
2418 (native-inputs
2419 `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
2420 ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
2421 ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
2422 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)))
2423 (home-page
2424 "https://github.com/libp2p/go-libp2p-crypto")
2425 (synopsis "Various cryptographic utilities used by IPFS")
2426 (description "Various cryptographic utilities used by IPFS")
2427 (license license:expat))))
2428
2429 (define-public go-github-com-mr-tron-base58
2430 (let ((commit "d724c80ecac7b49e4e562d58b2b4f4ee4ed8c312")
2431 (revision "0"))
2432 (package
2433 (name "go-github-com-mr-tron-base58")
2434 (version (git-version "1.1.0" revision commit))
2435 (source
2436 (origin
2437 (method git-fetch)
2438 (uri (git-reference
2439 (url "https://github.com/mr-tron/base58")
2440 (commit commit)))
2441 (file-name (git-file-name name version))
2442 (sha256
2443 (base32
2444 "12qhgnn9wf3c1ang16r4i778whk4wsrj7d90h2xgmz4fi1469rqa"))))
2445 (build-system go-build-system)
2446 (arguments
2447 `(#:unpack-path "github.com/mr-tron/base58"
2448 #:import-path "github.com/mr-tron/base58/base58"))
2449 (home-page "https://github.com/mr-tron/base58")
2450 (synopsis "Fast implementation of base58 encoding on Golang")
2451 (description "Fast implementation of base58 encoding on Golang. A
2452 trivial @command{big.Int} encoding benchmark results in 6 times faster
2453 encoding and 8 times faster decoding.")
2454 (license license:expat))))
2455
2456 (define-public go-github-com-gxed-hashland-keccakpg
2457 (let ((commit "d9f6b97f8db22dd1e090fd0bbbe98f09cc7dd0a8")
2458 (revision "0"))
2459 (package
2460 (name "go-github-com-gxed-hashland-keccakpg")
2461 (version (git-version "0.0.0" revision commit))
2462 (source
2463 (origin
2464 (method git-fetch)
2465 (uri (git-reference
2466 (url "https://github.com/gxed/hashland")
2467 (commit commit)))
2468 (file-name (git-file-name name version))
2469 (sha256
2470 (base32
2471 "1q23y4lacsz46k9gmgfw4iwwydw36j2601rbidmmswl94grpc386"))))
2472 (build-system go-build-system)
2473 (arguments
2474 '(#:unpack-path "github.com/gxed/hashland"
2475 #:import-path "github.com/gxed/hashland/keccakpg"))
2476 (home-page "https://github.com/gxed/hashland")
2477 (synopsis "Implements the Keccak (SHA-3) hash algorithm in Go")
2478 (description "Package @command{keccak} implements the Keccak (SHA-3)
2479 hash algorithm. See http://keccak.noekeon.org.")
2480 (license license:expat))))
2481
2482 (define-public go-github-com-minio-blake2b-simd
2483 (let ((commit "3f5f724cb5b182a5c278d6d3d55b40e7f8c2efb4")
2484 (revision "0"))
2485 (package
2486 (name "go-github-com-minio-blake2b-simd")
2487 (version (git-version "0.0.0" revision commit))
2488 (source
2489 (origin
2490 (method git-fetch)
2491 (uri (git-reference
2492 (url "https://github.com/minio/blake2b-simd")
2493 (commit commit)))
2494 (file-name (git-file-name name version))
2495 (sha256
2496 (base32
2497 "0b6jbnj62c0gmmfd4zdmh8xbg01p80f13yygir9xprqkzk6fikmd"))))
2498 (build-system go-build-system)
2499 (arguments
2500 '(#:import-path "github.com/minio/blake2b-simd"))
2501 (home-page "https://github.com/minio/blake2b-simd")
2502 (synopsis "Fast hashing in pure Go of BLAKE2b with SIMD instructions")
2503 (description "This package was initially based on the pure go BLAKE2b
2504 implementation of Dmitry Chestnykh and merged with the (cgo dependent) AVX
2505 optimized BLAKE2 implementation (which in turn is based on the official
2506 implementation. It does so by using Go's Assembler for amd64 architectures
2507 with a golang only fallback for other architectures.
2508
2509 In addition to AVX there is also support for AVX2 as well as SSE. Best
2510 performance is obtained with AVX2 which gives roughly a 4X performance
2511 increase approaching hashing speeds of 1GB/sec on a single core.")
2512 (license license:asl2.0))))
2513
2514 (define-public go-github-com-spaolacci-murmur3
2515 (package
2516 (name "go-github-com-spaolacci-murmur3")
2517 (version "1.1.0")
2518 (source
2519 (origin
2520 (method git-fetch)
2521 (uri (git-reference
2522 (url "https://github.com/spaolacci/murmur3")
2523 (commit (string-append "v" version))))
2524 (file-name (git-file-name name version))
2525 (sha256
2526 (base32
2527 "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25"))))
2528 (build-system go-build-system)
2529 (arguments
2530 '(#:import-path "github.com/spaolacci/murmur3"))
2531 (home-page "https://github.com/spaolacci/murmur3")
2532 (synopsis "Native MurmurHash3 Go implementation")
2533 (description "Native Go implementation of Austin Appleby's third MurmurHash
2534 revision (aka MurmurHash3).
2535
2536 Reference algorithm has been slightly hacked as to support the streaming mode
2537 required by Go's standard Hash interface.")
2538 (license license:bsd-3)))
2539
2540 (define-public go-github-com-twmb-murmur3
2541 (package
2542 (name "go-github-com-twmb-murmur3")
2543 (version "1.1.3")
2544 (source
2545 (origin
2546 (method git-fetch)
2547 (uri (git-reference
2548 (url "https://github.com/twmb/murmur3")
2549 (commit (string-append "v" version))))
2550 (file-name (git-file-name name version))
2551 (sha256
2552 (base32
2553 "00riapwkyf23l5wyis47mbr8rwr4yrjw491jfc30wpzs111c1gyy"))))
2554 (build-system go-build-system)
2555 (arguments
2556 '(#:import-path "github.com/twmb/murmur3"))
2557 (home-page "https://github.com/twmb/murmur3")
2558 (synopsis "Native MurmurHash3 Go implementation")
2559 (description "Native Go implementation of Austin Appleby's third
2560 MurmurHash revision (aka MurmurHash3).
2561
2562 Reference algorithm has been slightly hacked as to support the streaming mode
2563 required by Go's standard Hash interface.")
2564 (license license:bsd-3)))
2565
2566 (define-public go-github-com-multiformats-go-multihash
2567 (let ((commit "97cdb562a04c6ef66d8ed40cd62f8fbcddd396d6")
2568 (revision "0"))
2569 (package
2570 (name "go-github-com-multiformats-go-multihash")
2571 (version (git-version "1.0.8" revision commit))
2572 (source
2573 (origin
2574 (method git-fetch)
2575 (uri (git-reference
2576 (url "https://github.com/multiformats/go-multihash")
2577 (commit commit)))
2578 (file-name (git-file-name name version))
2579 (sha256
2580 (base32
2581 "02wd9akrwy4y5m0nig9m24p14bjjgb4n1djydrq8cm4yhbvjrrk0"))))
2582 (build-system go-build-system)
2583 (arguments
2584 '(#:import-path "github.com/multiformats/go-multihash"))
2585 (native-inputs
2586 `(("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2587 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2588 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2589 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2590 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
2591 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
2592 (home-page "https://github.com/multiformats/go-multihash")
2593 (synopsis "Multihash implementation in Go")
2594 (description "Multihash implementation in Go.")
2595 (license license:expat))))
2596
2597 (define-public go-github-com-libp2p-go-libp2p-peer
2598 (let ((commit "993d742bc29dcf4894b7730ba610fd78900be76c")
2599 (revision "0"))
2600 (package
2601 (name "go-github-com-libp2p-go-libp2p-peer")
2602 (version (git-version "2.3.8" revision commit))
2603 (source
2604 (origin
2605 (method git-fetch)
2606 (uri (git-reference
2607 (url "https://github.com/libp2p/go-libp2p-peer")
2608 (commit commit)))
2609 (file-name (git-file-name name version))
2610 (sha256
2611 (base32
2612 "1h96qjdi0i1wbr0jliap2903mycphas3ny0zdrm77yca9plcnphh"))))
2613 (build-system go-build-system)
2614 (arguments
2615 '(#:import-path "github.com/libp2p/go-libp2p-peer"))
2616 (native-inputs
2617 `(("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
2618 ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
2619 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2620 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2621 ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
2622 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2623 ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
2624 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2625 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
2626 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
2627 (home-page "https://github.com/libp2p/go-libp2p-peer")
2628 (synopsis "PKI based identities for use in go-libp2p")
2629 (description "PKI based identities for use in @command{go-libp2p}.")
2630 (license license:expat))))
2631
2632 (define-public go-github-com-libp2p-go-libp2p-protocol
2633 (let ((commit "b29f3d97e3a2fb8b29c5d04290e6cb5c5018004b")
2634 (revision "0"))
2635 (package
2636 (name "go-github-com-libp2p-go-libp2p-protocol")
2637 (version (git-version "1.0.0" revision commit))
2638 (source
2639 (origin
2640 (method git-fetch)
2641 (uri (git-reference
2642 (url "https://github.com/libp2p/go-libp2p-protocol")
2643 (commit commit)))
2644 (file-name (git-file-name name version))
2645 (sha256
2646 (base32
2647 "1xgjfnx9zcqglg9li29wdqywsp8hz22wx6phns9zscni2jsfidld"))))
2648 (build-system go-build-system)
2649 (arguments
2650 '(#:import-path
2651 "github.com/libp2p/go-libp2p-protocol"))
2652 (home-page "https://github.com/libp2p/go-libp2p-protocol")
2653 (synopsis "Type for protocol strings in Golang")
2654 (description "Just a type for protocol strings. Nothing more.")
2655 (license license:expat))))
2656
2657 (define-public go-github-com-libp2p-go-libp2p-metrics
2658 (let ((commit "a10ff6e75dae3c868023867e8caa534a04bdc624")
2659 (revision "0"))
2660 (package
2661 (name "go-github-com-libp2p-go-libp2p-metrics")
2662 (version (git-version "2.1.6" revision commit))
2663 (source
2664 (origin
2665 (method git-fetch)
2666 (uri (git-reference
2667 (url "https://github.com/libp2p/go-libp2p-metrics")
2668 (commit commit)))
2669 (file-name (git-file-name name version))
2670 (sha256
2671 (base32
2672 "05wy0cq4h6yg9bzgapcvm2criwriicbswx80ma82gyn4a9fdrk8m"))))
2673 (build-system go-build-system)
2674 (arguments
2675 '(#:import-path "github.com/libp2p/go-libp2p-metrics"))
2676 (native-inputs
2677 `(("go-github-com-libp2p-go-flow-metrics" ,go-github-com-libp2p-go-flow-metrics)
2678 ("go-github-com-libp2p-go-libp2p-peer" ,go-github-com-libp2p-go-libp2p-peer)
2679 ("go-github-com-libp2p-go-libp2p-protocol" ,go-github-com-libp2p-go-libp2p-protocol)
2680 ("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
2681 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2682 ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
2683 ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
2684 ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
2685 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2686 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2687 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2688 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
2689 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
2690 (home-page "https://github.com/libp2p/go-libp2p-metrics")
2691 (synopsis "Connection wrapper for go-libp2p that provides bandwidth metrics")
2692 (description "A connection wrapper for @command{go-libp2p} that provides bandwidth
2693 statistics for wrapped connections.")
2694 (license license:expat))))
2695
2696 (define-public go-github-com-mitchellh-go-homedir
2697 (let ((commit "ae18d6b8b3205b561c79e8e5f69bff09736185f4")
2698 (revision "0"))
2699 (package
2700 (name "go-github-com-mitchellh-go-homedir")
2701 (version (git-version "1.0.0" revision commit))
2702 (source
2703 (origin
2704 (method git-fetch)
2705 (uri (git-reference
2706 (url "https://github.com/mitchellh/go-homedir")
2707 (commit commit)))
2708 (file-name (git-file-name name version))
2709 (sha256
2710 (base32
2711 "0f0z0aa4wivk4z1y503dmnw0k0g0g403dly8i4q263gfshs82sbq"))))
2712 (build-system go-build-system)
2713 (arguments
2714 (quote (#:import-path "github.com/mitchellh/go-homedir"
2715 ;; TODO: Tests fail because it tries to access home.
2716 #:tests? #f)))
2717 (home-page "https://github.com/mitchellh/go-homedir")
2718 (synopsis "Go library for detecting and expanding the user's home directory without cgo")
2719 (description "This is a Go library for detecting the user's home
2720 directory without the use of @command{cgo}, so the library can be used in
2721 cross-compilation environments.
2722
2723 Usage is simple, just call homedir.Dir() to get the home directory for a user,
2724 and homedir.Expand() to expand the @command{~} in a path to the home
2725 directory.
2726
2727 Why not just use @command{os/user}? The built-in @command{os/user} package
2728 requires cgo on Darwin systems. This means that any Go code that uses that
2729 package cannot cross compile. But 99% of the time the use for
2730 @command{os/user} is just to retrieve the home directory, which we can do for
2731 the current user without cgo. This library does that, enabling
2732 cross-compilation.")
2733 (license license:expat))))
2734
2735 (define-public go-github-com-mitchellh-mapstructure
2736 (package
2737 (name "go-github-com-mitchellh-mapstructure")
2738 (version "1.1.2") ;; NOTE: Updating to 1.3.1 breaks tests on viper-1.7.0
2739 (source
2740 (origin
2741 (method git-fetch)
2742 (uri (git-reference
2743 (url "https://github.com/mitchellh/mapstructure")
2744 (commit (string-append "v" version))))
2745 (file-name (git-file-name name version))
2746 (sha256
2747 (base32
2748 "03bpv28jz9zhn4947saqwi328ydj7f6g6pf1m2d4m5zdh5jlfkrr"))))
2749 (build-system go-build-system)
2750 (arguments
2751 `(#:import-path "github.com/mitchellh/mapstructure"))
2752 (home-page "https://github.com/mitchellh/mapstructure")
2753 (synopsis "Go library for decoding generic map values")
2754 (description "Go library for decoding generic map values")
2755 (license license:expat)))
2756
2757 (define-public go-github-com-mitchellh-reflectwalk
2758 (package
2759 (name "go-github-com-mitchellh-reflectwalk")
2760 (version "1.0.1")
2761 (source (origin
2762 (method git-fetch)
2763 (uri (git-reference
2764 (url "https://github.com/mitchellh/reflectwalk")
2765 (commit (string-append "v" version))))
2766 (file-name (git-file-name name version))
2767 (sha256
2768 (base32
2769 "0pa6a3nhzwv5s5yqcmsmsfhdp5ggxsg2wa86f3akawxrhrkjarnx"))))
2770 (build-system go-build-system)
2771 (arguments
2772 `(#:import-path "github.com/mitchellh/reflectwalk"))
2773 (home-page "https://github.com/mitchellh/reflectwalk/")
2774 (synopsis "Walk a value in Go using reflection")
2775 (description "reflectwalk is a Go library for \"walking\" a value in Go
2776 using reflection, in the same way a directory tree can be \"walked\" on the
2777 filesystem. Walking a complex structure can allow you to do manipulations on
2778 unknown structures such as those decoded from JSON.")
2779 (license license:expat)))
2780
2781 (define-public go-github-com-mitchellh-copystructure
2782 (package
2783 (name "go-github-com-mitchellh-copystructure")
2784 (version "1.0.0")
2785 (source
2786 (origin
2787 (method git-fetch)
2788 (uri (git-reference
2789 (url "https://github.com/mitchellh/copystructure")
2790 (commit (string-append "v" version))))
2791 (file-name (git-file-name name version))
2792 (sha256
2793 (base32
2794 "05njg92w1088v4yl0js0zdrpfq6k37i9j14mxkr3p90p5yd9rrrr"))))
2795 (build-system go-build-system)
2796 (arguments
2797 `(#:import-path "github.com/mitchellh/copystructure"))
2798 (native-inputs
2799 `(("go-github-com-mitchellh-reflectwalk" ,go-github-com-mitchellh-reflectwalk)))
2800 (home-page "https://github.com/mitchellh/copystructure")
2801 (synopsis "Go library for decoding deep copying values")
2802 (description "@code{copystructure} is a Go library for deep copying values
2803 in Go.
2804
2805 This allows you to copy Go values that may contain reference values such as
2806 maps, slices, or pointers, and copy their data as well instead of just their
2807 references.")
2808 (license license:expat)))
2809
2810 (define-public go-github-com-multiformats-go-multiaddr
2811 (let ((commit "fe1c46f8be5af4aff4db286e08839295bd922efb")
2812 (revision "0"))
2813 (package
2814 (name "go-github-com-multiformats-go-multiaddr")
2815 (version (git-version "1.3.0" revision commit))
2816 (source
2817 (origin
2818 (method git-fetch)
2819 (uri (git-reference
2820 (url "https://github.com/multiformats/go-multiaddr")
2821 (commit commit)))
2822 (file-name (git-file-name name version))
2823 (sha256
2824 (base32
2825 "0p5f8h098a4yjjmzsgqs7vhx1iqifb8izwg3559cr4h7clkpzznh"))))
2826 (build-system go-build-system)
2827 (arguments
2828 '(#:import-path
2829 "github.com/multiformats/go-multiaddr"))
2830 (native-inputs
2831 `(("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
2832 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2833 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2834 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2835 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2836 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
2837 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
2838 (home-page "https://github.com/multiformats/go-multiaddr")
2839 (synopsis "Composable and future-proof network addresses")
2840 (description "Multiaddr is a standard way to represent addresses that
2841 does the following:
2842
2843 @itemize
2844 @item Support any standard network protocols.
2845 @item Self-describe (include protocols).
2846 @item Have a binary packed format.
2847 @item Have a nice string representation.
2848 @item Encapsulate well.
2849 @end itemize\n")
2850 (license license:expat))))
2851
2852 (define-public go-github-com-multiformats-go-multiaddr-net
2853 (let ((commit "1cb9a0e8a6de3c8a10f6cee60d01d793603c4f7e")
2854 (revision "0"))
2855 (package
2856 (name "go-github-com-multiformats-go-multiaddr-net")
2857 (version (git-version "1.6.3" revision commit))
2858 (source
2859 (origin
2860 (method git-fetch)
2861 (uri (git-reference
2862 (url "https://github.com/multiformats/go-multiaddr-net")
2863 (commit commit)))
2864 (file-name (git-file-name name version))
2865 (sha256
2866 (base32
2867 "1ypgi47xdz3bh8lh7f8cmk7w3ql9g4izx5l3kzdg9gda1xn5zxq3"))))
2868 (build-system go-build-system)
2869 (arguments
2870 (quote (#:import-path "github.com/multiformats/go-multiaddr-net"
2871 ;; TODO: Tests fail because they try to access the network.
2872 #:tests? #f)))
2873 (native-inputs
2874 `(("go-github-com-multiformats-go-multiaddr" ,go-github-com-multiformats-go-multiaddr)
2875 ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
2876 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2877 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2878 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2879 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2880 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
2881 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
2882 (home-page "https://github.com/multiformats/go-multiaddr-net")
2883 (synopsis "Multiaddress net tools")
2884 (description "This package provides Multiaddr specific versions of
2885 common functions in stdlib's @command{net} package. This means wrappers of
2886 standard net symbols like @command{net.Dial} and @command{net.Listen}, as well
2887 as conversion to and from @command{net.Addr}.")
2888 (license license:expat))))
2889
2890 (define-public go-github-com-whyrusleeping-tar-utils
2891 (let ((commit "8c6c8ba81d5c71fd69c0f48dbde4b2fb422b6dfc")
2892 (revision "0"))
2893 (package
2894 (name "go-github-com-whyrusleeping-tar-utils")
2895 (version (git-version "0.0.0" revision commit))
2896 (source
2897 (origin
2898 (method git-fetch)
2899 (uri (git-reference
2900 (url "https://github.com/whyrusleeping/tar-utils")
2901 (commit commit)))
2902 (file-name (git-file-name name version))
2903 (sha256
2904 (base32
2905 "14jjdw3yics0k467xsyk388684wdpi0bbx8nqj0y4pqxa0s0in6s"))))
2906 (build-system go-build-system)
2907 (arguments
2908 '(#:import-path
2909 "github.com/whyrusleeping/tar-utils"))
2910 (home-page "https://github.com/whyrusleeping/tar-utils")
2911 (synopsis "Tar utilities extracted from go-ipfs codebase")
2912 (description "Tar utilities extracted from @command{go-ipfs} codebase.")
2913 (license license:expat))))
2914
2915 (define-public go-github-com-cheekybits-is
2916 (let ((commit "68e9c0620927fb5427fda3708222d0edee89eae9")
2917 (revision "0"))
2918 (package
2919 (name "go-github-com-cheekybits-is")
2920 (version (git-version "0.0.0" revision commit))
2921 (source
2922 (origin
2923 (method git-fetch)
2924 (uri (git-reference
2925 (url "https://github.com/cheekybits/is")
2926 (commit commit)))
2927 (file-name (git-file-name name version))
2928 (sha256
2929 (base32
2930 "1mkbyzhwq3rby832ikq00nxv3jnckxsm3949wkxd8ya9js2jmg4d"))))
2931 (build-system go-build-system)
2932 (arguments
2933 '(#:import-path "github.com/cheekybits/is"))
2934 (home-page "https://github.com/cheekybits/is")
2935 (synopsis "Mini testing helper for Go")
2936 (description "A mini testing helper for Go.
2937
2938 @itemize
2939 @item It has a simple interface (@command{is.OK} and @command{is.Equal}).
2940 @item It plugs into existing Go toolchain (uses @command{testing.T}).
2941 @item It's obvious for newcomers.
2942 @item It also gives you @command{is.Panic} and @command{is.PanicWith} helpers
2943 - because testing panics is ugly.
2944 @end itemize\n")
2945 (license license:expat))))
2946
2947 (define-public go-github-com-sabhiram-go-gitignore
2948 (let ((commit "d3107576ba9425fc1c85f4b3569c4631b805a02e")
2949 (revision "0"))
2950 (package
2951 (name "go-github-com-sabhiram-go-gitignore")
2952 (version (git-version "1.0.2" revision commit))
2953 (source
2954 (origin
2955 (method git-fetch)
2956 (uri (git-reference
2957 (url "https://github.com/sabhiram/go-gitignore")
2958 (commit commit)))
2959 (file-name (git-file-name name version))
2960 (sha256
2961 (base32
2962 "1rdwyxgcsiwgmlqnc3k6h300mzlvjc3j21np4yh1h476wc8dvl0l"))))
2963 (build-system go-build-system)
2964 (arguments
2965 '(#:import-path
2966 "github.com/sabhiram/go-gitignore"))
2967 (native-inputs
2968 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
2969 (home-page "https://github.com/sabhiram/go-gitignore")
2970 (synopsis "Gitignore parser for Go")
2971 (description "A @command{.gitignore} parser for Go.")
2972 (license license:expat))))
2973
2974 (define-public go-github-com-urfave-cli
2975 (package
2976 (name "go-github-com-urfave-cli")
2977 (version "1.22.2")
2978 (source
2979 (origin
2980 (method git-fetch)
2981 (uri (git-reference
2982 (url "https://github.com/urfave/cli")
2983 (commit (string-append "v" version))))
2984 (file-name (git-file-name name version))
2985 (sha256
2986 (base32
2987 "10mcnvi5qmn00vpyk6si8gjka7p654wr9hac4zc9w5h3ickhvbdc"))))
2988 (build-system go-build-system)
2989 (arguments
2990 '(#:import-path "github.com/urfave/cli"))
2991 (propagated-inputs
2992 `(("go-github-com-go-md2man" ,go-github-com-go-md2man)))
2993 (home-page "https://github.com/urfave/cli")
2994 (synopsis "Simple, fast, and fun package for building command line apps in Go")
2995 (description "@command{cli} is a simple, fast, and fun package for
2996 building command line apps in Go. The goal is to enable developers to write
2997 fast and distributable command line applications in an expressive way.")
2998 (license license:expat)))
2999
3000 (define-public go-github-com-go-md2man
3001 (package
3002 (name "go-github-com-go-md2man")
3003 (version "2.0.0")
3004 (source
3005 (origin
3006 (method git-fetch)
3007 (uri (git-reference
3008 (url "https://github.com/cpuguy83/go-md2man")
3009 (commit (string-append "v" version))))
3010 (file-name (git-file-name name version))
3011 (sha256
3012 (base32
3013 "0r1f7v475dxxgzqci1mxfliwadcrk86ippflx9n411325l4g3ghv"))
3014 (modules '((guix build utils)))
3015 (snippet '(begin
3016 (delete-file-recursively "vendor")
3017 #t))))
3018 (build-system go-build-system)
3019 (arguments
3020 '(#:import-path "github.com/cpuguy83/go-md2man"))
3021 (propagated-inputs
3022 `(("go-github-com-russross-blackfriday" ,go-github-com-russross-blackfriday)))
3023 (home-page "https://github.com/cpuguy83/go-md2man")
3024 (synopsis "Convert markdown into roff")
3025 (description "Go-md2man is a Go program that converts markdown to roff for
3026 the purpose of building man pages.")
3027 (license license:expat)))
3028
3029 (define-public go-github-com-russross-blackfriday
3030 (package
3031 (name "go-github-com-russross-blackfriday")
3032 (version "2.0.1")
3033 (source
3034 (origin
3035 (method git-fetch)
3036 (uri (git-reference
3037 (url "https://github.com/russross/blackfriday")
3038 (commit (string-append "v" version))))
3039 (file-name (git-file-name name version))
3040 (sha256
3041 (base32
3042 "0nlz7isdd4rgnwzs68499hlwicxz34j2k2a0b8jy0y7ycd2bcr5j"))))
3043 (build-system go-build-system)
3044 (arguments
3045 '(#:import-path "github.com/russross/blackfriday"))
3046 (propagated-inputs
3047 `(("go-github-com-shurcool-sanitized-anchor-name"
3048 ,go-github-com-shurcool-sanitized-anchor-name)))
3049 (native-inputs
3050 `(("go-github-com-pmezard-go-difflib" ,go-github-com-pmezard-go-difflib)))
3051 (home-page "https://github.com/russross/blackfriday")
3052 (synopsis "Markdown processor in Go")
3053 (description "Blackfriday is a Markdown processor in Go.")
3054 (license license:bsd-2)))
3055
3056 (define-public go-github-com-shurcool-sanitized-anchor-name
3057 (package
3058 (name "go-github-com-shurcool-sanitized-anchor-name")
3059 (version "1.0.0")
3060 (source
3061 (origin
3062 (method git-fetch)
3063 (uri (git-reference
3064 (url "https://github.com/shurcooL/sanitized_anchor_name")
3065 (commit (string-append "v" version))))
3066 (file-name (git-file-name name version))
3067 (sha256
3068 (base32
3069 "1gv9p2nr46z80dnfjsklc6zxbgk96349sdsxjz05f3z6wb6m5l8f"))))
3070 (build-system go-build-system)
3071 (arguments
3072 '(#:import-path "github.com/shurcooL/sanitized_anchor_name"))
3073 (home-page "https://github.com/shurcooL/sanitized_anchor_name")
3074 (synopsis "Create sanitized anchor names")
3075 (description "This package provides a Go program for creating sanitized
3076 anchor names.")
3077 (license license:expat)))
3078
3079 (define-public go-github-com-pmezard-go-difflib
3080 (package
3081 (name "go-github-com-pmezard-go-difflib")
3082 (version "1.0.0")
3083 (source (origin
3084 (method git-fetch)
3085 (uri (git-reference
3086 (url "https://github.com/pmezard/go-difflib")
3087 (commit (string-append "v" version))))
3088 (file-name (git-file-name name version))
3089 (sha256
3090 (base32
3091 "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"))))
3092 (build-system go-build-system)
3093 (arguments
3094 '(#:import-path "github.com/pmezard/go-difflib/difflib"
3095 #:unpack-path "github.com/pmezard/go-difflib/"))
3096 (home-page "https://github.com/pmezard/go-difflib")
3097 (synopsis "Go diff implementation")
3098 (description "This package provides unified and context-aware diffs in Go.")
3099 (license license:bsd-3)))
3100
3101 (define-public go-github-com-whyrusleeping-json-filter
3102 (let ((commit "ff25329a9528f01c5175414f16cc0a6a162a5b8b")
3103 (revision "0"))
3104 (package
3105 (name "go-github-com-whyrusleeping-json-filter")
3106 (version (git-version "0.0.0" revision commit))
3107 (source
3108 (origin
3109 (method git-fetch)
3110 (uri (git-reference
3111 (url "https://github.com/whyrusleeping/json-filter")
3112 (commit commit)))
3113 (file-name (git-file-name name version))
3114 (sha256
3115 (base32
3116 "0cai0drvx4c8j686l908vpcsz3mw3vxi3ziz94b0f3c5ylpj07j7"))))
3117 (build-system go-build-system)
3118 (arguments
3119 '(#:import-path
3120 "github.com/whyrusleeping/json-filter"))
3121 (home-page "https://github.com/whyrusleeping/json-filter")
3122 (synopsis "Library to query JSON objects marshalled into map[string]interface")
3123 (description "A library to query JSON objects marshalled into
3124 @command{map[string]interface{}}.")
3125 (license license:expat))))
3126
3127 (define-public go-github-com-whyrusleeping-progmeter
3128 (let ((commit "f3e57218a75b913eff88d49a52c1debf9684ea04")
3129 (revision "0"))
3130 (package
3131 (name "go-github-com-whyrusleeping-progmeter")
3132 (version (git-version "0.0.0" revision commit))
3133 (source
3134 (origin
3135 (method git-fetch)
3136 (uri (git-reference
3137 (url "https://github.com/whyrusleeping/progmeter")
3138 (commit commit)))
3139 (file-name (git-file-name name version))
3140 (sha256
3141 (base32
3142 "0xs8rz6yhpvj9512c5v3b8dwr2kivywnyyfxzdfbr6fy1xc8zskb"))))
3143 (build-system go-build-system)
3144 (arguments
3145 '(#:import-path
3146 "github.com/whyrusleeping/progmeter"))
3147 (home-page "https://github.com/whyrusleeping/progmeter")
3148 (synopsis "Progress meter for Go")
3149 (description "Progress meter for Go.")
3150 (license license:expat))))
3151
3152 (define-public go-github-com-whyrusleeping-stump
3153 (let ((commit "206f8f13aae1697a6fc1f4a55799faf955971fc5")
3154 (revision "0"))
3155 (package
3156 (name "go-github-com-whyrusleeping-stump")
3157 (version (git-version "0.0.0" revision commit))
3158 (source
3159 (origin
3160 (method git-fetch)
3161 (uri (git-reference
3162 (url "https://github.com/whyrusleeping/stump")
3163 (commit commit)))
3164 (file-name (git-file-name name version))
3165 (sha256
3166 (base32
3167 "1s40qdppjnk8gijk7x6kbviiqz62nz3h6gic2q9cwcmq8r5isw7n"))))
3168 (build-system go-build-system)
3169 (arguments
3170 '(#:import-path "github.com/whyrusleeping/stump"))
3171 (home-page "https://github.com/whyrusleeping/stump")
3172 (synopsis "Very basic logging package for Go")
3173 (description "A simple log library, for when you don't really care to
3174 have super fancy logs.")
3175 (license license:expat))))
3176
3177 (define-public go-github-com-kr-fs
3178 (let ((commit "1455def202f6e05b95cc7bfc7e8ae67ae5141eba")
3179 (revision "0"))
3180 (package
3181 (name "go-github-com-kr-fs")
3182 (version (git-version "0.1.0" revision commit))
3183 (source
3184 (origin
3185 (method git-fetch)
3186 (uri (git-reference
3187 (url "https://github.com/kr/fs")
3188 (commit commit)))
3189 (file-name (git-file-name name version))
3190 (sha256
3191 (base32
3192 "11zg176x9hr9q7fsk95r6q0wf214gg4czy02slax4x56n79g6a7q"))))
3193 (build-system go-build-system)
3194 (arguments
3195 '(#:import-path "github.com/kr/fs"))
3196 (home-page "https://github.com/kr/fs")
3197 (synopsis "File-system-related functions for Go")
3198 (description
3199 "The fs package provides file-system-related Go functions.")
3200 (license license:bsd-3))))
3201
3202 (define-public go-github-com-direnv-go-dotenv
3203 (let ((commit "4cce6d1a66f7bc8dc730eab85cab6af1b801abed")
3204 (revision "0"))
3205 (package
3206 (name "go-github-com-direnv-go-dotenv")
3207 (version (git-version "0.0.0" revision commit))
3208 (source
3209 (origin
3210 (method git-fetch)
3211 (uri (git-reference
3212 (url "https://github.com/direnv/go-dotenv")
3213 (commit commit)))
3214 (file-name (git-file-name name version))
3215 (sha256
3216 (base32
3217 "00wn4fc2lma0csf6ryvlc6k9jbpbifm4n7i3kkd2xrfw5qlm29b6"))))
3218 (build-system go-build-system)
3219 (arguments
3220 '(#:import-path "github.com/direnv/go-dotenv"))
3221 (home-page "https://github.com/direnv/go-dotenv")
3222 (synopsis "Go dotenv parsing library")
3223 (description "This package provides a library for parsing the dotenv
3224 format in Go.")
3225 (license license:expat))))
3226
3227 (define-public go-github-com-kr-pretty
3228 (package
3229 (name "go-github-com-kr-pretty")
3230 (version "0.2.0")
3231 (source (origin
3232 (method git-fetch)
3233 (uri (git-reference
3234 (url "https://github.com/kr/pretty")
3235 (commit (string-append "v" version))))
3236 (file-name (git-file-name name version))
3237 (sha256
3238 (base32
3239 "1ywbfzz1h3a3qd8rpkiqwi1dm4w8ls9ijb4x1b7567grns9f0vnp"))))
3240 (build-system go-build-system)
3241 (propagated-inputs
3242 `(("go-github-com-kr-text" ,go-github-com-kr-text)))
3243 (arguments
3244 '(#:import-path "github.com/kr/pretty"))
3245 (synopsis "A pretty printer for Go values")
3246 (description "This package provides a pretty printer for Go values.")
3247 (home-page "https://github.com/kr/pretty")
3248 (license license:expat)))
3249
3250 (define-public go-github-com-kr-text
3251 (package
3252 (name "go-github-com-kr-text")
3253 (version "0.1.0")
3254 (source (origin
3255 (method git-fetch)
3256 (uri (git-reference
3257 (url "https://github.com/kr/text")
3258 (commit (string-append "v" version))))
3259 (file-name (git-file-name name version))
3260 (sha256
3261 (base32
3262 "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"))))
3263 (build-system go-build-system)
3264 (arguments
3265 '(#:import-path "github.com/kr/text"))
3266 (synopsis "Text formatting in Go")
3267 (description "This package provides a text formatting functions in Go.")
3268 (home-page "https://github.com/kr/text")
3269 (license license:expat)))
3270
3271 (define-public go-golang-org-sql-mock
3272 (let ((commit "e98392b8111b45f8126e00af035a0dd95dc12e8b")
3273 (version "1.3.3")
3274 (revision "1"))
3275 (package
3276 (name "go-golang-org-sql-mock")
3277 (version (git-version version revision commit))
3278 (source (origin
3279 (method git-fetch)
3280 (uri (git-reference
3281 (url "https://github.com/DATA-DOG/go-sqlmock")
3282 (commit commit)))
3283 (file-name (git-file-name name version))
3284 (sha256
3285 (base32
3286 "033vv29g2wf6fd757ajfmha30bqin3b07377037zkl051mk6mghs"))))
3287 (build-system go-build-system)
3288 (arguments
3289 '(#:import-path "github.com/DATA-DOG/go-sqlmock"))
3290 (synopsis "Mock library implementing @code{sql/driver}")
3291 (description "This library simulates SQL-driver behavior in tests
3292 without requiring a real database connection.")
3293 (home-page "https://github.com/DATA-DOG/go-sqlmock")
3294 (license license:expat))))
3295
3296 (define-public go-golang-org-colorful
3297 (package
3298 (name "go-golang-org-colorful")
3299 (version "1.0.2")
3300 (source (origin
3301 (method git-fetch)
3302 (uri (git-reference
3303 (url "https://github.com/lucasb-eyer/go-colorful")
3304 (commit (string-append "v" version))))
3305 (file-name (git-file-name name version))
3306 (sha256
3307 (base32
3308 "0fig06880bvk1l92j4127v4x9sar4ds7ga8959gxxghb2w70b7l2"))))
3309 (build-system go-build-system)
3310 (arguments
3311 '(#:import-path "github.com/lucasb-eyer/go-colorful"))
3312 (native-inputs
3313 `(("go-golang-org-sql-mock" ,go-golang-org-sql-mock)))
3314 (synopsis "Convert between colorspaces and generate colors")
3315 (description "This package implements Go's @code{color.Color} interface
3316 and provides a means of converting colors stored as RGB to various
3317 colorspaces.")
3318 (home-page "https://github.com/lucasb-eyer/go-colorful")
3319 (license license:expat)))
3320
3321 (define-public go-github-com-gdamore-encoding
3322 (package
3323 (name "go-github-com-gdamore-encoding")
3324 (version "1.0.0")
3325 (source
3326 (origin
3327 (method git-fetch)
3328 (uri (git-reference
3329 (url "https://github.com/gdamore/encoding")
3330 (commit (string-append "v" version))))
3331 (file-name (git-file-name name version))
3332 (sha256
3333 (base32
3334 "1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9"))))
3335 (build-system go-build-system)
3336 (arguments
3337 '(#:import-path "github.com/gdamore/encoding"))
3338 (inputs
3339 `(("go-golang-org-x-text" ,go-golang-org-x-text)))
3340 (home-page "https://github.com/gdamore/encoding")
3341 (synopsis "Provide encodings missing from Go")
3342 (description "This package provides useful encodings not included in the
3343 standard @code{Text} package, including some for dealing with I/O streams from
3344 non-UTF-friendly sources.")
3345 (license license:expat)))
3346
3347 (define-public go-github-com-gdamore-tcell
3348 (let ((commit "aaadc574a6ed8dc3abe56036ca130dcee1ee6b6e")
3349 (version "1.1.2")
3350 (revision "1"))
3351 (package
3352 (name "go-github-com-gdamore-tcell")
3353 (version (git-version version revision commit))
3354 (source
3355 (origin
3356 (method git-fetch)
3357 (uri (git-reference
3358 (url "https://github.com/gdamore/tcell")
3359 (commit commit)))
3360 (file-name (git-file-name name version))
3361 (sha256
3362 (base32
3363 "0il2nnxp2cqiy73m49215dnf9in3vd25ji8qxbmq87c5qy7i1q9d"))))
3364 (build-system go-build-system)
3365 (arguments
3366 `(#:import-path "github.com/gdamore/tcell"
3367 #:phases
3368 (modify-phases %standard-phases
3369 (add-before 'reset-gzip-timestamps 'make-files-writable
3370 (lambda* (#:key outputs #:allow-other-keys)
3371 ;; Make sure .gz files are writable so that the
3372 ;; 'reset-gzip-timestamps' phase can do its work.
3373 (let ((out (assoc-ref outputs "out")))
3374 (for-each make-file-writable
3375 (find-files out "\\.gz$"))
3376 #t))))))
3377 (inputs
3378 `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
3379 ("go-golang-org-colorful" ,go-golang-org-colorful)
3380 ("go-golang-org-x-text" ,go-golang-org-x-text)
3381 ("go-github-com-gdamore-encoding" ,go-github-com-gdamore-encoding)))
3382 (home-page "https://github.com/gdamore/tcell")
3383 (synopsis "Provide a cell-based view for text terminals")
3384 (description "This package includes a full parser and expander for
3385 terminfo capability strings to avoid hard-coding escape strings for
3386 formatting. It also favors portability, and includes support for all POSIX
3387 systems.")
3388 (license license:expat))))
3389
3390 (define-public go-github-com-mattn-go-shellwords
3391 (let ((commit "2444a32a19f450fabaa0bb3e96a703f15d9a97d2")
3392 (version "1.0.5")
3393 (revision "1"))
3394 (package
3395 (name "go-github-com-mattn-go-shellwords")
3396 (version (git-version version revision commit))
3397 (source
3398 (origin
3399 (method git-fetch)
3400 (uri (git-reference
3401 (url "https://github.com/mattn/go-shellwords")
3402 (commit commit)))
3403 (file-name (git-file-name name version))
3404 (sha256
3405 (base32
3406 "08zcgr1az1n8zaxzwdd205j86hczgyc52nxfnw5avpw7rrkf7v0d"))))
3407 (build-system go-build-system)
3408 (arguments
3409 `(#:import-path "github.com/mattn/go-shellwords"
3410 ;; TODO: can't make homeless-shelter:
3411 ;; go: disabling cache (/homeless-shelter/.cache/go-build) due to
3412 ;; initialization failure: mkdir /homeless-shelter: permission denied
3413
3414 ;; This doesn't seem to work:
3415
3416 ;; #:phases
3417 ;; (modify-phases %standard-phases
3418 ;; (replace 'check
3419 ;; (lambda* (#:key import-path #:allow-other-keys)
3420 ;; (setenv "HOME" "/tmp")
3421 ;; (invoke "go" "test" import-path))))
3422
3423 ;; TODO: There are also a couple of tests that have stymied Debian in
3424 ;; the past. They seem to work when run locally.
3425
3426 #:tests? #f
3427 ))
3428 (home-page "https://github.com/mattn/go-shellwords")
3429 (synopsis "Parse lines into shell words")
3430 (description "This package parses text into shell arguments. Based on
3431 the @code{cpan} module @code{Parse::CommandLine}.")
3432 (license license:expat))))
3433
3434 (define-public go-github-com-burntsushi-locker
3435 (let ((commit "a6e239ea1c69bff1cfdb20c4b73dadf52f784b6a")
3436 (revision "0"))
3437 (package
3438 (name "go-github-com-burntsushi-locker")
3439 (version (git-version "0.0.0" revision commit))
3440 (source
3441 (origin
3442 (method git-fetch)
3443 (uri (git-reference
3444 (url "https://github.com/BurntSushi/locker")
3445 (commit commit)))
3446 (file-name (git-file-name name version))
3447 (sha256
3448 (base32
3449 "1xak4aync4klswq5217qvw191asgla51jr42y94vp109lirm5dzg"))))
3450 (build-system go-build-system)
3451 (arguments
3452 '(#:import-path "github.com/BurntSushi/locker"))
3453 (home-page "https://github.com/BurntSushi/locker")
3454 (synopsis "Manage named ReadWrite mutexes in Go")
3455 (description "Golang package for conveniently using named read/write
3456 locks. These appear to be especially useful for synchronizing access to
3457 session based information in web applications.
3458
3459 The common use case is to use the package level functions, which use a package
3460 level set of locks (safe to use from multiple goroutines
3461 simultaneously). However, you may also create a new separate set of locks
3462 test.
3463
3464 All locks are implemented with read-write mutexes. To use them like a regular
3465 mutex, simply ignore the RLock/RUnlock functions.")
3466 (license license:unlicense))))
3467
3468 (define-public go-github-com-marten-seemann-qtls
3469 (package
3470 (name "go-github-com-marten-seemann-qtls")
3471 (version "0.4.1")
3472 (source (origin
3473 (method git-fetch)
3474 (uri (git-reference
3475 (url "https://github.com/marten-seemann/qtls")
3476 (commit (string-append "v" version))))
3477 (file-name (git-file-name name version))
3478 (sha256
3479 (base32
3480 "0dz60y98nm7l70hamq0v2vrs2dspyr5yqhnrds2dfh7hchxvq76j"))))
3481 (build-system go-build-system)
3482 (arguments
3483 '(#:import-path "github.com/marten-seemann/qtls"
3484 ;; The test suite requires networking.
3485 #:tests? #f))
3486 (propagated-inputs
3487 `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
3488 (synopsis "TLS 1.3 with QUIC in Go")
3489 (description "This package provides @code{qtls}, a QUIC-capable variant of
3490 the Go standard library's TLS 1.3 implementation.")
3491 (home-page "https://github.com/marten-seemann/qtls")
3492 (license license:bsd-3)))
3493
3494 (define-public go-github-com-marten-seemann-chacha20
3495 (package
3496 (name "go-github-com-marten-seemann-chacha20")
3497 (version "0.2.0")
3498 (source (origin
3499 (method git-fetch)
3500 (uri (git-reference
3501 (url "https://github.com/marten-seemann/chacha20")
3502 (commit (string-append "v" version))))
3503 (file-name (git-file-name name version))
3504 (sha256
3505 (base32
3506 "0x1j4cvbap45zk962qkjalc1h3axhzzdy9cdzhcjmprmm1ql4gjm"))))
3507 (build-system go-build-system)
3508 (arguments
3509 '(#:import-path "github.com/marten-seemann/chacha20"))
3510 (synopsis "ChaCha20 in Go")
3511 (description "This package is an external copy of the Go standard library's
3512 internal ChaCha20 package.")
3513 (home-page "https://github.com/marten-seemann/chacha20")
3514 (license license:bsd-3)))
3515
3516 (define-public go-github-com-cheekybits-genny
3517 (package
3518 (name "go-github-com-cheekybits-genny")
3519 (version "1.0.0")
3520 (source (origin
3521 (method git-fetch)
3522 (uri (git-reference
3523 (url "https://github.com/cheekybits/genny")
3524 (commit (string-append "v" version))))
3525 (file-name (git-file-name name version))
3526 (sha256
3527 (base32
3528 "1pcir5ic86713aqa51581rfb67rgc3m0c72ddjfcp3yakv9vyq87"))))
3529 (build-system go-build-system)
3530 (arguments
3531 '(#:import-path "github.com/cheekybits/genny"))
3532 (propagated-inputs
3533 `(("go-golang-org-x-tools" ,go-golang-org-x-tools)))
3534 (synopsis "Generics for Go")
3535 (description "This package provides @code{genny}, a Go language
3536 implementation of generics.")
3537 (home-page "https://github.com/cheekybits/genny/")
3538 (license license:expat)))
3539
3540 (define-public go-github-com-lucas-clemente-quic-go
3541 (package
3542 (name "go-github-com-lucas-clemente-quic-go")
3543 (version "0.14.4")
3544 (source (origin
3545 (method git-fetch)
3546 (uri (git-reference
3547 (url "https://github.com/lucas-clemente/quic-go")
3548 (commit (string-append "v" version))))
3549 (file-name (git-file-name name version))
3550 (sha256
3551 (base32
3552 "04l3gqbc3gh079n8vgnrsf8ypgv8sl63xjf28jqfrb45v2l73vyz"))))
3553 (build-system go-build-system)
3554 (arguments
3555 '(#:import-path "github.com/lucas-clemente/quic-go"
3556 ;; XXX More packages required...
3557 #:tests? #f))
3558 (propagated-inputs
3559 `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
3560 ("go-github-com-cheekybits-genny" ,go-github-com-cheekybits-genny)
3561 ("go-github-com-marten-seemann-chacha20" ,go-github-com-marten-seemann-chacha20)
3562 ("go-github-com-marten-seemann-qtls" ,go-github-com-marten-seemann-qtls)
3563 ("go-github-com-golang-protobuf-proto" ,go-github-com-golang-protobuf-proto)))
3564 (synopsis "QUIC in Go")
3565 (description "This package provides a Go language implementation of the QUIC
3566 network protocol.")
3567 (home-page "https://github.com/lucas-clemente/quic-go")
3568 (license license:expat)))
3569
3570 (define-public go-github-com-francoispqt-gojay
3571 (package
3572 (name "go-github-com-francoispqt-gojay")
3573 (version "1.2.13")
3574 (source (origin
3575 (method git-fetch)
3576 (uri (git-reference
3577 (url "https://github.com/francoispqt/gojay")
3578 (commit (string-append "v" version))))
3579 (file-name (git-file-name name version))
3580 (sha256
3581 (base32
3582 "1ix95qdyajfmxhf9y52vjrih63f181pjs4v5as8905s4d5vmkd06"))))
3583 (build-system go-build-system)
3584 (arguments
3585 '(#:import-path "github.com/francoispqt/gojay"))
3586 (propagated-inputs
3587 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
3588 (synopsis "JSON encoder/decoder with powerful stream API for Golang")
3589 (description "GoJay is a performant JSON encoder/decoder for Golang. It has
3590 a simple API and doesn't use reflection. It relies on small interfaces to
3591 decode/encode structures and slices.")
3592 (home-page "https://github.com/francoispqt/gojay")
3593 (license license:expat)))
3594
3595 (define-public go-github-com-pkg-errors
3596 (package
3597 (name "go-github-com-pkg-errors")
3598 (version "0.9.1")
3599 (source (origin
3600 (method git-fetch)
3601 (uri (git-reference
3602 (url "https://github.com/pkg/errors")
3603 (commit (string-append "v" version))))
3604 (file-name (git-file-name name version))
3605 (sha256
3606 (base32
3607 "1761pybhc2kqr6v5fm8faj08x9bql8427yqg6vnfv6nhrasx1mwq"))))
3608 (build-system go-build-system)
3609 (arguments
3610 `(#:import-path "github.com/pkg/errors"))
3611 (synopsis "Go error handling primitives")
3612 (description "This package provides @code{error}, which offers simple
3613 error handling primitives in Go.")
3614 (home-page "https://github.com/pkg/errors")
3615 (license license:bsd-2)))
3616
3617 (define-public go-github-com-maruel-panicparse
3618 (package
3619 (name "go-github-com-maruel-panicparse")
3620 (version "1.3.0")
3621 (source (origin
3622 (method git-fetch)
3623 (uri (git-reference
3624 (url "https://github.com/maruel/panicparse")
3625 (commit (string-append "v" version))))
3626 (file-name (git-file-name name version))
3627 (sha256
3628 (base32
3629 "13qkn7f64yln8jdmma37h6ra4c7anxkp3vfgvfyb6lb07dpr1ibq"))))
3630 (build-system go-build-system)
3631 (arguments
3632 '(#:import-path "github.com/maruel/panicparse"))
3633 (synopsis "Toolkit for parsing Go stack traces")
3634 (description "This package provides a toolkit for parsing Go language panic
3635 stack traces. It simplifies the traces to make salient information more visible
3636 and aid debugging.")
3637 (home-page "https://github.com/maruel/panicparse")
3638 (license license:asl2.0)))
3639
3640 (define-public go-github-com-robfig-cron
3641 (package
3642 (name "go-github-com-robfig-cron")
3643 (version "3.0.1")
3644 (source
3645 (origin
3646 (method git-fetch)
3647 (uri (git-reference
3648 (url "https://github.com/robfig/cron")
3649 (commit (string-append "v" version))))
3650 (file-name (git-file-name name version))
3651 (sha256
3652 (base32
3653 "1agzbw2dfk2d1mpmddr85s5vh6ygm8kqrvfg87i9d2wqnlsnliqm"))))
3654 (build-system go-build-system)
3655 (arguments
3656 `(#:import-path "github.com/robfig/cron"))
3657 (home-page "https://godoc.org/github.com/robfig/cron")
3658 (synopsis "Cron library for Go")
3659 (description "This package provides a cron library for Go. It implements
3660 a cron spec parser and job runner.")
3661 (license license:expat)))
3662
3663 (define-public go-github-com-shirou-gopsutil
3664 (let ((commit "47ef3260b6bf6ead847e7c8fc4101b33c365e399")
3665 (revision "0"))
3666 (package
3667 (name "go-github-com-shirou-gopsutil")
3668 (version (git-version "v2.19.7" revision commit))
3669 (source (origin
3670 (method git-fetch)
3671 (uri (git-reference
3672 (url "https://github.com/shirou/gopsutil")
3673 (commit commit))) ; XXX
3674 (file-name (git-file-name name version))
3675 (sha256
3676 (base32
3677 "0x1g4r32q4201nr2b754xnrrndmwsrhfr7zg37spya86qrmijnws"))))
3678 (build-system go-build-system)
3679 (arguments
3680 '(#:import-path "github.com/shirou/gopsutil"))
3681 (synopsis "Process and system monitoring in Go")
3682 (description "This package provides a library for retrieving information
3683 on running processes and system utilization (CPU, memory, disks, network,
3684 sensors).")
3685 (home-page "https://github.com/shirou/gopsutil")
3686 (license license:bsd-3))))
3687
3688 (define-public go-github-com-danwakefield-fnmatch
3689 (let ((commit "cbb64ac3d964b81592e64f957ad53df015803288")
3690 (revision "0"))
3691 (package
3692 (name "go-github-com-danwakefield-fnmatch")
3693 (version (git-version "0.0.0" revision commit))
3694 (source
3695 (origin
3696 (method git-fetch)
3697 (uri (git-reference
3698 (url "https://github.com/danwakefield/fnmatch")
3699 (commit commit)))
3700 (sha256
3701 (base32
3702 "0cbf511ppsa6hf59mdl7nbyn2b2n71y0bpkzbmfkdqjhanqh1lqz"))
3703 (file-name (git-file-name name version))))
3704 (build-system go-build-system)
3705 (arguments
3706 '(#:import-path "github.com/danwakefield/fnmatch"))
3707 (home-page "https://github.com/danwakefield/fnmatch")
3708 (synopsis "Updated clone of kballards golang fnmatch gist")
3709 (description "This package provides an updated clone of kballards golang
3710 fnmatch gist (https://gist.github.com/kballard/272720).")
3711 (license license:bsd-2))))
3712
3713 (define-public go-github-com-ddevault-go-libvterm
3714 (let ((commit "b7d861da381071e5d3701e428528d1bfe276e78f")
3715 (revision "0"))
3716 (package
3717 (name "go-github-com-ddevault-go-libvterm")
3718 (version (git-version "0.0.0" revision commit))
3719 (source
3720 (origin
3721 (method git-fetch)
3722 (uri (git-reference
3723 (url "https://github.com/ddevault/go-libvterm")
3724 (commit commit)))
3725 (sha256
3726 (base32
3727 "06vv4pgx0i6hjdjcar4ch18hp9g6q6687mbgkvs8ymmbacyhp7s6"))
3728 (file-name (git-file-name name version))))
3729 (build-system go-build-system)
3730 (arguments
3731 '(#:import-path "github.com/ddevault/go-libvterm"))
3732 (propagated-inputs
3733 `(("go-github-com-mattn-go-pointer" ,go-github-com-mattn-go-pointer)))
3734 (home-page "https://github.com/ddevault/go-libvterm")
3735 (synopsis "Go binding to libvterm")
3736 (description
3737 "This is a fork of another go-libvterm library for use with aerc.")
3738 (license license:expat))))
3739
3740 (define-public go-github-com-emersion-go-imap
3741 (package
3742 (name "go-github-com-emersion-go-imap")
3743 (version "1.0.0")
3744 (source
3745 (origin
3746 (method git-fetch)
3747 (uri (git-reference
3748 (url "https://github.com/emersion/go-imap")
3749 (commit (string-append "v" version))))
3750 (sha256
3751 (base32
3752 "1id8j2d0rn9sj8y62xhyygqpk5ygrcl9jlfx92sm1jsvxsm3kywq"))
3753 (file-name (git-file-name name version))))
3754 (build-system go-build-system)
3755 (arguments
3756 '(#:import-path "github.com/emersion/go-imap"))
3757 (native-inputs
3758 `(("go-golang-org-x-text" ,go-golang-org-x-text)))
3759 (home-page "https://github.com/emersion/go-imap")
3760 (synopsis "IMAP4rev1 library written in Go")
3761 (description "This package provides an IMAP4rev1 library written in Go. It
3762 can be used to build a client and/or a server.")
3763 (license license:expat)))
3764
3765 (define-public go-github-com-emersion-go-sasl
3766 (let ((commit "240c8404624e076f633766c16adbe96c7ac516b7")
3767 (revision "0"))
3768 (package
3769 (name "go-github-com-emersion-go-sasl")
3770 (version (git-version "0.0.0" revision commit))
3771 (source
3772 (origin
3773 (method git-fetch)
3774 (uri (git-reference
3775 (url "https://github.com/emersion/go-sasl")
3776 (commit commit)))
3777 (sha256
3778 (base32
3779 "1py18p3clp474xhx6ypyp0bgv6n1dfm24m95cyyqb0k3vibar6ih"))
3780 (file-name (git-file-name name version))))
3781 (build-system go-build-system)
3782 (arguments
3783 '(#:import-path "github.com/emersion/go-sasl"))
3784 (home-page "https://github.com/emersion/go-sasl")
3785 (synopsis "SASL library written in Go")
3786 (description "This package provides a SASL library written in Go.")
3787 (license license:expat))))
3788
3789 (define-public go-github-com-emersion-go-imap-idle
3790 (let ((commit "2704abd7050ed7f2143753554ee23affdf847bd9")
3791 (revision "0"))
3792 (package
3793 (name "go-github-com-emersion-go-imap-idle")
3794 (version (git-version "0.0.0" revision commit))
3795 (source
3796 (origin
3797 (method git-fetch)
3798 (uri (git-reference
3799 (url "https://github.com/emersion/go-imap-idle")
3800 (commit commit)))
3801 (sha256
3802 (base32
3803 "0blwcadmxgqsdwgr9m4jqfbpfa2viw5ah19xbybpa1z1z4aj5cbc"))
3804 (file-name (git-file-name name version))))
3805 (build-system go-build-system)
3806 (arguments
3807 '(#:import-path "github.com/emersion/go-imap-idle"))
3808 (native-inputs
3809 `(("go-github-com-emersion-go-imap" ,go-github-com-emersion-go-imap)
3810 ("go-github-com-emersion-go-sasl" ,go-github-com-emersion-go-sasl)
3811 ("go-golang-org-x-text" ,go-golang-org-x-text)))
3812 (home-page "https://github.com/emersion/go-imap-idle")
3813 (synopsis "IDLE extension for go-imap")
3814 (description "This package provides an IDLE extension for go-imap.")
3815 (license license:expat))))
3816
3817 (define-public go-github-com-fatih-color
3818 (package
3819 (name "go-github-com-fatih-color")
3820 (version "1.8.0")
3821 (source (origin
3822 (method git-fetch)
3823 (uri (git-reference
3824 (url "https://github.com/fatih/color")
3825 (commit (string-append "v" version))))
3826 (file-name (git-file-name name version))
3827 (sha256
3828 (base32
3829 "1zc0zlilf03h121f9jqq3ar0hfm7706547zysxp2qxbm920pz7h0"))))
3830 (build-system go-build-system)
3831 (arguments
3832 '(#:import-path "github.com/fatih/color"))
3833 (synopsis "Print colored text in Go")
3834 (description "This package provides an ANSI color package to output
3835 colorized or SGR defined output to the standard output.")
3836 (home-page "https://godoc.org/github.com/fatih/color")
3837 (license license:expat)))
3838
3839 (define-public go-github-com-google-go-cmp-cmp
3840 (package
3841 (name "go-github-com-google-go-cmp-cmp")
3842 (version "0.3.1")
3843 (source (origin
3844 (method git-fetch)
3845 (uri (git-reference
3846 (url "https://github.com/google/go-cmp")
3847 (commit (string-append "v" version))))
3848 (file-name (git-file-name name version))
3849 (sha256
3850 (base32
3851 "1caw49i0plkjxir7kdf5qhwls3krqwfmi7g4h392rdfwi3kfahx1"))))
3852 (build-system go-build-system)
3853 (arguments
3854 '(#:import-path "github.com/google/go-cmp/cmp"
3855 #:unpack-path "github.com/google/go-cmp"))
3856 (synopsis "Determine equality of values in Go")
3857 (description "This package provides a more powerful and safer
3858 alternative to @code{reflect.DeepEqual} for comparing whether two values
3859 are semantically equal in Go (for writing tests).")
3860 (home-page "https://godoc.org/github.com/google/go-cmp/cmp")
3861 (license license:asl2.0)))
3862
3863 (define-public go-github-com-google-uuid
3864 (package
3865 (name "go-github-com-google-uuid")
3866 (version "1.1.1")
3867 (source (origin
3868 (method git-fetch)
3869 (uri (git-reference
3870 (url "https://github.com/google/uuid")
3871 (commit (string-append "v" version))))
3872 (file-name (git-file-name name version))
3873 (sha256
3874 (base32
3875 "0hfxcf9frkb57k6q0rdkrmnfs78ms21r1qfk9fhlqga2yh5xg8zb"))))
3876 (build-system go-build-system)
3877 (arguments
3878 '(#:import-path "github.com/google/uuid"))
3879 (home-page "https://github.com/google/uuid/")
3880 (synopsis "Generate and inspect UUIDs based on RFC 4122 and DCE 1.1")
3881 (description "The uuid package generates and inspects UUIDs based on RFC
3882 4122 and DCE 1.1: Authentication and Security Services.")
3883 (license license:bsd-3)))
3884
3885 (define-public go-golang.org-x-sync-errgroup
3886 (let ((commit "cd5d95a43a6e21273425c7ae415d3df9ea832eeb")
3887 (revision "0"))
3888 (package
3889 (name "go-golang.org-x-sync-errgroup")
3890 (version (git-version "0.0.0" revision commit))
3891 (source (origin
3892 (method git-fetch)
3893 (uri (git-reference
3894 (url "https://go.googlesource.com/sync")
3895 (commit commit)))
3896 (file-name (git-file-name name version))
3897 (sha256
3898 (base32
3899 "1nqkyz2y1qvqcma52ijh02s8aiqmkfb95j08f6zcjhbga3ds6hds"))))
3900 (build-system go-build-system)
3901 (arguments
3902 '(#:import-path "golang.org/x/sync/errgroup"
3903 #:unpack-path "golang.org/x/sync"))
3904 (synopsis "Synchronization, error propagation, and Context cancellation
3905 for groups of goroutines working on subtasks of a common task.")
3906 (description "This package provides synchronization, error propagation,
3907 and Context cancellation for groups of goroutines working on subtasks of a
3908 common task.")
3909 (home-page "https://godoc.org/golang.org/x/sync/errgroup")
3910 (license license:bsd-3))))
3911
3912 (define (go-gotest-tools-source version sha256-base32-hash)
3913 (origin
3914 (method git-fetch)
3915 (uri (git-reference
3916 (url "https://github.com/gotestyourself/gotest.tools")
3917 (commit (string-append "v" version))))
3918 (file-name (git-file-name "go-gotest-tools" version))
3919 (sha256
3920 (base32 sha256-base32-hash))))
3921
3922 ;; Note that version 3.0.0 is incompatible to 2.3.0.
3923 ;; See also <https://github.com/gotestyourself/gotest.tools/issues/166>.
3924 (define (go-gotest-tools-package suffix)
3925 (package
3926 (name (string-append "go-gotest-tools-"
3927 (string-replace-substring suffix "/" "-")))
3928 (version "2.3.0")
3929 (source
3930 (go-gotest-tools-source version
3931 "0071rjxp4xzcr3vprkaj1hdk35a3v45bx8v0ipk16wwc5hx84i2i"))
3932 (build-system go-build-system)
3933 (arguments
3934 `(#:import-path ,(string-append "gotest.tools/" suffix)
3935 #:unpack-path "gotest.tools"))
3936 (synopsis "@code{gotest-tools} part")
3937 (description "This package provides a part of @code{gotest-tools}.")
3938 (home-page "https://github.com/gotestyourself/gotest.tools")
3939 (license license:asl2.0)))
3940
3941 (define-public go-gotest-tools-internal-format
3942 (package (inherit (go-gotest-tools-package "internal/format"))
3943 (native-inputs
3944 `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
3945 ("go-github-com-google-go-cmp-cmp"
3946 ,go-github-com-google-go-cmp-cmp)))
3947 (synopsis "Formats messages for use with gotest-tools")
3948 (description "This package provides a way to format messages for use
3949 with gotest-tools.")))
3950
3951 (define-public go-gotest-tools-internal-difflib
3952 (package (inherit (go-gotest-tools-package "internal/difflib"))
3953 (synopsis "Differences for use with gotest-tools")
3954 (description "This package computes differences for use
3955 with gotest-tools.")))
3956
3957 (define-public go-gotest-tools-internal-source
3958 (package (inherit (go-gotest-tools-package "internal/source"))
3959 (native-inputs
3960 `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
3961 ("go-github-com-google-go-cmp-cmp" ,go-github-com-google-go-cmp-cmp)))
3962 (synopsis "Source code AST formatters for gotest-tools")
3963 (description "This package provides source code AST formatters for
3964 gotest-tools.")))
3965
3966 (define-public go-gotest-tools-assert
3967 (package (inherit (go-gotest-tools-package "assert"))
3968 (name "go-gotest-tools-assert")
3969 (arguments
3970 `(#:tests? #f ; Test failure concerning message formatting (FIXME)
3971 #:import-path "gotest.tools/assert"
3972 #:unpack-path "gotest.tools"))
3973 ;(propagated-inputs
3974 ; `(("go-gotest-tools-internal-format" ,go-gotest-tools-internal-format)))
3975 (native-inputs
3976 `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
3977 ("go-github-com-google-go-cmp-cmp"
3978 ,go-github-com-google-go-cmp-cmp)))
3979 (synopsis "Compare values and fail a test when a comparison fails")
3980 (description "This package provides a way to compare values and fail a
3981 test when a comparison fails.")
3982 (home-page "https://github.com/gotestyourself/gotest.tools")
3983 (license license:asl2.0)))
3984
3985 (define-public gotestsum
3986 (package
3987 (name "gotestsum")
3988 (version "0.4.0")
3989 (source (origin
3990 (method git-fetch)
3991 (uri (git-reference
3992 (url "https://github.com/gotestyourself/gotestsum")
3993 (commit (string-append "v" version))))
3994 (file-name (git-file-name name version))
3995 (sha256
3996 (base32
3997 "0y71qr3ss3hgc8c7nmvpwk946xy1jc5d8whsv6y77wb24ncla7n0"))))
3998 (build-system go-build-system)
3999 (arguments
4000 '(#:import-path "gotest.tools/gotestsum"))
4001 (native-inputs
4002 `(("go-github-com-fatih-color" ,go-github-com-fatih-color)
4003 ("go-golang.org-x-sync-errgroup" ,go-golang.org-x-sync-errgroup)
4004 ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
4005 ("go-github-com-sirupsen-logrus"
4006 ,go-github-com-sirupsen-logrus)
4007 ("go-github-com-spf13-pflag" ,go-github-com-spf13-pflag)
4008 ("go-github-com-jonboulle-clockwork"
4009 ,go-github-com-jonboulle-clockwork)
4010 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
4011 ("go-gotest-tools-assert" ,go-gotest-tools-assert)
4012 ("go-github-com-google-go-cmp-cmp"
4013 ,go-github-com-google-go-cmp-cmp)
4014 ;; TODO: This would be better as a propagated-input of
4015 ;; go-gotest-tools-assert, but that does not work for
4016 ;; some reason.
4017 ("go-gotest-tools-internal-format"
4018 ,go-gotest-tools-internal-format)
4019 ("go-gotest-tools-internal-difflib"
4020 ,go-gotest-tools-internal-difflib)
4021 ("go-gotest-tools-internal-source"
4022 ,go-gotest-tools-internal-source)
4023 ("go-github-com-google-go-cmp-cmp"
4024 ,go-github-com-google-go-cmp-cmp)))
4025 (synopsis "Go test runner with output optimized for humans")
4026 (description "This package provides a @code{go test} runner with output
4027 optimized for humans, JUnit XML for CI integration, and a summary of the
4028 test results.")
4029 (home-page "https://github.com/gotestyourself/gotestsum")
4030 (license license:asl2.0)))
4031
4032 (define-public go-github-com-golang-protobuf-proto
4033 (package
4034 (name "go-github-com-golang-protobuf-proto")
4035 (version "1.3.1")
4036 (source (origin
4037 (method git-fetch)
4038 (uri (git-reference
4039 (url "https://github.com/golang/protobuf")
4040 (commit (string-append "v" version))))
4041 (file-name (git-file-name name version))
4042 (sha256
4043 (base32
4044 "15am4s4646qy6iv0g3kkqq52rzykqjhm4bf08dk0fy2r58knpsyl"))))
4045 (build-system go-build-system)
4046 (arguments
4047 '(#:import-path "github.com/golang/protobuf/proto"
4048 #:unpack-path "github.com/golang/protobuf"
4049 ;; Requires unpackaged golang.org/x/sync/errgroup
4050 #:tests? #f))
4051 (synopsis "Go support for Protocol Buffers")
4052 (description "This package provides Go support for the Protocol Buffers
4053 data serialization format.")
4054 (home-page "https://github.com/golang/protobuf")
4055 (license license:bsd-3)))
4056
4057 (define-public go-github-com-mattn-go-zglob
4058 (package
4059 (name "go-github-com-mattn-go-zglob")
4060 (version "0.0.1")
4061 (source (origin
4062 (method git-fetch)
4063 (uri (git-reference
4064 (url "https://github.com/mattn/go-zglob")
4065 (commit (string-append "v" version))))
4066 (file-name (git-file-name name version))
4067 (sha256
4068 (base32
4069 "1sncdyq5fbd42al4amyy91h7vlzm3wm6c9vl8za2pjgfgsd581fz"))))
4070 (build-system go-build-system)
4071 (arguments
4072 `(#:import-path "github.com/mattn/go-zglob"))
4073 (home-page "https://github.com/mattn/go-zglob")
4074 (synopsis "Glob library that descends into other directories")
4075 (description " A glob library that implements descending into other
4076 directories. It is optimized for filewalking. ")
4077 (license license:expat)))
4078
4079 (define-public go-github-com-willf-bitset
4080 (package
4081 (name "go-github-com-willf-bitset")
4082 (version "1.1.10")
4083 (source (origin
4084 (method git-fetch)
4085 (uri (git-reference
4086 (url "https://github.com/willf/bitset")
4087 (commit (string-append "v" version))))
4088 (file-name (git-file-name name version))
4089 (sha256
4090 (base32
4091 "0wpaxg6va3qwd0hq0b8rpb1hswvzzbfm2h8sjmcsdpbkydjjx9zg"))))
4092 (build-system go-build-system)
4093 (arguments
4094 '(#:import-path "github.com/willf/bitset"))
4095 (synopsis "Bitsets in Go")
4096 (description "This package provides a Go implementation of bitsets, which
4097 are a mapping between non-negative integers and boolean values focused on
4098 efficient space usage.")
4099 (home-page "https://github.com/willf/bitset")
4100 (license license:bsd-3)))
4101
4102 (define-public go-github-com-willf-bloom
4103 (package
4104 (name "go-github-com-willf-bloom")
4105 (version "2.0.3")
4106 (source (origin
4107 (method git-fetch)
4108 (uri (git-reference
4109 (url "https://github.com/willf/bloom")
4110 (commit (string-append "v" version))))
4111 (file-name (git-file-name name version))
4112 (sha256
4113 (base32
4114 "0ygan8pgcay7wx3cs3ja8rdqj7nly7v3and97ddcc66020jxchzg"))))
4115 (build-system go-build-system)
4116 (arguments
4117 '(#:import-path "github.com/willf/bloom"
4118 #:phases
4119 (modify-phases %standard-phases
4120 (add-after 'unpack 'patch-import-path
4121 (lambda _
4122 ;; See 'go.mod' in the source distribution of Syncthing 1.5.0 for
4123 ;; more information.
4124 ;; <https://github.com/spaolacci/murmur3/issues/29>
4125 (substitute* "src/github.com/willf/bloom/bloom.go"
4126 (("spaolacci") "twmb"))
4127 #t)))))
4128 (propagated-inputs
4129 `(("go-github-com-twmb-murmur3" ,go-github-com-twmb-murmur3)
4130 ("go-github-com-willf-bitset" ,go-github-com-willf-bitset)))
4131 (synopsis "Bloom filters in Go")
4132 (description "This package provides a Go implementation of bloom filters,
4133 based on murmurhash.")
4134 (home-page "https://github.com/willf/bloom")
4135 (license license:bsd-2)))
4136
4137 (define-public go-golang-org-rainycape-unidecode
4138 (let ((commit "cb7f23ec59bec0d61b19c56cd88cee3d0cc1870c")
4139 (revision "1"))
4140 (package
4141 (name "go-golang-org-rainycape-unidecode")
4142 (version (git-version "0.0.0" revision commit))
4143 (source (origin
4144 (method git-fetch)
4145 (uri (git-reference
4146 (url "https://github.com/rainycape/unidecode")
4147 (commit commit)))
4148 (file-name (string-append "go-golang-org-rainycape-unidecode-"
4149 version "-checkout"))
4150 (sha256
4151 (base32
4152 "1wvzdijd640blwkgmw6h09frkfa04kcpdq87n2zh2ymj1dzla5v5"))))
4153 (build-system go-build-system)
4154 (arguments
4155 `(#:import-path "golang.org/rainycape/unidecode"))
4156 (home-page "https://github.com/rainycape/unidecode")
4157 (synopsis "Unicode transliterator in Golang")
4158 (description "Unicode transliterator in Golang - Replaces non-ASCII
4159 characters with their ASCII approximations.")
4160 (license license:asl2.0))))
4161
4162 (define-public go-github-com-golang-freetype
4163 (let ((commit "e2365dfdc4a05e4b8299a783240d4a7d5a65d4e4")
4164 (revision "1"))
4165 (package
4166 (name "go-github-com-golang-freetype")
4167 (version (git-version "0.0.0" revision commit))
4168 (source (origin
4169 (method git-fetch)
4170 (uri (git-reference
4171 (url "https://github.com/golang/freetype")
4172 (commit commit)))
4173 (file-name (string-append "go-github-com-golang-freetype-"
4174 version "-checkout"))
4175 (sha256
4176 (base32
4177 "194w3djc6fv1rgcjqds085b9fq074panc5vw582bcb8dbfzsrqxc"))))
4178 (build-system go-build-system)
4179 (arguments
4180 `(#:import-path "github.com/golang/freetype"))
4181 (propagated-inputs
4182 `(("go-golang-org-x-image" ,go-golang-org-x-image)))
4183 (home-page "https://github.com/golang/freetype")
4184 (synopsis "Freetype font rasterizer in the Go programming language")
4185 (description "The Freetype font rasterizer in the Go programming language.")
4186 (license (list license:freetype
4187 license:gpl2+)))))
4188
4189 (define-public go-github-com-fogleman-gg
4190 (package
4191 (name "go-github-com-fogleman-gg")
4192 (version "1.3.0")
4193 (source (origin
4194 (method git-fetch)
4195 (uri (git-reference
4196 (url "https://github.com/fogleman/gg")
4197 (commit (string-append "v" version))))
4198 (file-name (git-file-name name version))
4199 (sha256
4200 (base32
4201 "1nkldjghbqnzj2djfaxhiv35kk341xhcrj9m2dwq65v684iqkk8n"))))
4202 (build-system go-build-system)
4203 (arguments
4204 `(#:tests? #f ; Issue with test flags.
4205 #:import-path "github.com/fogleman/gg"))
4206 (propagated-inputs
4207 `(("go-github-com-golang-freetype" ,go-github-com-golang-freetype)))
4208 (home-page "https://github.com/fogleman/gg")
4209 (synopsis "2D rendering in Go")
4210 (description "@code{gg} is a library for rendering 2D graphics in pure Go.")
4211 (license license:expat)))
4212
4213 (define-public go-github-com-gedex-inflector
4214 (let ((commit "16278e9db8130ac7ec405dc174cfb94344f16325")
4215 (revision "1"))
4216 (package
4217 (name "go-github-com-gedex-inflector")
4218 (version (git-version "0.0.0" revision commit))
4219 (source (origin
4220 (method git-fetch)
4221 (uri (git-reference
4222 (url "https://github.com/gedex/inflector")
4223 (commit commit)))
4224 (file-name (string-append "go-github-com-gedex-inflector-"
4225 version "-checkout"))
4226 (sha256
4227 (base32
4228 "05hjqw1m71vww4914d9h6nqa9jw3lgjzwsy7qaffl02s2lh1amks"))))
4229 (build-system go-build-system)
4230 (arguments
4231 `(#:import-path "github.com/gedex/inflector"))
4232 (home-page "https://github.com/gedex/inflector")
4233 (synopsis "Go library that pluralizes and singularizes English nouns")
4234 (description "Go library that pluralizes and singularizes English nouns.")
4235 (license license:bsd-2))))
4236
4237 (define-public go-github-com-klauspost-cpuid
4238 (package
4239 (name "go-github-com-klauspost-cpuid")
4240 (version "1.2.3")
4241 (source (origin
4242 (method git-fetch)
4243 (uri (git-reference
4244 (url "https://github.com/klauspost/cpuid")
4245 (commit (string-append "v" version))))
4246 (file-name (git-file-name name version))
4247 (sha256
4248 (base32
4249 "1s510210wdj5dkamii1qrk7v87k4qpdcrrjzflp5ha9iscw6b06l"))))
4250 (build-system go-build-system)
4251 (arguments
4252 `(#:import-path "github.com/klauspost/cpuid"))
4253 (home-page "https://github.com/klauspost/cpuid")
4254 (synopsis "CPU feature identification for Go")
4255 (description "@code{cpuid} provides information about the CPU running the
4256 current program. CPU features are detected on startup, and kept for fast access
4257 through the life of the application. Currently x86 / x64 (AMD64) is supported,
4258 and no external C (cgo) code is used, which should make the library very eas
4259 to use.")
4260 (license license:expat)))
4261
4262 (define-public go-github-com-pbnjay-memory
4263 (let ((commit "974d429e7ae40c89e7dcd41cfcc22a0bfbe42510")
4264 (revision "1"))
4265 (package
4266 (name "go-github-com-pbnjay-memory")
4267 (version (git-version "0.0.0" revision commit))
4268 (source (origin
4269 (method git-fetch)
4270 (uri (git-reference
4271 (url "https://github.com/pbnjay/memory")
4272 (commit commit)))
4273 (file-name (string-append "go-github-com-pbnjay-memory-"
4274 version "-checkout"))
4275 (sha256
4276 (base32
4277 "0kazg5psdn90pqadrzma5chdwh0l2by9z31sspr47gx93fhjmkkq"))))
4278 (build-system go-build-system)
4279 (arguments
4280 `(#:import-path "github.com/pbnjay/memory"))
4281 (home-page "https://github.com/gedex/inflector")
4282 (synopsis "Go library to report total system memory")
4283 (description "@code{memory} provides a single method reporting total
4284 physical system memory accessible to the kernel. It does not account for memory
4285 used by other processes.")
4286 (license license:bsd-3))))
4287
4288 (define-public go-github-com-surge-glog
4289 (let ((commit "2578deb2b95c665e6b1ebabf304ce2085c9e1985")
4290 (revision "1"))
4291 (package
4292 (name "go-github-com-surge-glog")
4293 (version (git-version "0.0.0" revision commit))
4294 (source (origin
4295 (method git-fetch)
4296 (uri (git-reference
4297 (url "https://github.com/surge/glog")
4298 (commit commit)))
4299 (file-name (string-append "go-github-com-surge-glog-"
4300 version "-checkout"))
4301 (sha256
4302 (base32
4303 "1bxcwxvsvr2hfpjz9hrrn0wrgykwmrbyk567102k3vafw9xdcwk4"))))
4304 (build-system go-build-system)
4305 (arguments
4306 `(#:import-path "github.com/surge/glog"))
4307 (home-page "https://github.com/surge/glog")
4308 (synopsis "Leveled execution logs for Go")
4309 (description "Leveled execution logs for Go.")
4310 (license license:asl2.0))))
4311
4312 (define-public go-github-com-surgebase-porter2
4313 (let ((commit "56e4718818e8dc4ea5ba6348402fc7661863732a")
4314 (revision "1"))
4315 (package
4316 (name "go-github-com-surgebase-porter2")
4317 (version (git-version "0.0.0" revision commit))
4318 (source (origin
4319 (method git-fetch)
4320 (uri (git-reference
4321 (url "https://github.com/surgebase/porter2")
4322 (commit commit)))
4323 (file-name (string-append "go-github-com-surgebase-porter2-"
4324 version "-checkout"))
4325 (sha256
4326 (base32
4327 "1ivcf83jlj9s7q5y9dfbpyl0br35cz8fcp0dm8sxxvqh54py06v2"))))
4328 (build-system go-build-system)
4329 (arguments
4330 `(#:import-path "github.com/surgebase/porter2"))
4331 (native-inputs
4332 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)
4333 ("go-github-com-surge-glog" ,go-github-com-surge-glog)))
4334 (home-page "https://github.com/surgebase/porter2")
4335 (synopsis "Go library implementing english Porter2 stemmer")
4336 (description "Porter2 implements the
4337 @url{http://snowball.tartarus.org/algorithms/english/stemmer.html, english
4338 Porter2 stemmer}. It is written completely using finite state machines to do
4339 suffix comparison, rather than the string-based or tree-based approaches.")
4340 (license license:asl2.0))))
4341
4342 (define-public go-github-com-masterminds-goutils
4343 (package
4344 (name "go-github-com-masterminds-goutils")
4345 (version "1.1.0")
4346 (source (origin
4347 (method git-fetch)
4348 (uri (git-reference
4349 (url "https://github.com/Masterminds/goutils")
4350 (commit (string-append "v" version))))
4351 (file-name (git-file-name name version))
4352 (sha256
4353 (base32
4354 "180px47gj936qyk5bkv5mbbgiil9abdjq6kwkf7sq70vyi9mcfiq"))))
4355 (build-system go-build-system)
4356 (arguments
4357 `(#:import-path "github.com/Masterminds/goutils"))
4358 (home-page "https://github.com/Masterminds/goutils/")
4359 (synopsis "Utility functions to manipulate strings")
4360 (description "GoUtils provides utility functions to manipulate strings in
4361 various ways. It is a Go implementation of some string manipulation libraries
4362 of Java Apache Commons.")
4363 (license license:asl2.0)))
4364
4365 (define-public go-github-com-masterminds-semver
4366 (package
4367 (name "go-github-com-masterminds-semver")
4368 (version "3.1.0")
4369 (source (origin
4370 (method git-fetch)
4371 (uri (git-reference
4372 (url "https://github.com/Masterminds/semver")
4373 (commit (string-append "v" version))))
4374 (file-name (git-file-name name version))
4375 (sha256
4376 (base32
4377 "1g1wizfdy29d02l9dh8gsb029yr4m4swp13swf0pnh9ryh5f1msz"))))
4378 (build-system go-build-system)
4379 (arguments
4380 `(#:import-path "github.com/Masterminds/semver"))
4381 (home-page "https://github.com/Masterminds/semver/")
4382 (synopsis "@code{semver} helps to work with semantic versions")
4383 (description "The semver package provides the ability to work with
4384 semantic versions. Specifically it provides the ability to:
4385 @itemize
4386 @item Parse semantic versions
4387 @item Sort semantic versions
4388 @item Check if a semantic version fits within a set of constraints
4389 @item Optionally work with a @code{v} prefix
4390 @end itemize\n")
4391 (license license:expat)))
4392
4393 (define-public go-github-com-huandu-xstrings
4394 (package
4395 (name "go-github-com-huandu-xstrings")
4396 (version "1.3.2")
4397 (source (origin
4398 (method git-fetch)
4399 (uri (git-reference
4400 (url "https://github.com/huandu/xstrings")
4401 (commit (string-append "v" version))))
4402 (file-name (git-file-name name version))
4403 (sha256
4404 (base32
4405 "0pwar6rc0fqb6pll38a44s81g5kb65vbg71jg5lx8caphjnikq5r"))))
4406 (build-system go-build-system)
4407 (arguments
4408 `(#:import-path "github.com/huandu/xstrings"))
4409 (home-page "https://github.com/huandu/xstrings/")
4410 (synopsis "Collection of string functions")
4411 (description "Go package xstrings is a collection of string functions,
4412 which are widely used in other languages but absent in Go package strings.")
4413 (license license:expat)))
4414
4415 (define-public go-github-com-imdario-mergo
4416 (package
4417 (name "go-github-com-imdario-mergo")
4418 (version "0.3.10")
4419 (source (origin
4420 (method git-fetch)
4421 (uri (git-reference
4422 (url "https://github.com/imdario/mergo")
4423 (commit (string-append "v" version))))
4424 (file-name (git-file-name name version))
4425 (sha256
4426 (base32
4427 "09h765p8yby9r8s0a3hv5kl8n2i382mda76wmvk48w1cc1w9s92p"))))
4428 (build-system go-build-system)
4429 (arguments
4430 `(#:import-path "github.com/imdario/mergo"))
4431 (native-inputs
4432 `(("go-gopkg-in-yaml-v2" ,go-gopkg-in-yaml-v2)))
4433 (home-page "https://github.com/imdario/mergo/")
4434 (synopsis "Helper to merge structs and maps in Golang")
4435 (description "Helper to merge structs and maps in Golang. Useful for
4436 configuration default values, avoiding messy if-statements.
4437
4438 Mergo merges same-type structs and maps by setting default values in
4439 zero-value fields. Mergo won't merge unexported (private) fields. It will do
4440 recursively any exported one. It also won't merge structs inside
4441 maps (because they are not addressable using Go reflection).")
4442 (license license:bsd-3)))
4443
4444 (define-public go-github-com-masterminds-sprig
4445 (package
4446 (name "go-github-com-masterminds-sprig")
4447 (version "3.1.0")
4448 (source (origin
4449 (method git-fetch)
4450 (uri (git-reference
4451 (url "https://github.com/Masterminds/sprig")
4452 (commit (string-append "v" version))))
4453 (file-name (git-file-name name version))
4454 (sha256
4455 (base32
4456 "0wwi8n2adjc5jlga25lqq0hrz4jcgd5vpll68y2dfji034caaq18"))))
4457 (build-system go-build-system)
4458 (arguments
4459 `(#:tests? #f ;network tests only
4460 #:import-path "github.com/Masterminds/sprig"))
4461 (native-inputs
4462 `(("go-github-com-masterminds-goutils" ,go-github-com-masterminds-goutils)
4463 ("go-github-com-masterminds-semver" ,go-github-com-masterminds-semver)
4464 ("go-github-com-google-uuid" ,go-github-com-google-uuid)
4465 ("go-github-com-huandu-xstrings" ,go-github-com-huandu-xstrings)
4466 ("go-github-com-imdario-mergo" ,go-github-com-imdario-mergo)
4467 ("go-github-com-mitchellh-reflectwalk" ,go-github-com-mitchellh-reflectwalk)
4468 ("go-github-com-mitchellh-copystructure" ,go-github-com-mitchellh-copystructure)
4469 ("go-github-com-spf13-cast" ,go-github-com-spf13-cast)
4470 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
4471 ("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
4472 (home-page "https://github.com/Masterminds/sprig/")
4473 (synopsis "Template functions for Go templates")
4474 (description "Sprig is a library that provides more than 100 commonly used
4475 template functions.")
4476 (license license:expat)))
4477
4478 (define-public go-github-com-bmatcuk-doublestar
4479 (package
4480 (name "go-github-com-bmatcuk-doublestar")
4481 (version "1.3.0")
4482 (source (origin
4483 (method git-fetch)
4484 (uri (git-reference
4485 (url "https://github.com/bmatcuk/doublestar")
4486 (commit (string-append "v" version))))
4487 (file-name (git-file-name name version))
4488 (sha256
4489 (base32
4490 "0bk5bixl6rqa8znxghyp6zndbccx9kdyrymjahgyp6qsrp7rk144"))))
4491 (build-system go-build-system)
4492 (arguments
4493 `(#:import-path "github.com/bmatcuk/doublestar"))
4494 (home-page "https://github.com/bmatcuk/doublestar/")
4495 (synopsis "Path pattern matching and globbing supporting doublestar")
4496 (description "@code{doublestar} is a Go implementation of path pattern
4497 matching and globbing with support for \"doublestar\" patterns.")
4498 (license license:expat)))
4499
4500 (define-public go-github-com-dlclark-regexp2
4501 (package
4502 (name "go-github-com-dlclark-regexp2")
4503 (version "1.2.0")
4504 (source (origin
4505 (method git-fetch)
4506 (uri (git-reference
4507 (url "https://github.com/dlclark/regexp2")
4508 (commit (string-append "v" version))))
4509 (file-name (git-file-name name version))
4510 (sha256
4511 (base32
4512 "011l1prsywvhhi0yc7qmpsca1cwavmawyyld5kjzi0ff9ghvj4ng"))))
4513 (build-system go-build-system)
4514 (arguments
4515 `(#:import-path "github.com/dlclark/regexp2"))
4516 (home-page "https://github.com/dlclark/regexp2/")
4517 (synopsis "Full featured regular expressions for Go")
4518 (description "Regexp2 is a feature-rich RegExp engine for Go.")
4519 (license license:expat)))
4520
4521 (define-public go-github-com-alecthomas-colour
4522 (package
4523 (name "go-github-com-alecthomas-colour")
4524 (version "0.1.0")
4525 (source (origin
4526 (method git-fetch)
4527 (uri (git-reference
4528 (url "https://github.com/alecthomas/colour")
4529 (commit (string-append "v" version))))
4530 (file-name (git-file-name name version))
4531 (sha256
4532 (base32
4533 "10zbm12j40ppia4b5ql2blmsps5jhh5d7ffphxx843qk7wlbqnjb"))))
4534 (build-system go-build-system)
4535 (arguments
4536 `(#:import-path "github.com/alecthomas/colour"))
4537 (native-inputs
4538 `(("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)))
4539 (home-page "https://github.com/alecthomas/colour/")
4540 (synopsis "Colour terminal text for Go")
4541 (description "Package colour provides Quake-style colour formatting for
4542 Unix terminals.
4543
4544 The package level functions can be used to write to stdout (or strings or
4545 other files). If stdout is not a terminal, colour formatting will be
4546 stripped.")
4547 (license license:expat)))
4548
4549 (define-public go-github-com-alecthomas-repr
4550 (let ((commit "4184120f674c8860a5b48142509a2411a0a1766f")
4551 (revision "1"))
4552 (package
4553 (name "go-github-com-alecthomas-repr")
4554 (version (git-version "0.0.1" revision commit))
4555 (source (origin
4556 (method git-fetch)
4557 (uri (git-reference
4558 (url "https://github.com/alecthomas/repr")
4559 (commit commit)))
4560 (file-name (git-file-name name version))
4561 (sha256
4562 (base32
4563 "1z0gdkjryxg1ps5fh4ybzip27g9lzdldz4hxqp5j7s2frbzaa9s7"))))
4564 (build-system go-build-system)
4565 (arguments
4566 `(#:import-path "github.com/alecthomas/repr"))
4567 (native-inputs
4568 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
4569 (home-page "https://github.com/alecthomas/repr/")
4570 (synopsis "Represent Go values in an almost direct form")
4571 (description "This package attempts to represent Go values in a form that
4572 can be used almost directly in Go source code.")
4573 (license license:expat))))
4574
4575 (define-public go-github-com-sergi-go-diff
4576 (package
4577 (name "go-github-com-sergi-go-diff")
4578 (version "1.1.0")
4579 (source (origin
4580 (method git-fetch)
4581 (uri (git-reference
4582 (url "https://github.com/sergi/go-diff")
4583 (commit (string-append "v" version))))
4584 (file-name (git-file-name name version))
4585 (sha256
4586 (base32
4587 "0ir8ali2vx0j7pipmlfd6k8c973akyy2nmbjrf008fm800zcp7z2"))))
4588 (build-system go-build-system)
4589 (arguments
4590 `(#:import-path "github.com/sergi/go-diff/diffmatchpatch"
4591 #:unpack-path "github.com/sergi/go-diff"))
4592 (native-inputs
4593 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
4594 (home-page "https://github.com/sergi/go-diff/")
4595 (synopsis "Algorithms to perform operations for synchronizing plain text")
4596 (description "@code{go-diff} offers algorithms to perform operations required for
4597 synchronizing plain text:
4598 @itemize
4599 @item compare two texts and return their differences
4600 @item perform fuzzy matching of text
4601 @item apply patches onto text
4602 @end itemize\n")
4603 (license license:expat)))
4604
4605 (define-public go-github-com-alecthomas-assert
4606 (let ((commit "405dbfeb8e38effee6e723317226e93fff912d06")
4607 (revision "1"))
4608 (package
4609 (name "go-github-com-alecthomas-assert")
4610 (version (git-version "0.0.1" revision commit))
4611 (source (origin
4612 (method git-fetch)
4613 (uri (git-reference
4614 (url "https://github.com/alecthomas/assert")
4615 (commit commit)))
4616 (file-name (git-file-name name version))
4617 (sha256
4618 (base32
4619 "1l567pi17k593nrd1qlbmiq8z9jy3qs60px2a16fdpzjsizwqx8l"))))
4620 (build-system go-build-system)
4621 (arguments
4622 `(#:import-path "github.com/alecthomas/assert"))
4623 (native-inputs
4624 `(("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
4625 ("go-github-com-alecthomas-colour" ,go-github-com-alecthomas-colour)
4626 ("go-github-com-alecthomas-repr" ,go-github-com-alecthomas-repr)
4627 ("go-github-com-sergi-go-diff" ,go-github-com-sergi-go-diff)))
4628 (home-page "https://github.com/alecthomas/assert/")
4629 (synopsis "Go assertion library")
4630 (description "Assertion library that:
4631 @itemize
4632 @item makes spotting differences in equality much easier
4633 @item uses repr and diffmatchpatch to display structural differences in colour
4634 @item aborts tests on first assertion failure
4635 @end itemize\n")
4636 (license license:expat))))
4637
4638 (define-public go-github-com-alecthomas-chroma
4639 (package
4640 (name "go-github-com-alecthomas-chroma")
4641 (version "0.8.0")
4642 (source (origin
4643 (method git-fetch)
4644 (uri (git-reference
4645 (url "https://github.com/alecthomas/chroma")
4646 (commit (string-append "v" version))))
4647 (file-name (git-file-name name version))
4648 (sha256
4649 (base32
4650 "066a6rdmf670d3v5sc7chbn7db09ldgxjympb03pcqwk644dixb1"))))
4651 (build-system go-build-system)
4652 (arguments
4653 `(#:import-path "github.com/alecthomas/chroma"))
4654 (native-inputs
4655 `(("go-github-com-dlclark-regexp2" ,go-github-com-dlclark-regexp2)
4656 ("go-github-com-alecthomas-assert" ,go-github-com-alecthomas-assert)
4657 ("go-github-com-alecthomas-colour" ,go-github-com-alecthomas-colour)
4658 ("go-github-com-alecthomas-repr" ,go-github-com-alecthomas-repr)
4659 ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
4660 ("go-github-com-sergi-go-diff" ,go-github-com-sergi-go-diff)))
4661 (home-page "https://github.com/alecthomas/chroma/")
4662 (synopsis "General purpose syntax highlighter in pure Go")
4663 (description "Chroma takes source code and other structured text and
4664 converts it into syntax highlighted HTML, ANSI-coloured text, etc.")
4665 (license license:expat)))
4666
4667 (define-public go-github-com-andybalholm-cascadia
4668 (package
4669 (name "go-github-com-andybalholm-cascadia")
4670 (version "1.0.0")
4671 (source (origin
4672 (method git-fetch)
4673 (uri (git-reference
4674 (url "https://github.com/andybalholm/cascadia")
4675 (commit (string-append "v" version))))
4676 (file-name (git-file-name name version))
4677 (sha256
4678 (base32
4679 "09j8cavbhqqdxjqrkwbc40g8p0i49zf3184rpjm5p2rjbprcghcc"))))
4680 (build-system go-build-system)
4681 (arguments
4682 `(#:import-path "github.com/andybalholm/cascadia"))
4683 (native-inputs
4684 `(("go-golang-org-x-net" ,go-golang-org-x-net)))
4685 (home-page "https://github.com/andybalholm/cascadia/")
4686 (synopsis "CSS selectors for HTML")
4687 (description "The Cascadia package implements CSS selectors for use with
4688 the parse trees produced by the html package.")
4689 (license license:bsd-2)))