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