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