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