gnu: Add vtk-6.
[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
0c3c597d 587(define-public go go-1.12)
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
307f2c44
LF
1011 (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
1012 (revision "3"))
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
307f2c44 1024 "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
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"))
307f2c44
LF
1029 (propagated-inputs
1030 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
269d0858
LF
1031 (synopsis "Go IPv4 support")
1032 (description "This package provides @code{ipv4}, which implements IP-level
1033socket options for the Internet Protocol version 4.")
1034 (home-page "https://go.googlesource.com/net")
1035 (license license:bsd-3))))
1036
1037(define-public go-golang-org-x-net-bpf
307f2c44
LF
1038 (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
1039 (revision "3"))
269d0858
LF
1040 (package
1041 (name "go-golang-org-x-net-bpf")
1042 (version (git-version "0.0.0" revision commit))
1043 (source (origin
1044 (method git-fetch)
1045 (uri (git-reference
1046 (url "https://go.googlesource.com/net")
1047 (commit commit)))
1048 (file-name (string-append "go.googlesource.com-net-"
1049 version "-checkout"))
1050 (sha256
1051 (base32
307f2c44 1052 "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
269d0858
LF
1053 (build-system go-build-system)
1054 (arguments
1055 `(#:import-path "golang.org/x/net/bpf"
1056 #:unpack-path "golang.org/x/net"))
307f2c44
LF
1057 (propagated-inputs
1058 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
269d0858 1059 (synopsis "Berkeley Packet Filters (BPF) in Go")
383bd29d 1060 (description "This package provides a Go implementation of the Berkeley
269d0858
LF
1061Packet Filter (BPF) virtual machine.")
1062 (home-page "https://go.googlesource.com/net/")
1063 (license license:bsd-3))))
1064
1065(define-public go-golang-org-x-net-context
307f2c44
LF
1066 (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
1067 (revision "3"))
269d0858
LF
1068 (package
1069 (name "go-golang-org-x-net-context")
1070 (version (git-version "0.0.0" revision commit))
1071 (source (origin
1072 (method git-fetch)
1073 (uri (git-reference
1074 (url "https://go.googlesource.com/net")
1075 (commit commit)))
1076 (file-name (string-append "go.googlesource.com-net-"
1077 version "-checkout"))
1078 (sha256
1079 (base32
307f2c44 1080 "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
269d0858
LF
1081 (build-system go-build-system)
1082 (arguments
1083 `(#:import-path "golang.org/x/net/context"
1084 #:unpack-path "golang.org/x/net"))
1085 (synopsis "Golang Context type")
98bad28a 1086 (description "This package provides @code{context}, which defines the
ce97f336 1087Context type, which carries deadlines, cancellation signals, and other
269d0858
LF
1088request-scoped values across API boundaries and between processes.")
1089 (home-page "https://go.googlesource.com/net/")
1090 (license license:bsd-3))))
1091
3034d1a1 1092(define-public go-golang-org-x-net-internal-socks
307f2c44
LF
1093 (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
1094 (revision "3"))
3034d1a1
LF
1095 (package
1096 (name "go-golang-org-x-net-internal-socks")
1097 (version (git-version "0.0.0" revision commit))
1098 (source (origin
1099 (method git-fetch)
1100 (uri (git-reference
1101 (url "https://go.googlesource.com/net")
1102 (commit commit)))
1103 (file-name (string-append "go.googlesource.com-net-"
1104 version "-checkout"))
1105 (sha256
1106 (base32
307f2c44 1107 "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
3034d1a1
LF
1108 (build-system go-build-system)
1109 (arguments
1110 `(#:import-path "golang.org/x/net/internal/socks"
1111 #:unpack-path "golang.org/x/net"))
1112 (synopsis "")
1113 (description "")
1114 (home-page "https://go.googlesource.com/net/")
1115 (license license:bsd-3))))
1116
1117(define-public go-golang-org-x-net-internal-socket
307f2c44
LF
1118 (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
1119 (revision "3"))
3034d1a1
LF
1120 (package
1121 (name "go-golang-org-x-net-internal-socket")
1122 (version (git-version "0.0.0" revision commit))
1123 (source (origin
1124 (method git-fetch)
1125 (uri (git-reference
1126 (url "https://go.googlesource.com/net")
1127 (commit commit)))
1128 (file-name (string-append "go.googlesource.com-net-"
1129 version "-checkout"))
1130 (sha256
1131 (base32
307f2c44 1132 "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
3034d1a1
LF
1133 (build-system go-build-system)
1134 (arguments
1135 `(#:import-path "golang.org/x/net/internal/socket"
1136 #:unpack-path "golang.org/x/net"))
307f2c44
LF
1137 (propagated-inputs
1138 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
3034d1a1
LF
1139 (synopsis "")
1140 (description "")
1141 (home-page "https://go.googlesource.com/net/")
1142 (license license:bsd-3))))
1143
269d0858 1144(define-public go-golang-org-x-net-internal-iana
307f2c44
LF
1145 (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
1146 (revision "3"))
269d0858
LF
1147 (package
1148 (name "go-golang-org-x-net-internal-iana")
1149 (version (git-version "0.0.0" revision commit))
1150 (source (origin
1151 (method git-fetch)
1152 (uri (git-reference
1153 (url "https://go.googlesource.com/net")
1154 (commit commit)))
1155 (file-name (string-append "go.googlesource.com-net-"
1156 version "-checkout"))
1157 (sha256
1158 (base32
307f2c44 1159 "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
269d0858
LF
1160 (build-system go-build-system)
1161 (arguments
1162 `(#:import-path "golang.org/x/net/internal/iana"
1163 #:unpack-path "golang.org/x/net"))
1164 (synopsis "Go support for assigned numbers (IANA)")
9fea29c4 1165 (description "This package provides @code{iana}, which provides protocol
269d0858
LF
1166number resources managed by the Internet Assigned Numbers Authority (IANA).")
1167 (home-page "https://go.googlesource.com/net/")
1168 (license license:bsd-3))))
1169
1170(define-public go-golang-org-x-net-ipv6
307f2c44
LF
1171 (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
1172 (revision "3"))
269d0858
LF
1173 (package
1174 (name "go-golang-org-x-net-ipv6")
1175 (version (git-version "0.0.0" revision commit))
1176 (source (origin
1177 (method git-fetch)
1178 (uri (git-reference
1179 (url "https://go.googlesource.com/net")
1180 (commit commit)))
1181 (file-name (string-append "go.googlesource.com-net-"
1182 version "-checkout"))
1183 (sha256
1184 (base32
307f2c44 1185 "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
269d0858
LF
1186 (build-system go-build-system)
1187 (arguments
1188 `(#:import-path "golang.org/x/net/ipv6"
1189 #:unpack-path "golang.org/x/net"))
307f2c44
LF
1190 (propagated-inputs
1191 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
269d0858 1192 (synopsis "Go IPv6 support")
79254f31 1193 (description "This package provides @code{ipv6}, which implements
269d0858
LF
1194IP-level socket options for the Internet Protocol version 6.")
1195 (home-page "https://go.googlesource.com/net")
1196 (license license:bsd-3))))
1197
1198(define-public go-golang-org-x-net-proxy
307f2c44
LF
1199 (let ((commit "d28f0bde5980168871434b95cfc858db9f2a7a99")
1200 (revision "3"))
269d0858
LF
1201 (package
1202 (name "go-golang-org-x-net-proxy")
1203 (version (git-version "0.0.0" revision commit))
1204 (source (origin
1205 (method git-fetch)
1206 (uri (git-reference
1207 (url "https://go.googlesource.com/net")
1208 (commit commit)))
1209 (file-name (string-append "go.googlesource.com-net-"
1210 version "-checkout"))
1211 (sha256
1212 (base32
307f2c44 1213 "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf"))))
269d0858
LF
1214 (build-system go-build-system)
1215 (arguments
1216 `(#:import-path "golang.org/x/net/proxy"
1217 #:unpack-path "golang.org/x/net/"))
1218 (synopsis "Go support for network proxies")
4cc055cb 1219 (description "This package provides @code{proxy}, which provides support
269d0858
LF
1220for a variety of protocols to proxy network data.")
1221 (home-page "https://go.googlesource.com/net")
1222 (license license:bsd-3))))
1223
1224(define-public go-golang-org-x-sys-unix
8a507346
LF
1225 (let ((commit "04f50cda93cbb67f2afa353c52f342100e80e625")
1226 (revision "4"))
269d0858
LF
1227 (package
1228 (name "go-golang-org-x-sys-unix")
1229 (version (git-version "0.0.0" revision commit))
1230 (source (origin
1231 (method git-fetch)
1232 (uri (git-reference
1233 (url "https://go.googlesource.com/sys")
1234 (commit commit)))
1235 (file-name (git-file-name name version))
1236 (sha256
1237 (base32
8a507346 1238 "0hmfsz9y1ingwsn482hlzzmzs7kr3cklm0ana0mbdk70isw2bxnw"))))
269d0858
LF
1239 (build-system go-build-system)
1240 (arguments
1241 `(#:import-path "golang.org/x/sys/unix"
b3f0f8a6 1242 #:unpack-path "golang.org/x/sys"))
269d0858
LF
1243 (synopsis "Go support for low-level system interaction")
1244 (description "This package provides @code{unix}, which offers Go support
1245for low-level interaction with the operating system.")
1246 (home-page "https://go.googlesource.com/sys")
1247 (license license:bsd-3))))
1248
4a136536
LF
1249(define-public go-golang-org-x-sys-cpu
1250 (package
1251 (inherit go-golang-org-x-sys-unix)
1252 (name "go-golang-org-x-sys-cpu")
1253 (arguments
1254 '(#:import-path "golang.org/x/sys/cpu"
1255 #:unpack-path "golang.org/x/sys"))
1256 (synopsis "CPU feature detection")
1257 (description "Thi spackage provides @code{cpu}, which offers tools for CPU
1258feature detection in Go.")))
1259
06c2d0e6
BL
1260(define-public go-golang-org-x-text-encoding
1261 (package
1262 (name "go-golang-org-x-text-encoding")
1263 (version "0.3.2")
1264 (source (origin
1265 (method git-fetch)
1266 (uri (git-reference
1267 (url "https://go.googlesource.com/text")
1268 (commit (string-append "v" version))))
1269 (file-name (string-append "go.googlesource.com-text-"
1270 version "-checkout"))
1271 (sha256
1272 (base32
1273 "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"))))
1274 (build-system go-build-system)
1275 (arguments
1276 `(#:import-path "golang.org/x/text/encoding"
1277 #:unpack-path "golang.org/x/text"))
1278 (synopsis "Interface for character encodings for conversion to and from
1279UTF-8")
1280 (description "This package defines an interface for character encodings.
1281Specific implementations of encoding for CJK text as well as simple character
1282encodings are provided in subpackages.")
1283 (home-page "https://go.googlesource.com/text")
1284 (license license:bsd-3)))
1285
269d0858 1286(define-public go-golang-org-x-text-transform
7e6da91f
BL
1287 (package
1288 (inherit go-golang-org-x-text-encoding)
1289 (name "go-golang-org-x-text-transform")
1290 (arguments
1291 `(#:import-path "golang.org/x/text/transform"
1292 #:unpack-path "golang.org/x/text"))
1293 (synopsis "Go text transformation")
1294 (description "This package provides @code{transform}, which provides
269d0858
LF
1295reader and writer wrappers that transform the bytes passing through. Example
1296transformations provided by other packages include normalization and conversion
7e6da91f 1297between character sets.")))
269d0858
LF
1298
1299(define-public go-golang-org-x-text-unicode-norm
bd184dc6
BL
1300 (package
1301 (inherit go-golang-org-x-text-encoding)
1302 (name "go-golang-org-x-text-unicode-norm")
1303 (arguments
1304 `(#:import-path "golang.org/x/text/unicode/norm"
1305 #:unpack-path "golang.org/x/text"))
1306 (synopsis "Unicode normalization in Go")
1307 (description "This package provides @code{norm}, which contains types and
1308functions for normalizing Unicode strings.")))
269d0858
LF
1309
1310(define-public go-golang-org-x-time-rate
1311 (let ((commit "6dc17368e09b0e8634d71cac8168d853e869a0c7")
1312 (revision "1"))
1313 (package
1314 (name "go-golang-org-x-time-rate")
1315 (version (git-version "0.0.0" revision commit))
1316 (source (origin
1317 (method git-fetch)
1318 (uri (git-reference
1319 (url "https://go.googlesource.com/time")
1320 (commit commit)))
1321 (file-name (git-file-name name version))
1322 (sha256
1323 (base32
1324 "1fx4cf5fpdz00g3c7vxzy92hdcg0vh4yqw00qp5s52j72qixynbk"))))
1325 (build-system go-build-system)
1326 (arguments
1327 `(#:import-path "golang.org/x/time/rate"
1328 #:unpack-path "golang.org/x/time"))
1329 (propagated-inputs
1330 `(("go-golang-org-x-net-context" ,go-golang-org-x-net-context)))
1331 (synopsis "Rate limiting in Go")
1332 (description "This package provides @{rate}, which implements rate
1333limiting in Go.")
1334 (home-page "https://godoc.org/golang.org/x/time/rate")
1335 (license license:bsd-3))))
e60352e4
1336
1337(define-public go-golang-org-x-crypto-ssh-terminal
9c1b4316
LF
1338 (package
1339 (inherit go-golang-org-x-crypto-bcrypt)
1340 (name "go-golang-org-x-crypto-ssh-terminal")
1341 (inputs
1342 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
1343 (arguments
1344 `(#:import-path "golang.org/x/crypto/ssh/terminal"
1345 #:unpack-path "golang.org/x/crypto"))
1346 (synopsis "Terminal functions for Go")
1347 (description "This package provides @{terminal}, which implements support
1348functions for dealing with terminals, as commonly found on UNIX systems.")))
fb50664f
PAR
1349
1350(define-public go-github-com-burntsushi-toml
0e558640
LF
1351 (package
1352 (name "go-github-com-burntsushi-toml")
1353 (version "0.3.1")
1354 (source
1355 (origin
1356 (method git-fetch)
1357 (uri (git-reference
1358 (url "https://github.com/BurntSushi/toml.git")
1359 (commit (string-append "v" version))))
1360 (file-name (git-file-name name version))
1361 (sha256
1362 (base32
1363 "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6"))))
1364 (build-system go-build-system)
1365 (arguments
1366 '(#:import-path "github.com/BurntSushi/toml"))
1367 (home-page "https://github.com/BurntSushi/toml")
1368 (synopsis "Toml parser and encoder for Go")
1369 (description "This package is toml parser and encoder for Go. The interface
1370is similar to Go's standard library @code{json} and @code{xml} package.")
1371 (license license:expat)))
8c5a69aa
PAR
1372
1373(define-public go-github-com-getsentry-raven-go
8ffc727e 1374 (let ((commit "5c24d5110e0e198d9ae16f1f3465366085001d92")
8c5a69aa
PAR
1375 (revision "0"))
1376 (package
1377 (name "go-github-com-getsentry-raven-go")
8ffc727e 1378 (version (git-version "0.2.0" revision commit))
8c5a69aa
PAR
1379 (source
1380 (origin
1381 (method git-fetch)
1382 (uri (git-reference
1383 (url "https://github.com/getsentry/raven-go.git")
1384 (commit commit)))
1385 (file-name (git-file-name name version))
1386 (sha256
1387 (base32
8ffc727e 1388 "0lvc376sq8r8jhy2v1m6rf1wyld61pvbk0x6j9xpg56ivqy69xs7"))))
8c5a69aa
PAR
1389 (build-system go-build-system)
1390 (arguments
1391 '(#:import-path "github.com/getsentry/raven-go"))
8ffc727e
LF
1392 (propagated-inputs
1393 `(("go-github-com-certifi-gocertifi" ,go-github-com-certifi-gocertifi)
1394 ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)))
1395 (home-page "https://github.com/getsentry/raven-go")
8c5a69aa 1396 (synopsis "Sentry client in Go")
8ffc727e 1397 (description "This package is a Go client API for the Sentry event/error
8c5a69aa
PAR
1398logging system.")
1399 (license license:bsd-3))))
0972411a
PAR
1400
1401(define-public go-github-com-hashicorp-go-version
1402 (let ((commit
1403 "03c5bf6be031b6dd45afec16b1cf94fc8938bc77")
1404 (revision "0"))
1405 (package
1406 (name "go-github-com-hashicorp-go-version")
1407 (version (git-version "0.0.0" revision commit))
1408 (source
1409 (origin
1410 (method git-fetch)
1411 (uri (git-reference
1412 (url "https://github.com/hashicorp/go-version.git")
1413 (commit commit)))
1414 (file-name (git-file-name name version))
1415 (sha256
1416 (base32
1417 "0sjq57gpfznaqdrbyb2p0bn90g9h661cvr0jrk6ngags4pbw14ik"))))
1418 (build-system go-build-system)
1419 (arguments
1420 '(#:import-path "github.com/hashicorp/go-version"))
1421 (home-page
1422 "https://github.com/hashicorp/go-version")
1423 (synopsis "Go library for parsing and verifying versions and version
1424constraints")
1425 (description "This package is a library for parsing versions and version
1426constraints, and verifying versions against a set of constraints. It can sort
1427a collection of versions properly, handles prerelease/beta versions, can
1428increment versions.")
1429 (license license:mpl2.0))))
c4230cda
PAR
1430
1431(define-public go-github-com-jpillora-backoff
1432 (let ((commit
1433 "06c7a16c845dc8e0bf575fafeeca0f5462f5eb4d")
1434 (revision "0"))
1435 (package
1436 (name "go-github-com-jpillora-backoff")
1437 (version (git-version "0.0.0" revision commit))
1438 (source
1439 (origin
1440 (method git-fetch)
1441 (uri (git-reference
1442 (url "https://github.com/jpillora/backoff.git")
1443 (commit commit)))
1444 (file-name (git-file-name name version))
1445 (sha256
1446 (base32
1447 "0xhvxr7bm47czdc5hy3kl508z3y4j91i2jm7vg774i52zych6k4l"))))
1448 (build-system go-build-system)
1449 (arguments
1450 '(#:import-path "github.com/jpillora/backoff"))
1451 (home-page "https://github.com/jpillora/backoff")
1452 (synopsis "Simple exponential backoff counter in Go")
1453 (description "This package is a simple exponential backoff counter in
1454Go.")
1455 (license license:expat))))
28380e0e
PAR
1456
1457(define-public go-github-com-stretchr-testify
1458 (let ((commit
1459 "b1f989447a57594c728884458a39abf3a73447f7")
1460 (revision "0"))
1461 (package
1462 (name "go-github-com-stretchr-testify")
1463 (version (git-version "1.1.4" revision commit))
1464 (source
1465 (origin
1466 (method git-fetch)
1467 (uri (git-reference
1468 (url "https://github.com/stretchr/testify.git")
1469 (commit commit)))
1470 (file-name (git-file-name name version))
1471 (sha256
1472 (base32
1473 "0p0gkqzh2p8r5g0rxm885ljl7ghih7h7hx9w562imx5ka0vdgixv"))))
1474 (build-system go-build-system)
1475 (arguments
1476 '(#:import-path "github.com/stretchr/testify"))
1477 (home-page "https://github.com/stretchr/testify")
1478 (synopsis "Go helper library for tests and invariant checking")
1479 (description "This package provide many tools for testifying that your
1480code will behave as you intend.
1481
1482Features include:
1483@itemize
1484@item Easy assertions
1485@item Mocking
1486@item HTTP response trapping
1487@item Testing suite interfaces and functions.
1488@end itemize")
1489 (license license:expat))))
21290c35
PAR
1490
1491(define-public go-github-com-tevino-abool
1492 (let ((commit
1493 "3c25f2fe7cd0ef3eabefce1d90efd69a65d35b12")
1494 (revision "0"))
1495 (package
1496 (name "go-github-com-tevino-abool")
1497 (version (git-version "0.0.0" revision commit))
1498 (source
1499 (origin
1500 (method git-fetch)
1501 (uri (git-reference
1502 (url "https://github.com/tevino/abool.git")
1503 (commit commit)))
1504 (file-name (git-file-name name version))
1505 (sha256
1506 (base32
1507 "1wxqrclxk93q0aj15z596dx2y57x9nkhi64nbrr5cxnhxn8vwixm"))))
1508 (build-system go-build-system)
1509 (arguments
1510 '(#:import-path "github.com/tevino/abool"))
1511 (home-page "https://github.com/tevino/abool")
1512 (synopsis "Atomic boolean library for Go code")
1513 (description "This package is atomic boolean library for Go code,
1514optimized for performance yet simple to use.")
1515 (license license:expat))))
7c2ebbd4 1516
67836c59
PAR
1517(define-public go-github-com-blang-semver
1518 (let ((commit "60ec3488bfea7cca02b021d106d9911120d25fe9")
1519 (revision "0"))
1520 (package
1521 (name "go-github-com-blang-semver")
1522 (version (git-version "0.0.0" revision commit))
1523 (source
1524 (origin
1525 (method git-fetch)
1526 (uri (git-reference
1527 (url "https://github.com/blang/semver.git")
1528 (commit commit)))
1529 (file-name (git-file-name name version))
1530 (sha256
1531 (base32
1532 "19pli07y5592g4dyjyj0jq5rn548vc3fz0qg3624vm1j5828p1c2"))))
1533 (build-system go-build-system)
1534 (arguments
1535 '(#:import-path "github.com/blang/semver"))
1536 (home-page "https://github.com/blang/semver")
1537 (synopsis "Semantic versioning library written in Go")
1538 (description "Semver is a library for Semantic versioning written in Go.")
1539 (license license:expat))))
1540
7979f7df
PAR
1541(define-public go-github-com-emicklei-go-restful
1542 (let ((commit "89ef8af493ab468a45a42bb0d89a06fccdd2fb22")
1543 (revision "0"))
1544 (package
1545 (name "go-github-com-emicklei-go-restful")
1546 (version (git-version "0.0.0" revision commit))
1547 (source
1548 (origin
1549 (method git-fetch)
1550 (uri (git-reference
1551 (url "https://github.com/emicklei/go-restful.git")
1552 (commit commit)))
1553 (file-name (git-file-name name version))
1554 (sha256
1555 (base32
1556 "0rrlfcfq80fkxifpih6bq31vavb5mf4530xz51pp9pq1mn2fzjfh"))))
1557 (build-system go-build-system)
1558 (arguments
1559 '(#:import-path "github.com/emicklei/go-restful"))
1560 (home-page "https://github.com/emicklei/go-restful")
1561 (synopsis "Build REST-style web services using Go")
1562 (description "This package provides @code{go-restful}, which helps
1563developers to use @code{http} methods explicitly and in a way that's consistent
1564with the HTTP protocol definition.")
1565 (license license:expat))))
73fe19ef
PAR
1566
1567(define-public go-github-com-google-cadvisor
1568 (let ((commit "2ed7198f77395ee9a172878a0a7ab92ab59a2cfd")
1569 (revision "0"))
1570 (package
1571 (name "go-github-com-google-cadvisor")
1572 (version (git-version "0.0.0" revision commit))
1573 (source
1574 (origin
1575 (method git-fetch)
1576 (uri (git-reference
1577 (url "https://github.com/google/cadvisor.git")
1578 (commit commit)))
1579 (file-name (git-file-name name version))
1580 (sha256
1581 (base32
1582 "1w8p345z5j0gk3yiq5ah0znd5lfh348p2s624k5r10drz04p3f55"))))
1583 (build-system go-build-system)
1584 (arguments
1585 '(#:import-path "github.com/google/cadvisor"))
1586 (home-page "https://github.com/google/cadvisor")
1587 (synopsis "Analyze resource usage of running containers")
1588 (description "The package provides @code{cadvisor}, which provides
ae03ce0f 1589information about the resource usage and performance characteristics of running
73fe19ef
PAR
1590containers.")
1591 (license license:asl2.0))))
daed2c5e
PAR
1592
1593(define-public go-github-com-google-gofuzz
1594 (let ((commit "fd52762d25a41827db7ef64c43756fd4b9f7e382")
1595 (revision "0"))
1596 (package
1597 (name "go-github-com-google-gofuzz")
1598 (version (git-version "0.0.0" revision commit))
1599 (source
1600 (origin
1601 (method git-fetch)
1602 (uri (git-reference
1603 (url "https://github.com/google/gofuzz.git")
1604 (commit commit)))
1605 (file-name (git-file-name name version))
1606 (sha256
1607 (base32
1608 "1yxmmr73h0lq7ryf3q9a7pcm2x5xrg4d5bxkq8n5pxwxwyq26kw8"))))
1609 (build-system go-build-system)
1610 (arguments
1611 '(#:import-path "github.com/google/gofuzz"))
1612 (home-page "https://github.com/google/gofuzz")
1613 (synopsis "Fuzz testing library for Go")
1614 (description "Gofuzz is a library for populationg Go objects with random
1615values for the purpose of fuzz testing.")
1616 (license license:asl2.0))))
9cf879a5
PAR
1617
1618(define-public go-github-com-gorilla-context
1619 (let ((commit "08b5f424b9271eedf6f9f0ce86cb9396ed337a42")
1620 (revision "0"))
1621 (package
1622 (name "go-github-com-gorilla-context")
1623 (version (git-version "0.0.0" revision commit))
1624 (source
1625 (origin
1626 (method git-fetch)
1627 (uri (git-reference
1628 (url "https://github.com/gorilla/context.git")
1629 (commit commit)))
1630 (file-name (git-file-name name version))
1631 (sha256
1632 (base32
1633 "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4"))))
1634 (build-system go-build-system)
1635 (arguments
1636 '(#:import-path "github.com/gorilla/context"))
1637 (home-page "https://github.com/gorilla/context")
1638 (synopsis "Go registry for request variables")
1639 (description "This package provides @code{gorilla/context}, which is a general purpose registry for global request variables in the Go programming language.")
1640 (license license:bsd-3))))
e8cdf560
PAR
1641
1642(define-public go-github-com-gorilla-mux
1643 (let ((commit "599cba5e7b6137d46ddf58fb1765f5d928e69604")
1644 (revision "0"))
1645 (package
1646 (name "go-github-com-gorilla-mux")
1647 (version (git-version "0.0.0" revision commit))
1648 (source
1649 (origin
1650 (method git-fetch)
1651 (uri (git-reference
1652 (url "https://github.com/gorilla/mux.git")
1653 (commit commit)))
1654 (file-name (git-file-name name version))
1655 (sha256
1656 (base32
1657 "0wd6jjii1kg5s0nk3ri6gqriz6hbd6bbcn6x4jf8n7ncrb8qsxyz"))))
1658 (build-system go-build-system)
1659 (arguments
1660 '(#:import-path "github.com/gorilla/mux"))
1661 (home-page "https://github.com/gorilla/mux")
1662 (synopsis "URL router and dispatcher for Go")
1663 (description
1664 "Gorilla/Mux implements a request router and dispatcher for matching
1665incoming requests with their respective handler.")
1666 (license license:bsd-3))))
bcb21790
PAR
1667
1668(define-public go-github-com-jonboulle-clockwork
1669 (let ((commit "e3653ace2d63753697e0e5b07b9393971c0bba9d")
1670 (revision "0"))
1671 (package
1672 (name "go-github-com-jonboulle-clockwork")
1673 (version (git-version "0.0.0" revision commit))
1674 (source
1675 (origin
1676 (method git-fetch)
1677 (uri (git-reference
1678 (url "https://github.com/jonboulle/clockwork.git")
1679 (commit commit)))
1680 (file-name (git-file-name name version))
1681 (sha256
1682 (base32
1683 "1avzqhks12a8x2yzpvjsf3k0gv9cy7zx2z88hn0scacnxkphisvc"))))
1684 (build-system go-build-system)
1685 (arguments
1686 '(#:import-path "github.com/jonboulle/clockwork"))
1687 (home-page "https://github.com/jonboulle/clockwork")
1688 (synopsis "Fake clock library for Go")
1689 (description
1690 "Replace uses of the @code{time} package with the
1691@code{clockwork.Clock} interface instead.")
1692 (license license:asl2.0))))
76a2b278
PAR
1693
1694(define-public go-github-com-spf13-pflag
1695 (let ((commit "4f9190456aed1c2113ca51ea9b89219747458dc1")
1696 (revision "0"))
1697 (package
1698 (name "go-github-com-spf13-pflag")
1699 (version (git-version "0.0.0" revision commit))
1700 (source
1701 (origin
1702 (method git-fetch)
1703 (uri (git-reference
1704 (url "https://github.com/spf13/pflag.git")
1705 (commit commit)))
1706 (file-name (git-file-name name version))
1707 (sha256
1708 (base32
1709 "12vrlcsbwjqlfc49rwky45mbcj74c0kb6z54354pzas6fwzyi1kc"))))
1710 (build-system go-build-system)
1711 (arguments
1712 '(#:import-path "github.com/spf13/pflag"))
1713 (home-page "https://github.com/spf13/pflag")
1714 (synopsis "Replacement for Go's @code{flag} package")
1715 (description
1716 "Pflag is library to replace Go's @code{flag} package. It implements
1717POSIX/GNU-style command-line options with double hyphens. It is is compatible
1718with the
1719@uref{https://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html,
1720GNU extensions} to the POSIX recommendations for command-line options.")
1721 (license license:bsd-3))))
7427b2c6
PAR
1722
1723(define-public go-github-com-sirupsen-logrus
1724 (package
1725 (name "go-github-com-sirupsen-logrus")
1726 (version "1.0.5")
1727 (source
1728 (origin
1729 (method git-fetch)
1730 (uri (git-reference
1731 (url "https://github.com/sirupsen/logrus.git")
1732 (commit (string-append "v" version))))
1733 (sha256
1734 (base32
1735 "0g5z7al7kky11ai2dhac6gkp3b5pxsvx72yj3xg4wg3265gbn7yz"))))
1736 (build-system go-build-system)
1737 (native-inputs
1738 `(("go-golang-org-x-crypto-ssh-terminal"
1739 ,go-golang-org-x-crypto-ssh-terminal)
1740 ("go-github-com-stretchr-testify"
1741 ,go-github-com-stretchr-testify)
1742 ("go-golang-org-x-sys-unix"
1743 ,go-golang-org-x-sys-unix)))
1744 (arguments
1745 '(#:tests? #f ;FIXME missing dependencies
1746 #:import-path "github.com/sirupsen/logrus"))
1747 (home-page "https://github.com/sirupsen/logrus")
1748 (synopsis "Structured, pluggable logging for Go")
1749 (description "Logrus is a structured logger for Go, completely API
1750compatible with the standard library logger.")
1751 (license license:expat)))
5cc2b845
LF
1752
1753(define-public go-github-com-kardianos-osext
1754 (let ((commit "ae77be60afb1dcacde03767a8c37337fad28ac14")
1755 (revision "1"))
1756 (package
1757 (name "go-github-com-kardianos-osext")
1758 (version (git-version "0.0.0" revision commit))
1759 (source (origin
1760 (method git-fetch)
1761 (uri (git-reference
1762 (url "https://github.com/kardianos/osext")
1763 (commit commit)))
1764 (file-name (git-file-name name version))
1765 (sha256
1766 (base32
1767 "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz"))))
1768 (build-system go-build-system)
1769 (arguments
1770 `(#:import-path "github.com/kardianos/osext"
1771 ;; The tests are flaky:
1772 ;; <https://github.com/kardianos/osext/issues/21>
1773 #:tests? #f))
1774 (synopsis "Find the running executable")
1775 (description "Osext provides a method for finding the current executable
1776file that is running. This can be used for upgrading the current executable or
1777finding resources located relative to the executable file.")
1778 (home-page "https://github.com/kardianos/osext")
1779 (license license:bsd-3))))
aed4944d
PAR
1780
1781(define-public go-github-com-ayufan-golang-kardianos-service
1782 (let ((commit "0c8eb6d8fff2e2fb884a7bfd23e183fb63c0eff3")
1783 (revision "0"))
1784 (package
1785 (name "go-github-com-ayufan-golang-kardianos-service")
1786 (version (git-version "0.0.0" revision commit))
1787 (source
1788 (origin
1789 (method git-fetch)
1790 (uri (git-reference
1791 (url
1792 "https://github.com/ayufan/golang-kardianos-service.git")
1793 (commit commit)))
1794 (file-name (git-file-name name version))
1795 (sha256
1796 (base32
1797 "0x0cn7l5gda2khsfypix7adxd5yqighzn04mxjw6hc4ayrh7his5"))))
1798 (build-system go-build-system)
1799 (native-inputs
1800 `(("go-github-com-kardianos-osext"
1801 ,go-github-com-kardianos-osext)))
1802 (arguments
1803 '(#:tests? #f ;FIXME tests fail: Service is not running.
1804 #:import-path "github.com/ayufan/golang-kardianos-service"))
1805 (home-page "https://github.com/ayufan/golang-kardianos-service")
1806 (synopsis "Go interface to a variety of service supervisors")
1807 (description "This package provides @code{service}, a Go module that can
1808run programs as a service using a variety of supervisors, including systemd,
1809SysVinit, and more.")
1810 (license license:zlib))))
e2826118
PAR
1811
1812(define-public go-github-com-docker-distribution
1813 (let ((commit "325b0804fef3a66309d962357aac3c2ce3f4d329")
1814 (revision "0"))
1815 (package
1816 (name "go-github-com-docker-distribution")
1817 (version (git-version "0.0.0" revision commit))
1818 (source
1819 ;; FIXME: This bundles many things, see
1820 ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31881#41>.
1821 (origin
1822 (method git-fetch)
1823 (uri (git-reference
1824 (url "https://github.com/docker/distribution")
1825 (commit commit)))
1826 (file-name (git-file-name name version))
1827 (sha256
1828 (base32
1829 "1yg2zrikn3vkvkx5mn51p6bfjk840qdkn7ahhhvvcsc8mpigrjc6"))))
1830 (build-system go-build-system)
1831 (native-inputs
1832 `(("go-golang-org-x-sys-unix"
1833 ,go-golang-org-x-sys-unix)
1834 ("go-github-com-sirupsen-logrus"
1835 ,go-github-com-sirupsen-logrus)
1836 ("go-golang-org-x-crypto-ssh-terminal"
1837 ,go-golang-org-x-crypto-ssh-terminal)))
1838 (arguments
1839 '(#:import-path "github.com/docker/distribution"
1840 #:phases
1841 (modify-phases %standard-phases
1842 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1843 (lambda* (#:key outputs #:allow-other-keys)
1844 (map (lambda (file)
1845 (make-file-writable file))
1846 (find-files
1847 (assoc-ref outputs "out")
1848 ".*\\.gz$"))
1849 #t)))))
1850 (home-page
1851 "https://github.com/docker/distribution")
a95b6436 1852 (synopsis "This package is a Docker toolset to pack, ship, store, and
e2826118 1853deliver content")
a95b6436
VC
1854 (description "Docker Distribution is a Docker toolset to pack, ship,
1855store, and deliver content. It contains Docker Registry 2.0 and libraries
1856to interact with distribution components.")
e2826118 1857 (license license:asl2.0))))
01bcc94c
PAR
1858
1859(define-public go-github-com-docker-go-connections
1860 (let ((commit "3ede32e2033de7505e6500d6c868c2b9ed9f169d")
1861 (revision "0"))
1862 (package
1863 (name "go-github-com-docker-go-connections")
1864 (version (git-version "0.0.0" revision commit))
1865 (source
1866 (origin
1867 (method git-fetch)
1868 (uri (git-reference
1869 (url "https://github.com/docker/go-connections.git")
1870 (commit commit)))
1871 (file-name (git-file-name name version))
1872 (sha256
1873 (base32
1874 "0v1pkr8apwmhyzbjfriwdrs1ihlk6pw7izm57r24mf9jdmg3fyb0"))))
1875 (build-system go-build-system)
1876 (arguments
1877 '(#:import-path "github.com/docker/go-connections"))
1878 (home-page "https://github.com/docker/go-connections")
1879 (synopsis "Networking library for Go")
1880 (description
f0b32cea 1881 "This package provides a library to work with network connections in
01bcc94c
PAR
1882the Go language. In particular it provides tools to deal with network address
1883translation (NAT), proxies, sockets, and transport layer security (TLS).")
1884 (license license:asl2.0))))
af132bcc
PAR
1885
1886(define-public go-github-com-docker-machine
1887 (let ((commit "7b7a141da84480342357c51838be142bf183b095")
1888 (revision "0"))
1889 (package
1890 (name "go-github-com-docker-machine")
1891 (version (git-version "0.0.0" revision commit))
1892 (source
1893 (origin
1894 (method git-fetch)
1895 (uri (git-reference
1896 (url "https://github.com/docker/machine.git")
1897 (commit commit)))
1898 (file-name (git-file-name name version))
1899 (sha256
1900 (base32
1901 "0bavk0lvs462yh0lnmnxi9psi5qv1x3nvzmd2b0drsahlp1gxi8s"))))
1902 (build-system go-build-system)
1903 (arguments
1904 '(#:import-path "github.com/docker/machine"))
1905 (home-page "https://github.com/docker/machine")
1906 (synopsis "Machine management for a container-centric world")
1907 (description
1908 "@dfn{Machine} lets you create Docker hosts on your computer, on
1909hosting providers, and inside your data center. It creates servers, installs
1910Docker on them, then configures the Docker client to talk to them.")
1911 (license license:asl2.0))))
d850e7a0
PAR
1912
1913(define-public go-github-com-gorhill-cronexpr
1914 (let ((commit "f0984319b44273e83de132089ae42b1810f4933b")
1915 (revision "0"))
1916 (package
1917 (name "go-github-com-gorhill-cronexpr")
1918 (version (git-version "0.0.0" revision commit))
1919 (source
1920 (origin
1921 (method git-fetch)
1922 (uri (git-reference
1923 (url "https://github.com/gorhill/cronexpr.git")
1924 (commit commit)))
1925 (file-name (git-file-name name version))
1926 (sha256
1927 (base32
1928 "0dphhhqy3i7265znv3m8n57l80dmaq6z4hsj5kgd87qd19z8x0l2"))))
1929 (build-system go-build-system)
1930 (arguments
1931 '(#:import-path "github.com/gorhill/cronexpr"))
1932 (home-page "https://github.com/gorhill/cronexpr")
1933 (synopsis "Cron expression parser in the Go language")
1934 (description
1935 "This package provides a cron expression parser in the Go language.
1936Given a cron expression and a time stamp, you can get the next time stamp
1937which satisfies the cron expression.")
1938 (license (list license:gpl3+
1939 license:asl2.0)))))
abd47216
PAR
1940
1941(define-public go-gopkg-in-check-v1
a2dbcfdd
LF
1942 (let ((commit "788fd78401277ebd861206a03c884797c6ec5541")
1943 (revision "1"))
abd47216
PAR
1944 (package
1945 (name "go-gopkg-in-check-v1")
a2dbcfdd 1946 (version (git-version "1.0.0" revision commit))
abd47216
PAR
1947 (source
1948 (origin
1949 (method git-fetch)
1950 (uri (git-reference
1951 (url "https://github.com/go-check/check")
1952 (commit commit)))
1953 (file-name (git-file-name name version))
1954 (sha256
1955 (base32
a2dbcfdd 1956 "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a"))))
abd47216
PAR
1957 (build-system go-build-system)
1958 (arguments
1959 '(#:import-path "gopkg.in/check.v1"))
a2dbcfdd
LF
1960 (propagated-inputs
1961 `(("go-github-com-kr-pretty" ,go-github-com-kr-pretty)))
abd47216
PAR
1962 (home-page "https://gopkg.in/check.v1")
1963 (synopsis "Test framework for the Go language")
a2dbcfdd 1964 (description "This package provides a test library for the Go language.")
abd47216 1965 (license license:asl2.0))))
d2c5e912
PAR
1966
1967(define-public go-gopkg-in-yaml-v2
c17e69b3
LF
1968 (package
1969 (name "go-gopkg-in-yaml-v2")
1970 (version "2.2.2")
1971 (source
1972 (origin
1973 (method git-fetch)
1974 (uri (git-reference
1975 (url "https://gopkg.in/yaml.v2.git")
1976 (commit (string-append "v" version))))
1977 (file-name (git-file-name name version))
1978 (sha256
1979 (base32
1980 "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa"))))
1981 (build-system go-build-system)
1982 (arguments
1983 '(#:import-path "gopkg.in/yaml.v2"))
1984 (native-inputs
1985 `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
1986 (home-page "https://gopkg.in/yaml.v2")
1987 (synopsis "YAML reader and writer for the Go language")
1988 (description
1989 "This package provides a Go library for encode and decode YAML
d2c5e912 1990values.")
c17e69b3 1991 (license license:asl2.0)))
3291be81
PN
1992
1993(define-public go-github-com-mattn-go-isatty
24e3520d
LF
1994 (package
1995 (name "go-github-com-mattn-go-isatty")
36bb1d5a 1996 (version "0.0.7")
24e3520d
LF
1997 (source
1998 (origin
1999 (method git-fetch)
2000 (uri (git-reference
2001 (url "https://github.com/mattn/go-isatty")
2002 (commit (string-append "v" version))))
2003 (file-name (git-file-name name version))
2004 (sha256
2005 (base32
36bb1d5a 2006 "1i77aq4gf9as03m8fpfh8fq49n4z9j7548blrcsidm1xhslzk5xd"))))
24e3520d 2007 (build-system go-build-system)
36bb1d5a
LF
2008 (propagated-inputs
2009 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
24e3520d
LF
2010 (arguments
2011 '(#:import-path "github.com/mattn/go-isatty"))
2012 (home-page "https://github.com/mattn/go-isatty")
2013 (synopsis "Provide @code{isatty} for Golang")
2014 (description "This package provides @code{isatty}, a Go module that can
3291be81
PN
2015tell you whether a file descriptor points to a terminal and the type of the
2016terminal.")
24e3520d 2017 (license license:expat)))
7601b4e4
PN
2018
2019(define-public go-github-com-mattn-go-colorable
2020 (let ((commit "efa589957cd060542a26d2dd7832fd6a6c6c3ade")
2021 (revision "0"))
2022 (package
2023 (name "go-github-com-mattn-go-colorable")
2024 (version (git-version "0.0.0" revision commit))
2025 (source
2026 (origin
2027 (method git-fetch)
2028 (uri (git-reference
2029 (url "https://github.com/mattn/go-colorable")
2030 (commit commit)))
2031 (file-name (git-file-name name version))
2032 (sha256
2033 (base32
2034 "0kshi4hvm0ayrsxqxy0599iv81kryhd2fn9lwjyczpj593cq069r"))))
2035 (build-system go-build-system)
2036 (native-inputs
2037 `(("go-github-com-mattn-go-isatty"
2038 ,go-github-com-mattn-go-isatty)))
2039 (arguments
2040 '(#:import-path "github.com/mattn/go-colorable"))
2041 (home-page "https://github.com/mattn/go-colorable")
2042 (synopsis "Handle ANSI color escapes on Windows")
2043 (description "This package provides @code{colorable}, a module that
2044makes it possible to handle ANSI color escapes on Windows.")
2045 (license license:expat))))
32cb1af6
PN
2046
2047(define-public go-github-com-mgutz-ansi
2048 (let ((commit "9520e82c474b0a04dd04f8a40959027271bab992")
2049 (revision "0"))
2050 (package
2051 (name "go-github-com-mgutz-ansi")
2052 (version (git-version "0.0.0" revision commit))
2053 (source
2054 (origin
2055 (method git-fetch)
2056 (uri (git-reference
2057 (url
2058 "https://github.com/mgutz/ansi")
2059 (commit commit)))
2060 (file-name (git-file-name name version))
2061 (sha256
2062 (base32
2063 "00bz22314j26736w1f0q4jy9d9dfaml17vn890n5zqy3cmvmww1j"))))
2064 (build-system go-build-system)
2065 (native-inputs
2066 `(("go-github-com-mattn-go-isatty"
2067 ,go-github-com-mattn-go-isatty)
2068 ("go-github-com-mattn-go-colorable"
2069 ,go-github-com-mattn-go-colorable)))
2070 (arguments
2071 '(#:import-path "github.com/mgutz/ansi"))
2072 (home-page "https://github.com/mgutz/ansi")
2073 (synopsis "Small, fast library to create ANSI colored strings and codes")
2074 (description "This package provides @code{ansi}, a Go module that can
2075generate ANSI colored strings.")
2076 (license license:expat))))
e25ddef5
PN
2077
2078(define-public go-github-com-aarzilli-golua
2079 (let ((commit "03fc4642d792b1f2bc5e7343b403cf490f8c501d")
2080 (revision "0"))
2081 (package
2082 (name "go-github-com-aarzilli-golua")
2083 (version (git-version "0.0.0" revision commit))
2084 (source
2085 (origin
2086 (method git-fetch)
2087 (uri (git-reference
2088 (url
2089 "https://github.com/aarzilli/golua")
2090 (commit commit)))
2091 (file-name (git-file-name name version))
2092 (sha256
2093 (base32
2094 "1d9hr29i36cza98afj3g6rs3l7xbkprwzz0blcxsr9dd7nak20di"))))
2095 (build-system go-build-system)
5c475841
PN
2096 ;; From go-1.10 onward, "pkg" compiled libraries are not re-used, so
2097 ;; when this package required as input for another one, it will have to
2098 ;; be built again. Thus its CGO requirements must be made available in
2099 ;; the environment, that is, they must be propagated.
2100 (propagated-inputs
e25ddef5
PN
2101 `(("lua" ,lua)))
2102 (arguments
2103 `(#:unpack-path "github.com/aarzilli/golua"
2104 #:import-path "github.com/aarzilli/golua/lua"
2105 #:phases
2106 (modify-phases %standard-phases
5c475841
PN
2107 ;; While it's possible to fix the CGO_LDFLAGS with the "-tags"
2108 ;; command line argument, go-1.10+ does not re-use the produced pkg
2109 ;; for dependencies, which means we would need to propagate the
2110 ;; same "-tags" argument to all golua referrers. A substitution is
2111 ;; more convenient here. We also need to propagate the lua
2112 ;; dependency to make it available to referrers.
2113 (add-after 'unpack 'fix-lua-ldflags
2114 (lambda _
2115 (substitute* "src/github.com/aarzilli/golua/lua/lua.go"
2116 (("#cgo linux,!llua,!luaa LDFLAGS: -llua5.3")
2117 "#cgo linux,!llua,!luaa LDFLAGS: -llua")))))))
e25ddef5
PN
2118 (home-page "https://github.com/aarzilli/golua")
2119 (synopsis "Go Bindings for the Lua C API")
2120 (description "This package provides @code{lua}, a Go module that can
2121run a Lua virtual machine.")
2122 (license license:expat))))
f25e3b39
PN
2123
2124(define-public go-gitlab-com-ambrevar-golua-unicode
2125 (let ((commit "97ce517e7a1fe2407a90c317a9c74b173d396144")
2126 (revision "0"))
2127 (package
2128 (name "go-gitlab-com-ambrevar-golua-unicode")
2129 (version (git-version "0.0.0" revision commit))
2130 (source
2131 (origin
2132 (method git-fetch)
2133 (uri (git-reference
2134 (url
2135 "https://gitlab.com/ambrevar/golua")
2136 (commit commit)))
2137 (file-name (git-file-name name version))
2138 (sha256
2139 (base32
2140 "1izcp7p8nagjwqd13shb0020w7xhppib1a3glw2d1468bflhksnm"))))
2141 (build-system go-build-system)
2142 (native-inputs
2143 `(("lua" ,lua)
2144 ("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
2145 (arguments
2146 `(#:unpack-path "gitlab.com/ambrevar/golua"
2147 #:import-path "gitlab.com/ambrevar/golua/unicode"
2148 #:phases
2149 (modify-phases %standard-phases
2150 (replace 'check
2151 (lambda* (#:key import-path #:allow-other-keys)
2152 (setenv "USER" "homeless-dude")
2153 (invoke "go" "test" import-path))))))
2154 (home-page "https://gitlab.com/ambrevar/golua")
2155 (synopsis "Add Unicode support to Golua")
2156 (description "This extension to Arzilli's Golua adds Unicode support to
2157all functions from the Lua string library. Lua patterns are replaced by Go
2158regexps. This breaks compatibility with Lua, but Unicode support breaks it
2159anyways and Go regexps are more powerful.")
2160 (license license:expat))))
b4d1440f
PN
2161
2162(define-public go-github-com-yookoala-realpath
2163 (let ((commit "d19ef9c409d9817c1e685775e53d361b03eabbc8")
2164 (revision "0"))
2165 (package
2166 (name "go-github-com-yookoala-realpath")
2167 (version (git-version "0.0.0" revision commit))
2168 (source
2169 (origin
2170 (method git-fetch)
2171 (uri (git-reference
2172 (url
2173 "https://github.com/yookoala/realpath")
2174 (commit commit)))
2175 (file-name (git-file-name name version))
2176 (sha256
2177 (base32
2178 "0qvz1dcdldf53rq69fli76z5k1vr7prx9ds1d5rpzgs68kwn40nw"))))
2179 (build-system go-build-system)
2180 (arguments
2181 `(#:import-path "github.com/yookoala/realpath"))
2182 (home-page "https://github.com/yookoala/realpath")
2183 (synopsis "@code{realpath} for Golang")
2184 (description "This package provides @code{realpath}, a Go module that
2185when provided with a valid relative path / alias path, it will return you with
2186a string of its real absolute path in the system.")
0e11f5da 2187 (license license:expat))))
54b83f0e
PN
2188
2189(define-public go-gitlab-com-ambrevar-damerau
2190 (let ((commit "883829e1f25fad54015772ea663e69017cf22352")
2191 (revision "0"))
2192 (package
2193 (name "go-gitlab-com-ambrevar-damerau")
2194 (version (git-version "0.0.0" revision commit))
2195 (source
2196 (origin
2197 (method git-fetch)
2198 (uri (git-reference
2199 (url
2200 "https://gitlab.com/ambrevar/damerau")
2201 (commit commit)))
2202 (file-name (git-file-name name version))
2203 (sha256
2204 (base32
2205 "1b9p8fypc914ij1afn6ir346zsgfqrc5mqc1k3d53n4snypq27qv"))))
2206 (build-system go-build-system)
2207 (arguments
2208 `(#:import-path "gitlab.com/ambrevar/damerau"))
2209 (home-page "https://gitlab.com/ambrevar/damerau")
2210 (synopsis "Damerau-Levenshtein distance for Golang")
2211 (description "This is a spelling corrector implementing the
2212Damerau-Levenshtein distance. Takes a string value input from the user.
2213Looks for an identical word on a list of words, if none is found, look for a
2214similar word.")
2215 (license license:expat))))
c4962817
PN
2216
2217(define-public go-github-com-stevedonovan-luar
2218 (let ((commit "22d247e5366095f491cd83edf779ee99a78f5ead")
2219 (revision "0"))
2220 (package
2221 (name "go-github-com-stevedonovan-luar")
2222 (version (git-version "0.0.0" revision commit))
2223 (source
2224 (origin
2225 (method git-fetch)
2226 (uri (git-reference
2227 (url
2228 "https://github.com/stevedonovan/luar")
2229 (commit commit)))
2230 (file-name (git-file-name name version))
2231 (sha256
2232 (base32
2233 "1acjgw9cz1l0l9mzkyk7irz6cfk31wnxgbwa805fvm1rqcjzin2c"))))
2234 (build-system go-build-system)
2235 (native-inputs
2236 `(("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
2237 (arguments
2238 `(#:tests? #f ; Upstream tests are broken.
2239 #:import-path "github.com/stevedonovan/luar"))
2240 (home-page "https://github.com/stevedonovan/luar")
2241 (synopsis "Lua reflection bindings for Go")
2242 (description "Luar is designed to make using Lua from Go more
2243convenient. Go structs, slices and maps can be automatically converted to Lua
2244tables and vice-versa. The resulting conversion can either be a copy or a
2245proxy. In the latter case, any change made to the result will reflect on the
2246source.
2247
2248Any Go function can be made available to Lua scripts, without having to write
2249C-style wrappers.
2250
2251Luar support cyclic structures (lists, etc.).
2252
2253User-defined types can be made available to Lua as well: their exported
2254methods can be called and usual operations such as indexing or arithmetic can
2255be performed.")
2256 (license license:expat))))
bc3138d2 2257
9630ae34
PN
2258(define-public go-github-com-michiwend-golang-pretty
2259 (let ((commit "8ac61812ea3fa540f3f141a444fcb0dd713cdca4")
2260 (revision "0"))
2261 (package
2262 (name "go-github-com-michiwend-golang-pretty")
2263 (version (git-version "0.0.0" revision commit))
2264 (source
2265 (origin
2266 (method git-fetch)
2267 (uri (git-reference
2268 (url
2269 "https://github.com/michiwend/golang-pretty")
2270 (commit commit)))
2271 (file-name (git-file-name name version))
2272 (sha256
2273 (base32
2274 "0rjfms0csjqi91xnddzx3rcrcaikc7xc027617px3kdwdap80ir4"))))
2275 (build-system go-build-system)
2276 (native-inputs
2277 `(("go-github-com-kr-text" ,go-github-com-kr-text)))
2278 (arguments
2279 `(#:tests? #f ; Upstream tests seem to be broken.
2280 #:import-path "github.com/michiwend/golang-pretty"))
2281 (home-page "https://github.com/michiwend/golang-pretty")
2282 (synopsis "Pretty printing for Go values")
2283 (description "Package @code{pretty} provides pretty-printing for Go
2284values. This is useful during debugging, to avoid wrapping long output lines
2285in the terminal.
2286
2287It provides a function, @code{Formatter}, that can be used with any function
2288that accepts a format string. It also provides convenience wrappers for
2289functions in packages @code{fmt} and @code{log}.")
2290 (license license:expat))))
62879d22
PN
2291
2292(define-public go-github-com-michiwend-gomusicbrainz
2293 (let ((commit "0cdeb13f9b24d2c714feb7e3c63d595cf7121d7d")
2294 (revision "0"))
2295 (package
2296 (name "go-github-com-michiwend-gomusicbrainz")
2297 (version (git-version "0.0.0" revision commit))
2298 (source
2299 (origin
2300 (method git-fetch)
2301 (uri (git-reference
2302 (url
2303 "https://github.com/michiwend/gomusicbrainz")
2304 (commit commit)))
2305 (file-name (git-file-name name version))
2306 (sha256
2307 (base32
2308 "1li9daw0kghb80rdmxbh7g72qhxcvx3rvhwq5gs0jrr9hb8pjvcn"))))
2309 (build-system go-build-system)
2310 (native-inputs
2311 `(("go-github-com-michiwend-golang-pretty" ,go-github-com-michiwend-golang-pretty)
2312 ("go-github-com-kr-text" ,go-github-com-kr-text)))
2313 (arguments
2314 `(#:import-path "github.com/michiwend/gomusicbrainz"))
2315 (home-page "https://github.com/michiwend/gomusicbrainz")
2316 (synopsis "MusicBrainz WS2 client library for Golang")
2317 (description "Currently GoMusicBrainz provides methods to perform search
2318and lookup requests. Browse requests are not supported yet.")
2319 (license license:expat))))
53182924
PN
2320
2321(define-public go-github-com-wtolson-go-taglib
2322 (let ((commit "6e68349ff94ecea412de7e748cb5eaa26f472777")
2323 (revision "0"))
2324 (package
2325 (name "go-github-com-wtolson-go-taglib")
2326 (version (git-version "0.0.0" revision commit))
2327 (source
2328 (origin
2329 (method git-fetch)
2330 (uri (git-reference
2331 (url
2332 "https://github.com/wtolson/go-taglib")
2333 (commit commit)))
2334 (file-name (git-file-name name version))
2335 (sha256
2336 (base32
2337 "1cpjqnrviwflz150g78iir5ndrp3hh7a93zbp4dwbg6sb2q141p2"))))
2338 (build-system go-build-system)
46a4ae22
PN
2339 ;; From go-1.10 onward, "pkg" compiled libraries are not re-used, so
2340 ;; when this package required as input for another one, it will have to
2341 ;; be built again. Thus its CGO requirements must be made available in
2342 ;; the environment, that is, they must be propagated.
2343 (propagated-inputs
53182924
PN
2344 `(("pkg-config" ,pkg-config)
2345 ("taglib" ,taglib)))
2346 (arguments
46a4ae22
PN
2347 `(#:import-path "github.com/wtolson/go-taglib"
2348 ;; Tests don't pass "vet" on go-1.11. See
2349 ;; https://github.com/wtolson/go-taglib/issues/12.
2350 #:phases
2351 (modify-phases %standard-phases
2352 (replace 'check
2353 (lambda* (#:key import-path #:allow-other-keys)
2354 (invoke "go" "test"
2355 "-vet=off"
2356 import-path))))))
53182924
PN
2357 (home-page "https://github.com/wtolson/go-taglib")
2358 (synopsis "Go wrapper for taglib")
2359 (description "Go wrapper for taglib")
2360 (license license:unlicense))))
5787e152 2361
5787e152 2362(define-public go-github-com-gogo-protobuf
2f9bbd8e
LF
2363 (package
2364 (name "go-github-com-gogo-protobuf")
2365 (version "1.2.1")
2366 (source (origin
2367 (method git-fetch)
2368 (uri (git-reference
2369 (url "https://github.com/gogo/protobuf")
2370 (commit (string-append "v" version))))
2371 (file-name (git-file-name name version))
2372 (sha256
2373 (base32
2374 "06yqa6h0kw3gr5pc3qmas7f7435a96zf7iw7p0l00r2hqf6fqq6m"))))
2375 (build-system go-build-system)
2376 (arguments
2377 `(#:import-path "github.com/gogo/protobuf/proto"
2378 #:unpack-path "github.com/gogo/protobuf"))
2379 (synopsis "Protocol Buffers for Go with Gadgets")
2380 (description "Gogoprotobuf is a fork of golang/protobuf with extra code
5787e152
PN
2381generation features. This code generation is used to achieve:
2382@itemize
2383@item fast marshalling and unmarshalling
2384@item more canonical Go structures
2385@item goprotobuf compatibility
2386@item less typing by optionally generating extra helper code
2387@item peace of mind by optionally generating test and benchmark code
2388@item other serialization formats
2389@end itemize")
2f9bbd8e
LF
2390 (home-page "https://github.com/gogo/protobuf")
2391 (license license:bsd-3)))
5787e152
PN
2392
2393(define-public go-github-com-gogo-protobuf-protoc-gen-gogo
2f9bbd8e
LF
2394 (package
2395 (name "go-github-com-gogo-protobuf-protoc-gen-gogo")
2396 (version "1.2.1")
2397 (source (origin
2398 (method git-fetch)
2399 (uri (git-reference
2400 (url "https://github.com/gogo/protobuf")
2401 (commit (string-append "v" version))))
2402 (file-name (git-file-name name version))
2403 (sha256
2404 (base32
2405 "06yqa6h0kw3gr5pc3qmas7f7435a96zf7iw7p0l00r2hqf6fqq6m"))))
2406 (build-system go-build-system)
2407 (arguments
2408 `(#:import-path "github.com/gogo/protobuf/protoc-gen-gogo"
2409 #:unpack-path "github.com/gogo/protobuf"
2410 #:tests? #f)) ; Requires the unpackaged 'protoc-min-version'
2411 (synopsis "Protocol Buffers for Go with Gadgets")
2412 (description "Gogoprotobuf is a fork of golang/protobuf with extra code
5787e152
PN
2413generation features. This code generation is used to achieve:
2414@itemize
2415@item fast marshalling and unmarshalling
2416@item more canonical Go structures
2417@item goprotobuf compatibility
2418@item less typing by optionally generating extra helper code
2419@item peace of mind by optionally generating test and benchmark code
2420@item other serialization formats
2421@end itemize")
2f9bbd8e
LF
2422 (home-page "https://github.com/gogo/protobuf")
2423 (license license:bsd-3)))
5787e152 2424
e3f14f47
LF
2425(define-public go-github-com-gogo-protobuf-gogoproto
2426 (package
2427 (name "go-github-com-gogo-protobuf-gogoproto")
2428 (version "1.2.1")
2429 (source
2430 (origin
2431 (method git-fetch)
2432 (uri (git-reference
2433 (url "https://github.com/gogo/protobuf.git")
2434 (commit (string-append "v" version))))
2435 (file-name (git-file-name name version))
2436 (sha256
2437 (base32
2438 "06yqa6h0kw3gr5pc3qmas7f7435a96zf7iw7p0l00r2hqf6fqq6m"))))
2439 (build-system go-build-system)
2440 (arguments
2441 '(#:unpack-path "github.com/gogo/protobuf"
2442 #:import-path "github.com/gogo/protobuf/gogoproto"))
2443 (home-page "https://github.com/gogo/protobuf")
2444 (synopsis "Extensions to protocol buffers")
2445 (description "This package provides extensions to the Gogo protocol buffers
2446implementation.")
2447 (license license:bsd-3)))
2448
5787e152 2449(define-public go-github-com-gogo-protobuf-proto
2f9bbd8e
LF
2450 (package
2451 (name "go-github-com-gogo-protobuf-proto")
2452 (version "1.2.1")
2453 (source
2454 (origin
2455 (method git-fetch)
2456 (uri (git-reference
2457 (url "https://github.com/gogo/protobuf.git")
2458 (commit (string-append "v" version))))
2459 (file-name (git-file-name name version))
2460 (sha256
2461 (base32
2462 "06yqa6h0kw3gr5pc3qmas7f7435a96zf7iw7p0l00r2hqf6fqq6m"))))
2463 (build-system go-build-system)
2464 (arguments
2465 '(#:unpack-path "github.com/gogo/protobuf"
2466 #:import-path "github.com/gogo/protobuf/proto"))
2467 (home-page "https://github.com/gogo/protobuf")
2468 (synopsis "Protocol buffers component")
2469 (description "This is a component of the Gogo protocol buffers
2470implementation.")
2471 (license license:bsd-3)))
386bd7ba
PN
2472
2473(define-public go-github-com-libp2p-go-flow-metrics
2474 (let ((commit "7e5a55af485341567f98d6847a373eb5ddcdcd43")
2475 (revision "0"))
2476 (package
2477 (name "go-github-com-libp2p-go-flow-metrics")
2478 (version (git-version "0.2.0" revision commit))
2479 (source
2480 (origin
2481 (method git-fetch)
2482 (uri (git-reference
2483 (url "https://github.com/libp2p/go-flow-metrics.git")
2484 (commit commit)))
2485 (file-name (git-file-name name version))
2486 (sha256
2487 (base32
2488 "1p87iyk6q6f3g3xkncssx400qlld8f2z93qiz8m1f97grfyhjif1"))))
2489 (build-system go-build-system)
2490 (arguments
2491 `(#:import-path "github.com/libp2p/go-flow-metrics"
2492 ;; TODO: Tests hang.
2493 #:tests? #f))
2494 (home-page
2495 "https://github.com/libp2p/go-flow-metrics")
2496 (synopsis "Simple library for tracking flow metrics")
2497 (description "A simple alternative to rcrowley's @command{go-metrics}
2498that's a lot faster (and only does simple bandwidth metrics).")
2499 (license license:expat))))
6a95e3a3
PN
2500
2501(define-public go-github-com-davecgh-go-spew
2502 (let ((commit "d8f796af33cc11cb798c1aaeb27a4ebc5099927d")
2503 (revision "0"))
2504 (package
2505 (name "go-github-com-davecgh-go-spew")
2506 (version (git-version "0.0.0" revision commit))
2507 (source
2508 (origin
2509 (method git-fetch)
2510 (uri (git-reference
2511 (url "https://github.com/davecgh/go-spew.git")
2512 (commit commit)))
2513 (file-name (git-file-name name version))
2514 (sha256
2515 (base32
2516 "19z27f306fpsrjdvkzd61w1bdazcdbczjyjck177g33iklinhpvx"))))
2517 (build-system go-build-system)
2518 (arguments
2519 '(#:unpack-path "github.com/davecgh/go-spew"
2520 #:import-path "github.com/davecgh/go-spew/spew"))
2521 (home-page "https://github.com/davecgh/go-spew")
2522 (synopsis "Deep pretty printer for Go data structures to aid in debugging")
2523 (description "Package @command{spew} implements a deep pretty printer
2524for Go data structures to aid in debugging.
2525
2526A quick overview of the additional features spew provides over the built-in printing facilities for Go data types are as follows:
2527
2528@itemize
2529@item Pointers are dereferenced and followed.
2530@item Circular data structures are detected and handled properly.
2531@item Custom Stringer/error interfaces are optionally invoked, including on
2532unexported types.
2533@item Custom types which only implement the Stringer/error interfaces via a
2534pointer receiver are optionally invoked when passing non-pointer variables.
2535@item Byte arrays and slices are dumped like the hexdump -C command which
2536includes offsets, byte values in hex, and ASCII output (only when using Dump
2537style).
2538@end itemize\n")
2539 (license license:isc))))
171c3259
PN
2540
2541(define-public go-github-com-btcsuite-btclog
2542 (let ((commit "84c8d2346e9fc8c7b947e243b9c24e6df9fd206a")
2543 (revision "0"))
2544 (package
2545 (name "go-github-com-btcsuite-btclog")
2546 (version (git-version "0.0.3" revision commit))
2547 (source
2548 (origin
2549 (method git-fetch)
2550 (uri (git-reference
2551 (url "https://github.com/btcsuite/btclog.git")
2552 (commit commit)))
2553 (file-name (git-file-name name version))
2554 (sha256
2555 (base32
2556 "02dl46wcnfpg9sqvg0ipipkpnd7lrf4fnvb9zy56jqa7mfcwc7wk"))))
2557 (build-system go-build-system)
2558 (arguments
2559 '(#:import-path "github.com/btcsuite/btclog"))
2560 (home-page "https://github.com/btcsuite/btclog")
2561 (synopsis "Subsystem aware logger for Go")
2562 (description "Package @command{btclog} defines a logger interface and
2563provides a default implementation of a subsystem-aware leveled logger
2564implementing the same interface.")
2565 (license license:isc))))
d5599afa
PN
2566
2567(define-public go-github-com-btcsuite-btcd-btcec
2568 (let ((commit "67e573d211ace594f1366b4ce9d39726c4b19bd0")
2569 (revision "0"))
2570 (package
2571 (name "go-github-com-btcsuite-btcd-btcec")
2572 (version (git-version "0.12.0-beta" revision commit))
2573 (source
2574 (origin
2575 (method git-fetch)
2576 (uri (git-reference
2577 (url "https://github.com/btcsuite/btcd.git")
2578 (commit commit)))
2579 (file-name (git-file-name name version))
2580 (sha256
2581 (base32
2582 "04s92gsy71w1jirlr5lkk9y6r5cparbas7nmf6ywbp7kq7fn8ajn"))))
2583 (build-system go-build-system)
2584 (arguments
2585 '(#:unpack-path "github.com/btcsuite/btcd"
2586 #:import-path "github.com/btcsuite/btcd/btcec"))
2587 (native-inputs
2588 `(("go-github-com-davecgh-go-spew" ,go-github-com-davecgh-go-spew)))
2589 (home-page "https://github.com/btcsuite/btcd")
2590 (synopsis "Elliptic curve cryptography to work with Bitcoin")
2591 (description "Package @command{btcec} implements elliptic curve
2592cryptography needed for working with Bitcoin (secp256k1 only for now). It is
2593designed so that it may be used with the standard crypto/ecdsa packages
2594provided with Go. A comprehensive suite of test is provided to ensure proper
2595functionality. Package @command{btcec} was originally based on work from
2596ThePiachu which is licensed under the same terms as Go, but it has
2ec41781 2597significantly diverged since then. The @command{btcsuite} developers original
d5599afa
PN
2598is licensed under the liberal ISC license.
2599
2600Although this package was primarily written for btcd, it has intentionally
2601been designed so it can be used as a standalone package for any projects
2602needing to use secp256k1 elliptic curve cryptography.")
2603 (license license:isc))))
ff2d11c3
PN
2604
2605(define-public go-github-com-minio-sha256-simd
0c28ee8c
LF
2606 (let ((commit "cc1980cb03383b1d46f518232672584432d7532d")
2607 (revision "3"))
ff2d11c3
PN
2608 (package
2609 (name "go-github-com-minio-sha256-simd")
2610 (version (git-version "0.0.0" revision commit))
2611 (source
2612 (origin
2613 (method git-fetch)
2614 (uri (git-reference
2615 (url "https://github.com/minio/sha256-simd.git")
2616 (commit commit)))
2617 (file-name (git-file-name name version))
2618 (sha256
2619 (base32
0c28ee8c 2620 "04fp98nal0wsb26zwhw82spn5camxslc68g3xp8g4af9w6k9g31j"))))
ff2d11c3
PN
2621 (build-system go-build-system)
2622 (arguments
2623 '(#:import-path "github.com/minio/sha256-simd"))
2624 (home-page "https://github.com/minio/sha256-simd")
2625 (synopsis "Accelerate SHA256 computations in pure Go")
2626 (description "Accelerate SHA256 computations in pure Go using AVX512 and
2627AVX2 for Intel and ARM64 for ARM. On AVX512 it provides an up to 8x
2628improvement (over 3 GB/s per core) in comparison to AVX2.
2629
2630This package is designed as a replacement for @command{crypto/sha256}. For
2631Intel CPUs it has two flavors for AVX512 and AVX2 (AVX/SSE are also
2632supported). For ARM CPUs with the Cryptography Extensions, advantage is taken
2633of the SHA2 instructions resulting in a massive performance improvement.
2634
2635This package uses Golang assembly. The AVX512 version is based on the Intel's
2636\"multi-buffer crypto library for IPSec\" whereas the other Intel
2637implementations are described in \"Fast SHA-256 Implementations on Intel
2638Architecture Processors\" by J. Guilford et al.")
2639 (license license:asl2.0))))
71f36804
PN
2640
2641(define-public go-github-com-libp2p-go-libp2p-crypto
2642 (let ((commit "7240b40a3ddc47c4d17c15baabcbe45e5219171b")
2643 (revision "0"))
2644 (package
2645 (name "go-github-com-libp2p-go-libp2p-crypto")
2646 (version (git-version "2.0.1" revision commit))
2647 (source
2648 (origin
2649 (method git-fetch)
2650 (uri (git-reference
2651 (url "https://github.com/libp2p/go-libp2p-crypto.git")
2652 (commit commit)))
2653 (file-name (git-file-name name version))
2654 (sha256
2655 (base32
2656 "0qwpy57qv5143l9dlfwfvpqsxdd2i4zwnawx1w4pmgxxim3nw1wb"))))
2657 (build-system go-build-system)
2658 (arguments
2659 '(#:import-path "github.com/libp2p/go-libp2p-crypto"))
2660 (native-inputs
2661 `(("go-golang-org-x-crypto-ed25519" ,go-golang-org-x-crypto-ed25519)
2662 ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
2663 ("go-github-com-gogo-protobuf-proto" ,go-github-com-gogo-protobuf-proto)
2664 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)))
2665 (home-page
2666 "https://github.com/libp2p/go-libp2p-crypto")
2667 (synopsis "Various cryptographic utilities used by IPFS")
2668 (description "Various cryptographic utilities used by IPFS")
2669 (license license:expat))))
15272a50
PN
2670
2671(define-public go-github-com-mr-tron-base58
2672 (let ((commit "d724c80ecac7b49e4e562d58b2b4f4ee4ed8c312")
2673 (revision "0"))
2674 (package
2675 (name "go-github-com-mr-tron-base58")
2676 (version (git-version "1.1.0" revision commit))
2677 (source
2678 (origin
2679 (method git-fetch)
2680 (uri (git-reference
2681 (url "https://github.com/mr-tron/base58.git")
2682 (commit commit)))
2683 (file-name (git-file-name name version))
2684 (sha256
2685 (base32
2686 "12qhgnn9wf3c1ang16r4i778whk4wsrj7d90h2xgmz4fi1469rqa"))))
2687 (build-system go-build-system)
2688 (arguments
2689 `(#:unpack-path "github.com/mr-tron/base58"
2690 #:import-path "github.com/mr-tron/base58/base58"))
2691 (home-page "https://github.com/mr-tron/base58")
2692 (synopsis "Fast implementation of base58 encoding on Golang")
2693 (description "Fast implementation of base58 encoding on Golang. A
2694trivial @command{big.Int} encoding benchmark results in 6 times faster
2695encoding and 8 times faster decoding.")
2696 (license license:expat))))
27d59d8b
PN
2697
2698(define-public go-github-com-gxed-hashland-keccakpg
2699 (let ((commit "d9f6b97f8db22dd1e090fd0bbbe98f09cc7dd0a8")
2700 (revision "0"))
2701 (package
2702 (name "go-github-com-gxed-hashland-keccakpg")
2703 (version (git-version "0.0.0" revision commit))
2704 (source
2705 (origin
2706 (method git-fetch)
2707 (uri (git-reference
2708 (url "https://github.com/gxed/hashland.git")
2709 (commit commit)))
2710 (file-name (git-file-name name version))
2711 (sha256
2712 (base32
2713 "1q23y4lacsz46k9gmgfw4iwwydw36j2601rbidmmswl94grpc386"))))
2714 (build-system go-build-system)
2715 (arguments
2716 '(#:unpack-path "github.com/gxed/hashland"
2717 #:import-path "github.com/gxed/hashland/keccakpg"))
2718 (home-page "https://github.com/gxed/hashland")
2719 (synopsis "Implements the Keccak (SHA-3) hash algorithm in Go")
2720 (description "Package @command{keccak} implements the Keccak (SHA-3)
2721hash algorithm. See http://keccak.noekeon.org.")
2722 (license license:expat))))
90f2a848
PN
2723
2724(define-public go-github-com-minio-blake2b-simd
2725 (let ((commit "3f5f724cb5b182a5c278d6d3d55b40e7f8c2efb4")
2726 (revision "0"))
2727 (package
2728 (name "go-github-com-minio-blake2b-simd")
2729 (version (git-version "0.0.0" revision commit))
2730 (source
2731 (origin
2732 (method git-fetch)
2733 (uri (git-reference
2734 (url "https://github.com/minio/blake2b-simd.git")
2735 (commit commit)))
2736 (file-name (git-file-name name version))
2737 (sha256
2738 (base32
2739 "0b6jbnj62c0gmmfd4zdmh8xbg01p80f13yygir9xprqkzk6fikmd"))))
2740 (build-system go-build-system)
2741 (arguments
2742 '(#:import-path "github.com/minio/blake2b-simd"))
2743 (home-page "https://github.com/minio/blake2b-simd")
2744 (synopsis "Fast hashing in pure Go of BLAKE2b with SIMD instructions")
2745 (description "This package was initially based on the pure go BLAKE2b
2746implementation of Dmitry Chestnykh and merged with the (cgo dependent) AVX
2747optimized BLAKE2 implementation (which in turn is based on the official
2748implementation. It does so by using Go's Assembler for amd64 architectures
2749with a golang only fallback for other architectures.
2750
2751In addition to AVX there is also support for AVX2 as well as SSE. Best
2752performance is obtained with AVX2 which gives roughly a 4X performance
2753increase approaching hashing speeds of 1GB/sec on a single core.")
2754 (license license:asl2.0))))
9a7f1575
PN
2755
2756(define-public go-github-com-spaolacci-murmur3
2757 (let ((commit "f09979ecbc725b9e6d41a297405f65e7e8804acc")
2758 (revision "0"))
2759 (package
2760 (name "go-github-com-spaolacci-murmur3")
2761 (version (git-version "1.1" revision commit))
2762 (source
2763 (origin
2764 (method git-fetch)
2765 (uri (git-reference
2766 (url "https://github.com/spaolacci/murmur3.git")
2767 (commit commit)))
2768 (file-name (git-file-name name version))
2769 (sha256
2770 (base32
2771 "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25"))))
2772 (build-system go-build-system)
2773 (arguments
2774 '(#:import-path "github.com/spaolacci/murmur3"))
2775 (home-page "https://github.com/spaolacci/murmur3")
2776 (synopsis "Native MurmurHash3 Go implementation")
2777 (description "Native Go implementation of Austin Appleby's third
2778MurmurHash revision (aka MurmurHash3).
2779
2780Reference algorithm has been slightly hacked as to support the streaming mode
2781required by Go's standard Hash interface.")
2782 (license license:bsd-3))))
2e42e587
PN
2783
2784(define-public go-github-com-multiformats-go-multihash
2785 (let ((commit "97cdb562a04c6ef66d8ed40cd62f8fbcddd396d6")
2786 (revision "0"))
2787 (package
2788 (name "go-github-com-multiformats-go-multihash")
2789 (version (git-version "1.0.8" revision commit))
2790 (source
2791 (origin
2792 (method git-fetch)
2793 (uri (git-reference
2794 (url "https://github.com/multiformats/go-multihash.git")
2795 (commit commit)))
2796 (file-name (git-file-name name version))
2797 (sha256
2798 (base32
2799 "02wd9akrwy4y5m0nig9m24p14bjjgb4n1djydrq8cm4yhbvjrrk0"))))
2800 (build-system go-build-system)
2801 (arguments
2802 '(#:import-path "github.com/multiformats/go-multihash"))
2803 (native-inputs
2804 `(("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2805 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2806 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2807 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2808 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
9c359ff4
LF
2809 ("go-golang-org-x-crypto-blake2s" ,go-golang-org-x-crypto-blake2s)
2810 ("go-golang-org-x-crypto-sha3" ,go-golang-org-x-crypto-sha3)))
2e42e587
PN
2811 (home-page "https://github.com/multiformats/go-multihash")
2812 (synopsis "Multihash implementation in Go")
2813 (description "Multihash implementation in Go.")
2814 (license license:expat))))
1db1e3c7
PN
2815
2816(define-public go-github-com-libp2p-go-libp2p-peer
2817 (let ((commit "993d742bc29dcf4894b7730ba610fd78900be76c")
2818 (revision "0"))
2819 (package
2820 (name "go-github-com-libp2p-go-libp2p-peer")
2821 (version (git-version "2.3.8" revision commit))
2822 (source
2823 (origin
2824 (method git-fetch)
2825 (uri (git-reference
2826 (url "https://github.com/libp2p/go-libp2p-peer.git")
2827 (commit commit)))
2828 (file-name (git-file-name name version))
2829 (sha256
2830 (base32
2831 "1h96qjdi0i1wbr0jliap2903mycphas3ny0zdrm77yca9plcnphh"))))
2832 (build-system go-build-system)
2833 (arguments
2834 '(#:import-path "github.com/libp2p/go-libp2p-peer"))
2835 (native-inputs
2836 `(("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
2837 ("go-github-com-gogo-protobuf-proto" ,go-github-com-gogo-protobuf-proto)
2838 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2839 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2840 ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
2841 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2842 ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
2843 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2844 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
9c359ff4
LF
2845 ("go-golang-org-x-crypto-blake2s" ,go-golang-org-x-crypto-blake2s)
2846 ("go-golang-org-x-crypto-ed25519" ,go-golang-org-x-crypto-ed25519)
2847 ("go-golang-org-x-crypto-sha3" ,go-golang-org-x-crypto-sha3)))
1db1e3c7
PN
2848 (home-page "https://github.com/libp2p/go-libp2p-peer")
2849 (synopsis "PKI based identities for use in go-libp2p")
2850 (description "PKI based identities for use in @command{go-libp2p}.")
2851 (license license:expat))))
43a5c177
PN
2852
2853(define-public go-github-com-libp2p-go-libp2p-protocol
2854 (let ((commit "b29f3d97e3a2fb8b29c5d04290e6cb5c5018004b")
2855 (revision "0"))
2856 (package
2857 (name "go-github-com-libp2p-go-libp2p-protocol")
2858 (version (git-version "1.0.0" revision commit))
2859 (source
2860 (origin
2861 (method git-fetch)
2862 (uri (git-reference
2863 (url "https://github.com/libp2p/go-libp2p-protocol.git")
2864 (commit commit)))
2865 (file-name (git-file-name name version))
2866 (sha256
2867 (base32
2868 "1xgjfnx9zcqglg9li29wdqywsp8hz22wx6phns9zscni2jsfidld"))))
2869 (build-system go-build-system)
2870 (arguments
2871 '(#:import-path
2872 "github.com/libp2p/go-libp2p-protocol"))
2873 (home-page "https://github.com/libp2p/go-libp2p-protocol")
2874 (synopsis "Type for protocol strings in Golang")
2875 (description "Just a type for protocol strings. Nothing more.")
2876 (license license:expat))))
77d8a917
PN
2877
2878(define-public go-github-com-libp2p-go-libp2p-metrics
2879 (let ((commit "a10ff6e75dae3c868023867e8caa534a04bdc624")
2880 (revision "0"))
2881 (package
2882 (name "go-github-com-libp2p-go-libp2p-metrics")
2883 (version (git-version "2.1.6" revision commit))
2884 (source
2885 (origin
2886 (method git-fetch)
2887 (uri (git-reference
2888 (url "https://github.com/libp2p/go-libp2p-metrics.git")
2889 (commit commit)))
2890 (file-name (git-file-name name version))
2891 (sha256
2892 (base32
2893 "05wy0cq4h6yg9bzgapcvm2criwriicbswx80ma82gyn4a9fdrk8m"))))
2894 (build-system go-build-system)
2895 (arguments
2896 '(#:import-path "github.com/libp2p/go-libp2p-metrics"))
2897 (native-inputs
2898 `(("go-github-com-libp2p-go-flow-metrics" ,go-github-com-libp2p-go-flow-metrics)
2899 ("go-github-com-libp2p-go-libp2p-peer" ,go-github-com-libp2p-go-libp2p-peer)
2900 ("go-github-com-libp2p-go-libp2p-protocol" ,go-github-com-libp2p-go-libp2p-protocol)
2901 ("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
2902 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2903 ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
2904 ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
2905 ("go-github-com-gogo-protobuf-proto" ,go-github-com-gogo-protobuf-proto)
2906 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2907 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2908 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2909 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
9c359ff4
LF
2910 ("go-golang-org-x-crypto-sha3" ,go-golang-org-x-crypto-sha3)
2911 ("go-golang-org-x-crypto-ed25519" ,go-golang-org-x-crypto-ed25519)
2912 ("go-golang-org-x-crypto-blake2s" ,go-golang-org-x-crypto-blake2s)))
77d8a917
PN
2913 (home-page "https://github.com/libp2p/go-libp2p-metrics")
2914 (synopsis "Connection wrapper for go-libp2p that provides bandwidth metrics")
2915 (description "A connection wrapper for @command{go-libp2p} that provides bandwidth
2916statistics for wrapped connections.")
2917 (license license:expat))))
8cb91281
PN
2918
2919(define-public go-github-com-mitchellh-go-homedir
2920 (let ((commit "ae18d6b8b3205b561c79e8e5f69bff09736185f4")
2921 (revision "0"))
2922 (package
2923 (name "go-github-com-mitchellh-go-homedir")
2924 (version (git-version "1.0.0" revision commit))
2925 (source
2926 (origin
2927 (method git-fetch)
2928 (uri (git-reference
2929 (url "https://github.com/mitchellh/go-homedir.git")
2930 (commit commit)))
2931 (file-name (git-file-name name version))
2932 (sha256
2933 (base32
2934 "0f0z0aa4wivk4z1y503dmnw0k0g0g403dly8i4q263gfshs82sbq"))))
2935 (build-system go-build-system)
2936 (arguments
2937 (quote (#:import-path "github.com/mitchellh/go-homedir"
2938 ;; TODO: Tests fail because it tries to access home.
2939 #:tests? #f)))
2940 (home-page "https://github.com/mitchellh/go-homedir")
2941 (synopsis "Go library for detecting and expanding the user's home directory without cgo")
2942 (description "This is a Go library for detecting the user's home
2943directory without the use of @command{cgo}, so the library can be used in
2944cross-compilation environments.
2945
2946Usage is simple, just call homedir.Dir() to get the home directory for a user,
2947and homedir.Expand() to expand the @command{~} in a path to the home
2948directory.
2949
2950Why not just use @command{os/user}? The built-in @command{os/user} package
2951requires cgo on Darwin systems. This means that any Go code that uses that
2952package cannot cross compile. But 99% of the time the use for
2953@command{os/user} is just to retrieve the home directory, which we can do for
2954the current user without cgo. This library does that, enabling
2955cross-compilation.")
2956 (license license:expat))))
e53121b3
PN
2957
2958(define-public go-github-com-multiformats-go-multiaddr
2959 (let ((commit "fe1c46f8be5af4aff4db286e08839295bd922efb")
2960 (revision "0"))
2961 (package
2962 (name "go-github-com-multiformats-go-multiaddr")
2963 (version (git-version "1.3.0" revision commit))
2964 (source
2965 (origin
2966 (method git-fetch)
2967 (uri (git-reference
2968 (url "https://github.com/multiformats/go-multiaddr.git")
2969 (commit commit)))
2970 (file-name (git-file-name name version))
2971 (sha256
2972 (base32
2973 "0p5f8h098a4yjjmzsgqs7vhx1iqifb8izwg3559cr4h7clkpzznh"))))
2974 (build-system go-build-system)
2975 (arguments
2976 '(#:import-path
2977 "github.com/multiformats/go-multiaddr"))
2978 (native-inputs
2979 `(("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
2980 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2981 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2982 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2983 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2984 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
9c359ff4
LF
2985 ("go-golang-org-x-crypto-sha3" ,go-golang-org-x-crypto-sha3)
2986 ("go-golang-org-x-crypto-blake2s" ,go-golang-org-x-crypto-blake2s)))
e53121b3
PN
2987 (home-page "https://github.com/multiformats/go-multiaddr")
2988 (synopsis "Composable and future-proof network addresses")
2989 (description "Multiaddr is a standard way to represent addresses that
2990does the following:
2991
2992@itemize
2993@item Support any standard network protocols.
2994@item Self-describe (include protocols).
2995@item Have a binary packed format.
2996@item Have a nice string representation.
2997@item Encapsulate well.
2998@end itemize\n")
2999 (license license:expat))))
66fb6e29
PN
3000
3001(define-public go-github-com-multiformats-go-multiaddr-net
3002 (let ((commit "1cb9a0e8a6de3c8a10f6cee60d01d793603c4f7e")
3003 (revision "0"))
3004 (package
3005 (name "go-github-com-multiformats-go-multiaddr-net")
3006 (version (git-version "1.6.3" revision commit))
3007 (source
3008 (origin
3009 (method git-fetch)
3010 (uri (git-reference
3011 (url "https://github.com/multiformats/go-multiaddr-net.git")
3012 (commit commit)))
3013 (file-name (git-file-name name version))
3014 (sha256
3015 (base32
3016 "1ypgi47xdz3bh8lh7f8cmk7w3ql9g4izx5l3kzdg9gda1xn5zxq3"))))
3017 (build-system go-build-system)
3018 (arguments
3019 (quote (#:import-path "github.com/multiformats/go-multiaddr-net"
3020 ;; TODO: Tests fail because they try to access the network.
3021 #:tests? #f)))
3022 (native-inputs
3023 `(("go-github-com-multiformats-go-multiaddr" ,go-github-com-multiformats-go-multiaddr)
3024 ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
3025 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
3026 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
3027 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
3028 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
3029 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
9c359ff4
LF
3030 ("go-golang-org-x-crypto-sha3" ,go-golang-org-x-crypto-sha3)
3031 ("go-golang-org-x-crypto-blake2s" ,go-golang-org-x-crypto-blake2s)))
66fb6e29
PN
3032 (home-page "https://github.com/multiformats/go-multiaddr-net")
3033 (synopsis "Multiaddress net tools")
3034 (description "This package provides Multiaddr specific versions of
3035common functions in stdlib's @command{net} package. This means wrappers of
3036standard net symbols like @command{net.Dial} and @command{net.Listen}, as well
3037as conversion to and from @command{net.Addr}.")
3038 (license license:expat))))
38d346dc
PN
3039
3040(define-public go-github-com-whyrusleeping-tar-utils
3041 (let ((commit "8c6c8ba81d5c71fd69c0f48dbde4b2fb422b6dfc")
3042 (revision "0"))
3043 (package
3044 (name "go-github-com-whyrusleeping-tar-utils")
3045 (version (git-version "0.0.0" revision commit))
3046 (source
3047 (origin
3048 (method git-fetch)
3049 (uri (git-reference
3050 (url "https://github.com/whyrusleeping/tar-utils.git")
3051 (commit commit)))
3052 (file-name (git-file-name name version))
3053 (sha256
3054 (base32
3055 "14jjdw3yics0k467xsyk388684wdpi0bbx8nqj0y4pqxa0s0in6s"))))
3056 (build-system go-build-system)
3057 (arguments
3058 '(#:import-path
3059 "github.com/whyrusleeping/tar-utils"))
3060 (home-page "https://github.com/whyrusleeping/tar-utils")
3061 (synopsis "Tar utilities extracted from go-ipfs codebase")
3062 (description "Tar utilities extracted from @command{go-ipfs} codebase.")
3063 (license license:expat))))
ad8d4637
PN
3064
3065(define-public go-github-com-cheekybits-is
3066 (let ((commit "68e9c0620927fb5427fda3708222d0edee89eae9")
3067 (revision "0"))
3068 (package
3069 (name "go-github-com-cheekybits-is")
3070 (version (git-version "0.0.0" revision commit))
3071 (source
3072 (origin
3073 (method git-fetch)
3074 (uri (git-reference
3075 (url "https://github.com/cheekybits/is.git")
3076 (commit commit)))
3077 (file-name (git-file-name name version))
3078 (sha256
3079 (base32
3080 "1mkbyzhwq3rby832ikq00nxv3jnckxsm3949wkxd8ya9js2jmg4d"))))
3081 (build-system go-build-system)
3082 (arguments
3083 '(#:import-path "github.com/cheekybits/is"))
3084 (home-page "https://github.com/cheekybits/is")
3085 (synopsis "Mini testing helper for Go")
3086 (description "A mini testing helper for Go.
3087
3088@itemize
3089@item It has a simple interface (@command{is.OK} and @command{is.Equal}).
3090@item It plugs into existing Go toolchain (uses @command{testing.T}).
3091@item It's obvious for newcomers.
3092@item It also gives you @command{is.Panic} and @command{is.PanicWith} helpers
3093- because testing panics is ugly.
3094@end itemize\n")
3095 (license license:expat))))
20f48e4b
PN
3096
3097(define-public go-github-com-sabhiram-go-gitignore
3098 (let ((commit "d3107576ba9425fc1c85f4b3569c4631b805a02e")
3099 (revision "0"))
3100 (package
3101 (name "go-github-com-sabhiram-go-gitignore")
3102 (version (git-version "1.0.2" revision commit))
3103 (source
3104 (origin
3105 (method git-fetch)
3106 (uri (git-reference
3107 (url "https://github.com/sabhiram/go-gitignore.git")
3108 (commit commit)))
3109 (file-name (git-file-name name version))
3110 (sha256
3111 (base32
3112 "1rdwyxgcsiwgmlqnc3k6h300mzlvjc3j21np4yh1h476wc8dvl0l"))))
3113 (build-system go-build-system)
3114 (arguments
3115 '(#:import-path
3116 "github.com/sabhiram/go-gitignore"))
3117 (native-inputs
3118 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
3119 (home-page "https://github.com/sabhiram/go-gitignore")
3120 (synopsis "Gitignore parser for Go")
3121 (description "A @command{.gitignore} parser for Go.")
3122 (license license:expat))))
b5bb0b50
PN
3123
3124(define-public go-github-com-urfave-cli
c83f9f66 3125 (let ((commit "693af58b4d51b8fcc7f9d89576da170765980581")
b5bb0b50
PN
3126 (revision "0"))
3127 (package
3128 (name "go-github-com-urfave-cli")
c83f9f66 3129 (version (git-version "1.20.0" revision commit))
b5bb0b50
PN
3130 (source
3131 (origin
3132 (method git-fetch)
3133 (uri (git-reference
3134 (url "https://github.com/urfave/cli.git")
3135 (commit commit)))
3136 (file-name (git-file-name name version))
3137 (sha256
3138 (base32
c83f9f66 3139 "1krq752xgy658an1696vf4dc2zmp541clwjinhn11394sx2qksh6"))))
b5bb0b50
PN
3140 (build-system go-build-system)
3141 (arguments
3142 '(#:import-path "github.com/urfave/cli"))
3143 (home-page "https://github.com/urfave/cli")
3144 (synopsis "Simple, fast, and fun package for building command line apps in Go")
3145 (description "@command{cli} is a simple, fast, and fun package for
3146building command line apps in Go. The goal is to enable developers to write
3147fast and distributable command line applications in an expressive way.")
3148 (license license:expat))))
7bd9020e
PN
3149
3150(define-public go-github-com-whyrusleeping-json-filter
3151 (let ((commit "ff25329a9528f01c5175414f16cc0a6a162a5b8b")
3152 (revision "0"))
3153 (package
3154 (name "go-github-com-whyrusleeping-json-filter")
3155 (version (git-version "0.0.0" revision commit))
3156 (source
3157 (origin
3158 (method git-fetch)
3159 (uri (git-reference
3160 (url "https://github.com/whyrusleeping/json-filter.git")
3161 (commit commit)))
3162 (file-name (git-file-name name version))
3163 (sha256
3164 (base32
3165 "0cai0drvx4c8j686l908vpcsz3mw3vxi3ziz94b0f3c5ylpj07j7"))))
3166 (build-system go-build-system)
3167 (arguments
3168 '(#:import-path
3169 "github.com/whyrusleeping/json-filter"))
3170 (home-page "https://github.com/whyrusleeping/json-filter")
3171 (synopsis "Library to query JSON objects marshalled into map[string]interface")
3172 (description "A library to query JSON objects marshalled into
3173@command{map[string]interface{}}.")
3174 (license license:expat))))
38566e97
PN
3175
3176(define-public go-github-com-whyrusleeping-progmeter
3177 (let ((commit "f3e57218a75b913eff88d49a52c1debf9684ea04")
3178 (revision "0"))
3179 (package
3180 (name "go-github-com-whyrusleeping-progmeter")
3181 (version (git-version "0.0.0" revision commit))
3182 (source
3183 (origin
3184 (method git-fetch)
3185 (uri (git-reference
3186 (url "https://github.com/whyrusleeping/progmeter.git")
3187 (commit commit)))
3188 (file-name (git-file-name name version))
3189 (sha256
3190 (base32
3191 "0xs8rz6yhpvj9512c5v3b8dwr2kivywnyyfxzdfbr6fy1xc8zskb"))))
3192 (build-system go-build-system)
3193 (arguments
3194 '(#:import-path
3195 "github.com/whyrusleeping/progmeter"))
3196 (home-page "https://github.com/whyrusleeping/progmeter")
3197 (synopsis "Progress meter for Go")
3198 (description "Progress meter for Go.")
3199 (license license:expat))))
56eb7bd3
PN
3200
3201(define-public go-github-com-whyrusleeping-stump
3202 (let ((commit "206f8f13aae1697a6fc1f4a55799faf955971fc5")
3203 (revision "0"))
3204 (package
3205 (name "go-github-com-whyrusleeping-stump")
3206 (version (git-version "0.0.0" revision commit))
3207 (source
3208 (origin
3209 (method git-fetch)
3210 (uri (git-reference
3211 (url "https://github.com/whyrusleeping/stump.git")
3212 (commit commit)))
3213 (file-name (git-file-name name version))
3214 (sha256
3215 (base32
3216 "1s40qdppjnk8gijk7x6kbviiqz62nz3h6gic2q9cwcmq8r5isw7n"))))
3217 (build-system go-build-system)
3218 (arguments
3219 '(#:import-path "github.com/whyrusleeping/stump"))
3220 (home-page "https://github.com/whyrusleeping/stump")
3221 (synopsis "Very basic logging package for Go")
3222 (description "A simple log library, for when you don't really care to
3223have super fancy logs.")
3224 (license license:expat))))
5b6c3ad0
PN
3225
3226(define-public go-github-com-kr-fs
3227 (let ((commit "1455def202f6e05b95cc7bfc7e8ae67ae5141eba")
3228 (revision "0"))
3229 (package
3230 (name "go-github-com-kr-fs")
3231 (version (git-version "0.1.0" revision commit))
3232 (source
3233 (origin
3234 (method git-fetch)
3235 (uri (git-reference
3236 (url "https://github.com/kr/fs.git")
3237 (commit commit)))
3238 (file-name (git-file-name name version))
3239 (sha256
3240 (base32
3241 "11zg176x9hr9q7fsk95r6q0wf214gg4czy02slax4x56n79g6a7q"))))
3242 (build-system go-build-system)
3243 (arguments
3244 '(#:import-path "github.com/kr/fs"))
3245 (home-page "https://github.com/kr/fs")
52beae7b
TGR
3246 (synopsis "File-system-related functions for Go")
3247 (description
3248 "The fs package provides file-system-related Go functions.")
5b6c3ad0 3249 (license license:bsd-3))))
bc58bb9b
LF
3250
3251(define-public go-github-com-direnv-go-dotenv
3252 (let ((commit "4cce6d1a66f7bc8dc730eab85cab6af1b801abed")
3253 (revision "0"))
3254 (package
3255 (name "go-github-com-direnv-go-dotenv")
3256 (version (git-version "0.0.0" revision commit))
3257 (source
3258 (origin
3259 (method git-fetch)
3260 (uri (git-reference
3261 (url "https://github.com/direnv/go-dotenv")
3262 (commit commit)))
3263 (file-name (git-file-name name version))
3264 (sha256
3265 (base32
3266 "00wn4fc2lma0csf6ryvlc6k9jbpbifm4n7i3kkd2xrfw5qlm29b6"))))
3267 (build-system go-build-system)
3268 (arguments
3269 '(#:import-path "github.com/direnv/go-dotenv"))
3270 (home-page "https://github.com/direnv/go-dotenv")
3271 (synopsis "Go dotenv parsing library")
3272 (description "This package provides a library for parsing the dotenv
3273format in Go.")
3274 (license license:expat))))
56f610f5 3275
aa413ff8
LF
3276(define-public go-github-com-kr-pretty
3277 (package
3278 (name "go-github-com-kr-pretty")
3279 (version "0.1.0")
3280 (source (origin
3281 (method git-fetch)
3282 (uri (git-reference
3283 (url "https://github.com/kr/pretty.git")
3284 (commit (string-append "v" version))))
3285 (file-name (git-file-name name version))
3286 (sha256
3287 (base32
3288 "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp"))))
3289 (build-system go-build-system)
3290 (propagated-inputs
3291 `(("go-github-com-kr-text" ,go-github-com-kr-text)))
3292 (arguments
3293 '(#:import-path "github.com/kr/pretty"))
3294 (synopsis "A pretty printer for Go values")
3295 (description "This package provides a pretty printer for Go values.")
3296 (home-page "https://github.com/kr/pretty")
3297 (license license:expat)))
3298
56f610f5
LF
3299(define-public go-github-com-kr-text
3300 (package
3301 (name "go-github-com-kr-text")
3302 (version "0.1.0")
3303 (source (origin
3304 (method git-fetch)
3305 (uri (git-reference
3306 (url "https://github.com/kr/text.git")
3307 (commit (string-append "v" version))))
3308 (file-name (git-file-name name version))
3309 (sha256
3310 (base32
3311 "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"))))
3312 (build-system go-build-system)
3313 (arguments
3314 '(#:import-path "github.com/kr/text"))
3315 (synopsis "Text formatting in Go")
3316 (description "This package provides a text formatting functions in Go.")
3317 (home-page "https://github.com/kr/text")
3318 (license license:expat)))
4ddf067f 3319
be42a38a
BL
3320(define-public go-golang-org-sql-mock
3321 (let ((commit "e98392b8111b45f8126e00af035a0dd95dc12e8b")
3322 (version "1.3.3")
3323 (revision "1"))
3324 (package
3325 (name "go-golang-org-sql-mock")
3326 (version (git-version version revision commit))
3327 (source (origin
3328 (method git-fetch)
3329 (uri (git-reference
3330 (url "https://github.com/DATA-DOG/go-sqlmock")
3331 (commit commit)))
3332 (file-name (git-file-name name version))
3333 (sha256
3334 (base32
3335 "033vv29g2wf6fd757ajfmha30bqin3b07377037zkl051mk6mghs"))))
3336 (build-system go-build-system)
3337 (arguments
3338 '(#:import-path "github.com/DATA-DOG/go-sqlmock"))
3339 (synopsis "Mock library implementing @code{sql/driver}")
3340 (description "This library simulates SQL-driver behavior in tests
3341without requiring a real database connection.")
3342 (home-page "https://github.com/DATA-DOG/go-sqlmock")
3343 (license license:expat))))
3344
a881a087
BL
3345(define-public go-golang-org-colorful
3346 (package
3347 (name "go-golang-org-colorful")
3348 (version "1.0.2")
3349 (source (origin
3350 (method git-fetch)
3351 (uri (git-reference
3352 (url "https://github.com/lucasb-eyer/go-colorful")
3353 (commit (string-append "v" version))))
3354 (file-name (git-file-name name version))
3355 (sha256
3356 (base32
3357 "0fig06880bvk1l92j4127v4x9sar4ds7ga8959gxxghb2w70b7l2"))))
3358 (build-system go-build-system)
3359 (arguments
3360 '(#:import-path "github.com/lucasb-eyer/go-colorful"))
3361 (native-inputs
3362 `(("go-golang-org-sql-mock" ,go-golang-org-sql-mock)))
3363 (synopsis "Convert between colorspaces and generate colors")
3364 (description "This package implements Go's @code{color.Color} interface
3365and provides a means of converting colors stored as RGB to various
3366colorspaces.")
3367 (home-page "https://github.com/lucasb-eyer/go-colorful")
3368 (license license:expat)))
3369
42a0cfee
BL
3370(define-public go-github-com-gdamore-encoding
3371 (package
3372 (name "go-github-com-gdamore-encoding")
3373 (version "1.0.0")
3374 (source
3375 (origin
3376 (method git-fetch)
3377 (uri (git-reference
3378 (url "https://github.com/gdamore/encoding")
3379 (commit (string-append "v" version))))
3380 (file-name (git-file-name name version))
3381 (sha256
3382 (base32
3383 "1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9"))))
3384 (build-system go-build-system)
3385 (arguments
3386 '(#:import-path "github.com/gdamore/encoding"))
3387 (inputs
3388 `(("go-golang-org-x-text-encoding" ,go-golang-org-x-text-encoding)
3389 ("go-golang-org-x-text-transform" ,go-golang-org-x-text-transform)))
3390 (home-page "https://github.com/gdamore/encoding")
3391 (synopsis "Provide encodings missing from Go")
3392 (description "This package provides useful encodings not included in the
3393standard @code{Text} package, including some for dealing with I/O streams from
3394non-UTF-friendly sources.")
3395 (license license:expat)))
3396
a6689b99
BL
3397(define-public go-github-com-gdamore-tcell
3398 (let ((commit "aaadc574a6ed8dc3abe56036ca130dcee1ee6b6e")
3399 (version "1.1.2")
3400 (revision "1"))
3401 (package
3402 (name "go-github-com-gdamore-tcell")
3403 (version (git-version version revision commit))
3404 (source
3405 (origin
3406 (method git-fetch)
3407 (uri (git-reference
3408 (url "https://github.com/gdamore/tcell")
3409 (commit commit)))
3410 (file-name (git-file-name name version))
3411 (sha256
3412 (base32
3413 "0il2nnxp2cqiy73m49215dnf9in3vd25ji8qxbmq87c5qy7i1q9d"))))
3414 (build-system go-build-system)
3415 (arguments
3416 `(#:import-path "github.com/gdamore/tcell"
3417 #:phases
3418 (modify-phases %standard-phases
3419 (add-before 'reset-gzip-timestamps 'make-files-writable
3420 (lambda* (#:key outputs #:allow-other-keys)
3421 ;; Make sure .gz files are writable so that the
3422 ;; 'reset-gzip-timestamps' phase can do its work.
3423 (let ((out (assoc-ref outputs "out")))
3424 (for-each make-file-writable
3425 (find-files out "\\.gz$"))
3426 #t))))))
3427 (inputs
3428 `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
3429 ("go-golang-org-colorful" ,go-golang-org-colorful)
3430 ("go-golang-org-x-text-encoding" ,go-golang-org-x-text-encoding)
3431 ("go-golang-org-x-text-transform" ,go-golang-org-x-text-transform)
3432 ("go-github-com-gdamore-encoding" ,go-github-com-gdamore-encoding)))
3433 (home-page "https://github.com/gdamore/tcell")
3434 (synopsis "Provide a cell-based view for text terminals")
3435 (description "This package includes a full parser and expander for
3436terminfo capability strings to avoid hard-coding escape strings for
3437formatting. It also favors portability, and includes support for all POSIX
3438systems.")
3439 (license license:expat))))
3440
f8157350
BL
3441(define-public go-github-com-mattn-go-shellwords
3442 (let ((commit "2444a32a19f450fabaa0bb3e96a703f15d9a97d2")
3443 (version "1.0.5")
3444 (revision "1"))
3445 (package
3446 (name "go-github-com-mattn-go-shellwords")
3447 (version (git-version version revision commit))
3448 (source
3449 (origin
3450 (method git-fetch)
3451 (uri (git-reference
3452 (url "https://github.com/mattn/go-shellwords")
3453 (commit commit)))
3454 (file-name (git-file-name name version))
3455 (sha256
3456 (base32
3457 "08zcgr1az1n8zaxzwdd205j86hczgyc52nxfnw5avpw7rrkf7v0d"))))
3458 (build-system go-build-system)
3459 (arguments
3460 `(#:import-path "github.com/mattn/go-shellwords"
3461 ;; TODO: can't make homeless-shelter:
3462 ;; go: disabling cache (/homeless-shelter/.cache/go-build) due to
3463 ;; initialization failure: mkdir /homeless-shelter: permission denied
3464
3465 ;; This doesn't seem to work:
3466
3467 ;; #:phases
3468 ;; (modify-phases %standard-phases
3469 ;; (replace 'check
3470 ;; (lambda* (#:key import-path #:allow-other-keys)
3471 ;; (setenv "HOME" "/tmp")
3472 ;; (invoke "go" "test" import-path))))
3473
3474 ;; TODO: There are also a couple of tests that have stymied Debian in
3475 ;; the past. They seem to work when run locally.
3476
3477 #:tests? #f
3478 ))
3479 (home-page "https://github.com/mattn/go-shellwords")
3480 (synopsis "Parse lines into shell words")
3481 (description "This package parses text into shell arguments. Based on
3482the @code{cpan} module @code{Parse::CommandLine}.")
3483 (license license:expat))))
3484
4ddf067f
GB
3485(define-public go-github-com-burntsushi-locker
3486 (let ((commit "a6e239ea1c69bff1cfdb20c4b73dadf52f784b6a")
3487 (revision "0"))
3488 (package
3489 (name "go-github-com-burntsushi-locker")
3490 (version (git-version "0.0.0" revision commit))
3491 (source
3492 (origin
3493 (method git-fetch)
3494 (uri (git-reference
3495 (url "https://github.com/BurntSushi/locker")
3496 (commit commit)))
3497 (file-name (git-file-name name version))
3498 (sha256
3499 (base32
3500 "1xak4aync4klswq5217qvw191asgla51jr42y94vp109lirm5dzg"))))
3501 (build-system go-build-system)
3502 (arguments
3503 '(#:import-path "github.com/BurntSushi/locker"))
3504 (home-page "https://github.com/BurntSushi/locker")
3505 (synopsis "Manage named ReadWrite mutexes in Go")
3506 (description "Golang package for conveniently using named read/write
3507locks. These appear to be especially useful for synchronizing access to
3508session based information in web applications.
3509
3510The common use case is to use the package level functions, which use a package
3511level set of locks (safe to use from multiple goroutines
3512simultaneously). However, you may also create a new separate set of locks
3513test.
3514
3515All locks are implemented with read-write mutexes. To use them like a regular
3516mutex, simply ignore the RLock/RUnlock functions.")
3517 (license license:unlicense))))
a3b1dc49
LF
3518
3519(define-public go-github-com-marten-seemann-qtls
3520 (package
3521 (name "go-github-com-marten-seemann-qtls")
3522 (version "0.2.3")
3523 (source (origin
3524 (method git-fetch)
3525 (uri (git-reference
3526 (url "https://github.com/marten-seemann/qtls")
3527 (commit (string-append "v" version))))
3528 (file-name (git-file-name name version))
3529 (sha256
3530 (base32
3531 "0b9p7bwkm9hfg1mb565q4nw5k7xyks0z2xagz5fp95azy2psbnfg"))))
3532 (build-system go-build-system)
3533 (arguments
3534 '(#:import-path "github.com/marten-seemann/qtls"
3535 ;; The test suite requires networking.
3536 #:tests? #f))
3537 (propagated-inputs
3538 `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
3539 (synopsis "TLS 1.3 with QUIC in Go")
3540 (description "This package provides @code{qtls}, a QUIC-capable variant of
3541the Go standard library's TLS 1.3 implementation.")
3542 (home-page "https://github.com/marten-seemann/qtls")
3543 (license license:bsd-3)))
8201afdf
LF
3544
3545(define-public go-github-com-cheekybits-genny
3546 (package
3547 (name "go-github-com-cheekybits-genny")
3548 (version "1.0.0")
3549 (source (origin
3550 (method git-fetch)
3551 (uri (git-reference
3552 (url "https://github.com/cheekybits/genny")
3553 (commit (string-append "v" version))))
3554 (file-name (git-file-name name version))
3555 (sha256
3556 (base32
3557 "1pcir5ic86713aqa51581rfb67rgc3m0c72ddjfcp3yakv9vyq87"))))
3558 (build-system go-build-system)
3559 (arguments
3560 '(#:import-path "github.com/cheekybits/genny"))
3561 (propagated-inputs
3562 `(("go-golang-org-x-tools" ,go-golang-org-x-tools)))
3563 (synopsis "Generics for Go")
3564 (description "This package provides @code{genny}, a Go language
3565implementation of generics.")
3566 (home-page "https://github.com/cheekybits/genny/")
3567 (license license:expat)))
6d766bec
LF
3568
3569(define-public go-github-com-lucas-clemente-quic-go
3570 (package
3571 (name "go-github-com-lucas-clemente-quic-go")
3572 (version "0.11.2")
3573 (source (origin
3574 (method git-fetch)
3575 (uri (git-reference
3576 (url "https://github.com/lucas-clemente/quic-go")
3577 (commit (string-append "v" version))))
3578 (file-name (git-file-name name version))
3579 (sha256
3580 (base32
3581 "0gqm5mc8alg84ra7yxach34il1jvcij8f76qdqcahnd3d2nhjbia"))))
3582 (build-system go-build-system)
3583 (arguments
3584 '(#:import-path "github.com/lucas-clemente/quic-go"
3585 ;; XXX More packages required...
3586 #:tests? #f))
3587 (propagated-inputs
3588 `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
3589 ("go-github-com-cheekybits-genny" ,go-github-com-cheekybits-genny)
3590 ("go-github-com-marten-seemann-qtls" ,go-github-com-marten-seemann-qtls)))
3591 (synopsis "QUIC in Go")
3592 (description "This package provides a Go language implementation of the QUIC
3593network protocol.")
3594 (home-page "https://github.com/lucas-clemente/quic-go")
3595 (license license:expat)))
2da5275f
LF
3596
3597(define-public go-github-com-pkg-errors
8c6be10a
LF
3598 (let ((commit "27936f6d90f9c8e1145f11ed52ffffbfdb9e0af7")
3599 (revision "0"))
3600 (package
3601 (name "go-github-com-pkg-errors")
3602 (version (git-version "0.8.1" revision commit))
3603 (source (origin
3604 (method git-fetch)
3605 (uri (git-reference
3606 (url "https://github.com/pkg/errors.git")
3607 (commit commit)))
3608 (file-name (git-file-name name version))
3609 (sha256
3610 (base32
3611 "0yzmgi6g4ak4q8y7w6x0n5cbinlcn8yc3gwgzy4yck00qdn25d6y"))))
3612 (build-system go-build-system)
3613 (arguments
3614 `(#:import-path "github.com/pkg/errors"))
3615 (synopsis "Go error handling primitives")
3616 (description "This package provides @code{error}, which offers simple
2da5275f 3617error handling primitives in Go.")
8c6be10a
LF
3618 (home-page "https://github.com/pkg/errors")
3619 (license license:bsd-2))))
d0ced446
LF
3620
3621(define-public go-github-com-maruel-panicparse
3622 (package
3623 (name "go-github-com-maruel-panicparse")
e7189e0b 3624 (version "1.3.0")
d0ced446
LF
3625 (source (origin
3626 (method git-fetch)
3627 (uri (git-reference
3628 (url "https://github.com/maruel/panicparse")
3629 (commit (string-append "v" version))))
3630 (file-name (git-file-name name version))
3631 (sha256
3632 (base32
e7189e0b 3633 "13qkn7f64yln8jdmma37h6ra4c7anxkp3vfgvfyb6lb07dpr1ibq"))))
d0ced446
LF
3634 (build-system go-build-system)
3635 (arguments
3636 '(#:import-path "github.com/maruel/panicparse"))
3637 (synopsis "Toolkit for parsing Go stack traces")
3638 (description "This package provides a toolkit for parsing Go language panic
3639stack traces. It simplifies the traces to make salient information more visible
3640and aid debugging.")
3641 (home-page "https://github.com/maruel/panicparse")
3642 (license license:asl2.0)))