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