gnu: Prometheus Go client: Update to 0.9.4.
[jackhill/guix/guix.git] / gnu / packages / golang.scm
CommitLineData
7a2941a8 1;;; GNU Guix --- Functional package management for GNU
1009e6e7 2;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
7a2941a8
MJ
3;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
4;;; Copyright © 2016 Andy Wingo <wingo@igalia.com>
ec91bcb5 5;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
c04ef86e 6;;; Copyright © 2016, 2017 Petter <petter@mykolab.ch>
9c1b4316 7;;; Copyright © 2016, 2017, 2019 Leo Famulari <leo@famulari.name>
c04ef86e 8;;; Copyright © 2017 Sergei Trofimovich <slyfox@inbox.ru>
eaca9ff0 9;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
247064c3 10;;; Copyright © 2018 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>
18199da4 15;;; Copyright @ 2018, 2019 Katherine Cox-Buday <cox.katherine.e@gmail.com>
4ddf067f 16;;; Copyright @ 2019 Giovanni Biscuolo <g@xelera.eu>
521d736a 17;;; Copyright @ 2019 Alex Griffin <a@ajgrf.com>
7a2941a8 18;;;
8a610eb6 19;;; This file is part of GNU Guix.
7a2941a8
MJ
20;;;
21;;; GNU Guix is free software; you can redistribute it and/or modify it
22;;; under the terms of the GNU General Public License as published by
23;;; the Free Software Foundation; either version 3 of the License, or (at
24;;; your option) any later version.
25;;;
26;;; GNU Guix is distributed in the hope that it will be useful, but
27;;; WITHOUT ANY WARRANTY; without even the implied warranty of
28;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29;;; GNU General Public License for more details.
30;;;
31;;; You should have received a copy of the GNU General Public License
32;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
33
34(define-module (gnu packages golang)
35 #:use-module ((guix licenses) #:prefix license:)
36 #:use-module (guix utils)
37 #:use-module (guix download)
d3878e88 38 #:use-module (guix git-download)
7a2941a8
MJ
39 #:use-module (guix packages)
40 #:use-module (guix build-system gnu)
830dc251 41 #:use-module (guix build-system trivial)
d3878e88 42 #:use-module (guix build-system go)
7a2941a8
MJ
43 #:use-module (gnu packages admin)
44 #:use-module (gnu packages gcc)
45 #:use-module (gnu packages base)
46 #:use-module (gnu packages perl)
47 #:use-module (gnu packages pkg-config)
48 #:use-module (gnu packages pcre)
e25ddef5 49 #:use-module (gnu packages lua)
53182924 50 #:use-module (gnu packages mp3)
06c2d0e6 51 #:use-module (gnu packages textutils)
8ffc727e 52 #:use-module (gnu packages tls)
7a2941a8 53 #:use-module (ice-9 match)
9c359ff4 54 #:use-module (srfi srfi-1))
7a2941a8
MJ
55
56;; According to https://golang.org/doc/install/gccgo, gccgo-4.8.2 includes a
57;; complete go-1.1.2 implementation, gccgo-4.9 includes a complete go-1.2
58;; implementation, and gccgo-5 a complete implementation of go-1.4. Ultimately
59;; we hope to build go-1.5+ with a bootstrap process using gccgo-5. As of
60;; go-1.5, go cannot be bootstrapped without go-1.4, so we need to use go-1.4 or
61;; gccgo-5. Mips is not officially supported, but it should work if it is
62;; bootstrapped.
63
64(define-public go-1.4
65 (package
66 (name "go")
9bc1de31 67 ;; The C-language bootstrap of Go:
521d736a
AG
68 ;; https://golang.org/doc/install/source#go14
69 (version "1.4-bootstrap-20171003")
7a2941a8
MJ
70 (source (origin
71 (method url-fetch)
72 (uri (string-append "https://storage.googleapis.com/golang/"
521d736a 73 name version ".tar.gz"))
7a2941a8
MJ
74 (sha256
75 (base32
521d736a 76 "0liybk5z00hizsb5ypkbhqcawnwwa6mkwgvjjg4y3jm3ndg5pzzl"))))
7a2941a8
MJ
77 (build-system gnu-build-system)
78 (outputs '("out"
79 "doc"
80 "tests"))
81 (arguments
82 `(#:modules ((ice-9 match)
83 (guix build gnu-build-system)
1d698a8b
ST
84 (guix build utils)
85 (srfi srfi-1))
7a2941a8 86 #:tests? #f ; Tests are run by the all.bash script.
2ab321ca
EF
87 ,@(if (string-prefix? "aarch64-linux" (or (%current-system)
88 (%current-target-system)))
89 '(#:system "armhf-linux")
90 '())
7a2941a8
MJ
91 #:phases
92 (modify-phases %standard-phases
93 (delete 'configure)
94 (add-after 'patch-generated-file-shebangs 'chdir
95 (lambda _
2a49f7ad
TGR
96 (chdir "src")
97 #t))
7a2941a8
MJ
98 (add-before 'build 'prebuild
99 (lambda* (#:key inputs outputs #:allow-other-keys)
100 (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
101 (ld (string-append (assoc-ref inputs "libc") "/lib"))
102 (loader (car (find-files ld "^ld-linux.+")))
103 (net-base (assoc-ref inputs "net-base"))
104 (tzdata-path
105 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
106 (output (assoc-ref outputs "out")))
107
108 ;; Removing net/ tests, which fail when attempting to access
109 ;; network resources not present in the build container.
110 (for-each delete-file
111 '("net/multicast_test.go" "net/parse_test.go"
112 "net/port_test.go"))
113
114 ;; Add libgcc to the RUNPATH.
115 (substitute* "cmd/go/build.go"
116 (("cgoldflags := \\[\\]string\\{\\}")
117 (string-append "cgoldflags := []string{"
118 "\"-rpath=" gcclib "\"}"))
119 (("ldflags := buildLdflags")
120 (string-append
121 "ldflags := buildLdflags\n"
122 "ldflags = append(ldflags, \"-r\")\n"
123 "ldflags = append(ldflags, \"" gcclib "\")\n")))
124
125 (substitute* "os/os_test.go"
126 (("/usr/bin") (getcwd))
127 (("/bin/pwd") (which "pwd")))
128
129 ;; Disable failing tests: these tests attempt to access
130 ;; commands or network resources which are neither available or
131 ;; necessary for the build to succeed.
132 (for-each
133 (match-lambda
134 ((file regex)
135 (substitute* file
136 ((regex all before test_name)
137 (string-append before "Disabled" test_name)))))
138 '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
139 ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
140 ("os/os_test.go" "(.+)(TestHostname.+)")
141 ("time/format_test.go" "(.+)(TestParseInSydney.+)")
4b0bac4b 142
7a2941a8
MJ
143 ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
144 ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
145 ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
146 ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
147 ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
148 ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
149 ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
150 ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
151 ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")))
152
153 (substitute* "net/lookup_unix.go"
154 (("/etc/protocols") (string-append net-base "/etc/protocols")))
155 (substitute* "time/zoneinfo_unix.go"
156 (("/usr/share/zoneinfo/") tzdata-path))
157 (substitute* (find-files "cmd" "asm.c")
158 (("/lib/ld-linux.*\\.so\\.[0-9]") loader))
159 #t)))
160
161 (replace 'build
162 (lambda* (#:key inputs outputs #:allow-other-keys)
163 ;; FIXME: Some of the .a files are not bit-reproducible.
164 (let* ((output (assoc-ref outputs "out")))
165 (setenv "CC" (which "gcc"))
166 (setenv "GOOS" "linux")
167 (setenv "GOROOT" (dirname (getcwd)))
168 (setenv "GOROOT_FINAL" output)
521d736a 169 (setenv "GO14TESTS" "1")
2a49f7ad 170 (invoke "sh" "all.bash"))))
7a2941a8
MJ
171
172 (replace 'install
173 (lambda* (#:key outputs inputs #:allow-other-keys)
174 (let* ((output (assoc-ref outputs "out"))
175 (doc_out (assoc-ref outputs "doc"))
176 (bash (string-append (assoc-ref inputs "bash") "bin/bash"))
177 (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
178 (tests (string-append
179 (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
180 (mkdir-p tests)
181 (copy-recursively "../test" (string-append tests "/test"))
182 (delete-file-recursively "../test")
183 (mkdir-p docs)
184 (copy-recursively "../api" (string-append docs "/api"))
185 (delete-file-recursively "../api")
186 (copy-recursively "../doc" (string-append docs "/doc"))
187 (delete-file-recursively "../doc")
188
189 (for-each (lambda (file)
190 (let ((file (string-append "../" file)))
191 (install-file file docs)
192 (delete-file file)))
193 '("README" "CONTRIBUTORS" "AUTHORS" "PATENTS"
194 "LICENSE" "VERSION" "robots.txt"))
195 (copy-recursively "../" output)
196 #t))))))
197 (inputs
198 `(("tzdata" ,tzdata)
199 ("pcre" ,pcre)
fcbb8461
LF
200 ;; Building Go 1.10 with the Go 1.4 bootstrap, Thread Sanitizer from GCC
201 ;; 5 finds a data race during the the test suite of Go 1.10. With GCC 6,
202 ;; the race doesn't seem to be present:
203 ;; https://github.com/golang/go/issues/24046
204 ("gcc:lib" ,gcc-6 "lib")))
7a2941a8 205 (native-inputs
3f0ec617 206 `(("pkg-config" ,pkg-config)
7a2941a8
MJ
207 ("which" ,which)
208 ("net-base" ,net-base)
209 ("perl" ,perl)))
210
211 (home-page "https://golang.org/")
212 (synopsis "Compiler and libraries for Go, a statically-typed language")
213 (description "Go, also commonly referred to as golang, is an imperative
247064c3
TGR
214programming language designed primarily for systems programming. Go is a
215compiled, statically typed language in the tradition of C and C++, but adds
216garbage collection, various safety features, and concurrent programming features
217in the style of communicating sequential processes (@dfn{CSP}).")
2ab321ca 218 (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux"))
7a2941a8 219 (license license:bsd-3)))
ec91bcb5 220
5a14b913 221(define-public go-1.11
ec91bcb5
MJ
222 (package
223 (inherit go-1.4)
224 (name "go")
ec8c1681 225 (version "1.11.12")
ec91bcb5
MJ
226 (source
227 (origin
228 (method url-fetch)
229 (uri (string-append "https://storage.googleapis.com/golang/"
230 name version ".src.tar.gz"))
231 (sha256
232 (base32
ec8c1681 233 "09k9zmq7hhgg0bf1y7rwa0kn7q1vkkr94cmg2iv9lq3najh5nykd"))))
ec91bcb5
MJ
234 (arguments
235 (substitute-keyword-arguments (package-arguments go-1.4)
236 ((#:phases phases)
237 `(modify-phases ,phases
238 (replace 'prebuild
ec91bcb5
MJ
239 (lambda* (#:key inputs outputs #:allow-other-keys)
240 (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
241 (ld (string-append (assoc-ref inputs "libc") "/lib"))
242 (loader (car (find-files ld "^ld-linux.+")))
243 (net-base (assoc-ref inputs "net-base"))
244 (tzdata-path
245 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
246 (output (assoc-ref outputs "out")))
247
ec91bcb5 248 (for-each delete-file
5a14b913
LF
249 ;; Removing net/ tests, which fail when attempting to access
250 ;; network resources not present in the build container.
a6169621
P
251 '("net/listen_test.go"
252 "net/parse_test.go"
5a14b913
LF
253 "net/cgo_unix_test.go"
254 ;; A side effect of these test scripts is testing
255 ;; cgo. Attempts at using cgo flags and
256 ;; directives with these scripts as specified
257 ;; here (https://golang.org/cmd/cgo/) have not
258 ;; worked. The tests continue to state that they
259 ;; can not find crt1.o despite being present.
260 "cmd/go/testdata/script/list_compiled_imports.txt"
261 "cmd/go/testdata/script/mod_case_cgo.txt"
262 ;; https://github.com/golang/go/issues/24884
263 "os/user/user_test.go"))
ec91bcb5
MJ
264
265 (substitute* "os/os_test.go"
266 (("/usr/bin") (getcwd))
a6169621
P
267 (("/bin/pwd") (which "pwd"))
268 (("/bin/sh") (which "sh")))
ec91bcb5 269
5a14b913
LF
270 (substitute* "cmd/vendor/golang.org/x/sys/unix/syscall_unix_test.go"
271 (("/usr/bin") "/tmp"))
272
ec91bcb5
MJ
273 ;; Add libgcc to runpath
274 (substitute* "cmd/link/internal/ld/lib.go"
275 (("!rpath.set") "true"))
5a14b913 276 (substitute* "cmd/go/internal/work/gccgo.go"
ec91bcb5
MJ
277 (("cgoldflags := \\[\\]string\\{\\}")
278 (string-append "cgoldflags := []string{"
279 "\"-rpath=" gcclib "\""
280 "}"))
5a14b913
LF
281 (("\"-lgcc_s\", ")
282 (string-append
283 "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
284 (substitute* "cmd/go/internal/work/gc.go"
ec91bcb5
MJ
285 (("ldflags = setextld\\(ldflags, compiler\\)")
286 (string-append
287 "ldflags = setextld(ldflags, compiler)\n"
288 "ldflags = append(ldflags, \"-r\")\n"
5a14b913 289 "ldflags = append(ldflags, \"" gcclib "\")\n")))
0a3e9bf6 290
ec91bcb5 291 ;; Disable failing tests: these tests attempt to access
1c797d4b
LF
292 ;; commands or network resources which are neither available
293 ;; nor necessary for the build to succeed.
ec91bcb5
MJ
294 (for-each
295 (match-lambda
296 ((file regex)
297 (substitute* file
298 ((regex all before test_name)
299 (string-append before "Disabled" test_name)))))
300 '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
301 ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
302 ("os/os_test.go" "(.+)(TestHostname.+)")
303 ("time/format_test.go" "(.+)(TestParseInSydney.+)")
f826c8c7 304 ("time/format_test.go" "(.+)(TestParseInLocation.+)")
ec91bcb5
MJ
305 ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
306 ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
18199da4
KCB
307 ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
308 ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
309 ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
310 ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
311 ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
312 ("os/exec/exec_test.go" "(.+)(TestIgnorePipeErrorOnSuccess.+)")
313 ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
314 ("os/exec/exec_test.go" "(.+)(TestExtraFiles/areturn.+)")
315 ("cmd/go/go_test.go" "(.+)(TestCoverageWithCgo.+)")
316 ("cmd/go/go_test.go" "(.+)(TestTwoPkgConfigs.+)")
317 ("os/exec/exec_test.go" "(.+)(TestOutputStderrCapture.+)")
318 ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")
319 ("os/exec/exec_test.go" "(.+)(TestExtraFilesRace.+)")
320 ("net/lookup_test.go" "(.+)(TestLookupPort.+)")
321 ("syscall/exec_linux_test.go"
322 "(.+)(TestCloneNEWUSERAndRemapNoRootDisableSetgroups.+)")))
323
324 ;; fix shebang for testar script
325 ;; note the target script is generated at build time.
326 (substitute* "../misc/cgo/testcarchive/carchive_test.go"
327 (("#!/usr/bin/env") (string-append "#!" (which "env"))))
328
329 (substitute* "net/lookup_unix.go"
330 (("/etc/protocols") (string-append net-base "/etc/protocols")))
331 (substitute* "net/port_unix.go"
332 (("/etc/services") (string-append net-base "/etc/services")))
333 (substitute* "time/zoneinfo_unix.go"
334 (("/usr/share/zoneinfo/") tzdata-path))
335 (substitute* (find-files "cmd" "\\.go")
336 (("/lib(64)?/ld-linux.*\\.so\\.[0-9]") loader))
337 #t)))
338 (add-before 'build 'set-bootstrap-variables
339 (lambda* (#:key outputs inputs #:allow-other-keys)
340 ;; Tell the build system where to find the bootstrap Go.
341 (let ((go (assoc-ref inputs "go")))
342 (setenv "GOROOT_BOOTSTRAP" go)
343 (setenv "GOGC" "400")
344 #t)))
345 (replace 'build
346 (lambda* (#:key inputs outputs #:allow-other-keys)
347 ;; FIXME: Some of the .a files are not bit-reproducible.
348 (let* ((output (assoc-ref outputs "out")))
349 (setenv "CC" (which "gcc"))
350 (setenv "GOOS" "linux")
351 (setenv "GOROOT" (dirname (getcwd)))
352 (setenv "GOROOT_FINAL" output)
353 (setenv "CGO_ENABLED" "1")
354 (invoke "sh" "all.bash"))))
355
356 (replace 'install
357 ;; TODO: Most of this could be factorized with Go 1.4.
358 (lambda* (#:key outputs #:allow-other-keys)
359 (let* ((output (assoc-ref outputs "out"))
360 (doc_out (assoc-ref outputs "doc"))
361 (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
362 (src (string-append
363 (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
364 (delete-file-recursively "../pkg/bootstrap")
365 ;; Prevent installation of the build cache, which contains
366 ;; store references to most of the tools used to build Go and
367 ;; would unnecessarily increase the size of Go's closure if it
368 ;; was installed.
369 (delete-file-recursively "../pkg/obj")
370
371 (mkdir-p src)
372 (copy-recursively "../test" (string-append src "/test"))
373 (delete-file-recursively "../test")
374 (mkdir-p docs)
375 (copy-recursively "../api" (string-append docs "/api"))
376 (delete-file-recursively "../api")
377 (copy-recursively "../doc" (string-append docs "/doc"))
378 (delete-file-recursively "../doc")
379
380 (for-each
381 (lambda (file)
382 (let* ((filein (string-append "../" file))
383 (fileout (string-append docs "/" file)))
384 (copy-file filein fileout)
385 (delete-file filein)))
386 ;; Note the slightly different file names compared to 1.4.
387 '("README.md" "CONTRIBUTORS" "AUTHORS" "PATENTS"
388 "LICENSE" "VERSION" "CONTRIBUTING.md" "robots.txt"))
389
390 (copy-recursively "../" output)
391 #t)))))))
392 (native-inputs
393 `(("go" ,go-1.4)
394 ,@(match (%current-system)
395 ((or "armhf-linux" "aarch64-linux")
396 `(("gold" ,binutils-gold)))
397 (_ `()))
398 ,@(package-native-inputs go-1.4)))
399 (supported-systems %supported-systems)))
400
401
402(define-public go-1.12
403 (package
404 (inherit go-1.4)
405 (name "go")
1074b370 406 (version "1.12.7")
18199da4
KCB
407 (source
408 (origin
409 (method url-fetch)
410 (uri (string-append "https://storage.googleapis.com/golang/"
411 name version ".src.tar.gz"))
412 (sha256
413 (base32
1074b370 414 "04rvwj69gmw3bz8pw5pf10r21ar0pgpnswp15nkddf04dxyl9s4m"))))
18199da4
KCB
415 (arguments
416 (substitute-keyword-arguments (package-arguments go-1.4)
417 ((#:phases phases)
418 `(modify-phases ,phases
419 (replace 'prebuild
420 (lambda* (#:key inputs outputs #:allow-other-keys)
421 (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
422 (ld (string-append (assoc-ref inputs "libc") "/lib"))
423 (loader (car (find-files ld "^ld-linux.+")))
424 (net-base (assoc-ref inputs "net-base"))
425 (tzdata-path
426 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
427 (output (assoc-ref outputs "out")))
428
429 ;; A side effect of these test scripts is testing
430 ;; cgo. Attempts at using cgo flags and directives with these
431 ;; scripts as specified here (https://golang.org/cmd/cgo/)
432 ;; have not worked. The tests continue to state that they can
433 ;; not find object files/headers despite being present.
434 (for-each
435 delete-file
436 '("cmd/go/testdata/script/mod_case_cgo.txt"
437 "cmd/go/testdata/script/list_find.txt"
438 "cmd/go/testdata/script/list_compiled_imports.txt"
439 "cmd/go/testdata/script/cgo_syso_issue29253.txt"))
440
441 (substitute* "os/os_test.go"
442 (("/usr/bin") (getcwd))
443 (("/bin/pwd") (which "pwd"))
444 (("/bin/sh") (which "sh")))
445
446 (substitute* "cmd/vendor/golang.org/x/sys/unix/syscall_unix_test.go"
447 (("/usr/bin") "/tmp"))
448
449 ;; Add libgcc to runpath
450 (substitute* "cmd/link/internal/ld/lib.go"
451 (("!rpath.set") "true"))
452 (substitute* "cmd/go/internal/work/gccgo.go"
453 (("cgoldflags := \\[\\]string\\{\\}")
454 (string-append "cgoldflags := []string{"
455 "\"-rpath=" gcclib "\""
456 "}"))
457 (("\"-lgcc_s\", ")
458 (string-append
459 "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
460 (substitute* "cmd/go/internal/work/gc.go"
461 (("ldflags = setextld\\(ldflags, compiler\\)")
462 (string-append
463 "ldflags = setextld(ldflags, compiler)\n"
464 "ldflags = append(ldflags, \"-r\")\n"
465 "ldflags = append(ldflags, \"" gcclib "\")\n")))
466
467 ;; Disable failing tests: these tests attempt to access
468 ;; commands or network resources which are neither available
469 ;; nor necessary for the build to succeed.
470 (for-each
471 (match-lambda
472 ((file regex)
473 (substitute* file
474 ((regex all before test_name)
475 (string-append before "Disabled" test_name)))))
476 '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
477 ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
478 ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPort.+)")
479 ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPortWithCancel.+)")
480 ;; 127.0.0.1 doesn't exist
481 ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPTR.+)")
482 ;; 127.0.0.1 doesn't exist
483 ("net/cgo_unix_test.go" "(.+)(TestCgoLookupPTRWithCancel.+)")
484 ;; /etc/services doesn't exist
485 ("net/parse_test.go" "(.+)(TestReadLine.+)")
486 ("os/os_test.go" "(.+)(TestHostname.+)")
487 ;; The user's directory doesn't exist
488 ("os/os_test.go" "(.+)(TestUserHomeDir.+)")
489 ("time/format_test.go" "(.+)(TestParseInSydney.+)")
490 ("time/format_test.go" "(.+)(TestParseInLocation.+)")
491 ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
492 ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
ec91bcb5
MJ
493 ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
494 ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
495 ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
496 ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
497 ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
498 ("os/exec/exec_test.go" "(.+)(TestIgnorePipeErrorOnSuccess.+)")
499 ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
500 ("os/exec/exec_test.go" "(.+)(TestExtraFiles/areturn.+)")
501 ("cmd/go/go_test.go" "(.+)(TestCoverageWithCgo.+)")
3f157443 502 ("cmd/go/go_test.go" "(.+)(TestTwoPkgConfigs.+)")
ec91bcb5
MJ
503 ("os/exec/exec_test.go" "(.+)(TestOutputStderrCapture.+)")
504 ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")
505 ("os/exec/exec_test.go" "(.+)(TestExtraFilesRace.+)")
506 ("net/lookup_test.go" "(.+)(TestLookupPort.+)")
507 ("syscall/exec_linux_test.go"
17399545 508 "(.+)(TestCloneNEWUSERAndRemapNoRootDisableSetgroups.+)")))
ec91bcb5 509
ec91bcb5
MJ
510 ;; fix shebang for testar script
511 ;; note the target script is generated at build time.
a6169621 512 (substitute* "../misc/cgo/testcarchive/carchive_test.go"
ec91bcb5
MJ
513 (("#!/usr/bin/env") (string-append "#!" (which "env"))))
514
515 (substitute* "net/lookup_unix.go"
516 (("/etc/protocols") (string-append net-base "/etc/protocols")))
517 (substitute* "net/port_unix.go"
518 (("/etc/services") (string-append net-base "/etc/services")))
519 (substitute* "time/zoneinfo_unix.go"
520 (("/usr/share/zoneinfo/") tzdata-path))
c04ef86e
P
521 (substitute* (find-files "cmd" "\\.go")
522 (("/lib(64)?/ld-linux.*\\.so\\.[0-9]") loader))
ec91bcb5
MJ
523 #t)))
524 (add-before 'build 'set-bootstrap-variables
525 (lambda* (#:key outputs inputs #:allow-other-keys)
526 ;; Tell the build system where to find the bootstrap Go.
5a14b913 527 (let ((go (assoc-ref inputs "go")))
ec91bcb5 528 (setenv "GOROOT_BOOTSTRAP" go)
ec91bcb5 529 (setenv "GOGC" "400")
ec91bcb5 530 #t)))
04a95a4f
LF
531 (replace 'build
532 (lambda* (#:key inputs outputs #:allow-other-keys)
533 ;; FIXME: Some of the .a files are not bit-reproducible.
534 (let* ((output (assoc-ref outputs "out")))
535 (setenv "CC" (which "gcc"))
536 (setenv "GOOS" "linux")
537 (setenv "GOROOT" (dirname (getcwd)))
538 (setenv "GOROOT_FINAL" output)
539 (setenv "CGO_ENABLED" "1")
188b88e2 540 (invoke "sh" "all.bash"))))
04a95a4f 541
ec91bcb5
MJ
542 (replace 'install
543 ;; TODO: Most of this could be factorized with Go 1.4.
544 (lambda* (#:key outputs #:allow-other-keys)
545 (let* ((output (assoc-ref outputs "out"))
546 (doc_out (assoc-ref outputs "doc"))
547 (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
548 (src (string-append
549 (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
550 (delete-file-recursively "../pkg/bootstrap")
5a14b913
LF
551 ;; Prevent installation of the build cache, which contains
552 ;; store references to most of the tools used to build Go and
553 ;; would unnecessarily increase the size of Go's closure if it
554 ;; was installed.
555 (delete-file-recursively "../pkg/obj")
ec91bcb5
MJ
556
557 (mkdir-p src)
558 (copy-recursively "../test" (string-append src "/test"))
559 (delete-file-recursively "../test")
560 (mkdir-p docs)
561 (copy-recursively "../api" (string-append docs "/api"))
562 (delete-file-recursively "../api")
563 (copy-recursively "../doc" (string-append docs "/doc"))
564 (delete-file-recursively "../doc")
565
566 (for-each
567 (lambda (file)
568 (let* ((filein (string-append "../" file))
569 (fileout (string-append docs "/" file)))
570 (copy-file filein fileout)
571 (delete-file filein)))
572 ;; Note the slightly different file names compared to 1.4.
573 '("README.md" "CONTRIBUTORS" "AUTHORS" "PATENTS"
574 "LICENSE" "VERSION" "CONTRIBUTING.md" "robots.txt"))
575
188b88e2
TGR
576 (copy-recursively "../" output)
577 #t)))))))
ec91bcb5
MJ
578 (native-inputs
579 `(("go" ,go-1.4)
1009e6e7
EF
580 ,@(match (%current-system)
581 ((or "armhf-linux" "aarch64-linux")
582 `(("gold" ,binutils-gold)))
583 (_ `()))
dda785f6
EF
584 ,@(package-native-inputs go-1.4)))
585 (supported-systems %supported-systems)))
ec91bcb5 586
9a65a052 587(define-public go go-1.11)
d3878e88
LF
588
589(define-public go-github-com-alsm-ioprogress
590 (let ((commit "063c3725f436e7fba0c8f588547bee21ffec7ac5")
591 (revision "0"))
592 (package
593 (name "go-github-com-alsm-ioprogress")
594 (version (git-version "0.0.0" revision commit))
595 (source (origin
596 (method git-fetch)
597 (uri (git-reference
598 (url "https://github.com/alsm/ioprogress.git")
599 (commit commit)))
fdbece74 600 (file-name (git-file-name name version))
d3878e88
LF
601 (sha256
602 (base32
603 "10ym5qlq77nynmkxbk767f2hfwyxg2k7hrzph05hvgzv833dhivh"))))
604 (build-system go-build-system)
605 (arguments
606 '(#:import-path "github.com/alsm/ioprogress"))
607 (synopsis "Textual progress bars in Go")
608 (description "@code{ioprogress} is a Go library with implementations of
609@code{io.Reader} and @code{io.Writer} that draws progress bars. The primary use
610case for these are for command-line applications but alternate progress bar
611writers can be supplied for alternate environments.")
612 (home-page "https://github.com/alsm/ioprogress")
613 (license license:expat))))
11b12655
LF
614
615(define-public go-github-com-aki237-nscjar
616 (let ((commit "e2df936ddd6050d30dd90c7214c02b5019c42f06")
617 (revision "0"))
618 (package
619 (name "go-github-com-aki237-nscjar")
620 (version (git-version "0.0.0" revision commit))
621 (source (origin
622 (method git-fetch)
623 (uri (git-reference
624 (url "https://github.com/aki237/nscjar.git")
625 (commit commit)))
82f09c0e 626 (file-name (git-file-name name version))
11b12655
LF
627 (sha256
628 (base32
629 "03y7zzq12qvhsq86lb06sgns8xrkblbn7i7wd886wk3zr5574b96"))))
630 (build-system go-build-system)
631 (arguments
632 '(#:import-path "github.com/aki237/nscjar"))
633 (synopsis "Handle Netscape / Mozilla cookies")
634 (description "@code{nscjar} is a Go library used to parse and output
635Netscape/Mozilla's old-style cookie files. It also implements a simple cookie
636jar struct to manage the cookies added to the cookie jar.")
637 (home-page "https://github.com/aki237/nscjar")
638 (license license:expat))))
12f496ba 639
60a8cbc4
CB
640(define-public go-github.com-jessevdk-go-flags
641 (package
642 (name "go-github.com-jessevdk-go-flags")
643 (version "1.3.0")
644 (source (origin
645 (method git-fetch)
646 (uri (git-reference
647 (url "https://github.com/jessevdk/go-flags")
648 (commit (string-append "v" version))))
649 (file-name (git-file-name name version))
650 (sha256
651 (base32
652 "1jk2k2l10lwrn1r3nxdvbs0yz656830j4khzirw8p4ahs7c5zz36"))))
653 (build-system go-build-system)
654 (arguments
655 '(#:import-path "github.com/jessevdk/go-flags"))
656 (synopsis "Go library for parsing command line arguments")
657 (description
658 "The @code{flags} package provides a command line option parser. The
659functionality is similar to the go builtin @code{flag} package, but
660@code{flags} provides more options and uses reflection to provide a succinct
661way of specifying command line options.")
662 (home-page "https://github.com/jessevdk/go-flags")
663 (license license:bsd-3)))
210c6d95
CB
664
665(define-public go-gopkg.in-tomb.v2
666 (let ((commit "d5d1b5820637886def9eef33e03a27a9f166942c")
667 (revision "0"))
668 (package
669 (name "go-gopkg.in-tomb.v2")
670 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
671 (source (origin
672 (method git-fetch)
673 (uri (git-reference
674 (url "https://github.com/go-tomb/tomb.git")
675 (commit commit)))
676 (file-name (string-append name "-" version ".tar.gz"))
677 (sha256
678 (base32
679 "1sv15sri99szkdz1bkh0ir46w9n8prrwx5hfai13nrhkawfyfy10"))))
680 (build-system go-build-system)
681 (arguments
69a64ecd
CB
682 '(#:import-path "gopkg.in/tomb.v2"
683 #:phases
684 (modify-phases %standard-phases
685 (add-after 'unpack 'patch-source
686 (lambda _
687 ;; Add a missing % to fix the compilation of this test
688 (substitute* "src/gopkg.in/tomb.v2/tomb_test.go"
689 (("t.Fatalf\\(`Killf\\(\"BO%s")
690 "t.Fatalf(`Killf(\"BO%%s"))
691 #t)))))
210c6d95
CB
692 (synopsis "@code{tomb} handles clean goroutine tracking and termination")
693 (description
694 "The @code{tomb} package handles clean goroutine tracking and
695termination.")
696 (home-page "https://gopkg.in/tomb.v2")
697 (license license:bsd-3))))
da6f9d41
CB
698
699(define-public go-github.com-jtolds-gls
700 (package
701 (name "go-github.com-jtolds-gls")
f0736d47 702 (version "4.20")
da6f9d41
CB
703 (source (origin
704 (method git-fetch)
705 (uri (git-reference
706 (url "https://github.com/jtolds/gls")
707 (commit (string-append "v" version))))
708 (file-name (git-file-name name version))
709 (sha256
710 (base32
f0736d47 711 "1k7xd2q2ysv2xsh373qs801v6f359240kx0vrl0ydh7731lngvk6"))))
da6f9d41
CB
712 (build-system go-build-system)
713 (arguments
714 '(#:import-path "github.com/jtolds/gls"))
715 (synopsis "@code{gls} provides Goroutine local storage")
716 (description
717 "The @code{gls} package provides a way to store a retrieve values
718per-goroutine.")
719 (home-page "https://github.com/jtolds/gls")
720 (license license:expat)))
c4d2cffa
CB
721
722(define-public go-github-com-tj-docopt
723 (package
724 (name "go-github-com-tj-docopt")
725 (version "1.0.0")
726 (source (origin
727 (method git-fetch)
728 (uri (git-reference
729 (url "https://github.com/tj/docopt")
730 (commit (string-append "v" version))))
731 (file-name (git-file-name name version))
732 (sha256
733 (base32
734 "06h8hdg1mh3s78zqlr01g4si7k0f0g6pr7fj7lnvfg446hgc7080"))))
735 (build-system go-build-system)
736 (arguments
737 '(#:import-path "github.com/tj/docopt"))
738 (synopsis "Go implementation of docopt")
739 (description
740 "This library allows the user to define a command-line interface from a
5c6b576a 741program's help message rather than specifying it programmatically with
c4d2cffa
CB
742command-line parsers.")
743 (home-page "https://github.com/tj/docopt")
744 (license license:expat)))
ed0c6a76
CB
745
746(define-public go-github-com-hashicorp-hcl
747 (let ((commit "23c074d0eceb2b8a5bfdbb271ab780cde70f05a8")
748 (revision "0"))
749 (package
750 (name "go-github-com-hashicorp-hcl")
751 (version (git-version "0.0.0" revision commit))
752 (source (origin
753 (method git-fetch)
754 (uri (git-reference
755 (url "https://github.com/hashicorp/hcl")
756 (commit commit)))
757 (file-name (git-file-name name version))
758 (sha256
759 (base32
760 "0db4lpqb5m130rmfy3s3gjjf4dxllypmyrzxv6ggqhkmwmc7w4mc"))))
761 (build-system go-build-system)
762 (arguments
763 '(#:tests? #f
764 #:import-path "github.com/hashicorp/hcl"))
765 (synopsis "Go implementation of HashiCorp Configuration Language")
766 (description
767 "This package contains the main implementation of the @acronym{HCL,
768HashiCorp Configuration Language}. HCL is designed to be a language for
769expressing configuration which is easy for both humans and machines to read.")
770 (home-page "https://github.com/hashicorp/hcl")
771 (license license:mpl2.0))))
269d0858 772
33b67efe
LF
773(define-public go-golang-org-x-tools
774 (let ((commit "8b927904ee0dec805c89aaf9172f4459296ed6e8")
775 (revision "0"))
776 (package
777 (name "go-golang-org-x-tools")
778 (version (git-version "0.1.3" revision commit))
779 (source (origin
780 (method git-fetch)
781 (uri (git-reference
782 (url "https://go.googlesource.com/tools")
783 (commit commit)))
784 (file-name (string-append "go.googlesource.com-tools-"
785 version "-checkout"))
786 (sha256
787 (base32
788 "0iinb70xhcjsddgi42ia1n745lx2ibnjdm6m2v666qrk3876vpck"))))
789 (build-system go-build-system)
790 (arguments
791 `(#:import-path "golang.org/x/tools"
792 ;; Source-only package
793 #:tests? #f
794 #:phases
795 (modify-phases %standard-phases
796 ;; Source-only package
797 (delete 'build))))
798 (synopsis "Tools that support the Go programming language")
799 (description "This package provides miscellaneous tools that support the
800Go programming language.")
801 (home-page "https://go.googlesource.com/tools/")
802 (license license:bsd-3))))
5bbf203c
LF
803
804(define-public go-golang-org-x-crypto
805 (let ((commit "b7391e95e576cacdcdd422573063bc057239113d")
806 (revision "3"))
807 (package
808 (name "go-golang-org-x-crypto")
809 (version (git-version "0.0.0" revision commit))
810 (source (origin
811 (method git-fetch)
812 (uri (git-reference
813 (url "https://go.googlesource.com/crypto")
814 (commit commit)))
815 (file-name (string-append "go.googlesource.com-crypto-"
816 version "-checkout"))
817 (sha256
818 (base32
819 "1jqfh81mhgwcc6b9l0bs6rb0707s01qpvn7896i5bsmig46lc7zm"))))
820 (build-system go-build-system)
821 (arguments
822 '(#:import-path "golang.org/x/crypto"
823 ;; Source-only package
824 #:tests? #f
825 #:phases
826 (modify-phases %standard-phases
827 ;; Source-only package
828 (delete 'build)
829 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
830 (lambda* (#:key outputs #:allow-other-keys)
831 (map (lambda (file)
832 (make-file-writable file))
833 (find-files
834 (string-append (assoc-ref outputs "out")
835 "/src/golang.org/x/crypto/ed25519/testdata")
836 ".*\\.gz$"))
837 #t)))))
838 (propagated-inputs
839 `(("go-golang-org-x-sys-cpu" ,go-golang-org-x-sys-cpu)))
840 (synopsis "Supplementary cryptographic libraries in Go")
841 (description "This package provides supplementary cryptographic libraries
842for the Go language.")
843 (home-page "https://go.googlesource.com/crypto/")
844 (license license:bsd-3))))
33b67efe 845
269d0858 846(define-public go-golang-org-x-crypto-bcrypt
9c1b4316
LF
847 (let ((commit "b7391e95e576cacdcdd422573063bc057239113d")
848 (revision "3"))
269d0858
LF
849 (package
850 (name "go-golang-org-x-crypto-bcrypt")
851 (version (git-version "0.0.0" revision commit))
852 (source (origin
853 (method git-fetch)
854 (uri (git-reference
855 (url "https://go.googlesource.com/crypto")
856 (commit commit)))
857 (file-name (string-append "go.googlesource.com-crypto-"
858 version "-checkout"))
859 (sha256
860 (base32
9c1b4316 861 "1jqfh81mhgwcc6b9l0bs6rb0707s01qpvn7896i5bsmig46lc7zm"))))
269d0858
LF
862 (build-system go-build-system)
863 (arguments
864 `(#:import-path "golang.org/x/crypto/bcrypt"
9c359ff4 865 #:unpack-path "golang.org/x/crypto"))
269d0858
LF
866 (synopsis "Bcrypt in Go")
867 (description "This package provides a Go implementation of the bcrypt
868password hashing function.")
869 (home-page "https://go.googlesource.com/crypto/")
870 (license license:bsd-3))))
871
872(define-public go-golang-org-x-crypto-blowfish
9c1b4316
LF
873 (package
874 (inherit go-golang-org-x-crypto-bcrypt)
875 (name "go-golang-org-x-crypto-blowfish")
876 (arguments
877 `(#:import-path "golang.org/x/crypto/blowfish"
878 #:unpack-path "golang.org/x/crypto"))
879 (synopsis "Blowfish in Go")
880 (description "This package provides a Go implementation of the Blowfish
881symmetric-key block cipher.")))
269d0858
LF
882
883(define-public go-golang-org-x-crypto-pbkdf2
9c1b4316
LF
884 (package
885 (inherit go-golang-org-x-crypto-bcrypt)
886 (name "go-golang-org-x-crypto-pbkdf2")
887 (arguments
888 `(#:import-path "golang.org/x/crypto/pbkdf2"
889 #:unpack-path "golang.org/x/crypto"))
890 (synopsis "PBKDF2 in Go")
891 (description "This package provides a Go implementation of the PBKDF2 key
892derivation function.")))
269d0858
LF
893
894(define-public go-golang-org-x-crypto-tea
9c1b4316
LF
895 (package
896 (inherit go-golang-org-x-crypto-bcrypt)
897 (name "go-golang-org-x-crypto-tea")
898 (arguments
899 `(#:import-path "golang.org/x/crypto/tea"
900 #:unpack-path "golang.org/x/crypto"))
901 (synopsis "Tiny Encryption Algorithm (TEA) in Go")
575fa9b3 902 (description "This package provides a Go implementation of the Tiny Encryption
9c1b4316 903Algorithm (TEA) block cipher.")))
269d0858
LF
904
905(define-public go-golang-org-x-crypto-salsa20
9c1b4316
LF
906 (package
907 (inherit go-golang-org-x-crypto-bcrypt)
908 (name "go-golang-org-x-crypto-salsa20")
909 (arguments
910 `(#:import-path "golang.org/x/crypto/salsa20"
911 #:unpack-path "golang.org/x/crypto"))
912 (synopsis "Salsa20 in Go")
8374bbe2 913 (description "This package provides a Go implementation of the Salsa20
9c1b4316 914stream cipher.")))
269d0858
LF
915
916(define-public go-golang-org-x-crypto-cast5
9c1b4316
LF
917 (package
918 (inherit go-golang-org-x-crypto-bcrypt)
919 (name "go-golang-org-x-crypto-cast5")
920 (arguments
921 `(#:import-path "golang.org/x/crypto/cast5"
922 #:unpack-path "golang.org/x/crypto"))
923 (synopsis "Cast5 in Go")
46e8da97 924 (description "This package provides a Go implementation of the Cast5
9c1b4316 925symmetric-key block cipher.")))
269d0858
LF
926
927(define-public go-golang-org-x-crypto-twofish
9c1b4316
LF
928 (package
929 (inherit go-golang-org-x-crypto-bcrypt)
930 (name "go-golang-org-x-crypto-twofish")
931 (arguments
932 `(#:import-path "golang.org/x/crypto/twofish"
933 #:unpack-path "golang.org/x/crypto"))
934 (synopsis "Twofish in Go")
b0447547 935 (description "This package provides a Go implementation of the Twofish
9c1b4316 936symmetric-key block cipher.")))
269d0858
LF
937
938(define-public go-golang-org-x-crypto-xtea
9c1b4316
LF
939 (package
940 (inherit go-golang-org-x-crypto-bcrypt)
941 (name "go-golang-org-x-crypto-xtea")
942 (arguments
943 `(#:import-path "golang.org/x/crypto/xtea"
944 #:unpack-path "golang.org/x/crypto"))
945 (synopsis "eXtended Tiny Encryption Algorithm (XTEA) in Go")
946 (description "This package provides a Go implementation of the eXtended
947Tiny Encryption Algorithm (XTEA) block cipher.")))
269d0858 948
7eb0ad38
PN
949(define-public go-golang-org-x-crypto-ed25519
950 (package
951 (inherit go-golang-org-x-crypto-bcrypt)
952 (name "go-golang-org-x-crypto-ed25519")
953 (arguments
9c359ff4
LF
954 `(#:import-path "golang.org/x/crypto/ed25519"
955 #:unpack-path "golang.org/x/crypto"
956 #:phases
957 (modify-phases %standard-phases
958 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
959 (lambda* (#:key outputs #:allow-other-keys)
960 (map (lambda (file)
961 (make-file-writable file))
962 (find-files
963 (string-append (assoc-ref outputs "out")
964 "/src/golang.org/x/crypto/ed25519/testdata")
965 ".*\\.gz$"))
966 #t)))))
7eb0ad38
PN
967 (synopsis "ED25519 in Go")
968 (description "This package provides a Go implementation of the ED25519
969signature algorithm.")))
970
a9010ead
PN
971(define-public go-golang-org-x-crypto-ripemd160
972 (package
973 (inherit go-golang-org-x-crypto-bcrypt)
974 (name "go-golang-org-x-crypto-ripemd160")
975 (arguments
976 (substitute-keyword-arguments (package-arguments go-golang-org-x-crypto-bcrypt)
977 ((#:import-path _)
978 "golang.org/x/crypto/ripemd160")))
979 (synopsis "RIPEMD-160 in Go")
980 (description "This package provides a Go implementation of the RIPEMD-160
981hash algorithm.")))
982
6fa257cc
PN
983(define-public go-golang-org-x-crypto-blake2s
984 (package
985 (inherit go-golang-org-x-crypto-bcrypt)
986 (name "go-golang-org-x-crypto-blake2s")
987 (arguments
988 (substitute-keyword-arguments (package-arguments go-golang-org-x-crypto-bcrypt)
989 ((#:import-path _)
990 "golang.org/x/crypto/blake2s")))
9c1b4316
LF
991 (propagated-inputs
992 `(("go-golang-org-x-sys-cpu" ,go-golang-org-x-sys-cpu)))
6fa257cc
PN
993 (synopsis "BLAKE2s in Go")
994 (description "This package provides a Go implementation of the BLAKE2s
995hash algorithm.")))
996
19789c8b
PN
997(define-public go-golang-org-x-crypto-sha3
998 (package
999 (inherit go-golang-org-x-crypto-bcrypt)
1000 (name "go-golang-org-x-crypto-sha3")
1001 (arguments
1002 (substitute-keyword-arguments (package-arguments go-golang-org-x-crypto-bcrypt)
1003 ((#:import-path _)
1004 "golang.org/x/crypto/sha3")))
1005 (synopsis "SHA-3 in Go")
1006 (description "This package provides a Go implementation of the SHA-3
1007fixed-output-length hash functions and the SHAKE variable-output-length hash
1008functions defined by FIPS-202.")))
1009
269d0858 1010(define-public go-golang-org-x-net-ipv4
3034d1a1
LF
1011 (let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
1012 (revision "2"))
269d0858
LF
1013 (package
1014 (name "go-golang-org-x-net-ipv4")
1015 (version (git-version "0.0.0" revision commit))
1016 (source (origin
1017 (method git-fetch)
1018 (uri (git-reference
1019 (url "https://go.googlesource.com/net")
1020 (commit commit)))
1021 (file-name (git-file-name name version))
1022 (sha256
1023 (base32
3034d1a1 1024 "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
269d0858
LF
1025 (build-system go-build-system)
1026 (arguments
1027 `(#:import-path "golang.org/x/net/ipv4"
1028 #:unpack-path "golang.org/x/net"))
1029 (synopsis "Go IPv4 support")
1030 (description "This package provides @code{ipv4}, which implements IP-level
1031socket options for the Internet Protocol version 4.")
1032 (home-page "https://go.googlesource.com/net")
1033 (license license:bsd-3))))
1034
1035(define-public go-golang-org-x-net-bpf
3034d1a1
LF
1036 (let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
1037 (revision "2"))
269d0858
LF
1038 (package
1039 (name "go-golang-org-x-net-bpf")
1040 (version (git-version "0.0.0" revision commit))
1041 (source (origin
1042 (method git-fetch)
1043 (uri (git-reference
1044 (url "https://go.googlesource.com/net")
1045 (commit commit)))
1046 (file-name (string-append "go.googlesource.com-net-"
1047 version "-checkout"))
1048 (sha256
1049 (base32
3034d1a1 1050 "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
269d0858
LF
1051 (build-system go-build-system)
1052 (arguments
1053 `(#:import-path "golang.org/x/net/bpf"
1054 #:unpack-path "golang.org/x/net"))
1055 (synopsis "Berkeley Packet Filters (BPF) in Go")
383bd29d 1056 (description "This package provides a Go implementation of the Berkeley
269d0858
LF
1057Packet Filter (BPF) virtual machine.")
1058 (home-page "https://go.googlesource.com/net/")
1059 (license license:bsd-3))))
1060
1061(define-public go-golang-org-x-net-context
3034d1a1
LF
1062 (let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
1063 (revision "2"))
269d0858
LF
1064 (package
1065 (name "go-golang-org-x-net-context")
1066 (version (git-version "0.0.0" revision commit))
1067 (source (origin
1068 (method git-fetch)
1069 (uri (git-reference
1070 (url "https://go.googlesource.com/net")
1071 (commit commit)))
1072 (file-name (string-append "go.googlesource.com-net-"
1073 version "-checkout"))
1074 (sha256
1075 (base32
3034d1a1 1076 "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
269d0858
LF
1077 (build-system go-build-system)
1078 (arguments
1079 `(#:import-path "golang.org/x/net/context"
1080 #:unpack-path "golang.org/x/net"))
1081 (synopsis "Golang Context type")
98bad28a 1082 (description "This package provides @code{context}, which defines the
ce97f336 1083Context type, which carries deadlines, cancellation signals, and other
269d0858
LF
1084request-scoped values across API boundaries and between processes.")
1085 (home-page "https://go.googlesource.com/net/")
1086 (license license:bsd-3))))
1087
3034d1a1
LF
1088(define-public go-golang-org-x-net-internal-socks
1089 (let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
1090 (revision "2"))
1091 (package
1092 (name "go-golang-org-x-net-internal-socks")
1093 (version (git-version "0.0.0" revision commit))
1094 (source (origin
1095 (method git-fetch)
1096 (uri (git-reference
1097 (url "https://go.googlesource.com/net")
1098 (commit commit)))
1099 (file-name (string-append "go.googlesource.com-net-"
1100 version "-checkout"))
1101 (sha256
1102 (base32
1103 "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
1104 (build-system go-build-system)
1105 (arguments
1106 `(#:import-path "golang.org/x/net/internal/socks"
1107 #:unpack-path "golang.org/x/net"))
1108 (synopsis "")
1109 (description "")
1110 (home-page "https://go.googlesource.com/net/")
1111 (license license:bsd-3))))
1112
1113(define-public go-golang-org-x-net-internal-socket
1114 (let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
1115 (revision "2"))
1116 (package
1117 (name "go-golang-org-x-net-internal-socket")
1118 (version (git-version "0.0.0" revision commit))
1119 (source (origin
1120 (method git-fetch)
1121 (uri (git-reference
1122 (url "https://go.googlesource.com/net")
1123 (commit commit)))
1124 (file-name (string-append "go.googlesource.com-net-"
1125 version "-checkout"))
1126 (sha256
1127 (base32
1128 "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
1129 (build-system go-build-system)
1130 (arguments
1131 `(#:import-path "golang.org/x/net/internal/socket"
1132 #:unpack-path "golang.org/x/net"))
1133 (synopsis "")
1134 (description "")
1135 (home-page "https://go.googlesource.com/net/")
1136 (license license:bsd-3))))
1137
269d0858 1138(define-public go-golang-org-x-net-internal-iana
3034d1a1
LF
1139 (let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
1140 (revision "2"))
269d0858
LF
1141 (package
1142 (name "go-golang-org-x-net-internal-iana")
1143 (version (git-version "0.0.0" revision commit))
1144 (source (origin
1145 (method git-fetch)
1146 (uri (git-reference
1147 (url "https://go.googlesource.com/net")
1148 (commit commit)))
1149 (file-name (string-append "go.googlesource.com-net-"
1150 version "-checkout"))
1151 (sha256
1152 (base32
3034d1a1 1153 "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
269d0858
LF
1154 (build-system go-build-system)
1155 (arguments
1156 `(#:import-path "golang.org/x/net/internal/iana"
1157 #:unpack-path "golang.org/x/net"))
1158 (synopsis "Go support for assigned numbers (IANA)")
9fea29c4 1159 (description "This package provides @code{iana}, which provides protocol
269d0858
LF
1160number resources managed by the Internet Assigned Numbers Authority (IANA).")
1161 (home-page "https://go.googlesource.com/net/")
1162 (license license:bsd-3))))
1163
1164(define-public go-golang-org-x-net-ipv6
3034d1a1
LF
1165 (let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
1166 (revision "2"))
269d0858
LF
1167 (package
1168 (name "go-golang-org-x-net-ipv6")
1169 (version (git-version "0.0.0" revision commit))
1170 (source (origin
1171 (method git-fetch)
1172 (uri (git-reference
1173 (url "https://go.googlesource.com/net")
1174 (commit commit)))
1175 (file-name (string-append "go.googlesource.com-net-"
1176 version "-checkout"))
1177 (sha256
1178 (base32
3034d1a1 1179 "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
269d0858
LF
1180 (build-system go-build-system)
1181 (arguments
1182 `(#:import-path "golang.org/x/net/ipv6"
1183 #:unpack-path "golang.org/x/net"))
1184 (synopsis "Go IPv6 support")
79254f31 1185 (description "This package provides @code{ipv6}, which implements
269d0858
LF
1186IP-level socket options for the Internet Protocol version 6.")
1187 (home-page "https://go.googlesource.com/net")
1188 (license license:bsd-3))))
1189
1190(define-public go-golang-org-x-net-proxy
3034d1a1
LF
1191 (let ((commit "351d144fa1fc0bd934e2408202be0c29f25e35a0")
1192 (revision "2"))
269d0858
LF
1193 (package
1194 (name "go-golang-org-x-net-proxy")
1195 (version (git-version "0.0.0" revision commit))
1196 (source (origin
1197 (method git-fetch)
1198 (uri (git-reference
1199 (url "https://go.googlesource.com/net")
1200 (commit commit)))
1201 (file-name (string-append "go.googlesource.com-net-"
1202 version "-checkout"))
1203 (sha256
1204 (base32
3034d1a1 1205 "1c5x25qjyz83y92bq0lll5kmznyi3m02wd4c54scgf0866gy938k"))))
269d0858
LF
1206 (build-system go-build-system)
1207 (arguments
1208 `(#:import-path "golang.org/x/net/proxy"
1209 #:unpack-path "golang.org/x/net/"))
1210 (synopsis "Go support for network proxies")
4cc055cb 1211 (description "This package provides @code{proxy}, which provides support
269d0858
LF
1212for a variety of protocols to proxy network data.")
1213 (home-page "https://go.googlesource.com/net")
1214 (license license:bsd-3))))
1215
1216(define-public go-golang-org-x-sys-unix
b3f0f8a6
LF
1217 (let ((commit "4d1cda033e0619309c606fc686de3adcf599539e")
1218 (revision "2"))
269d0858
LF
1219 (package
1220 (name "go-golang-org-x-sys-unix")
1221 (version (git-version "0.0.0" revision commit))
1222 (source (origin
1223 (method git-fetch)
1224 (uri (git-reference
1225 (url "https://go.googlesource.com/sys")
1226 (commit commit)))
1227 (file-name (git-file-name name version))
1228 (sha256
1229 (base32
b3f0f8a6 1230 "1wgaldbnkmh568v8kkgvnmkskaj96fqrbzhx23yji2kh1432q6gh"))))
269d0858
LF
1231 (build-system go-build-system)
1232 (arguments
1233 `(#:import-path "golang.org/x/sys/unix"
b3f0f8a6 1234 #:unpack-path "golang.org/x/sys"))
269d0858
LF
1235 (synopsis "Go support for low-level system interaction")
1236 (description "This package provides @code{unix}, which offers Go support
1237for low-level interaction with the operating system.")
1238 (home-page "https://go.googlesource.com/sys")
1239 (license license:bsd-3))))
1240
4a136536
LF
1241(define-public go-golang-org-x-sys-cpu
1242 (package
1243 (inherit go-golang-org-x-sys-unix)
1244 (name "go-golang-org-x-sys-cpu")
1245 (arguments
1246 '(#:import-path "golang.org/x/sys/cpu"
1247 #:unpack-path "golang.org/x/sys"))
1248 (synopsis "CPU feature detection")
1249 (description "Thi spackage provides @code{cpu}, which offers tools for CPU
1250feature detection in Go.")))
1251
06c2d0e6
BL
1252(define-public go-golang-org-x-text-encoding
1253 (package
1254 (name "go-golang-org-x-text-encoding")
1255 (version "0.3.2")
1256 (source (origin
1257 (method git-fetch)
1258 (uri (git-reference
1259 (url "https://go.googlesource.com/text")
1260 (commit (string-append "v" version))))
1261 (file-name (string-append "go.googlesource.com-text-"
1262 version "-checkout"))
1263 (sha256
1264 (base32
1265 "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"))))
1266 (build-system go-build-system)
1267 (arguments
1268 `(#:import-path "golang.org/x/text/encoding"
1269 #:unpack-path "golang.org/x/text"))
1270 (synopsis "Interface for character encodings for conversion to and from
1271UTF-8")
1272 (description "This package defines an interface for character encodings.
1273Specific implementations of encoding for CJK text as well as simple character
1274encodings are provided in subpackages.")
1275 (home-page "https://go.googlesource.com/text")
1276 (license license:bsd-3)))
1277
269d0858 1278(define-public go-golang-org-x-text-transform
7e6da91f
BL
1279 (package
1280 (inherit go-golang-org-x-text-encoding)
1281 (name "go-golang-org-x-text-transform")
1282 (arguments
1283 `(#:import-path "golang.org/x/text/transform"
1284 #:unpack-path "golang.org/x/text"))
1285 (synopsis "Go text transformation")
1286 (description "This package provides @code{transform}, which provides
269d0858
LF
1287reader and writer wrappers that transform the bytes passing through. Example
1288transformations provided by other packages include normalization and conversion
7e6da91f 1289between character sets.")))
269d0858
LF
1290
1291(define-public go-golang-org-x-text-unicode-norm
bd184dc6
BL
1292 (package
1293 (inherit go-golang-org-x-text-encoding)
1294 (name "go-golang-org-x-text-unicode-norm")
1295 (arguments
1296 `(#:import-path "golang.org/x/text/unicode/norm"
1297 #:unpack-path "golang.org/x/text"))
1298 (synopsis "Unicode normalization in Go")
1299 (description "This package provides @code{norm}, which contains types and
1300functions for normalizing Unicode strings.")))
269d0858
LF
1301
1302(define-public go-golang-org-x-time-rate
1303 (let ((commit "6dc17368e09b0e8634d71cac8168d853e869a0c7")
1304 (revision "1"))
1305 (package
1306 (name "go-golang-org-x-time-rate")
1307 (version (git-version "0.0.0" revision commit))
1308 (source (origin
1309 (method git-fetch)
1310 (uri (git-reference
1311 (url "https://go.googlesource.com/time")
1312 (commit commit)))
1313 (file-name (git-file-name name version))
1314 (sha256
1315 (base32
1316 "1fx4cf5fpdz00g3c7vxzy92hdcg0vh4yqw00qp5s52j72qixynbk"))))
1317 (build-system go-build-system)
1318 (arguments
1319 `(#:import-path "golang.org/x/time/rate"
1320 #:unpack-path "golang.org/x/time"))
1321 (propagated-inputs
1322 `(("go-golang-org-x-net-context" ,go-golang-org-x-net-context)))
1323 (synopsis "Rate limiting in Go")
1324 (description "This package provides @{rate}, which implements rate
1325limiting in Go.")
1326 (home-page "https://godoc.org/golang.org/x/time/rate")
1327 (license license:bsd-3))))
e60352e4
1328
1329(define-public go-golang-org-x-crypto-ssh-terminal
9c1b4316
LF
1330 (package
1331 (inherit go-golang-org-x-crypto-bcrypt)
1332 (name "go-golang-org-x-crypto-ssh-terminal")
1333 (inputs
1334 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
1335 (arguments
1336 `(#:import-path "golang.org/x/crypto/ssh/terminal"
1337 #:unpack-path "golang.org/x/crypto"))
1338 (synopsis "Terminal functions for Go")
1339 (description "This package provides @{terminal}, which implements support
1340functions for dealing with terminals, as commonly found on UNIX systems.")))
fb50664f
PAR
1341
1342(define-public go-github-com-burntsushi-toml
0e558640
LF
1343 (package
1344 (name "go-github-com-burntsushi-toml")
1345 (version "0.3.1")
1346 (source
1347 (origin
1348 (method git-fetch)
1349 (uri (git-reference
1350 (url "https://github.com/BurntSushi/toml.git")
1351 (commit (string-append "v" version))))
1352 (file-name (git-file-name name version))
1353 (sha256
1354 (base32
1355 "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6"))))
1356 (build-system go-build-system)
1357 (arguments
1358 '(#:import-path "github.com/BurntSushi/toml"))
1359 (home-page "https://github.com/BurntSushi/toml")
1360 (synopsis "Toml parser and encoder for Go")
1361 (description "This package is toml parser and encoder for Go. The interface
1362is similar to Go's standard library @code{json} and @code{xml} package.")
1363 (license license:expat)))
8c5a69aa
PAR
1364
1365(define-public go-github-com-getsentry-raven-go
8ffc727e 1366 (let ((commit "5c24d5110e0e198d9ae16f1f3465366085001d92")
8c5a69aa
PAR
1367 (revision "0"))
1368 (package
1369 (name "go-github-com-getsentry-raven-go")
8ffc727e 1370 (version (git-version "0.2.0" revision commit))
8c5a69aa
PAR
1371 (source
1372 (origin
1373 (method git-fetch)
1374 (uri (git-reference
1375 (url "https://github.com/getsentry/raven-go.git")
1376 (commit commit)))
1377 (file-name (git-file-name name version))
1378 (sha256
1379 (base32
8ffc727e 1380 "0lvc376sq8r8jhy2v1m6rf1wyld61pvbk0x6j9xpg56ivqy69xs7"))))
8c5a69aa
PAR
1381 (build-system go-build-system)
1382 (arguments
1383 '(#:import-path "github.com/getsentry/raven-go"))
8ffc727e
LF
1384 (propagated-inputs
1385 `(("go-github-com-certifi-gocertifi" ,go-github-com-certifi-gocertifi)
1386 ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)))
1387 (home-page "https://github.com/getsentry/raven-go")
8c5a69aa 1388 (synopsis "Sentry client in Go")
8ffc727e 1389 (description "This package is a Go client API for the Sentry event/error
8c5a69aa
PAR
1390logging system.")
1391 (license license:bsd-3))))
0972411a
PAR
1392
1393(define-public go-github-com-hashicorp-go-version
1394 (let ((commit
1395 "03c5bf6be031b6dd45afec16b1cf94fc8938bc77")
1396 (revision "0"))
1397 (package
1398 (name "go-github-com-hashicorp-go-version")
1399 (version (git-version "0.0.0" revision commit))
1400 (source
1401 (origin
1402 (method git-fetch)
1403 (uri (git-reference
1404 (url "https://github.com/hashicorp/go-version.git")
1405 (commit commit)))
1406 (file-name (git-file-name name version))
1407 (sha256
1408 (base32
1409 "0sjq57gpfznaqdrbyb2p0bn90g9h661cvr0jrk6ngags4pbw14ik"))))
1410 (build-system go-build-system)
1411 (arguments
1412 '(#:import-path "github.com/hashicorp/go-version"))
1413 (home-page
1414 "https://github.com/hashicorp/go-version")
1415 (synopsis "Go library for parsing and verifying versions and version
1416constraints")
1417 (description "This package is a library for parsing versions and version
1418constraints, and verifying versions against a set of constraints. It can sort
1419a collection of versions properly, handles prerelease/beta versions, can
1420increment versions.")
1421 (license license:mpl2.0))))
c4230cda
PAR
1422
1423(define-public go-github-com-jpillora-backoff
1424 (let ((commit
1425 "06c7a16c845dc8e0bf575fafeeca0f5462f5eb4d")
1426 (revision "0"))
1427 (package
1428 (name "go-github-com-jpillora-backoff")
1429 (version (git-version "0.0.0" revision commit))
1430 (source
1431 (origin
1432 (method git-fetch)
1433 (uri (git-reference
1434 (url "https://github.com/jpillora/backoff.git")
1435 (commit commit)))
1436 (file-name (git-file-name name version))
1437 (sha256
1438 (base32
1439 "0xhvxr7bm47czdc5hy3kl508z3y4j91i2jm7vg774i52zych6k4l"))))
1440 (build-system go-build-system)
1441 (arguments
1442 '(#:import-path "github.com/jpillora/backoff"))
1443 (home-page "https://github.com/jpillora/backoff")
1444 (synopsis "Simple exponential backoff counter in Go")
1445 (description "This package is a simple exponential backoff counter in
1446Go.")
1447 (license license:expat))))
28380e0e
PAR
1448
1449(define-public go-github-com-stretchr-testify
1450 (let ((commit
1451 "b1f989447a57594c728884458a39abf3a73447f7")
1452 (revision "0"))
1453 (package
1454 (name "go-github-com-stretchr-testify")
1455 (version (git-version "1.1.4" revision commit))
1456 (source
1457 (origin
1458 (method git-fetch)
1459 (uri (git-reference
1460 (url "https://github.com/stretchr/testify.git")
1461 (commit commit)))
1462 (file-name (git-file-name name version))
1463 (sha256
1464 (base32
1465 "0p0gkqzh2p8r5g0rxm885ljl7ghih7h7hx9w562imx5ka0vdgixv"))))
1466 (build-system go-build-system)
1467 (arguments
1468 '(#:import-path "github.com/stretchr/testify"))
1469 (home-page "https://github.com/stretchr/testify")
1470 (synopsis "Go helper library for tests and invariant checking")
1471 (description "This package provide many tools for testifying that your
1472code will behave as you intend.
1473
1474Features include:
1475@itemize
1476@item Easy assertions
1477@item Mocking
1478@item HTTP response trapping
1479@item Testing suite interfaces and functions.
1480@end itemize")
1481 (license license:expat))))
21290c35
PAR
1482
1483(define-public go-github-com-tevino-abool
1484 (let ((commit
1485 "3c25f2fe7cd0ef3eabefce1d90efd69a65d35b12")
1486 (revision "0"))
1487 (package
1488 (name "go-github-com-tevino-abool")
1489 (version (git-version "0.0.0" revision commit))
1490 (source
1491 (origin
1492 (method git-fetch)
1493 (uri (git-reference
1494 (url "https://github.com/tevino/abool.git")
1495 (commit commit)))
1496 (file-name (git-file-name name version))
1497 (sha256
1498 (base32
1499 "1wxqrclxk93q0aj15z596dx2y57x9nkhi64nbrr5cxnhxn8vwixm"))))
1500 (build-system go-build-system)
1501 (arguments
1502 '(#:import-path "github.com/tevino/abool"))
1503 (home-page "https://github.com/tevino/abool")
1504 (synopsis "Atomic boolean library for Go code")
1505 (description "This package is atomic boolean library for Go code,
1506optimized for performance yet simple to use.")
1507 (license license:expat))))
7c2ebbd4 1508
67836c59
PAR
1509(define-public go-github-com-blang-semver
1510 (let ((commit "60ec3488bfea7cca02b021d106d9911120d25fe9")
1511 (revision "0"))
1512 (package
1513 (name "go-github-com-blang-semver")
1514 (version (git-version "0.0.0" revision commit))
1515 (source
1516 (origin
1517 (method git-fetch)
1518 (uri (git-reference
1519 (url "https://github.com/blang/semver.git")
1520 (commit commit)))
1521 (file-name (git-file-name name version))
1522 (sha256
1523 (base32
1524 "19pli07y5592g4dyjyj0jq5rn548vc3fz0qg3624vm1j5828p1c2"))))
1525 (build-system go-build-system)
1526 (arguments
1527 '(#:import-path "github.com/blang/semver"))
1528 (home-page "https://github.com/blang/semver")
1529 (synopsis "Semantic versioning library written in Go")
1530 (description "Semver is a library for Semantic versioning written in Go.")
1531 (license license:expat))))
1532
7979f7df
PAR
1533(define-public go-github-com-emicklei-go-restful
1534 (let ((commit "89ef8af493ab468a45a42bb0d89a06fccdd2fb22")
1535 (revision "0"))
1536 (package
1537 (name "go-github-com-emicklei-go-restful")
1538 (version (git-version "0.0.0" revision commit))
1539 (source
1540 (origin
1541 (method git-fetch)
1542 (uri (git-reference
1543 (url "https://github.com/emicklei/go-restful.git")
1544 (commit commit)))
1545 (file-name (git-file-name name version))
1546 (sha256
1547 (base32
1548 "0rrlfcfq80fkxifpih6bq31vavb5mf4530xz51pp9pq1mn2fzjfh"))))
1549 (build-system go-build-system)
1550 (arguments
1551 '(#:import-path "github.com/emicklei/go-restful"))
1552 (home-page "https://github.com/emicklei/go-restful")
1553 (synopsis "Build REST-style web services using Go")
1554 (description "This package provides @code{go-restful}, which helps
1555developers to use @code{http} methods explicitly and in a way that's consistent
1556with the HTTP protocol definition.")
1557 (license license:expat))))
73fe19ef
PAR
1558
1559(define-public go-github-com-google-cadvisor
1560 (let ((commit "2ed7198f77395ee9a172878a0a7ab92ab59a2cfd")
1561 (revision "0"))
1562 (package
1563 (name "go-github-com-google-cadvisor")
1564 (version (git-version "0.0.0" revision commit))
1565 (source
1566 (origin
1567 (method git-fetch)
1568 (uri (git-reference
1569 (url "https://github.com/google/cadvisor.git")
1570 (commit commit)))
1571 (file-name (git-file-name name version))
1572 (sha256
1573 (base32
1574 "1w8p345z5j0gk3yiq5ah0znd5lfh348p2s624k5r10drz04p3f55"))))
1575 (build-system go-build-system)
1576 (arguments
1577 '(#:import-path "github.com/google/cadvisor"))
1578 (home-page "https://github.com/google/cadvisor")
1579 (synopsis "Analyze resource usage of running containers")
1580 (description "The package provides @code{cadvisor}, which provides
ae03ce0f 1581information about the resource usage and performance characteristics of running
73fe19ef
PAR
1582containers.")
1583 (license license:asl2.0))))
daed2c5e
PAR
1584
1585(define-public go-github-com-google-gofuzz
1586 (let ((commit "fd52762d25a41827db7ef64c43756fd4b9f7e382")
1587 (revision "0"))
1588 (package
1589 (name "go-github-com-google-gofuzz")
1590 (version (git-version "0.0.0" revision commit))
1591 (source
1592 (origin
1593 (method git-fetch)
1594 (uri (git-reference
1595 (url "https://github.com/google/gofuzz.git")
1596 (commit commit)))
1597 (file-name (git-file-name name version))
1598 (sha256
1599 (base32
1600 "1yxmmr73h0lq7ryf3q9a7pcm2x5xrg4d5bxkq8n5pxwxwyq26kw8"))))
1601 (build-system go-build-system)
1602 (arguments
1603 '(#:import-path "github.com/google/gofuzz"))
1604 (home-page "https://github.com/google/gofuzz")
1605 (synopsis "Fuzz testing library for Go")
1606 (description "Gofuzz is a library for populationg Go objects with random
1607values for the purpose of fuzz testing.")
1608 (license license:asl2.0))))
9cf879a5
PAR
1609
1610(define-public go-github-com-gorilla-context
1611 (let ((commit "08b5f424b9271eedf6f9f0ce86cb9396ed337a42")
1612 (revision "0"))
1613 (package
1614 (name "go-github-com-gorilla-context")
1615 (version (git-version "0.0.0" revision commit))
1616 (source
1617 (origin
1618 (method git-fetch)
1619 (uri (git-reference
1620 (url "https://github.com/gorilla/context.git")
1621 (commit commit)))
1622 (file-name (git-file-name name version))
1623 (sha256
1624 (base32
1625 "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4"))))
1626 (build-system go-build-system)
1627 (arguments
1628 '(#:import-path "github.com/gorilla/context"))
1629 (home-page "https://github.com/gorilla/context")
1630 (synopsis "Go registry for request variables")
1631 (description "This package provides @code{gorilla/context}, which is a general purpose registry for global request variables in the Go programming language.")
1632 (license license:bsd-3))))
e8cdf560
PAR
1633
1634(define-public go-github-com-gorilla-mux
1635 (let ((commit "599cba5e7b6137d46ddf58fb1765f5d928e69604")
1636 (revision "0"))
1637 (package
1638 (name "go-github-com-gorilla-mux")
1639 (version (git-version "0.0.0" revision commit))
1640 (source
1641 (origin
1642 (method git-fetch)
1643 (uri (git-reference
1644 (url "https://github.com/gorilla/mux.git")
1645 (commit commit)))
1646 (file-name (git-file-name name version))
1647 (sha256
1648 (base32
1649 "0wd6jjii1kg5s0nk3ri6gqriz6hbd6bbcn6x4jf8n7ncrb8qsxyz"))))
1650 (build-system go-build-system)
1651 (arguments
1652 '(#:import-path "github.com/gorilla/mux"))
1653 (home-page "https://github.com/gorilla/mux")
1654 (synopsis "URL router and dispatcher for Go")
1655 (description
1656 "Gorilla/Mux implements a request router and dispatcher for matching
1657incoming requests with their respective handler.")
1658 (license license:bsd-3))))
bcb21790
PAR
1659
1660(define-public go-github-com-jonboulle-clockwork
1661 (let ((commit "e3653ace2d63753697e0e5b07b9393971c0bba9d")
1662 (revision "0"))
1663 (package
1664 (name "go-github-com-jonboulle-clockwork")
1665 (version (git-version "0.0.0" revision commit))
1666 (source
1667 (origin
1668 (method git-fetch)
1669 (uri (git-reference
1670 (url "https://github.com/jonboulle/clockwork.git")
1671 (commit commit)))
1672 (file-name (git-file-name name version))
1673 (sha256
1674 (base32
1675 "1avzqhks12a8x2yzpvjsf3k0gv9cy7zx2z88hn0scacnxkphisvc"))))
1676 (build-system go-build-system)
1677 (arguments
1678 '(#:import-path "github.com/jonboulle/clockwork"))
1679 (home-page "https://github.com/jonboulle/clockwork")
1680 (synopsis "Fake clock library for Go")
1681 (description
1682 "Replace uses of the @code{time} package with the
1683@code{clockwork.Clock} interface instead.")
1684 (license license:asl2.0))))
76a2b278
PAR
1685
1686(define-public go-github-com-spf13-pflag
1687 (let ((commit "4f9190456aed1c2113ca51ea9b89219747458dc1")
1688 (revision "0"))
1689 (package
1690 (name "go-github-com-spf13-pflag")
1691 (version (git-version "0.0.0" revision commit))
1692 (source
1693 (origin
1694 (method git-fetch)
1695 (uri (git-reference
1696 (url "https://github.com/spf13/pflag.git")
1697 (commit commit)))
1698 (file-name (git-file-name name version))
1699 (sha256
1700 (base32
1701 "12vrlcsbwjqlfc49rwky45mbcj74c0kb6z54354pzas6fwzyi1kc"))))
1702 (build-system go-build-system)
1703 (arguments
1704 '(#:import-path "github.com/spf13/pflag"))
1705 (home-page "https://github.com/spf13/pflag")
1706 (synopsis "Replacement for Go's @code{flag} package")
1707 (description
1708 "Pflag is library to replace Go's @code{flag} package. It implements
1709POSIX/GNU-style command-line options with double hyphens. It is is compatible
1710with the
1711@uref{https://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html,
1712GNU extensions} to the POSIX recommendations for command-line options.")
1713 (license license:bsd-3))))
7427b2c6
PAR
1714
1715(define-public go-github-com-sirupsen-logrus
1716 (package
1717 (name "go-github-com-sirupsen-logrus")
1718 (version "1.0.5")
1719 (source
1720 (origin
1721 (method git-fetch)
1722 (uri (git-reference
1723 (url "https://github.com/sirupsen/logrus.git")
1724 (commit (string-append "v" version))))
1725 (sha256
1726 (base32
1727 "0g5z7al7kky11ai2dhac6gkp3b5pxsvx72yj3xg4wg3265gbn7yz"))))
1728 (build-system go-build-system)
1729 (native-inputs
1730 `(("go-golang-org-x-crypto-ssh-terminal"
1731 ,go-golang-org-x-crypto-ssh-terminal)
1732 ("go-github-com-stretchr-testify"
1733 ,go-github-com-stretchr-testify)
1734 ("go-golang-org-x-sys-unix"
1735 ,go-golang-org-x-sys-unix)))
1736 (arguments
1737 '(#:tests? #f ;FIXME missing dependencies
1738 #:import-path "github.com/sirupsen/logrus"))
1739 (home-page "https://github.com/sirupsen/logrus")
1740 (synopsis "Structured, pluggable logging for Go")
1741 (description "Logrus is a structured logger for Go, completely API
1742compatible with the standard library logger.")
1743 (license license:expat)))
5cc2b845
LF
1744
1745(define-public go-github-com-kardianos-osext
1746 (let ((commit "ae77be60afb1dcacde03767a8c37337fad28ac14")
1747 (revision "1"))
1748 (package
1749 (name "go-github-com-kardianos-osext")
1750 (version (git-version "0.0.0" revision commit))
1751 (source (origin
1752 (method git-fetch)
1753 (uri (git-reference
1754 (url "https://github.com/kardianos/osext")
1755 (commit commit)))
1756 (file-name (git-file-name name version))
1757 (sha256
1758 (base32
1759 "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz"))))
1760 (build-system go-build-system)
1761 (arguments
1762 `(#:import-path "github.com/kardianos/osext"
1763 ;; The tests are flaky:
1764 ;; <https://github.com/kardianos/osext/issues/21>
1765 #:tests? #f))
1766 (synopsis "Find the running executable")
1767 (description "Osext provides a method for finding the current executable
1768file that is running. This can be used for upgrading the current executable or
1769finding resources located relative to the executable file.")
1770 (home-page "https://github.com/kardianos/osext")
1771 (license license:bsd-3))))
aed4944d
PAR
1772
1773(define-public go-github-com-ayufan-golang-kardianos-service
1774 (let ((commit "0c8eb6d8fff2e2fb884a7bfd23e183fb63c0eff3")
1775 (revision "0"))
1776 (package
1777 (name "go-github-com-ayufan-golang-kardianos-service")
1778 (version (git-version "0.0.0" revision commit))
1779 (source
1780 (origin
1781 (method git-fetch)
1782 (uri (git-reference
1783 (url
1784 "https://github.com/ayufan/golang-kardianos-service.git")
1785 (commit commit)))
1786 (file-name (git-file-name name version))
1787 (sha256
1788 (base32
1789 "0x0cn7l5gda2khsfypix7adxd5yqighzn04mxjw6hc4ayrh7his5"))))
1790 (build-system go-build-system)
1791 (native-inputs
1792 `(("go-github-com-kardianos-osext"
1793 ,go-github-com-kardianos-osext)))
1794 (arguments
1795 '(#:tests? #f ;FIXME tests fail: Service is not running.
1796 #:import-path "github.com/ayufan/golang-kardianos-service"))
1797 (home-page "https://github.com/ayufan/golang-kardianos-service")
1798 (synopsis "Go interface to a variety of service supervisors")
1799 (description "This package provides @code{service}, a Go module that can
1800run programs as a service using a variety of supervisors, including systemd,
1801SysVinit, and more.")
1802 (license license:zlib))))
e2826118
PAR
1803
1804(define-public go-github-com-docker-distribution
1805 (let ((commit "325b0804fef3a66309d962357aac3c2ce3f4d329")
1806 (revision "0"))
1807 (package
1808 (name "go-github-com-docker-distribution")
1809 (version (git-version "0.0.0" revision commit))
1810 (source
1811 ;; FIXME: This bundles many things, see
1812 ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31881#41>.
1813 (origin
1814 (method git-fetch)
1815 (uri (git-reference
1816 (url "https://github.com/docker/distribution")
1817 (commit commit)))
1818 (file-name (git-file-name name version))
1819 (sha256
1820 (base32
1821 "1yg2zrikn3vkvkx5mn51p6bfjk840qdkn7ahhhvvcsc8mpigrjc6"))))
1822 (build-system go-build-system)
1823 (native-inputs
1824 `(("go-golang-org-x-sys-unix"
1825 ,go-golang-org-x-sys-unix)
1826 ("go-github-com-sirupsen-logrus"
1827 ,go-github-com-sirupsen-logrus)
1828 ("go-golang-org-x-crypto-ssh-terminal"
1829 ,go-golang-org-x-crypto-ssh-terminal)))
1830 (arguments
1831 '(#:import-path "github.com/docker/distribution"
1832 #:phases
1833 (modify-phases %standard-phases
1834 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1835 (lambda* (#:key outputs #:allow-other-keys)
1836 (map (lambda (file)
1837 (make-file-writable file))
1838 (find-files
1839 (assoc-ref outputs "out")
1840 ".*\\.gz$"))
1841 #t)))))
1842 (home-page
1843 "https://github.com/docker/distribution")
a95b6436 1844 (synopsis "This package is a Docker toolset to pack, ship, store, and
e2826118 1845deliver content")
a95b6436
VC
1846 (description "Docker Distribution is a Docker toolset to pack, ship,
1847store, and deliver content. It contains Docker Registry 2.0 and libraries
1848to interact with distribution components.")
e2826118 1849 (license license:asl2.0))))
01bcc94c
PAR
1850
1851(define-public go-github-com-docker-go-connections
1852 (let ((commit "3ede32e2033de7505e6500d6c868c2b9ed9f169d")
1853 (revision "0"))
1854 (package
1855 (name "go-github-com-docker-go-connections")
1856 (version (git-version "0.0.0" revision commit))
1857 (source
1858 (origin
1859 (method git-fetch)
1860 (uri (git-reference
1861 (url "https://github.com/docker/go-connections.git")
1862 (commit commit)))
1863 (file-name (git-file-name name version))
1864 (sha256
1865 (base32
1866 "0v1pkr8apwmhyzbjfriwdrs1ihlk6pw7izm57r24mf9jdmg3fyb0"))))
1867 (build-system go-build-system)
1868 (arguments
1869 '(#:import-path "github.com/docker/go-connections"))
1870 (home-page "https://github.com/docker/go-connections")
1871 (synopsis "Networking library for Go")
1872 (description
f0b32cea 1873 "This package provides a library to work with network connections in
01bcc94c
PAR
1874the Go language. In particular it provides tools to deal with network address
1875translation (NAT), proxies, sockets, and transport layer security (TLS).")
1876 (license license:asl2.0))))
af132bcc
PAR
1877
1878(define-public go-github-com-docker-machine
1879 (let ((commit "7b7a141da84480342357c51838be142bf183b095")
1880 (revision "0"))
1881 (package
1882 (name "go-github-com-docker-machine")
1883 (version (git-version "0.0.0" revision commit))
1884 (source
1885 (origin
1886 (method git-fetch)
1887 (uri (git-reference
1888 (url "https://github.com/docker/machine.git")
1889 (commit commit)))
1890 (file-name (git-file-name name version))
1891 (sha256
1892 (base32
1893 "0bavk0lvs462yh0lnmnxi9psi5qv1x3nvzmd2b0drsahlp1gxi8s"))))
1894 (build-system go-build-system)
1895 (arguments
1896 '(#:import-path "github.com/docker/machine"))
1897 (home-page "https://github.com/docker/machine")
1898 (synopsis "Machine management for a container-centric world")
1899 (description
1900 "@dfn{Machine} lets you create Docker hosts on your computer, on
1901hosting providers, and inside your data center. It creates servers, installs
1902Docker on them, then configures the Docker client to talk to them.")
1903 (license license:asl2.0))))
d850e7a0
PAR
1904
1905(define-public go-github-com-gorhill-cronexpr
1906 (let ((commit "f0984319b44273e83de132089ae42b1810f4933b")
1907 (revision "0"))
1908 (package
1909 (name "go-github-com-gorhill-cronexpr")
1910 (version (git-version "0.0.0" revision commit))
1911 (source
1912 (origin
1913 (method git-fetch)
1914 (uri (git-reference
1915 (url "https://github.com/gorhill/cronexpr.git")
1916 (commit commit)))
1917 (file-name (git-file-name name version))
1918 (sha256
1919 (base32
1920 "0dphhhqy3i7265znv3m8n57l80dmaq6z4hsj5kgd87qd19z8x0l2"))))
1921 (build-system go-build-system)
1922 (arguments
1923 '(#:import-path "github.com/gorhill/cronexpr"))
1924 (home-page "https://github.com/gorhill/cronexpr")
1925 (synopsis "Cron expression parser in the Go language")
1926 (description
1927 "This package provides a cron expression parser in the Go language.
1928Given a cron expression and a time stamp, you can get the next time stamp
1929which satisfies the cron expression.")
1930 (license (list license:gpl3+
1931 license:asl2.0)))))
abd47216
PAR
1932
1933(define-public go-gopkg-in-check-v1
1934 (let ((commit "20d25e2804050c1cd24a7eea1e7a6447dd0e74ec")
1935 (revision "0"))
1936 (package
1937 (name "go-gopkg-in-check-v1")
1938 (version (git-version "0.0.0" revision commit))
1939 (source
1940 (origin
1941 (method git-fetch)
1942 (uri (git-reference
1943 (url "https://github.com/go-check/check")
1944 (commit commit)))
1945 (file-name (git-file-name name version))
1946 (sha256
1947 (base32
1948 "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np"))))
1949 (build-system go-build-system)
1950 (arguments
1951 '(#:import-path "gopkg.in/check.v1"))
1952 (home-page "https://gopkg.in/check.v1")
1953 (synopsis "Test framework for the Go language")
1954 (description
1955 "This package provides a test library for the Go language.")
1956 (license license:asl2.0))))
d2c5e912
PAR
1957
1958(define-public go-gopkg-in-yaml-v2
1959 (let ((commit "14227de293ca979cf205cd88769fe71ed96a97e2")
1960 (revision "0"))
1961 (package
1962 (name "go-gopkg-in-yaml-v2")
1963 (version (git-version "0.0.0" revision commit))
1964 (source
1965 (origin
1966 (method git-fetch)
1967 (uri (git-reference
1968 (url "https://gopkg.in/yaml.v2.git")
1969 (commit commit)))
1970 (file-name (git-file-name name version))
1971 (sha256
1972 (base32
1973 "038hnrjcnjygyi3qidfrkpkakis82qg381sr495d2s40g2dwlzah"))))
1974 (build-system go-build-system)
1975 (arguments
1976 '(#:import-path "gopkg.in/yaml.v2"))
1977 (native-inputs
1978 `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
1979 (home-page "https://gopkg.in/yaml.v2")
1980 (synopsis "YAML reader and writer for the Go language")
1981 (description
1982 "This package provides a Go library for encode and decode YAML
1983values.")
1984 (license license:asl2.0))))
3291be81
PN
1985
1986(define-public go-github-com-mattn-go-isatty
24e3520d
LF
1987 (package
1988 (name "go-github-com-mattn-go-isatty")
36bb1d5a 1989 (version "0.0.7")
24e3520d
LF
1990 (source
1991 (origin
1992 (method git-fetch)
1993 (uri (git-reference
1994 (url "https://github.com/mattn/go-isatty")
1995 (commit (string-append "v" version))))
1996 (file-name (git-file-name name version))
1997 (sha256
1998 (base32
36bb1d5a 1999 "1i77aq4gf9as03m8fpfh8fq49n4z9j7548blrcsidm1xhslzk5xd"))))
24e3520d 2000 (build-system go-build-system)
36bb1d5a
LF
2001 (propagated-inputs
2002 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
24e3520d
LF
2003 (arguments
2004 '(#:import-path "github.com/mattn/go-isatty"))
2005 (home-page "https://github.com/mattn/go-isatty")
2006 (synopsis "Provide @code{isatty} for Golang")
2007 (description "This package provides @code{isatty}, a Go module that can
3291be81
PN
2008tell you whether a file descriptor points to a terminal and the type of the
2009terminal.")
24e3520d 2010 (license license:expat)))
7601b4e4
PN
2011
2012(define-public go-github-com-mattn-go-colorable
2013 (let ((commit "efa589957cd060542a26d2dd7832fd6a6c6c3ade")
2014 (revision "0"))
2015 (package
2016 (name "go-github-com-mattn-go-colorable")
2017 (version (git-version "0.0.0" revision commit))
2018 (source
2019 (origin
2020 (method git-fetch)
2021 (uri (git-reference
2022 (url "https://github.com/mattn/go-colorable")
2023 (commit commit)))
2024 (file-name (git-file-name name version))
2025 (sha256
2026 (base32
2027 "0kshi4hvm0ayrsxqxy0599iv81kryhd2fn9lwjyczpj593cq069r"))))
2028 (build-system go-build-system)
2029 (native-inputs
2030 `(("go-github-com-mattn-go-isatty"
2031 ,go-github-com-mattn-go-isatty)))
2032 (arguments
2033 '(#:import-path "github.com/mattn/go-colorable"))
2034 (home-page "https://github.com/mattn/go-colorable")
2035 (synopsis "Handle ANSI color escapes on Windows")
2036 (description "This package provides @code{colorable}, a module that
2037makes it possible to handle ANSI color escapes on Windows.")
2038 (license license:expat))))
32cb1af6
PN
2039
2040(define-public go-github-com-mgutz-ansi
2041 (let ((commit "9520e82c474b0a04dd04f8a40959027271bab992")
2042 (revision "0"))
2043 (package
2044 (name "go-github-com-mgutz-ansi")
2045 (version (git-version "0.0.0" revision commit))
2046 (source
2047 (origin
2048 (method git-fetch)
2049 (uri (git-reference
2050 (url
2051 "https://github.com/mgutz/ansi")
2052 (commit commit)))
2053 (file-name (git-file-name name version))
2054 (sha256
2055 (base32
2056 "00bz22314j26736w1f0q4jy9d9dfaml17vn890n5zqy3cmvmww1j"))))
2057 (build-system go-build-system)
2058 (native-inputs
2059 `(("go-github-com-mattn-go-isatty"
2060 ,go-github-com-mattn-go-isatty)
2061 ("go-github-com-mattn-go-colorable"
2062 ,go-github-com-mattn-go-colorable)))
2063 (arguments
2064 '(#:import-path "github.com/mgutz/ansi"))
2065 (home-page "https://github.com/mgutz/ansi")
2066 (synopsis "Small, fast library to create ANSI colored strings and codes")
2067 (description "This package provides @code{ansi}, a Go module that can
2068generate ANSI colored strings.")
2069 (license license:expat))))
e25ddef5
PN
2070
2071(define-public go-github-com-aarzilli-golua
2072 (let ((commit "03fc4642d792b1f2bc5e7343b403cf490f8c501d")
2073 (revision "0"))
2074 (package
2075 (name "go-github-com-aarzilli-golua")
2076 (version (git-version "0.0.0" revision commit))
2077 (source
2078 (origin
2079 (method git-fetch)
2080 (uri (git-reference
2081 (url
2082 "https://github.com/aarzilli/golua")
2083 (commit commit)))
2084 (file-name (git-file-name name version))
2085 (sha256
2086 (base32
2087 "1d9hr29i36cza98afj3g6rs3l7xbkprwzz0blcxsr9dd7nak20di"))))
2088 (build-system go-build-system)
5c475841
PN
2089 ;; From go-1.10 onward, "pkg" compiled libraries are not re-used, so
2090 ;; when this package required as input for another one, it will have to
2091 ;; be built again. Thus its CGO requirements must be made available in
2092 ;; the environment, that is, they must be propagated.
2093 (propagated-inputs
e25ddef5
PN
2094 `(("lua" ,lua)))
2095 (arguments
2096 `(#:unpack-path "github.com/aarzilli/golua"
2097 #:import-path "github.com/aarzilli/golua/lua"
2098 #:phases
2099 (modify-phases %standard-phases
5c475841
PN
2100 ;; While it's possible to fix the CGO_LDFLAGS with the "-tags"
2101 ;; command line argument, go-1.10+ does not re-use the produced pkg
2102 ;; for dependencies, which means we would need to propagate the
2103 ;; same "-tags" argument to all golua referrers. A substitution is
2104 ;; more convenient here. We also need to propagate the lua
2105 ;; dependency to make it available to referrers.
2106 (add-after 'unpack 'fix-lua-ldflags
2107 (lambda _
2108 (substitute* "src/github.com/aarzilli/golua/lua/lua.go"
2109 (("#cgo linux,!llua,!luaa LDFLAGS: -llua5.3")
2110 "#cgo linux,!llua,!luaa LDFLAGS: -llua")))))))
e25ddef5
PN
2111 (home-page "https://github.com/aarzilli/golua")
2112 (synopsis "Go Bindings for the Lua C API")
2113 (description "This package provides @code{lua}, a Go module that can
2114run a Lua virtual machine.")
2115 (license license:expat))))
f25e3b39
PN
2116
2117(define-public go-gitlab-com-ambrevar-golua-unicode
2118 (let ((commit "97ce517e7a1fe2407a90c317a9c74b173d396144")
2119 (revision "0"))
2120 (package
2121 (name "go-gitlab-com-ambrevar-golua-unicode")
2122 (version (git-version "0.0.0" revision commit))
2123 (source
2124 (origin
2125 (method git-fetch)
2126 (uri (git-reference
2127 (url
2128 "https://gitlab.com/ambrevar/golua")
2129 (commit commit)))
2130 (file-name (git-file-name name version))
2131 (sha256
2132 (base32
2133 "1izcp7p8nagjwqd13shb0020w7xhppib1a3glw2d1468bflhksnm"))))
2134 (build-system go-build-system)
2135 (native-inputs
2136 `(("lua" ,lua)
2137 ("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
2138 (arguments
2139 `(#:unpack-path "gitlab.com/ambrevar/golua"
2140 #:import-path "gitlab.com/ambrevar/golua/unicode"
2141 #:phases
2142 (modify-phases %standard-phases
2143 (replace 'check
2144 (lambda* (#:key import-path #:allow-other-keys)
2145 (setenv "USER" "homeless-dude")
2146 (invoke "go" "test" import-path))))))
2147 (home-page "https://gitlab.com/ambrevar/golua")
2148 (synopsis "Add Unicode support to Golua")
2149 (description "This extension to Arzilli's Golua adds Unicode support to
2150all functions from the Lua string library. Lua patterns are replaced by Go
2151regexps. This breaks compatibility with Lua, but Unicode support breaks it
2152anyways and Go regexps are more powerful.")
2153 (license license:expat))))
b4d1440f
PN
2154
2155(define-public go-github-com-yookoala-realpath
2156 (let ((commit "d19ef9c409d9817c1e685775e53d361b03eabbc8")
2157 (revision "0"))
2158 (package
2159 (name "go-github-com-yookoala-realpath")
2160 (version (git-version "0.0.0" revision commit))
2161 (source
2162 (origin
2163 (method git-fetch)
2164 (uri (git-reference
2165 (url
2166 "https://github.com/yookoala/realpath")
2167 (commit commit)))
2168 (file-name (git-file-name name version))
2169 (sha256
2170 (base32
2171 "0qvz1dcdldf53rq69fli76z5k1vr7prx9ds1d5rpzgs68kwn40nw"))))
2172 (build-system go-build-system)
2173 (arguments
2174 `(#:import-path "github.com/yookoala/realpath"))
2175 (home-page "https://github.com/yookoala/realpath")
2176 (synopsis "@code{realpath} for Golang")
2177 (description "This package provides @code{realpath}, a Go module that
2178when provided with a valid relative path / alias path, it will return you with
2179a string of its real absolute path in the system.")
0e11f5da 2180 (license license:expat))))
54b83f0e
PN
2181
2182(define-public go-gitlab-com-ambrevar-damerau
2183 (let ((commit "883829e1f25fad54015772ea663e69017cf22352")
2184 (revision "0"))
2185 (package
2186 (name "go-gitlab-com-ambrevar-damerau")
2187 (version (git-version "0.0.0" revision commit))
2188 (source
2189 (origin
2190 (method git-fetch)
2191 (uri (git-reference
2192 (url
2193 "https://gitlab.com/ambrevar/damerau")
2194 (commit commit)))
2195 (file-name (git-file-name name version))
2196 (sha256
2197 (base32
2198 "1b9p8fypc914ij1afn6ir346zsgfqrc5mqc1k3d53n4snypq27qv"))))
2199 (build-system go-build-system)
2200 (arguments
2201 `(#:import-path "gitlab.com/ambrevar/damerau"))
2202 (home-page "https://gitlab.com/ambrevar/damerau")
2203 (synopsis "Damerau-Levenshtein distance for Golang")
2204 (description "This is a spelling corrector implementing the
2205Damerau-Levenshtein distance. Takes a string value input from the user.
2206Looks for an identical word on a list of words, if none is found, look for a
2207similar word.")
2208 (license license:expat))))
c4962817
PN
2209
2210(define-public go-github-com-stevedonovan-luar
2211 (let ((commit "22d247e5366095f491cd83edf779ee99a78f5ead")
2212 (revision "0"))
2213 (package
2214 (name "go-github-com-stevedonovan-luar")
2215 (version (git-version "0.0.0" revision commit))
2216 (source
2217 (origin
2218 (method git-fetch)
2219 (uri (git-reference
2220 (url
2221 "https://github.com/stevedonovan/luar")
2222 (commit commit)))
2223 (file-name (git-file-name name version))
2224 (sha256
2225 (base32
2226 "1acjgw9cz1l0l9mzkyk7irz6cfk31wnxgbwa805fvm1rqcjzin2c"))))
2227 (build-system go-build-system)
2228 (native-inputs
2229 `(("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
2230 (arguments
2231 `(#:tests? #f ; Upstream tests are broken.
2232 #:import-path "github.com/stevedonovan/luar"))
2233 (home-page "https://github.com/stevedonovan/luar")
2234 (synopsis "Lua reflection bindings for Go")
2235 (description "Luar is designed to make using Lua from Go more
2236convenient. Go structs, slices and maps can be automatically converted to Lua
2237tables and vice-versa. The resulting conversion can either be a copy or a
2238proxy. In the latter case, any change made to the result will reflect on the
2239source.
2240
2241Any Go function can be made available to Lua scripts, without having to write
2242C-style wrappers.
2243
2244Luar support cyclic structures (lists, etc.).
2245
2246User-defined types can be made available to Lua as well: their exported
2247methods can be called and usual operations such as indexing or arithmetic can
2248be performed.")
2249 (license license:expat))))
bc3138d2 2250
9630ae34
PN
2251(define-public go-github-com-michiwend-golang-pretty
2252 (let ((commit "8ac61812ea3fa540f3f141a444fcb0dd713cdca4")
2253 (revision "0"))
2254 (package
2255 (name "go-github-com-michiwend-golang-pretty")
2256 (version (git-version "0.0.0" revision commit))
2257 (source
2258 (origin
2259 (method git-fetch)
2260 (uri (git-reference
2261 (url
2262 "https://github.com/michiwend/golang-pretty")
2263 (commit commit)))
2264 (file-name (git-file-name name version))
2265 (sha256
2266 (base32
2267 "0rjfms0csjqi91xnddzx3rcrcaikc7xc027617px3kdwdap80ir4"))))
2268 (build-system go-build-system)
2269 (native-inputs
2270 `(("go-github-com-kr-text" ,go-github-com-kr-text)))
2271 (arguments
2272 `(#:tests? #f ; Upstream tests seem to be broken.
2273 #:import-path "github.com/michiwend/golang-pretty"))
2274 (home-page "https://github.com/michiwend/golang-pretty")
2275 (synopsis "Pretty printing for Go values")
2276 (description "Package @code{pretty} provides pretty-printing for Go
2277values. This is useful during debugging, to avoid wrapping long output lines
2278in the terminal.
2279
2280It provides a function, @code{Formatter}, that can be used with any function
2281that accepts a format string. It also provides convenience wrappers for
2282functions in packages @code{fmt} and @code{log}.")
2283 (license license:expat))))
62879d22
PN
2284
2285(define-public go-github-com-michiwend-gomusicbrainz
2286 (let ((commit "0cdeb13f9b24d2c714feb7e3c63d595cf7121d7d")
2287 (revision "0"))
2288 (package
2289 (name "go-github-com-michiwend-gomusicbrainz")
2290 (version (git-version "0.0.0" revision commit))
2291 (source
2292 (origin
2293 (method git-fetch)
2294 (uri (git-reference
2295 (url
2296 "https://github.com/michiwend/gomusicbrainz")
2297 (commit commit)))
2298 (file-name (git-file-name name version))
2299 (sha256
2300 (base32
2301 "1li9daw0kghb80rdmxbh7g72qhxcvx3rvhwq5gs0jrr9hb8pjvcn"))))
2302 (build-system go-build-system)
2303 (native-inputs
2304 `(("go-github-com-michiwend-golang-pretty" ,go-github-com-michiwend-golang-pretty)
2305 ("go-github-com-kr-text" ,go-github-com-kr-text)))
2306 (arguments
2307 `(#:import-path "github.com/michiwend/gomusicbrainz"))
2308 (home-page "https://github.com/michiwend/gomusicbrainz")
2309 (synopsis "MusicBrainz WS2 client library for Golang")
2310 (description "Currently GoMusicBrainz provides methods to perform search
2311and lookup requests. Browse requests are not supported yet.")
2312 (license license:expat))))
53182924
PN
2313
2314(define-public go-github-com-wtolson-go-taglib
2315 (let ((commit "6e68349ff94ecea412de7e748cb5eaa26f472777")
2316 (revision "0"))
2317 (package
2318 (name "go-github-com-wtolson-go-taglib")
2319 (version (git-version "0.0.0" revision commit))
2320 (source
2321 (origin
2322 (method git-fetch)
2323 (uri (git-reference
2324 (url
2325 "https://github.com/wtolson/go-taglib")
2326 (commit commit)))
2327 (file-name (git-file-name name version))
2328 (sha256
2329 (base32
2330 "1cpjqnrviwflz150g78iir5ndrp3hh7a93zbp4dwbg6sb2q141p2"))))
2331 (build-system go-build-system)
46a4ae22
PN
2332 ;; From go-1.10 onward, "pkg" compiled libraries are not re-used, so
2333 ;; when this package required as input for another one, it will have to
2334 ;; be built again. Thus its CGO requirements must be made available in
2335 ;; the environment, that is, they must be propagated.
2336 (propagated-inputs
53182924
PN
2337 `(("pkg-config" ,pkg-config)
2338 ("taglib" ,taglib)))
2339 (arguments
46a4ae22
PN
2340 `(#:import-path "github.com/wtolson/go-taglib"
2341 ;; Tests don't pass "vet" on go-1.11. See
2342 ;; https://github.com/wtolson/go-taglib/issues/12.
2343 #:phases
2344 (modify-phases %standard-phases
2345 (replace 'check
2346 (lambda* (#:key import-path #:allow-other-keys)
2347 (invoke "go" "test"
2348 "-vet=off"
2349 import-path))))))
53182924
PN
2350 (home-page "https://github.com/wtolson/go-taglib")
2351 (synopsis "Go wrapper for taglib")
2352 (description "Go wrapper for taglib")
2353 (license license:unlicense))))
5787e152 2354
5787e152 2355(define-public go-github-com-gogo-protobuf
2f9bbd8e
LF
2356 (package
2357 (name "go-github-com-gogo-protobuf")
2358 (version "1.2.1")
2359 (source (origin
2360 (method git-fetch)
2361 (uri (git-reference
2362 (url "https://github.com/gogo/protobuf")
2363 (commit (string-append "v" version))))
2364 (file-name (git-file-name name version))
2365 (sha256
2366 (base32
2367 "06yqa6h0kw3gr5pc3qmas7f7435a96zf7iw7p0l00r2hqf6fqq6m"))))
2368 (build-system go-build-system)
2369 (arguments
2370 `(#:import-path "github.com/gogo/protobuf/proto"
2371 #:unpack-path "github.com/gogo/protobuf"))
2372 (synopsis "Protocol Buffers for Go with Gadgets")
2373 (description "Gogoprotobuf is a fork of golang/protobuf with extra code
5787e152
PN
2374generation features. This code generation is used to achieve:
2375@itemize
2376@item fast marshalling and unmarshalling
2377@item more canonical Go structures
2378@item goprotobuf compatibility
2379@item less typing by optionally generating extra helper code
2380@item peace of mind by optionally generating test and benchmark code
2381@item other serialization formats
2382@end itemize")
2f9bbd8e
LF
2383 (home-page "https://github.com/gogo/protobuf")
2384 (license license:bsd-3)))
5787e152
PN
2385
2386(define-public go-github-com-gogo-protobuf-protoc-gen-gogo
2f9bbd8e
LF
2387 (package
2388 (name "go-github-com-gogo-protobuf-protoc-gen-gogo")
2389 (version "1.2.1")
2390 (source (origin
2391 (method git-fetch)
2392 (uri (git-reference
2393 (url "https://github.com/gogo/protobuf")
2394 (commit (string-append "v" version))))
2395 (file-name (git-file-name name version))
2396 (sha256
2397 (base32
2398 "06yqa6h0kw3gr5pc3qmas7f7435a96zf7iw7p0l00r2hqf6fqq6m"))))
2399 (build-system go-build-system)
2400 (arguments
2401 `(#:import-path "github.com/gogo/protobuf/protoc-gen-gogo"
2402 #:unpack-path "github.com/gogo/protobuf"
2403 #:tests? #f)) ; Requires the unpackaged 'protoc-min-version'
2404 (synopsis "Protocol Buffers for Go with Gadgets")
2405 (description "Gogoprotobuf is a fork of golang/protobuf with extra code
5787e152
PN
2406generation features. This code generation is used to achieve:
2407@itemize
2408@item fast marshalling and unmarshalling
2409@item more canonical Go structures
2410@item goprotobuf compatibility
2411@item less typing by optionally generating extra helper code
2412@item peace of mind by optionally generating test and benchmark code
2413@item other serialization formats
2414@end itemize")
2f9bbd8e
LF
2415 (home-page "https://github.com/gogo/protobuf")
2416 (license license:bsd-3)))
5787e152 2417
e3f14f47
LF
2418(define-public go-github-com-gogo-protobuf-gogoproto
2419 (package
2420 (name "go-github-com-gogo-protobuf-gogoproto")
2421 (version "1.2.1")
2422 (source
2423 (origin
2424 (method git-fetch)
2425 (uri (git-reference
2426 (url "https://github.com/gogo/protobuf.git")
2427 (commit (string-append "v" version))))
2428 (file-name (git-file-name name version))
2429 (sha256
2430 (base32
2431 "06yqa6h0kw3gr5pc3qmas7f7435a96zf7iw7p0l00r2hqf6fqq6m"))))
2432 (build-system go-build-system)
2433 (arguments
2434 '(#:unpack-path "github.com/gogo/protobuf"
2435 #:import-path "github.com/gogo/protobuf/gogoproto"))
2436 (home-page "https://github.com/gogo/protobuf")
2437 (synopsis "Extensions to protocol buffers")
2438 (description "This package provides extensions to the Gogo protocol buffers
2439implementation.")
2440 (license license:bsd-3)))
2441
5787e152 2442(define-public go-github-com-gogo-protobuf-proto
2f9bbd8e
LF
2443 (package
2444 (name "go-github-com-gogo-protobuf-proto")
2445 (version "1.2.1")
2446 (source
2447 (origin
2448 (method git-fetch)
2449 (uri (git-reference
2450 (url "https://github.com/gogo/protobuf.git")
2451 (commit (string-append "v" version))))
2452 (file-name (git-file-name name version))
2453 (sha256
2454 (base32
2455 "06yqa6h0kw3gr5pc3qmas7f7435a96zf7iw7p0l00r2hqf6fqq6m"))))
2456 (build-system go-build-system)
2457 (arguments
2458 '(#:unpack-path "github.com/gogo/protobuf"
2459 #:import-path "github.com/gogo/protobuf/proto"))
2460 (home-page "https://github.com/gogo/protobuf")
2461 (synopsis "Protocol buffers component")
2462 (description "This is a component of the Gogo protocol buffers
2463implementation.")
2464 (license license:bsd-3)))
386bd7ba
PN
2465
2466(define-public go-github-com-libp2p-go-flow-metrics
2467 (let ((commit "7e5a55af485341567f98d6847a373eb5ddcdcd43")
2468 (revision "0"))
2469 (package
2470 (name "go-github-com-libp2p-go-flow-metrics")
2471 (version (git-version "0.2.0" revision commit))
2472 (source
2473 (origin
2474 (method git-fetch)
2475 (uri (git-reference
2476 (url "https://github.com/libp2p/go-flow-metrics.git")
2477 (commit commit)))
2478 (file-name (git-file-name name version))
2479 (sha256
2480 (base32
2481 "1p87iyk6q6f3g3xkncssx400qlld8f2z93qiz8m1f97grfyhjif1"))))
2482 (build-system go-build-system)
2483 (arguments
2484 `(#:import-path "github.com/libp2p/go-flow-metrics"
2485 ;; TODO: Tests hang.
2486 #:tests? #f))
2487 (home-page
2488 "https://github.com/libp2p/go-flow-metrics")
2489 (synopsis "Simple library for tracking flow metrics")
2490 (description "A simple alternative to rcrowley's @command{go-metrics}
2491that's a lot faster (and only does simple bandwidth metrics).")
2492 (license license:expat))))
6a95e3a3
PN
2493
2494(define-public go-github-com-davecgh-go-spew
2495 (let ((commit "d8f796af33cc11cb798c1aaeb27a4ebc5099927d")
2496 (revision "0"))
2497 (package
2498 (name "go-github-com-davecgh-go-spew")
2499 (version (git-version "0.0.0" revision commit))
2500 (source
2501 (origin
2502 (method git-fetch)
2503 (uri (git-reference
2504 (url "https://github.com/davecgh/go-spew.git")
2505 (commit commit)))
2506 (file-name (git-file-name name version))
2507 (sha256
2508 (base32
2509 "19z27f306fpsrjdvkzd61w1bdazcdbczjyjck177g33iklinhpvx"))))
2510 (build-system go-build-system)
2511 (arguments
2512 '(#:unpack-path "github.com/davecgh/go-spew"
2513 #:import-path "github.com/davecgh/go-spew/spew"))
2514 (home-page "https://github.com/davecgh/go-spew")
2515 (synopsis "Deep pretty printer for Go data structures to aid in debugging")
2516 (description "Package @command{spew} implements a deep pretty printer
2517for Go data structures to aid in debugging.
2518
2519A quick overview of the additional features spew provides over the built-in printing facilities for Go data types are as follows:
2520
2521@itemize
2522@item Pointers are dereferenced and followed.
2523@item Circular data structures are detected and handled properly.
2524@item Custom Stringer/error interfaces are optionally invoked, including on
2525unexported types.
2526@item Custom types which only implement the Stringer/error interfaces via a
2527pointer receiver are optionally invoked when passing non-pointer variables.
2528@item Byte arrays and slices are dumped like the hexdump -C command which
2529includes offsets, byte values in hex, and ASCII output (only when using Dump
2530style).
2531@end itemize\n")
2532 (license license:isc))))
171c3259
PN
2533
2534(define-public go-github-com-btcsuite-btclog
2535 (let ((commit "84c8d2346e9fc8c7b947e243b9c24e6df9fd206a")
2536 (revision "0"))
2537 (package
2538 (name "go-github-com-btcsuite-btclog")
2539 (version (git-version "0.0.3" revision commit))
2540 (source
2541 (origin
2542 (method git-fetch)
2543 (uri (git-reference
2544 (url "https://github.com/btcsuite/btclog.git")
2545 (commit commit)))
2546 (file-name (git-file-name name version))
2547 (sha256
2548 (base32
2549 "02dl46wcnfpg9sqvg0ipipkpnd7lrf4fnvb9zy56jqa7mfcwc7wk"))))
2550 (build-system go-build-system)
2551 (arguments
2552 '(#:import-path "github.com/btcsuite/btclog"))
2553 (home-page "https://github.com/btcsuite/btclog")
2554 (synopsis "Subsystem aware logger for Go")
2555 (description "Package @command{btclog} defines a logger interface and
2556provides a default implementation of a subsystem-aware leveled logger
2557implementing the same interface.")
2558 (license license:isc))))
d5599afa
PN
2559
2560(define-public go-github-com-btcsuite-btcd-btcec
2561 (let ((commit "67e573d211ace594f1366b4ce9d39726c4b19bd0")
2562 (revision "0"))
2563 (package
2564 (name "go-github-com-btcsuite-btcd-btcec")
2565 (version (git-version "0.12.0-beta" revision commit))
2566 (source
2567 (origin
2568 (method git-fetch)
2569 (uri (git-reference
2570 (url "https://github.com/btcsuite/btcd.git")
2571 (commit commit)))
2572 (file-name (git-file-name name version))
2573 (sha256
2574 (base32
2575 "04s92gsy71w1jirlr5lkk9y6r5cparbas7nmf6ywbp7kq7fn8ajn"))))
2576 (build-system go-build-system)
2577 (arguments
2578 '(#:unpack-path "github.com/btcsuite/btcd"
2579 #:import-path "github.com/btcsuite/btcd/btcec"))
2580 (native-inputs
2581 `(("go-github-com-davecgh-go-spew" ,go-github-com-davecgh-go-spew)))
2582 (home-page "https://github.com/btcsuite/btcd")
2583 (synopsis "Elliptic curve cryptography to work with Bitcoin")
2584 (description "Package @command{btcec} implements elliptic curve
2585cryptography needed for working with Bitcoin (secp256k1 only for now). It is
2586designed so that it may be used with the standard crypto/ecdsa packages
2587provided with Go. A comprehensive suite of test is provided to ensure proper
2588functionality. Package @command{btcec} was originally based on work from
2589ThePiachu which is licensed under the same terms as Go, but it has
2ec41781 2590significantly diverged since then. The @command{btcsuite} developers original
d5599afa
PN
2591is licensed under the liberal ISC license.
2592
2593Although this package was primarily written for btcd, it has intentionally
2594been designed so it can be used as a standalone package for any projects
2595needing to use secp256k1 elliptic curve cryptography.")
2596 (license license:isc))))
ff2d11c3
PN
2597
2598(define-public go-github-com-minio-sha256-simd
0c28ee8c
LF
2599 (let ((commit "cc1980cb03383b1d46f518232672584432d7532d")
2600 (revision "3"))
ff2d11c3
PN
2601 (package
2602 (name "go-github-com-minio-sha256-simd")
2603 (version (git-version "0.0.0" revision commit))
2604 (source
2605 (origin
2606 (method git-fetch)
2607 (uri (git-reference
2608 (url "https://github.com/minio/sha256-simd.git")
2609 (commit commit)))
2610 (file-name (git-file-name name version))
2611 (sha256
2612 (base32
0c28ee8c 2613 "04fp98nal0wsb26zwhw82spn5camxslc68g3xp8g4af9w6k9g31j"))))
ff2d11c3
PN
2614 (build-system go-build-system)
2615 (arguments
2616 '(#:import-path "github.com/minio/sha256-simd"))
2617 (home-page "https://github.com/minio/sha256-simd")
2618 (synopsis "Accelerate SHA256 computations in pure Go")
2619 (description "Accelerate SHA256 computations in pure Go using AVX512 and
2620AVX2 for Intel and ARM64 for ARM. On AVX512 it provides an up to 8x
2621improvement (over 3 GB/s per core) in comparison to AVX2.
2622
2623This package is designed as a replacement for @command{crypto/sha256}. For
2624Intel CPUs it has two flavors for AVX512 and AVX2 (AVX/SSE are also
2625supported). For ARM CPUs with the Cryptography Extensions, advantage is taken
2626of the SHA2 instructions resulting in a massive performance improvement.
2627
2628This package uses Golang assembly. The AVX512 version is based on the Intel's
2629\"multi-buffer crypto library for IPSec\" whereas the other Intel
2630implementations are described in \"Fast SHA-256 Implementations on Intel
2631Architecture Processors\" by J. Guilford et al.")
2632 (license license:asl2.0))))
71f36804
PN
2633
2634(define-public go-github-com-libp2p-go-libp2p-crypto
2635 (let ((commit "7240b40a3ddc47c4d17c15baabcbe45e5219171b")
2636 (revision "0"))
2637 (package
2638 (name "go-github-com-libp2p-go-libp2p-crypto")
2639 (version (git-version "2.0.1" revision commit))
2640 (source
2641 (origin
2642 (method git-fetch)
2643 (uri (git-reference
2644 (url "https://github.com/libp2p/go-libp2p-crypto.git")
2645 (commit commit)))
2646 (file-name (git-file-name name version))
2647 (sha256
2648 (base32
2649 "0qwpy57qv5143l9dlfwfvpqsxdd2i4zwnawx1w4pmgxxim3nw1wb"))))
2650 (build-system go-build-system)
2651 (arguments
2652 '(#:import-path "github.com/libp2p/go-libp2p-crypto"))
2653 (native-inputs
2654 `(("go-golang-org-x-crypto-ed25519" ,go-golang-org-x-crypto-ed25519)
2655 ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
2656 ("go-github-com-gogo-protobuf-proto" ,go-github-com-gogo-protobuf-proto)
2657 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)))
2658 (home-page
2659 "https://github.com/libp2p/go-libp2p-crypto")
2660 (synopsis "Various cryptographic utilities used by IPFS")
2661 (description "Various cryptographic utilities used by IPFS")
2662 (license license:expat))))
15272a50
PN
2663
2664(define-public go-github-com-mr-tron-base58
2665 (let ((commit "d724c80ecac7b49e4e562d58b2b4f4ee4ed8c312")
2666 (revision "0"))
2667 (package
2668 (name "go-github-com-mr-tron-base58")
2669 (version (git-version "1.1.0" revision commit))
2670 (source
2671 (origin
2672 (method git-fetch)
2673 (uri (git-reference
2674 (url "https://github.com/mr-tron/base58.git")
2675 (commit commit)))
2676 (file-name (git-file-name name version))
2677 (sha256
2678 (base32
2679 "12qhgnn9wf3c1ang16r4i778whk4wsrj7d90h2xgmz4fi1469rqa"))))
2680 (build-system go-build-system)
2681 (arguments
2682 `(#:unpack-path "github.com/mr-tron/base58"
2683 #:import-path "github.com/mr-tron/base58/base58"))
2684 (home-page "https://github.com/mr-tron/base58")
2685 (synopsis "Fast implementation of base58 encoding on Golang")
2686 (description "Fast implementation of base58 encoding on Golang. A
2687trivial @command{big.Int} encoding benchmark results in 6 times faster
2688encoding and 8 times faster decoding.")
2689 (license license:expat))))
27d59d8b
PN
2690
2691(define-public go-github-com-gxed-hashland-keccakpg
2692 (let ((commit "d9f6b97f8db22dd1e090fd0bbbe98f09cc7dd0a8")
2693 (revision "0"))
2694 (package
2695 (name "go-github-com-gxed-hashland-keccakpg")
2696 (version (git-version "0.0.0" revision commit))
2697 (source
2698 (origin
2699 (method git-fetch)
2700 (uri (git-reference
2701 (url "https://github.com/gxed/hashland.git")
2702 (commit commit)))
2703 (file-name (git-file-name name version))
2704 (sha256
2705 (base32
2706 "1q23y4lacsz46k9gmgfw4iwwydw36j2601rbidmmswl94grpc386"))))
2707 (build-system go-build-system)
2708 (arguments
2709 '(#:unpack-path "github.com/gxed/hashland"
2710 #:import-path "github.com/gxed/hashland/keccakpg"))
2711 (home-page "https://github.com/gxed/hashland")
2712 (synopsis "Implements the Keccak (SHA-3) hash algorithm in Go")
2713 (description "Package @command{keccak} implements the Keccak (SHA-3)
2714hash algorithm. See http://keccak.noekeon.org.")
2715 (license license:expat))))
90f2a848
PN
2716
2717(define-public go-github-com-minio-blake2b-simd
2718 (let ((commit "3f5f724cb5b182a5c278d6d3d55b40e7f8c2efb4")
2719 (revision "0"))
2720 (package
2721 (name "go-github-com-minio-blake2b-simd")
2722 (version (git-version "0.0.0" revision commit))
2723 (source
2724 (origin
2725 (method git-fetch)
2726 (uri (git-reference
2727 (url "https://github.com/minio/blake2b-simd.git")
2728 (commit commit)))
2729 (file-name (git-file-name name version))
2730 (sha256
2731 (base32
2732 "0b6jbnj62c0gmmfd4zdmh8xbg01p80f13yygir9xprqkzk6fikmd"))))
2733 (build-system go-build-system)
2734 (arguments
2735 '(#:import-path "github.com/minio/blake2b-simd"))
2736 (home-page "https://github.com/minio/blake2b-simd")
2737 (synopsis "Fast hashing in pure Go of BLAKE2b with SIMD instructions")
2738 (description "This package was initially based on the pure go BLAKE2b
2739implementation of Dmitry Chestnykh and merged with the (cgo dependent) AVX
2740optimized BLAKE2 implementation (which in turn is based on the official
2741implementation. It does so by using Go's Assembler for amd64 architectures
2742with a golang only fallback for other architectures.
2743
2744In addition to AVX there is also support for AVX2 as well as SSE. Best
2745performance is obtained with AVX2 which gives roughly a 4X performance
2746increase approaching hashing speeds of 1GB/sec on a single core.")
2747 (license license:asl2.0))))
9a7f1575
PN
2748
2749(define-public go-github-com-spaolacci-murmur3
2750 (let ((commit "f09979ecbc725b9e6d41a297405f65e7e8804acc")
2751 (revision "0"))
2752 (package
2753 (name "go-github-com-spaolacci-murmur3")
2754 (version (git-version "1.1" revision commit))
2755 (source
2756 (origin
2757 (method git-fetch)
2758 (uri (git-reference
2759 (url "https://github.com/spaolacci/murmur3.git")
2760 (commit commit)))
2761 (file-name (git-file-name name version))
2762 (sha256
2763 (base32
2764 "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25"))))
2765 (build-system go-build-system)
2766 (arguments
2767 '(#:import-path "github.com/spaolacci/murmur3"))
2768 (home-page "https://github.com/spaolacci/murmur3")
2769 (synopsis "Native MurmurHash3 Go implementation")
2770 (description "Native Go implementation of Austin Appleby's third
2771MurmurHash revision (aka MurmurHash3).
2772
2773Reference algorithm has been slightly hacked as to support the streaming mode
2774required by Go's standard Hash interface.")
2775 (license license:bsd-3))))
2e42e587
PN
2776
2777(define-public go-github-com-multiformats-go-multihash
2778 (let ((commit "97cdb562a04c6ef66d8ed40cd62f8fbcddd396d6")
2779 (revision "0"))
2780 (package
2781 (name "go-github-com-multiformats-go-multihash")
2782 (version (git-version "1.0.8" revision commit))
2783 (source
2784 (origin
2785 (method git-fetch)
2786 (uri (git-reference
2787 (url "https://github.com/multiformats/go-multihash.git")
2788 (commit commit)))
2789 (file-name (git-file-name name version))
2790 (sha256
2791 (base32
2792 "02wd9akrwy4y5m0nig9m24p14bjjgb4n1djydrq8cm4yhbvjrrk0"))))
2793 (build-system go-build-system)
2794 (arguments
2795 '(#:import-path "github.com/multiformats/go-multihash"))
2796 (native-inputs
2797 `(("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2798 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2799 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2800 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2801 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
9c359ff4
LF
2802 ("go-golang-org-x-crypto-blake2s" ,go-golang-org-x-crypto-blake2s)
2803 ("go-golang-org-x-crypto-sha3" ,go-golang-org-x-crypto-sha3)))
2e42e587
PN
2804 (home-page "https://github.com/multiformats/go-multihash")
2805 (synopsis "Multihash implementation in Go")
2806 (description "Multihash implementation in Go.")
2807 (license license:expat))))
1db1e3c7
PN
2808
2809(define-public go-github-com-libp2p-go-libp2p-peer
2810 (let ((commit "993d742bc29dcf4894b7730ba610fd78900be76c")
2811 (revision "0"))
2812 (package
2813 (name "go-github-com-libp2p-go-libp2p-peer")
2814 (version (git-version "2.3.8" revision commit))
2815 (source
2816 (origin
2817 (method git-fetch)
2818 (uri (git-reference
2819 (url "https://github.com/libp2p/go-libp2p-peer.git")
2820 (commit commit)))
2821 (file-name (git-file-name name version))
2822 (sha256
2823 (base32
2824 "1h96qjdi0i1wbr0jliap2903mycphas3ny0zdrm77yca9plcnphh"))))
2825 (build-system go-build-system)
2826 (arguments
2827 '(#:import-path "github.com/libp2p/go-libp2p-peer"))
2828 (native-inputs
2829 `(("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
2830 ("go-github-com-gogo-protobuf-proto" ,go-github-com-gogo-protobuf-proto)
2831 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2832 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2833 ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
2834 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2835 ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
2836 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2837 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
9c359ff4
LF
2838 ("go-golang-org-x-crypto-blake2s" ,go-golang-org-x-crypto-blake2s)
2839 ("go-golang-org-x-crypto-ed25519" ,go-golang-org-x-crypto-ed25519)
2840 ("go-golang-org-x-crypto-sha3" ,go-golang-org-x-crypto-sha3)))
1db1e3c7
PN
2841 (home-page "https://github.com/libp2p/go-libp2p-peer")
2842 (synopsis "PKI based identities for use in go-libp2p")
2843 (description "PKI based identities for use in @command{go-libp2p}.")
2844 (license license:expat))))
43a5c177
PN
2845
2846(define-public go-github-com-libp2p-go-libp2p-protocol
2847 (let ((commit "b29f3d97e3a2fb8b29c5d04290e6cb5c5018004b")
2848 (revision "0"))
2849 (package
2850 (name "go-github-com-libp2p-go-libp2p-protocol")
2851 (version (git-version "1.0.0" revision commit))
2852 (source
2853 (origin
2854 (method git-fetch)
2855 (uri (git-reference
2856 (url "https://github.com/libp2p/go-libp2p-protocol.git")
2857 (commit commit)))
2858 (file-name (git-file-name name version))
2859 (sha256
2860 (base32
2861 "1xgjfnx9zcqglg9li29wdqywsp8hz22wx6phns9zscni2jsfidld"))))
2862 (build-system go-build-system)
2863 (arguments
2864 '(#:import-path
2865 "github.com/libp2p/go-libp2p-protocol"))
2866 (home-page "https://github.com/libp2p/go-libp2p-protocol")
2867 (synopsis "Type for protocol strings in Golang")
2868 (description "Just a type for protocol strings. Nothing more.")
2869 (license license:expat))))
77d8a917
PN
2870
2871(define-public go-github-com-libp2p-go-libp2p-metrics
2872 (let ((commit "a10ff6e75dae3c868023867e8caa534a04bdc624")
2873 (revision "0"))
2874 (package
2875 (name "go-github-com-libp2p-go-libp2p-metrics")
2876 (version (git-version "2.1.6" revision commit))
2877 (source
2878 (origin
2879 (method git-fetch)
2880 (uri (git-reference
2881 (url "https://github.com/libp2p/go-libp2p-metrics.git")
2882 (commit commit)))
2883 (file-name (git-file-name name version))
2884 (sha256
2885 (base32
2886 "05wy0cq4h6yg9bzgapcvm2criwriicbswx80ma82gyn4a9fdrk8m"))))
2887 (build-system go-build-system)
2888 (arguments
2889 '(#:import-path "github.com/libp2p/go-libp2p-metrics"))
2890 (native-inputs
2891 `(("go-github-com-libp2p-go-flow-metrics" ,go-github-com-libp2p-go-flow-metrics)
2892 ("go-github-com-libp2p-go-libp2p-peer" ,go-github-com-libp2p-go-libp2p-peer)
2893 ("go-github-com-libp2p-go-libp2p-protocol" ,go-github-com-libp2p-go-libp2p-protocol)
2894 ("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
2895 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2896 ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
2897 ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
2898 ("go-github-com-gogo-protobuf-proto" ,go-github-com-gogo-protobuf-proto)
2899 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2900 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2901 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2902 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
9c359ff4
LF
2903 ("go-golang-org-x-crypto-sha3" ,go-golang-org-x-crypto-sha3)
2904 ("go-golang-org-x-crypto-ed25519" ,go-golang-org-x-crypto-ed25519)
2905 ("go-golang-org-x-crypto-blake2s" ,go-golang-org-x-crypto-blake2s)))
77d8a917
PN
2906 (home-page "https://github.com/libp2p/go-libp2p-metrics")
2907 (synopsis "Connection wrapper for go-libp2p that provides bandwidth metrics")
2908 (description "A connection wrapper for @command{go-libp2p} that provides bandwidth
2909statistics for wrapped connections.")
2910 (license license:expat))))
8cb91281
PN
2911
2912(define-public go-github-com-mitchellh-go-homedir
2913 (let ((commit "ae18d6b8b3205b561c79e8e5f69bff09736185f4")
2914 (revision "0"))
2915 (package
2916 (name "go-github-com-mitchellh-go-homedir")
2917 (version (git-version "1.0.0" revision commit))
2918 (source
2919 (origin
2920 (method git-fetch)
2921 (uri (git-reference
2922 (url "https://github.com/mitchellh/go-homedir.git")
2923 (commit commit)))
2924 (file-name (git-file-name name version))
2925 (sha256
2926 (base32
2927 "0f0z0aa4wivk4z1y503dmnw0k0g0g403dly8i4q263gfshs82sbq"))))
2928 (build-system go-build-system)
2929 (arguments
2930 (quote (#:import-path "github.com/mitchellh/go-homedir"
2931 ;; TODO: Tests fail because it tries to access home.
2932 #:tests? #f)))
2933 (home-page "https://github.com/mitchellh/go-homedir")
2934 (synopsis "Go library for detecting and expanding the user's home directory without cgo")
2935 (description "This is a Go library for detecting the user's home
2936directory without the use of @command{cgo}, so the library can be used in
2937cross-compilation environments.
2938
2939Usage is simple, just call homedir.Dir() to get the home directory for a user,
2940and homedir.Expand() to expand the @command{~} in a path to the home
2941directory.
2942
2943Why not just use @command{os/user}? The built-in @command{os/user} package
2944requires cgo on Darwin systems. This means that any Go code that uses that
2945package cannot cross compile. But 99% of the time the use for
2946@command{os/user} is just to retrieve the home directory, which we can do for
2947the current user without cgo. This library does that, enabling
2948cross-compilation.")
2949 (license license:expat))))
e53121b3
PN
2950
2951(define-public go-github-com-multiformats-go-multiaddr
2952 (let ((commit "fe1c46f8be5af4aff4db286e08839295bd922efb")
2953 (revision "0"))
2954 (package
2955 (name "go-github-com-multiformats-go-multiaddr")
2956 (version (git-version "1.3.0" revision commit))
2957 (source
2958 (origin
2959 (method git-fetch)
2960 (uri (git-reference
2961 (url "https://github.com/multiformats/go-multiaddr.git")
2962 (commit commit)))
2963 (file-name (git-file-name name version))
2964 (sha256
2965 (base32
2966 "0p5f8h098a4yjjmzsgqs7vhx1iqifb8izwg3559cr4h7clkpzznh"))))
2967 (build-system go-build-system)
2968 (arguments
2969 '(#:import-path
2970 "github.com/multiformats/go-multiaddr"))
2971 (native-inputs
2972 `(("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
2973 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2974 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2975 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2976 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2977 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
9c359ff4
LF
2978 ("go-golang-org-x-crypto-sha3" ,go-golang-org-x-crypto-sha3)
2979 ("go-golang-org-x-crypto-blake2s" ,go-golang-org-x-crypto-blake2s)))
e53121b3
PN
2980 (home-page "https://github.com/multiformats/go-multiaddr")
2981 (synopsis "Composable and future-proof network addresses")
2982 (description "Multiaddr is a standard way to represent addresses that
2983does the following:
2984
2985@itemize
2986@item Support any standard network protocols.
2987@item Self-describe (include protocols).
2988@item Have a binary packed format.
2989@item Have a nice string representation.
2990@item Encapsulate well.
2991@end itemize\n")
2992 (license license:expat))))
66fb6e29
PN
2993
2994(define-public go-github-com-multiformats-go-multiaddr-net
2995 (let ((commit "1cb9a0e8a6de3c8a10f6cee60d01d793603c4f7e")
2996 (revision "0"))
2997 (package
2998 (name "go-github-com-multiformats-go-multiaddr-net")
2999 (version (git-version "1.6.3" revision commit))
3000 (source
3001 (origin
3002 (method git-fetch)
3003 (uri (git-reference
3004 (url "https://github.com/multiformats/go-multiaddr-net.git")
3005 (commit commit)))
3006 (file-name (git-file-name name version))
3007 (sha256
3008 (base32
3009 "1ypgi47xdz3bh8lh7f8cmk7w3ql9g4izx5l3kzdg9gda1xn5zxq3"))))
3010 (build-system go-build-system)
3011 (arguments
3012 (quote (#:import-path "github.com/multiformats/go-multiaddr-net"
3013 ;; TODO: Tests fail because they try to access the network.
3014 #:tests? #f)))
3015 (native-inputs
3016 `(("go-github-com-multiformats-go-multiaddr" ,go-github-com-multiformats-go-multiaddr)
3017 ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
3018 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
3019 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
3020 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
3021 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
3022 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
9c359ff4
LF
3023 ("go-golang-org-x-crypto-sha3" ,go-golang-org-x-crypto-sha3)
3024 ("go-golang-org-x-crypto-blake2s" ,go-golang-org-x-crypto-blake2s)))
66fb6e29
PN
3025 (home-page "https://github.com/multiformats/go-multiaddr-net")
3026 (synopsis "Multiaddress net tools")
3027 (description "This package provides Multiaddr specific versions of
3028common functions in stdlib's @command{net} package. This means wrappers of
3029standard net symbols like @command{net.Dial} and @command{net.Listen}, as well
3030as conversion to and from @command{net.Addr}.")
3031 (license license:expat))))
38d346dc
PN
3032
3033(define-public go-github-com-whyrusleeping-tar-utils
3034 (let ((commit "8c6c8ba81d5c71fd69c0f48dbde4b2fb422b6dfc")
3035 (revision "0"))
3036 (package
3037 (name "go-github-com-whyrusleeping-tar-utils")
3038 (version (git-version "0.0.0" revision commit))
3039 (source
3040 (origin
3041 (method git-fetch)
3042 (uri (git-reference
3043 (url "https://github.com/whyrusleeping/tar-utils.git")
3044 (commit commit)))
3045 (file-name (git-file-name name version))
3046 (sha256
3047 (base32
3048 "14jjdw3yics0k467xsyk388684wdpi0bbx8nqj0y4pqxa0s0in6s"))))
3049 (build-system go-build-system)
3050 (arguments
3051 '(#:import-path
3052 "github.com/whyrusleeping/tar-utils"))
3053 (home-page "https://github.com/whyrusleeping/tar-utils")
3054 (synopsis "Tar utilities extracted from go-ipfs codebase")
3055 (description "Tar utilities extracted from @command{go-ipfs} codebase.")
3056 (license license:expat))))
ad8d4637
PN
3057
3058(define-public go-github-com-cheekybits-is
3059 (let ((commit "68e9c0620927fb5427fda3708222d0edee89eae9")
3060 (revision "0"))
3061 (package
3062 (name "go-github-com-cheekybits-is")
3063 (version (git-version "0.0.0" revision commit))
3064 (source
3065 (origin
3066 (method git-fetch)
3067 (uri (git-reference
3068 (url "https://github.com/cheekybits/is.git")
3069 (commit commit)))
3070 (file-name (git-file-name name version))
3071 (sha256
3072 (base32
3073 "1mkbyzhwq3rby832ikq00nxv3jnckxsm3949wkxd8ya9js2jmg4d"))))
3074 (build-system go-build-system)
3075 (arguments
3076 '(#:import-path "github.com/cheekybits/is"))
3077 (home-page "https://github.com/cheekybits/is")
3078 (synopsis "Mini testing helper for Go")
3079 (description "A mini testing helper for Go.
3080
3081@itemize
3082@item It has a simple interface (@command{is.OK} and @command{is.Equal}).
3083@item It plugs into existing Go toolchain (uses @command{testing.T}).
3084@item It's obvious for newcomers.
3085@item It also gives you @command{is.Panic} and @command{is.PanicWith} helpers
3086- because testing panics is ugly.
3087@end itemize\n")
3088 (license license:expat))))
20f48e4b
PN
3089
3090(define-public go-github-com-sabhiram-go-gitignore
3091 (let ((commit "d3107576ba9425fc1c85f4b3569c4631b805a02e")
3092 (revision "0"))
3093 (package
3094 (name "go-github-com-sabhiram-go-gitignore")
3095 (version (git-version "1.0.2" revision commit))
3096 (source
3097 (origin
3098 (method git-fetch)
3099 (uri (git-reference
3100 (url "https://github.com/sabhiram/go-gitignore.git")
3101 (commit commit)))
3102 (file-name (git-file-name name version))
3103 (sha256
3104 (base32
3105 "1rdwyxgcsiwgmlqnc3k6h300mzlvjc3j21np4yh1h476wc8dvl0l"))))
3106 (build-system go-build-system)
3107 (arguments
3108 '(#:import-path
3109 "github.com/sabhiram/go-gitignore"))
3110 (native-inputs
3111 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
3112 (home-page "https://github.com/sabhiram/go-gitignore")
3113 (synopsis "Gitignore parser for Go")
3114 (description "A @command{.gitignore} parser for Go.")
3115 (license license:expat))))
b5bb0b50
PN
3116
3117(define-public go-github-com-urfave-cli
c83f9f66 3118 (let ((commit "693af58b4d51b8fcc7f9d89576da170765980581")
b5bb0b50
PN
3119 (revision "0"))
3120 (package
3121 (name "go-github-com-urfave-cli")
c83f9f66 3122 (version (git-version "1.20.0" revision commit))
b5bb0b50
PN
3123 (source
3124 (origin
3125 (method git-fetch)
3126 (uri (git-reference
3127 (url "https://github.com/urfave/cli.git")
3128 (commit commit)))
3129 (file-name (git-file-name name version))
3130 (sha256
3131 (base32
c83f9f66 3132 "1krq752xgy658an1696vf4dc2zmp541clwjinhn11394sx2qksh6"))))
b5bb0b50
PN
3133 (build-system go-build-system)
3134 (arguments
3135 '(#:import-path "github.com/urfave/cli"))
3136 (home-page "https://github.com/urfave/cli")
3137 (synopsis "Simple, fast, and fun package for building command line apps in Go")
3138 (description "@command{cli} is a simple, fast, and fun package for
3139building command line apps in Go. The goal is to enable developers to write
3140fast and distributable command line applications in an expressive way.")
3141 (license license:expat))))
7bd9020e
PN
3142
3143(define-public go-github-com-whyrusleeping-json-filter
3144 (let ((commit "ff25329a9528f01c5175414f16cc0a6a162a5b8b")
3145 (revision "0"))
3146 (package
3147 (name "go-github-com-whyrusleeping-json-filter")
3148 (version (git-version "0.0.0" revision commit))
3149 (source
3150 (origin
3151 (method git-fetch)
3152 (uri (git-reference
3153 (url "https://github.com/whyrusleeping/json-filter.git")
3154 (commit commit)))
3155 (file-name (git-file-name name version))
3156 (sha256
3157 (base32
3158 "0cai0drvx4c8j686l908vpcsz3mw3vxi3ziz94b0f3c5ylpj07j7"))))
3159 (build-system go-build-system)
3160 (arguments
3161 '(#:import-path
3162 "github.com/whyrusleeping/json-filter"))
3163 (home-page "https://github.com/whyrusleeping/json-filter")
3164 (synopsis "Library to query JSON objects marshalled into map[string]interface")
3165 (description "A library to query JSON objects marshalled into
3166@command{map[string]interface{}}.")
3167 (license license:expat))))
38566e97
PN
3168
3169(define-public go-github-com-whyrusleeping-progmeter
3170 (let ((commit "f3e57218a75b913eff88d49a52c1debf9684ea04")
3171 (revision "0"))
3172 (package
3173 (name "go-github-com-whyrusleeping-progmeter")
3174 (version (git-version "0.0.0" revision commit))
3175 (source
3176 (origin
3177 (method git-fetch)
3178 (uri (git-reference
3179 (url "https://github.com/whyrusleeping/progmeter.git")
3180 (commit commit)))
3181 (file-name (git-file-name name version))
3182 (sha256
3183 (base32
3184 "0xs8rz6yhpvj9512c5v3b8dwr2kivywnyyfxzdfbr6fy1xc8zskb"))))
3185 (build-system go-build-system)
3186 (arguments
3187 '(#:import-path
3188 "github.com/whyrusleeping/progmeter"))
3189 (home-page "https://github.com/whyrusleeping/progmeter")
3190 (synopsis "Progress meter for Go")
3191 (description "Progress meter for Go.")
3192 (license license:expat))))
56eb7bd3
PN
3193
3194(define-public go-github-com-whyrusleeping-stump
3195 (let ((commit "206f8f13aae1697a6fc1f4a55799faf955971fc5")
3196 (revision "0"))
3197 (package
3198 (name "go-github-com-whyrusleeping-stump")
3199 (version (git-version "0.0.0" revision commit))
3200 (source
3201 (origin
3202 (method git-fetch)
3203 (uri (git-reference
3204 (url "https://github.com/whyrusleeping/stump.git")
3205 (commit commit)))
3206 (file-name (git-file-name name version))
3207 (sha256
3208 (base32
3209 "1s40qdppjnk8gijk7x6kbviiqz62nz3h6gic2q9cwcmq8r5isw7n"))))
3210 (build-system go-build-system)
3211 (arguments
3212 '(#:import-path "github.com/whyrusleeping/stump"))
3213 (home-page "https://github.com/whyrusleeping/stump")
3214 (synopsis "Very basic logging package for Go")
3215 (description "A simple log library, for when you don't really care to
3216have super fancy logs.")
3217 (license license:expat))))
5b6c3ad0
PN
3218
3219(define-public go-github-com-kr-fs
3220 (let ((commit "1455def202f6e05b95cc7bfc7e8ae67ae5141eba")
3221 (revision "0"))
3222 (package
3223 (name "go-github-com-kr-fs")
3224 (version (git-version "0.1.0" revision commit))
3225 (source
3226 (origin
3227 (method git-fetch)
3228 (uri (git-reference
3229 (url "https://github.com/kr/fs.git")
3230 (commit commit)))
3231 (file-name (git-file-name name version))
3232 (sha256
3233 (base32
3234 "11zg176x9hr9q7fsk95r6q0wf214gg4czy02slax4x56n79g6a7q"))))
3235 (build-system go-build-system)
3236 (arguments
3237 '(#:import-path "github.com/kr/fs"))
3238 (home-page "https://github.com/kr/fs")
52beae7b
TGR
3239 (synopsis "File-system-related functions for Go")
3240 (description
3241 "The fs package provides file-system-related Go functions.")
5b6c3ad0 3242 (license license:bsd-3))))
bc58bb9b
LF
3243
3244(define-public go-github-com-direnv-go-dotenv
3245 (let ((commit "4cce6d1a66f7bc8dc730eab85cab6af1b801abed")
3246 (revision "0"))
3247 (package
3248 (name "go-github-com-direnv-go-dotenv")
3249 (version (git-version "0.0.0" revision commit))
3250 (source
3251 (origin
3252 (method git-fetch)
3253 (uri (git-reference
3254 (url "https://github.com/direnv/go-dotenv")
3255 (commit commit)))
3256 (file-name (git-file-name name version))
3257 (sha256
3258 (base32
3259 "00wn4fc2lma0csf6ryvlc6k9jbpbifm4n7i3kkd2xrfw5qlm29b6"))))
3260 (build-system go-build-system)
3261 (arguments
3262 '(#:import-path "github.com/direnv/go-dotenv"))
3263 (home-page "https://github.com/direnv/go-dotenv")
3264 (synopsis "Go dotenv parsing library")
3265 (description "This package provides a library for parsing the dotenv
3266format in Go.")
3267 (license license:expat))))
56f610f5 3268
aa413ff8
LF
3269(define-public go-github-com-kr-pretty
3270 (package
3271 (name "go-github-com-kr-pretty")
3272 (version "0.1.0")
3273 (source (origin
3274 (method git-fetch)
3275 (uri (git-reference
3276 (url "https://github.com/kr/pretty.git")
3277 (commit (string-append "v" version))))
3278 (file-name (git-file-name name version))
3279 (sha256
3280 (base32
3281 "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp"))))
3282 (build-system go-build-system)
3283 (propagated-inputs
3284 `(("go-github-com-kr-text" ,go-github-com-kr-text)))
3285 (arguments
3286 '(#:import-path "github.com/kr/pretty"))
3287 (synopsis "A pretty printer for Go values")
3288 (description "This package provides a pretty printer for Go values.")
3289 (home-page "https://github.com/kr/pretty")
3290 (license license:expat)))
3291
56f610f5
LF
3292(define-public go-github-com-kr-text
3293 (package
3294 (name "go-github-com-kr-text")
3295 (version "0.1.0")
3296 (source (origin
3297 (method git-fetch)
3298 (uri (git-reference
3299 (url "https://github.com/kr/text.git")
3300 (commit (string-append "v" version))))
3301 (file-name (git-file-name name version))
3302 (sha256
3303 (base32
3304 "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"))))
3305 (build-system go-build-system)
3306 (arguments
3307 '(#:import-path "github.com/kr/text"))
3308 (synopsis "Text formatting in Go")
3309 (description "This package provides a text formatting functions in Go.")
3310 (home-page "https://github.com/kr/text")
3311 (license license:expat)))
4ddf067f 3312
be42a38a
BL
3313(define-public go-golang-org-sql-mock
3314 (let ((commit "e98392b8111b45f8126e00af035a0dd95dc12e8b")
3315 (version "1.3.3")
3316 (revision "1"))
3317 (package
3318 (name "go-golang-org-sql-mock")
3319 (version (git-version version revision commit))
3320 (source (origin
3321 (method git-fetch)
3322 (uri (git-reference
3323 (url "https://github.com/DATA-DOG/go-sqlmock")
3324 (commit commit)))
3325 (file-name (git-file-name name version))
3326 (sha256
3327 (base32
3328 "033vv29g2wf6fd757ajfmha30bqin3b07377037zkl051mk6mghs"))))
3329 (build-system go-build-system)
3330 (arguments
3331 '(#:import-path "github.com/DATA-DOG/go-sqlmock"))
3332 (synopsis "Mock library implementing @code{sql/driver}")
3333 (description "This library simulates SQL-driver behavior in tests
3334without requiring a real database connection.")
3335 (home-page "https://github.com/DATA-DOG/go-sqlmock")
3336 (license license:expat))))
3337
a881a087
BL
3338(define-public go-golang-org-colorful
3339 (package
3340 (name "go-golang-org-colorful")
3341 (version "1.0.2")
3342 (source (origin
3343 (method git-fetch)
3344 (uri (git-reference
3345 (url "https://github.com/lucasb-eyer/go-colorful")
3346 (commit (string-append "v" version))))
3347 (file-name (git-file-name name version))
3348 (sha256
3349 (base32
3350 "0fig06880bvk1l92j4127v4x9sar4ds7ga8959gxxghb2w70b7l2"))))
3351 (build-system go-build-system)
3352 (arguments
3353 '(#:import-path "github.com/lucasb-eyer/go-colorful"))
3354 (native-inputs
3355 `(("go-golang-org-sql-mock" ,go-golang-org-sql-mock)))
3356 (synopsis "Convert between colorspaces and generate colors")
3357 (description "This package implements Go's @code{color.Color} interface
3358and provides a means of converting colors stored as RGB to various
3359colorspaces.")
3360 (home-page "https://github.com/lucasb-eyer/go-colorful")
3361 (license license:expat)))
3362
42a0cfee
BL
3363(define-public go-github-com-gdamore-encoding
3364 (package
3365 (name "go-github-com-gdamore-encoding")
3366 (version "1.0.0")
3367 (source
3368 (origin
3369 (method git-fetch)
3370 (uri (git-reference
3371 (url "https://github.com/gdamore/encoding")
3372 (commit (string-append "v" version))))
3373 (file-name (git-file-name name version))
3374 (sha256
3375 (base32
3376 "1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9"))))
3377 (build-system go-build-system)
3378 (arguments
3379 '(#:import-path "github.com/gdamore/encoding"))
3380 (inputs
3381 `(("go-golang-org-x-text-encoding" ,go-golang-org-x-text-encoding)
3382 ("go-golang-org-x-text-transform" ,go-golang-org-x-text-transform)))
3383 (home-page "https://github.com/gdamore/encoding")
3384 (synopsis "Provide encodings missing from Go")
3385 (description "This package provides useful encodings not included in the
3386standard @code{Text} package, including some for dealing with I/O streams from
3387non-UTF-friendly sources.")
3388 (license license:expat)))
3389
a6689b99
BL
3390(define-public go-github-com-gdamore-tcell
3391 (let ((commit "aaadc574a6ed8dc3abe56036ca130dcee1ee6b6e")
3392 (version "1.1.2")
3393 (revision "1"))
3394 (package
3395 (name "go-github-com-gdamore-tcell")
3396 (version (git-version version revision commit))
3397 (source
3398 (origin
3399 (method git-fetch)
3400 (uri (git-reference
3401 (url "https://github.com/gdamore/tcell")
3402 (commit commit)))
3403 (file-name (git-file-name name version))
3404 (sha256
3405 (base32
3406 "0il2nnxp2cqiy73m49215dnf9in3vd25ji8qxbmq87c5qy7i1q9d"))))
3407 (build-system go-build-system)
3408 (arguments
3409 `(#:import-path "github.com/gdamore/tcell"
3410 #:phases
3411 (modify-phases %standard-phases
3412 (add-before 'reset-gzip-timestamps 'make-files-writable
3413 (lambda* (#:key outputs #:allow-other-keys)
3414 ;; Make sure .gz files are writable so that the
3415 ;; 'reset-gzip-timestamps' phase can do its work.
3416 (let ((out (assoc-ref outputs "out")))
3417 (for-each make-file-writable
3418 (find-files out "\\.gz$"))
3419 #t))))))
3420 (inputs
3421 `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
3422 ("go-golang-org-colorful" ,go-golang-org-colorful)
3423 ("go-golang-org-x-text-encoding" ,go-golang-org-x-text-encoding)
3424 ("go-golang-org-x-text-transform" ,go-golang-org-x-text-transform)
3425 ("go-github-com-gdamore-encoding" ,go-github-com-gdamore-encoding)))
3426 (home-page "https://github.com/gdamore/tcell")
3427 (synopsis "Provide a cell-based view for text terminals")
3428 (description "This package includes a full parser and expander for
3429terminfo capability strings to avoid hard-coding escape strings for
3430formatting. It also favors portability, and includes support for all POSIX
3431systems.")
3432 (license license:expat))))
3433
f8157350
BL
3434(define-public go-github-com-mattn-go-shellwords
3435 (let ((commit "2444a32a19f450fabaa0bb3e96a703f15d9a97d2")
3436 (version "1.0.5")
3437 (revision "1"))
3438 (package
3439 (name "go-github-com-mattn-go-shellwords")
3440 (version (git-version version revision commit))
3441 (source
3442 (origin
3443 (method git-fetch)
3444 (uri (git-reference
3445 (url "https://github.com/mattn/go-shellwords")
3446 (commit commit)))
3447 (file-name (git-file-name name version))
3448 (sha256
3449 (base32
3450 "08zcgr1az1n8zaxzwdd205j86hczgyc52nxfnw5avpw7rrkf7v0d"))))
3451 (build-system go-build-system)
3452 (arguments
3453 `(#:import-path "github.com/mattn/go-shellwords"
3454 ;; TODO: can't make homeless-shelter:
3455 ;; go: disabling cache (/homeless-shelter/.cache/go-build) due to
3456 ;; initialization failure: mkdir /homeless-shelter: permission denied
3457
3458 ;; This doesn't seem to work:
3459
3460 ;; #:phases
3461 ;; (modify-phases %standard-phases
3462 ;; (replace 'check
3463 ;; (lambda* (#:key import-path #:allow-other-keys)
3464 ;; (setenv "HOME" "/tmp")
3465 ;; (invoke "go" "test" import-path))))
3466
3467 ;; TODO: There are also a couple of tests that have stymied Debian in
3468 ;; the past. They seem to work when run locally.
3469
3470 #:tests? #f
3471 ))
3472 (home-page "https://github.com/mattn/go-shellwords")
3473 (synopsis "Parse lines into shell words")
3474 (description "This package parses text into shell arguments. Based on
3475the @code{cpan} module @code{Parse::CommandLine}.")
3476 (license license:expat))))
3477
4ddf067f
GB
3478(define-public go-github-com-burntsushi-locker
3479 (let ((commit "a6e239ea1c69bff1cfdb20c4b73dadf52f784b6a")
3480 (revision "0"))
3481 (package
3482 (name "go-github-com-burntsushi-locker")
3483 (version (git-version "0.0.0" revision commit))
3484 (source
3485 (origin
3486 (method git-fetch)
3487 (uri (git-reference
3488 (url "https://github.com/BurntSushi/locker")
3489 (commit commit)))
3490 (file-name (git-file-name name version))
3491 (sha256
3492 (base32
3493 "1xak4aync4klswq5217qvw191asgla51jr42y94vp109lirm5dzg"))))
3494 (build-system go-build-system)
3495 (arguments
3496 '(#:import-path "github.com/BurntSushi/locker"))
3497 (home-page "https://github.com/BurntSushi/locker")
3498 (synopsis "Manage named ReadWrite mutexes in Go")
3499 (description "Golang package for conveniently using named read/write
3500locks. These appear to be especially useful for synchronizing access to
3501session based information in web applications.
3502
3503The common use case is to use the package level functions, which use a package
3504level set of locks (safe to use from multiple goroutines
3505simultaneously). However, you may also create a new separate set of locks
3506test.
3507
3508All locks are implemented with read-write mutexes. To use them like a regular
3509mutex, simply ignore the RLock/RUnlock functions.")
3510 (license license:unlicense))))
a3b1dc49
LF
3511
3512(define-public go-github-com-marten-seemann-qtls
3513 (package
3514 (name "go-github-com-marten-seemann-qtls")
3515 (version "0.2.3")
3516 (source (origin
3517 (method git-fetch)
3518 (uri (git-reference
3519 (url "https://github.com/marten-seemann/qtls")
3520 (commit (string-append "v" version))))
3521 (file-name (git-file-name name version))
3522 (sha256
3523 (base32
3524 "0b9p7bwkm9hfg1mb565q4nw5k7xyks0z2xagz5fp95azy2psbnfg"))))
3525 (build-system go-build-system)
3526 (arguments
3527 '(#:import-path "github.com/marten-seemann/qtls"
3528 ;; The test suite requires networking.
3529 #:tests? #f))
3530 (propagated-inputs
3531 `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
3532 (synopsis "TLS 1.3 with QUIC in Go")
3533 (description "This package provides @code{qtls}, a QUIC-capable variant of
3534the Go standard library's TLS 1.3 implementation.")
3535 (home-page "https://github.com/marten-seemann/qtls")
3536 (license license:bsd-3)))
8201afdf
LF
3537
3538(define-public go-github-com-cheekybits-genny
3539 (package
3540 (name "go-github-com-cheekybits-genny")
3541 (version "1.0.0")
3542 (source (origin
3543 (method git-fetch)
3544 (uri (git-reference
3545 (url "https://github.com/cheekybits/genny")
3546 (commit (string-append "v" version))))
3547 (file-name (git-file-name name version))
3548 (sha256
3549 (base32
3550 "1pcir5ic86713aqa51581rfb67rgc3m0c72ddjfcp3yakv9vyq87"))))
3551 (build-system go-build-system)
3552 (arguments
3553 '(#:import-path "github.com/cheekybits/genny"))
3554 (propagated-inputs
3555 `(("go-golang-org-x-tools" ,go-golang-org-x-tools)))
3556 (synopsis "Generics for Go")
3557 (description "This package provides @code{genny}, a Go language
3558implementation of generics.")
3559 (home-page "https://github.com/cheekybits/genny/")
3560 (license license:expat)))
6d766bec
LF
3561
3562(define-public go-github-com-lucas-clemente-quic-go
3563 (package
3564 (name "go-github-com-lucas-clemente-quic-go")
3565 (version "0.11.2")
3566 (source (origin
3567 (method git-fetch)
3568 (uri (git-reference
3569 (url "https://github.com/lucas-clemente/quic-go")
3570 (commit (string-append "v" version))))
3571 (file-name (git-file-name name version))
3572 (sha256
3573 (base32
3574 "0gqm5mc8alg84ra7yxach34il1jvcij8f76qdqcahnd3d2nhjbia"))))
3575 (build-system go-build-system)
3576 (arguments
3577 '(#:import-path "github.com/lucas-clemente/quic-go"
3578 ;; XXX More packages required...
3579 #:tests? #f))
3580 (propagated-inputs
3581 `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
3582 ("go-github-com-cheekybits-genny" ,go-github-com-cheekybits-genny)
3583 ("go-github-com-marten-seemann-qtls" ,go-github-com-marten-seemann-qtls)))
3584 (synopsis "QUIC in Go")
3585 (description "This package provides a Go language implementation of the QUIC
3586network protocol.")
3587 (home-page "https://github.com/lucas-clemente/quic-go")
3588 (license license:expat)))
2da5275f
LF
3589
3590(define-public go-github-com-pkg-errors
8c6be10a
LF
3591 (let ((commit "27936f6d90f9c8e1145f11ed52ffffbfdb9e0af7")
3592 (revision "0"))
3593 (package
3594 (name "go-github-com-pkg-errors")
3595 (version (git-version "0.8.1" revision commit))
3596 (source (origin
3597 (method git-fetch)
3598 (uri (git-reference
3599 (url "https://github.com/pkg/errors.git")
3600 (commit commit)))
3601 (file-name (git-file-name name version))
3602 (sha256
3603 (base32
3604 "0yzmgi6g4ak4q8y7w6x0n5cbinlcn8yc3gwgzy4yck00qdn25d6y"))))
3605 (build-system go-build-system)
3606 (arguments
3607 `(#:import-path "github.com/pkg/errors"))
3608 (synopsis "Go error handling primitives")
3609 (description "This package provides @code{error}, which offers simple
2da5275f 3610error handling primitives in Go.")
8c6be10a
LF
3611 (home-page "https://github.com/pkg/errors")
3612 (license license:bsd-2))))
d0ced446
LF
3613
3614(define-public go-github-com-maruel-panicparse
3615 (package
3616 (name "go-github-com-maruel-panicparse")
3617 (version "1.2.1")
3618 (source (origin
3619 (method git-fetch)
3620 (uri (git-reference
3621 (url "https://github.com/maruel/panicparse")
3622 (commit (string-append "v" version))))
3623 (file-name (git-file-name name version))
3624 (sha256
3625 (base32
3626 "05hf68ifb7ww4rpmxyywbj9r0kyap45p1273ncq4qy2ydv042l8j"))))
3627 (build-system go-build-system)
3628 (arguments
3629 '(#:import-path "github.com/maruel/panicparse"))
3630 (synopsis "Toolkit for parsing Go stack traces")
3631 (description "This package provides a toolkit for parsing Go language panic
3632stack traces. It simplifies the traces to make salient information more visible
3633and aid debugging.")
3634 (home-page "https://github.com/maruel/panicparse")
3635 (license license:asl2.0)))