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