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