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