gnu: Add go-github-com-calmh-murmur3.
[jackhill/guix/guix.git] / gnu / packages / golang.scm
CommitLineData
7a2941a8 1;;; GNU Guix --- Functional package management for GNU
2573709c 2;;; Copyright © 2016, 2017, 2018, 2019, 2020 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")
3868b2a7 224 (version "1.13.9")
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
3868b2a7 232 "07gksk9194wa90xyd6yhagxfv7syvsx29bh8ypc4mg700vc1kfrl"))))
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
2573709c
EF
695(define-public go-golang-org-x-image
696 (let ((commit "58c23975cae11f062d4b3b0c143fe248faac195d")
697 (revision "1"))
698 (package
699 (name "go-golang-org-x-image")
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/image")
705 (commit commit)))
706 (file-name (string-append "go.googlesource.com-image-"
707 version "-checkout"))
708 (sha256
709 (base32
710 "0i2p2girc1sfcic6xs6vrq0fp3szfx057xppksb67kliywjjrm5x"))))
711 (build-system go-build-system)
712 (arguments
713 `(#:import-path "golang.org/x/image"
714 ; Source-only package
715 #:tests? #f
716 #:phases
717 (modify-phases %standard-phases
718 (delete 'build))))
719 (home-page "https://go.googlesource.com/image")
720 (synopsis "Supplemental Go image libraries")
721 (description "This package provides supplemental Go libraries for image
722processing.")
723 (license license:bsd-3))))
724
561d391b 725(define-public go-golang-org-x-sys
9ef07337
LF
726 (let ((commit "749cb33beabd9aa6d3178e3de05bcc914f70b2bf")
727 (revision "5"))
269d0858 728 (package
561d391b 729 (name "go-golang-org-x-sys")
269d0858
LF
730 (version (git-version "0.0.0" revision commit))
731 (source (origin
732 (method git-fetch)
733 (uri (git-reference
734 (url "https://go.googlesource.com/sys")
735 (commit commit)))
736 (file-name (git-file-name name version))
737 (sha256
738 (base32
9ef07337 739 "0dm3257q3rv2kyn5lmqqim2fqg634v6rhrqq4glvbk4wx4l3v337"))))
269d0858
LF
740 (build-system go-build-system)
741 (arguments
561d391b
LF
742 `(#:import-path "golang.org/x/sys"
743 ;; Source-only package
744 #:tests? #f
745 #:phases
746 (modify-phases %standard-phases
747 (delete 'build))))
269d0858 748 (synopsis "Go support for low-level system interaction")
561d391b
LF
749 (description "This package provides supplemental libraries offering Go
750support for low-level interaction with the operating system.")
269d0858
LF
751 (home-page "https://go.googlesource.com/sys")
752 (license license:bsd-3))))
753
561d391b 754(define-public go-golang-org-x-text
4a136536 755 (package
561d391b 756 (name "go-golang-org-x-text")
06c2d0e6
BL
757 (version "0.3.2")
758 (source (origin
759 (method git-fetch)
760 (uri (git-reference
761 (url "https://go.googlesource.com/text")
762 (commit (string-append "v" version))))
763 (file-name (string-append "go.googlesource.com-text-"
764 version "-checkout"))
765 (sha256
766 (base32
767 "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh"))))
768 (build-system go-build-system)
769 (arguments
561d391b
LF
770 `(#:import-path "golang.org/x/text"
771 ; Source-only package
772 #:tests? #f
773 #:phases
774 (modify-phases %standard-phases
775 (delete 'build))))
776 (synopsis "Supplemental Go text processing libraries")
777 (description "This package provides supplemental Go libraries for text
778 processing.")
06c2d0e6
BL
779 (home-page "https://go.googlesource.com/text")
780 (license license:bsd-3)))
781
561d391b 782(define-public go-golang-org-x-time
720420e3
LF
783 (let ((commit "9d24e82272b4f38b78bc8cff74fa936d31ccd8ef")
784 (revision "2"))
269d0858 785 (package
561d391b 786 (name "go-golang-org-x-time")
269d0858
LF
787 (version (git-version "0.0.0" revision commit))
788 (source (origin
789 (method git-fetch)
790 (uri (git-reference
791 (url "https://go.googlesource.com/time")
792 (commit commit)))
793 (file-name (git-file-name name version))
794 (sha256
795 (base32
720420e3 796 "1f5nkr4vys2vbd8wrwyiq2f5wcaahhpxmia85d1gshcbqjqf8dkb"))))
269d0858
LF
797 (build-system go-build-system)
798 (arguments
561d391b
LF
799 `(#:import-path "golang.org/x/time"
800 ; Source-only package
801 #:tests? #f
802 #:phases
803 (modify-phases %standard-phases
804 (delete 'build))))
805; (propagated-inputs
806; `(("go-golang-org-x-net" ,go-golang-org-x-net)))
807 (synopsis "Supplemental Go time libraries")
808 (description "This package provides supplemental Go libraries related to
809time.")
269d0858
LF
810 (home-page "https://godoc.org/golang.org/x/time/rate")
811 (license license:bsd-3))))
e60352e4 812
fb50664f 813(define-public go-github-com-burntsushi-toml
0e558640
LF
814 (package
815 (name "go-github-com-burntsushi-toml")
816 (version "0.3.1")
817 (source
818 (origin
819 (method git-fetch)
820 (uri (git-reference
821 (url "https://github.com/BurntSushi/toml.git")
822 (commit (string-append "v" version))))
823 (file-name (git-file-name name version))
824 (sha256
825 (base32
826 "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6"))))
827 (build-system go-build-system)
828 (arguments
829 '(#:import-path "github.com/BurntSushi/toml"))
830 (home-page "https://github.com/BurntSushi/toml")
831 (synopsis "Toml parser and encoder for Go")
832 (description "This package is toml parser and encoder for Go. The interface
833is similar to Go's standard library @code{json} and @code{xml} package.")
834 (license license:expat)))
8c5a69aa
PAR
835
836(define-public go-github-com-getsentry-raven-go
8ffc727e 837 (let ((commit "5c24d5110e0e198d9ae16f1f3465366085001d92")
8c5a69aa
PAR
838 (revision "0"))
839 (package
840 (name "go-github-com-getsentry-raven-go")
8ffc727e 841 (version (git-version "0.2.0" revision commit))
8c5a69aa
PAR
842 (source
843 (origin
844 (method git-fetch)
845 (uri (git-reference
846 (url "https://github.com/getsentry/raven-go.git")
847 (commit commit)))
848 (file-name (git-file-name name version))
849 (sha256
850 (base32
8ffc727e 851 "0lvc376sq8r8jhy2v1m6rf1wyld61pvbk0x6j9xpg56ivqy69xs7"))))
8c5a69aa
PAR
852 (build-system go-build-system)
853 (arguments
854 '(#:import-path "github.com/getsentry/raven-go"))
8ffc727e
LF
855 (propagated-inputs
856 `(("go-github-com-certifi-gocertifi" ,go-github-com-certifi-gocertifi)
857 ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)))
858 (home-page "https://github.com/getsentry/raven-go")
8c5a69aa 859 (synopsis "Sentry client in Go")
8ffc727e 860 (description "This package is a Go client API for the Sentry event/error
8c5a69aa
PAR
861logging system.")
862 (license license:bsd-3))))
0972411a
PAR
863
864(define-public go-github-com-hashicorp-go-version
865 (let ((commit
866 "03c5bf6be031b6dd45afec16b1cf94fc8938bc77")
867 (revision "0"))
868 (package
869 (name "go-github-com-hashicorp-go-version")
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/hashicorp/go-version.git")
876 (commit commit)))
877 (file-name (git-file-name name version))
878 (sha256
879 (base32
880 "0sjq57gpfznaqdrbyb2p0bn90g9h661cvr0jrk6ngags4pbw14ik"))))
881 (build-system go-build-system)
882 (arguments
883 '(#:import-path "github.com/hashicorp/go-version"))
884 (home-page
885 "https://github.com/hashicorp/go-version")
886 (synopsis "Go library for parsing and verifying versions and version
887constraints")
888 (description "This package is a library for parsing versions and version
889constraints, and verifying versions against a set of constraints. It can sort
890a collection of versions properly, handles prerelease/beta versions, can
891increment versions.")
892 (license license:mpl2.0))))
c4230cda
PAR
893
894(define-public go-github-com-jpillora-backoff
895 (let ((commit
896 "06c7a16c845dc8e0bf575fafeeca0f5462f5eb4d")
897 (revision "0"))
898 (package
899 (name "go-github-com-jpillora-backoff")
900 (version (git-version "0.0.0" revision commit))
901 (source
902 (origin
903 (method git-fetch)
904 (uri (git-reference
905 (url "https://github.com/jpillora/backoff.git")
906 (commit commit)))
907 (file-name (git-file-name name version))
908 (sha256
909 (base32
910 "0xhvxr7bm47czdc5hy3kl508z3y4j91i2jm7vg774i52zych6k4l"))))
911 (build-system go-build-system)
912 (arguments
913 '(#:import-path "github.com/jpillora/backoff"))
914 (home-page "https://github.com/jpillora/backoff")
915 (synopsis "Simple exponential backoff counter in Go")
916 (description "This package is a simple exponential backoff counter in
917Go.")
918 (license license:expat))))
28380e0e
PAR
919
920(define-public go-github-com-stretchr-testify
921 (let ((commit
922 "b1f989447a57594c728884458a39abf3a73447f7")
923 (revision "0"))
924 (package
925 (name "go-github-com-stretchr-testify")
926 (version (git-version "1.1.4" revision commit))
927 (source
928 (origin
929 (method git-fetch)
930 (uri (git-reference
931 (url "https://github.com/stretchr/testify.git")
932 (commit commit)))
933 (file-name (git-file-name name version))
934 (sha256
935 (base32
936 "0p0gkqzh2p8r5g0rxm885ljl7ghih7h7hx9w562imx5ka0vdgixv"))))
937 (build-system go-build-system)
938 (arguments
939 '(#:import-path "github.com/stretchr/testify"))
940 (home-page "https://github.com/stretchr/testify")
941 (synopsis "Go helper library for tests and invariant checking")
942 (description "This package provide many tools for testifying that your
943code will behave as you intend.
944
945Features include:
946@itemize
947@item Easy assertions
948@item Mocking
949@item HTTP response trapping
950@item Testing suite interfaces and functions.
951@end itemize")
952 (license license:expat))))
21290c35
PAR
953
954(define-public go-github-com-tevino-abool
955 (let ((commit
956 "3c25f2fe7cd0ef3eabefce1d90efd69a65d35b12")
957 (revision "0"))
958 (package
959 (name "go-github-com-tevino-abool")
960 (version (git-version "0.0.0" revision commit))
961 (source
962 (origin
963 (method git-fetch)
964 (uri (git-reference
965 (url "https://github.com/tevino/abool.git")
966 (commit commit)))
967 (file-name (git-file-name name version))
968 (sha256
969 (base32
970 "1wxqrclxk93q0aj15z596dx2y57x9nkhi64nbrr5cxnhxn8vwixm"))))
971 (build-system go-build-system)
972 (arguments
973 '(#:import-path "github.com/tevino/abool"))
974 (home-page "https://github.com/tevino/abool")
975 (synopsis "Atomic boolean library for Go code")
976 (description "This package is atomic boolean library for Go code,
977optimized for performance yet simple to use.")
978 (license license:expat))))
7c2ebbd4 979
67836c59
PAR
980(define-public go-github-com-blang-semver
981 (let ((commit "60ec3488bfea7cca02b021d106d9911120d25fe9")
982 (revision "0"))
983 (package
984 (name "go-github-com-blang-semver")
985 (version (git-version "0.0.0" revision commit))
986 (source
987 (origin
988 (method git-fetch)
989 (uri (git-reference
990 (url "https://github.com/blang/semver.git")
991 (commit commit)))
992 (file-name (git-file-name name version))
993 (sha256
994 (base32
995 "19pli07y5592g4dyjyj0jq5rn548vc3fz0qg3624vm1j5828p1c2"))))
996 (build-system go-build-system)
997 (arguments
998 '(#:import-path "github.com/blang/semver"))
999 (home-page "https://github.com/blang/semver")
1000 (synopsis "Semantic versioning library written in Go")
1001 (description "Semver is a library for Semantic versioning written in Go.")
1002 (license license:expat))))
1003
7979f7df
PAR
1004(define-public go-github-com-emicklei-go-restful
1005 (let ((commit "89ef8af493ab468a45a42bb0d89a06fccdd2fb22")
1006 (revision "0"))
1007 (package
1008 (name "go-github-com-emicklei-go-restful")
1009 (version (git-version "0.0.0" revision commit))
1010 (source
1011 (origin
1012 (method git-fetch)
1013 (uri (git-reference
1014 (url "https://github.com/emicklei/go-restful.git")
1015 (commit commit)))
1016 (file-name (git-file-name name version))
1017 (sha256
1018 (base32
1019 "0rrlfcfq80fkxifpih6bq31vavb5mf4530xz51pp9pq1mn2fzjfh"))))
1020 (build-system go-build-system)
1021 (arguments
1022 '(#:import-path "github.com/emicklei/go-restful"))
1023 (home-page "https://github.com/emicklei/go-restful")
1024 (synopsis "Build REST-style web services using Go")
1025 (description "This package provides @code{go-restful}, which helps
1026developers to use @code{http} methods explicitly and in a way that's consistent
1027with the HTTP protocol definition.")
1028 (license license:expat))))
73fe19ef
PAR
1029
1030(define-public go-github-com-google-cadvisor
1031 (let ((commit "2ed7198f77395ee9a172878a0a7ab92ab59a2cfd")
1032 (revision "0"))
1033 (package
1034 (name "go-github-com-google-cadvisor")
1035 (version (git-version "0.0.0" revision commit))
1036 (source
1037 (origin
1038 (method git-fetch)
1039 (uri (git-reference
1040 (url "https://github.com/google/cadvisor.git")
1041 (commit commit)))
1042 (file-name (git-file-name name version))
1043 (sha256
1044 (base32
1045 "1w8p345z5j0gk3yiq5ah0znd5lfh348p2s624k5r10drz04p3f55"))))
1046 (build-system go-build-system)
1047 (arguments
1048 '(#:import-path "github.com/google/cadvisor"))
1049 (home-page "https://github.com/google/cadvisor")
1050 (synopsis "Analyze resource usage of running containers")
1051 (description "The package provides @code{cadvisor}, which provides
ae03ce0f 1052information about the resource usage and performance characteristics of running
73fe19ef
PAR
1053containers.")
1054 (license license:asl2.0))))
daed2c5e
PAR
1055
1056(define-public go-github-com-google-gofuzz
1057 (let ((commit "fd52762d25a41827db7ef64c43756fd4b9f7e382")
1058 (revision "0"))
1059 (package
1060 (name "go-github-com-google-gofuzz")
1061 (version (git-version "0.0.0" revision commit))
1062 (source
1063 (origin
1064 (method git-fetch)
1065 (uri (git-reference
1066 (url "https://github.com/google/gofuzz.git")
1067 (commit commit)))
1068 (file-name (git-file-name name version))
1069 (sha256
1070 (base32
1071 "1yxmmr73h0lq7ryf3q9a7pcm2x5xrg4d5bxkq8n5pxwxwyq26kw8"))))
1072 (build-system go-build-system)
1073 (arguments
1074 '(#:import-path "github.com/google/gofuzz"))
1075 (home-page "https://github.com/google/gofuzz")
1076 (synopsis "Fuzz testing library for Go")
1077 (description "Gofuzz is a library for populationg Go objects with random
1078values for the purpose of fuzz testing.")
1079 (license license:asl2.0))))
9cf879a5
PAR
1080
1081(define-public go-github-com-gorilla-context
1082 (let ((commit "08b5f424b9271eedf6f9f0ce86cb9396ed337a42")
1083 (revision "0"))
1084 (package
1085 (name "go-github-com-gorilla-context")
1086 (version (git-version "0.0.0" revision commit))
1087 (source
1088 (origin
1089 (method git-fetch)
1090 (uri (git-reference
1091 (url "https://github.com/gorilla/context.git")
1092 (commit commit)))
1093 (file-name (git-file-name name version))
1094 (sha256
1095 (base32
1096 "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4"))))
1097 (build-system go-build-system)
1098 (arguments
1099 '(#:import-path "github.com/gorilla/context"))
1100 (home-page "https://github.com/gorilla/context")
1101 (synopsis "Go registry for request variables")
1102 (description "This package provides @code{gorilla/context}, which is a general purpose registry for global request variables in the Go programming language.")
1103 (license license:bsd-3))))
e8cdf560
PAR
1104
1105(define-public go-github-com-gorilla-mux
1106 (let ((commit "599cba5e7b6137d46ddf58fb1765f5d928e69604")
1107 (revision "0"))
1108 (package
1109 (name "go-github-com-gorilla-mux")
1110 (version (git-version "0.0.0" revision commit))
1111 (source
1112 (origin
1113 (method git-fetch)
1114 (uri (git-reference
1115 (url "https://github.com/gorilla/mux.git")
1116 (commit commit)))
1117 (file-name (git-file-name name version))
1118 (sha256
1119 (base32
1120 "0wd6jjii1kg5s0nk3ri6gqriz6hbd6bbcn6x4jf8n7ncrb8qsxyz"))))
1121 (build-system go-build-system)
1122 (arguments
1123 '(#:import-path "github.com/gorilla/mux"))
1124 (home-page "https://github.com/gorilla/mux")
1125 (synopsis "URL router and dispatcher for Go")
1126 (description
1127 "Gorilla/Mux implements a request router and dispatcher for matching
1128incoming requests with their respective handler.")
1129 (license license:bsd-3))))
bcb21790
PAR
1130
1131(define-public go-github-com-jonboulle-clockwork
1132 (let ((commit "e3653ace2d63753697e0e5b07b9393971c0bba9d")
1133 (revision "0"))
1134 (package
1135 (name "go-github-com-jonboulle-clockwork")
1136 (version (git-version "0.0.0" revision commit))
1137 (source
1138 (origin
1139 (method git-fetch)
1140 (uri (git-reference
1141 (url "https://github.com/jonboulle/clockwork.git")
1142 (commit commit)))
1143 (file-name (git-file-name name version))
1144 (sha256
1145 (base32
1146 "1avzqhks12a8x2yzpvjsf3k0gv9cy7zx2z88hn0scacnxkphisvc"))))
1147 (build-system go-build-system)
1148 (arguments
1149 '(#:import-path "github.com/jonboulle/clockwork"))
1150 (home-page "https://github.com/jonboulle/clockwork")
1151 (synopsis "Fake clock library for Go")
1152 (description
1153 "Replace uses of the @code{time} package with the
1154@code{clockwork.Clock} interface instead.")
1155 (license license:asl2.0))))
76a2b278
PAR
1156
1157(define-public go-github-com-spf13-pflag
28cdd818
DM
1158 (package
1159 (name "go-github-com-spf13-pflag")
1160 (version "1.0.5")
1161 (source
1162 (origin
1163 (method git-fetch)
1164 (uri (git-reference
1165 (url "https://github.com/spf13/pflag.git")
1166 (commit (string-append "v" version))))
1167 (file-name (git-file-name name version))
1168 (sha256
1169 (base32
1170 "0gpmacngd0gpslnbkzi263f5ishigzgh6pbdv9hp092rnjl4nd31"))))
1171 (build-system go-build-system)
1172 (arguments
1173 '(#:import-path "github.com/spf13/pflag"))
1174 (home-page "https://github.com/spf13/pflag")
1175 (synopsis "Replacement for Go's @code{flag} package")
1176 (description
1177 "Pflag is library to replace Go's @code{flag} package. It implements
76a2b278
PAR
1178POSIX/GNU-style command-line options with double hyphens. It is is compatible
1179with the
1180@uref{https://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html,
1181GNU extensions} to the POSIX recommendations for command-line options.")
28cdd818 1182 (license license:bsd-3)))
7427b2c6
PAR
1183
1184(define-public go-github-com-sirupsen-logrus
1185 (package
1186 (name "go-github-com-sirupsen-logrus")
1187 (version "1.0.5")
1188 (source
1189 (origin
1190 (method git-fetch)
1191 (uri (git-reference
1192 (url "https://github.com/sirupsen/logrus.git")
1193 (commit (string-append "v" version))))
f1d4d79f 1194 (file-name (git-file-name name version))
7427b2c6
PAR
1195 (sha256
1196 (base32
1197 "0g5z7al7kky11ai2dhac6gkp3b5pxsvx72yj3xg4wg3265gbn7yz"))))
1198 (build-system go-build-system)
8320c725 1199 (propagated-inputs
561d391b
LF
1200 `(("go-golang-org-x-crypto"
1201 ,go-golang-org-x-crypto)
7427b2c6
PAR
1202 ("go-github-com-stretchr-testify"
1203 ,go-github-com-stretchr-testify)
561d391b 1204 ("go-golang-org-x-sys" ,go-golang-org-x-sys)))
7427b2c6
PAR
1205 (arguments
1206 '(#:tests? #f ;FIXME missing dependencies
1207 #:import-path "github.com/sirupsen/logrus"))
1208 (home-page "https://github.com/sirupsen/logrus")
1209 (synopsis "Structured, pluggable logging for Go")
1210 (description "Logrus is a structured logger for Go, completely API
1211compatible with the standard library logger.")
1212 (license license:expat)))
5cc2b845 1213
aff95768
AG
1214(define-public go-github-com-rifflock-lfshook
1215 (package
1216 (name "go-github-com-rifflock-lfshook")
1217 (version "2.4")
1218 (source (origin
1219 (method git-fetch)
1220 (uri (git-reference
1221 (url "https://github.com/rifflock/lfshook.git")
1222 (commit (string-append "v" version))))
1223 (file-name (git-file-name name version))
1224 (sha256
1225 (base32
1226 "0wxqjcjfg8c0klmdgmbw3ckagby3wg9rkga9ihd4fsf05x5scxrc"))))
1227 (build-system go-build-system)
1228 (arguments
1229 `(#:import-path "github.com/rifflock/lfshook"))
1230 (propagated-inputs
1231 `(("go-github-com-sirupsen-logrus" ,go-github-com-sirupsen-logrus)))
1232 (home-page "https://github.com/rifflock/lfshook")
1233 (synopsis "Local File System hook for Logrus logger")
1234 (description "This package provides a hook for Logrus to write directly to
1235a file on the filesystem. The log levels are dynamic at instantiation of the
1236hook, so it is capable of logging at some or all levels.")
1237 (license license:expat)))
1238
5cc2b845
LF
1239(define-public go-github-com-kardianos-osext
1240 (let ((commit "ae77be60afb1dcacde03767a8c37337fad28ac14")
1241 (revision "1"))
1242 (package
1243 (name "go-github-com-kardianos-osext")
1244 (version (git-version "0.0.0" revision commit))
1245 (source (origin
1246 (method git-fetch)
1247 (uri (git-reference
1248 (url "https://github.com/kardianos/osext")
1249 (commit commit)))
1250 (file-name (git-file-name name version))
1251 (sha256
1252 (base32
1253 "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz"))))
1254 (build-system go-build-system)
1255 (arguments
1256 `(#:import-path "github.com/kardianos/osext"
1257 ;; The tests are flaky:
1258 ;; <https://github.com/kardianos/osext/issues/21>
1259 #:tests? #f))
1260 (synopsis "Find the running executable")
1261 (description "Osext provides a method for finding the current executable
1262file that is running. This can be used for upgrading the current executable or
1263finding resources located relative to the executable file.")
1264 (home-page "https://github.com/kardianos/osext")
1265 (license license:bsd-3))))
aed4944d
PAR
1266
1267(define-public go-github-com-ayufan-golang-kardianos-service
1268 (let ((commit "0c8eb6d8fff2e2fb884a7bfd23e183fb63c0eff3")
1269 (revision "0"))
1270 (package
1271 (name "go-github-com-ayufan-golang-kardianos-service")
1272 (version (git-version "0.0.0" revision commit))
1273 (source
1274 (origin
1275 (method git-fetch)
1276 (uri (git-reference
1277 (url
1278 "https://github.com/ayufan/golang-kardianos-service.git")
1279 (commit commit)))
1280 (file-name (git-file-name name version))
1281 (sha256
1282 (base32
1283 "0x0cn7l5gda2khsfypix7adxd5yqighzn04mxjw6hc4ayrh7his5"))))
1284 (build-system go-build-system)
1285 (native-inputs
1286 `(("go-github-com-kardianos-osext"
1287 ,go-github-com-kardianos-osext)))
1288 (arguments
1289 '(#:tests? #f ;FIXME tests fail: Service is not running.
1290 #:import-path "github.com/ayufan/golang-kardianos-service"))
1291 (home-page "https://github.com/ayufan/golang-kardianos-service")
1292 (synopsis "Go interface to a variety of service supervisors")
1293 (description "This package provides @code{service}, a Go module that can
1294run programs as a service using a variety of supervisors, including systemd,
1295SysVinit, and more.")
1296 (license license:zlib))))
e2826118
PAR
1297
1298(define-public go-github-com-docker-distribution
1299 (let ((commit "325b0804fef3a66309d962357aac3c2ce3f4d329")
1300 (revision "0"))
1301 (package
1302 (name "go-github-com-docker-distribution")
1303 (version (git-version "0.0.0" revision commit))
1304 (source
1305 ;; FIXME: This bundles many things, see
1306 ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31881#41>.
1307 (origin
1308 (method git-fetch)
1309 (uri (git-reference
1310 (url "https://github.com/docker/distribution")
1311 (commit commit)))
1312 (file-name (git-file-name name version))
1313 (sha256
1314 (base32
1315 "1yg2zrikn3vkvkx5mn51p6bfjk840qdkn7ahhhvvcsc8mpigrjc6"))))
1316 (build-system go-build-system)
1317 (native-inputs
561d391b 1318 `(("go-golang-org-x-sys" ,go-golang-org-x-sys)
e2826118
PAR
1319 ("go-github-com-sirupsen-logrus"
1320 ,go-github-com-sirupsen-logrus)
561d391b
LF
1321 ("go-golang-org-x-crypto"
1322 ,go-golang-org-x-crypto)))
e2826118
PAR
1323 (arguments
1324 '(#:import-path "github.com/docker/distribution"
1325 #:phases
1326 (modify-phases %standard-phases
1327 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1328 (lambda* (#:key outputs #:allow-other-keys)
1329 (map (lambda (file)
1330 (make-file-writable file))
1331 (find-files
1332 (assoc-ref outputs "out")
1333 ".*\\.gz$"))
1334 #t)))))
1335 (home-page
1336 "https://github.com/docker/distribution")
a95b6436 1337 (synopsis "This package is a Docker toolset to pack, ship, store, and
e2826118 1338deliver content")
a95b6436
VC
1339 (description "Docker Distribution is a Docker toolset to pack, ship,
1340store, and deliver content. It contains Docker Registry 2.0 and libraries
1341to interact with distribution components.")
e2826118 1342 (license license:asl2.0))))
01bcc94c
PAR
1343
1344(define-public go-github-com-docker-go-connections
1345 (let ((commit "3ede32e2033de7505e6500d6c868c2b9ed9f169d")
1346 (revision "0"))
1347 (package
1348 (name "go-github-com-docker-go-connections")
1349 (version (git-version "0.0.0" revision commit))
1350 (source
1351 (origin
1352 (method git-fetch)
1353 (uri (git-reference
1354 (url "https://github.com/docker/go-connections.git")
1355 (commit commit)))
1356 (file-name (git-file-name name version))
1357 (sha256
1358 (base32
1359 "0v1pkr8apwmhyzbjfriwdrs1ihlk6pw7izm57r24mf9jdmg3fyb0"))))
1360 (build-system go-build-system)
1361 (arguments
1362 '(#:import-path "github.com/docker/go-connections"))
1363 (home-page "https://github.com/docker/go-connections")
1364 (synopsis "Networking library for Go")
1365 (description
f0b32cea 1366 "This package provides a library to work with network connections in
01bcc94c
PAR
1367the Go language. In particular it provides tools to deal with network address
1368translation (NAT), proxies, sockets, and transport layer security (TLS).")
1369 (license license:asl2.0))))
af132bcc
PAR
1370
1371(define-public go-github-com-docker-machine
1372 (let ((commit "7b7a141da84480342357c51838be142bf183b095")
1373 (revision "0"))
1374 (package
1375 (name "go-github-com-docker-machine")
1376 (version (git-version "0.0.0" revision commit))
1377 (source
1378 (origin
1379 (method git-fetch)
1380 (uri (git-reference
1381 (url "https://github.com/docker/machine.git")
1382 (commit commit)))
1383 (file-name (git-file-name name version))
1384 (sha256
1385 (base32
1386 "0bavk0lvs462yh0lnmnxi9psi5qv1x3nvzmd2b0drsahlp1gxi8s"))))
1387 (build-system go-build-system)
1388 (arguments
1389 '(#:import-path "github.com/docker/machine"))
1390 (home-page "https://github.com/docker/machine")
1391 (synopsis "Machine management for a container-centric world")
1392 (description
1393 "@dfn{Machine} lets you create Docker hosts on your computer, on
1394hosting providers, and inside your data center. It creates servers, installs
1395Docker on them, then configures the Docker client to talk to them.")
1396 (license license:asl2.0))))
d850e7a0
PAR
1397
1398(define-public go-github-com-gorhill-cronexpr
1399 (let ((commit "f0984319b44273e83de132089ae42b1810f4933b")
1400 (revision "0"))
1401 (package
1402 (name "go-github-com-gorhill-cronexpr")
1403 (version (git-version "0.0.0" revision commit))
1404 (source
1405 (origin
1406 (method git-fetch)
1407 (uri (git-reference
1408 (url "https://github.com/gorhill/cronexpr.git")
1409 (commit commit)))
1410 (file-name (git-file-name name version))
1411 (sha256
1412 (base32
1413 "0dphhhqy3i7265znv3m8n57l80dmaq6z4hsj5kgd87qd19z8x0l2"))))
1414 (build-system go-build-system)
1415 (arguments
1416 '(#:import-path "github.com/gorhill/cronexpr"))
1417 (home-page "https://github.com/gorhill/cronexpr")
1418 (synopsis "Cron expression parser in the Go language")
1419 (description
1420 "This package provides a cron expression parser in the Go language.
1421Given a cron expression and a time stamp, you can get the next time stamp
1422which satisfies the cron expression.")
1423 (license (list license:gpl3+
1424 license:asl2.0)))))
abd47216
PAR
1425
1426(define-public go-gopkg-in-check-v1
a2dbcfdd
LF
1427 (let ((commit "788fd78401277ebd861206a03c884797c6ec5541")
1428 (revision "1"))
abd47216
PAR
1429 (package
1430 (name "go-gopkg-in-check-v1")
a2dbcfdd 1431 (version (git-version "1.0.0" revision commit))
abd47216
PAR
1432 (source
1433 (origin
1434 (method git-fetch)
1435 (uri (git-reference
1436 (url "https://github.com/go-check/check")
1437 (commit commit)))
1438 (file-name (git-file-name name version))
1439 (sha256
1440 (base32
a2dbcfdd 1441 "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a"))))
abd47216
PAR
1442 (build-system go-build-system)
1443 (arguments
1444 '(#:import-path "gopkg.in/check.v1"))
a2dbcfdd
LF
1445 (propagated-inputs
1446 `(("go-github-com-kr-pretty" ,go-github-com-kr-pretty)))
abd47216
PAR
1447 (home-page "https://gopkg.in/check.v1")
1448 (synopsis "Test framework for the Go language")
a2dbcfdd 1449 (description "This package provides a test library for the Go language.")
abd47216 1450 (license license:asl2.0))))
d2c5e912
PAR
1451
1452(define-public go-gopkg-in-yaml-v2
c17e69b3
LF
1453 (package
1454 (name "go-gopkg-in-yaml-v2")
1455 (version "2.2.2")
1456 (source
1457 (origin
1458 (method git-fetch)
1459 (uri (git-reference
1460 (url "https://gopkg.in/yaml.v2.git")
1461 (commit (string-append "v" version))))
1462 (file-name (git-file-name name version))
1463 (sha256
1464 (base32
1465 "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa"))))
1466 (build-system go-build-system)
1467 (arguments
1468 '(#:import-path "gopkg.in/yaml.v2"))
1469 (native-inputs
1470 `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
1471 (home-page "https://gopkg.in/yaml.v2")
1472 (synopsis "YAML reader and writer for the Go language")
1473 (description
1474 "This package provides a Go library for encode and decode YAML
d2c5e912 1475values.")
c17e69b3 1476 (license license:asl2.0)))
3291be81
PN
1477
1478(define-public go-github-com-mattn-go-isatty
24e3520d
LF
1479 (package
1480 (name "go-github-com-mattn-go-isatty")
df14a8b6 1481 (version "0.0.11")
24e3520d
LF
1482 (source
1483 (origin
1484 (method git-fetch)
1485 (uri (git-reference
1486 (url "https://github.com/mattn/go-isatty")
1487 (commit (string-append "v" version))))
1488 (file-name (git-file-name name version))
1489 (sha256
1490 (base32
df14a8b6 1491 "0h671sv7hfprja495kavazkalkx7xzaqksjh13brcnwq67ijrali"))))
24e3520d 1492 (build-system go-build-system)
36bb1d5a 1493 (propagated-inputs
561d391b 1494 `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
24e3520d
LF
1495 (arguments
1496 '(#:import-path "github.com/mattn/go-isatty"))
1497 (home-page "https://github.com/mattn/go-isatty")
1498 (synopsis "Provide @code{isatty} for Golang")
1499 (description "This package provides @code{isatty}, a Go module that can
3291be81
PN
1500tell you whether a file descriptor points to a terminal and the type of the
1501terminal.")
24e3520d 1502 (license license:expat)))
7601b4e4
PN
1503
1504(define-public go-github-com-mattn-go-colorable
1505 (let ((commit "efa589957cd060542a26d2dd7832fd6a6c6c3ade")
1506 (revision "0"))
1507 (package
1508 (name "go-github-com-mattn-go-colorable")
1509 (version (git-version "0.0.0" revision commit))
1510 (source
1511 (origin
1512 (method git-fetch)
1513 (uri (git-reference
1514 (url "https://github.com/mattn/go-colorable")
1515 (commit commit)))
1516 (file-name (git-file-name name version))
1517 (sha256
1518 (base32
1519 "0kshi4hvm0ayrsxqxy0599iv81kryhd2fn9lwjyczpj593cq069r"))))
1520 (build-system go-build-system)
1521 (native-inputs
1522 `(("go-github-com-mattn-go-isatty"
1523 ,go-github-com-mattn-go-isatty)))
1524 (arguments
1525 '(#:import-path "github.com/mattn/go-colorable"))
1526 (home-page "https://github.com/mattn/go-colorable")
1527 (synopsis "Handle ANSI color escapes on Windows")
1528 (description "This package provides @code{colorable}, a module that
1529makes it possible to handle ANSI color escapes on Windows.")
1530 (license license:expat))))
32cb1af6
PN
1531
1532(define-public go-github-com-mgutz-ansi
1533 (let ((commit "9520e82c474b0a04dd04f8a40959027271bab992")
1534 (revision "0"))
1535 (package
1536 (name "go-github-com-mgutz-ansi")
1537 (version (git-version "0.0.0" revision commit))
1538 (source
1539 (origin
1540 (method git-fetch)
1541 (uri (git-reference
1542 (url
1543 "https://github.com/mgutz/ansi")
1544 (commit commit)))
1545 (file-name (git-file-name name version))
1546 (sha256
1547 (base32
1548 "00bz22314j26736w1f0q4jy9d9dfaml17vn890n5zqy3cmvmww1j"))))
1549 (build-system go-build-system)
1550 (native-inputs
1551 `(("go-github-com-mattn-go-isatty"
1552 ,go-github-com-mattn-go-isatty)
1553 ("go-github-com-mattn-go-colorable"
1554 ,go-github-com-mattn-go-colorable)))
1555 (arguments
1556 '(#:import-path "github.com/mgutz/ansi"))
1557 (home-page "https://github.com/mgutz/ansi")
1558 (synopsis "Small, fast library to create ANSI colored strings and codes")
1559 (description "This package provides @code{ansi}, a Go module that can
1560generate ANSI colored strings.")
1561 (license license:expat))))
e25ddef5
PN
1562
1563(define-public go-github-com-aarzilli-golua
1564 (let ((commit "03fc4642d792b1f2bc5e7343b403cf490f8c501d")
1565 (revision "0"))
1566 (package
1567 (name "go-github-com-aarzilli-golua")
1568 (version (git-version "0.0.0" revision commit))
1569 (source
1570 (origin
1571 (method git-fetch)
1572 (uri (git-reference
1573 (url
1574 "https://github.com/aarzilli/golua")
1575 (commit commit)))
1576 (file-name (git-file-name name version))
1577 (sha256
1578 (base32
1579 "1d9hr29i36cza98afj3g6rs3l7xbkprwzz0blcxsr9dd7nak20di"))))
1580 (build-system go-build-system)
5c475841
PN
1581 ;; From go-1.10 onward, "pkg" compiled libraries are not re-used, so
1582 ;; when this package required as input for another one, it will have to
1583 ;; be built again. Thus its CGO requirements must be made available in
1584 ;; the environment, that is, they must be propagated.
1585 (propagated-inputs
e25ddef5
PN
1586 `(("lua" ,lua)))
1587 (arguments
1588 `(#:unpack-path "github.com/aarzilli/golua"
1589 #:import-path "github.com/aarzilli/golua/lua"
1590 #:phases
1591 (modify-phases %standard-phases
5c475841
PN
1592 ;; While it's possible to fix the CGO_LDFLAGS with the "-tags"
1593 ;; command line argument, go-1.10+ does not re-use the produced pkg
1594 ;; for dependencies, which means we would need to propagate the
1595 ;; same "-tags" argument to all golua referrers. A substitution is
1596 ;; more convenient here. We also need to propagate the lua
1597 ;; dependency to make it available to referrers.
1598 (add-after 'unpack 'fix-lua-ldflags
1599 (lambda _
1600 (substitute* "src/github.com/aarzilli/golua/lua/lua.go"
1601 (("#cgo linux,!llua,!luaa LDFLAGS: -llua5.3")
1602 "#cgo linux,!llua,!luaa LDFLAGS: -llua")))))))
e25ddef5
PN
1603 (home-page "https://github.com/aarzilli/golua")
1604 (synopsis "Go Bindings for the Lua C API")
1605 (description "This package provides @code{lua}, a Go module that can
1606run a Lua virtual machine.")
1607 (license license:expat))))
f25e3b39
PN
1608
1609(define-public go-gitlab-com-ambrevar-golua-unicode
1610 (let ((commit "97ce517e7a1fe2407a90c317a9c74b173d396144")
1611 (revision "0"))
1612 (package
1613 (name "go-gitlab-com-ambrevar-golua-unicode")
1614 (version (git-version "0.0.0" revision commit))
1615 (source
1616 (origin
1617 (method git-fetch)
1618 (uri (git-reference
1619 (url
1620 "https://gitlab.com/ambrevar/golua")
1621 (commit commit)))
1622 (file-name (git-file-name name version))
1623 (sha256
1624 (base32
1625 "1izcp7p8nagjwqd13shb0020w7xhppib1a3glw2d1468bflhksnm"))))
1626 (build-system go-build-system)
1627 (native-inputs
1628 `(("lua" ,lua)
1629 ("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
1630 (arguments
1631 `(#:unpack-path "gitlab.com/ambrevar/golua"
1632 #:import-path "gitlab.com/ambrevar/golua/unicode"
1633 #:phases
1634 (modify-phases %standard-phases
1635 (replace 'check
1636 (lambda* (#:key import-path #:allow-other-keys)
1637 (setenv "USER" "homeless-dude")
1638 (invoke "go" "test" import-path))))))
1639 (home-page "https://gitlab.com/ambrevar/golua")
1640 (synopsis "Add Unicode support to Golua")
1641 (description "This extension to Arzilli's Golua adds Unicode support to
1642all functions from the Lua string library. Lua patterns are replaced by Go
1643regexps. This breaks compatibility with Lua, but Unicode support breaks it
1644anyways and Go regexps are more powerful.")
1645 (license license:expat))))
b4d1440f
PN
1646
1647(define-public go-github-com-yookoala-realpath
1648 (let ((commit "d19ef9c409d9817c1e685775e53d361b03eabbc8")
1649 (revision "0"))
1650 (package
1651 (name "go-github-com-yookoala-realpath")
1652 (version (git-version "0.0.0" revision commit))
1653 (source
1654 (origin
1655 (method git-fetch)
1656 (uri (git-reference
1657 (url
1658 "https://github.com/yookoala/realpath")
1659 (commit commit)))
1660 (file-name (git-file-name name version))
1661 (sha256
1662 (base32
1663 "0qvz1dcdldf53rq69fli76z5k1vr7prx9ds1d5rpzgs68kwn40nw"))))
1664 (build-system go-build-system)
1665 (arguments
1666 `(#:import-path "github.com/yookoala/realpath"))
1667 (home-page "https://github.com/yookoala/realpath")
1668 (synopsis "@code{realpath} for Golang")
1669 (description "This package provides @code{realpath}, a Go module that
1670when provided with a valid relative path / alias path, it will return you with
1671a string of its real absolute path in the system.")
0e11f5da 1672 (license license:expat))))
54b83f0e
PN
1673
1674(define-public go-gitlab-com-ambrevar-damerau
1675 (let ((commit "883829e1f25fad54015772ea663e69017cf22352")
1676 (revision "0"))
1677 (package
1678 (name "go-gitlab-com-ambrevar-damerau")
1679 (version (git-version "0.0.0" revision commit))
1680 (source
1681 (origin
1682 (method git-fetch)
1683 (uri (git-reference
1684 (url
1685 "https://gitlab.com/ambrevar/damerau")
1686 (commit commit)))
1687 (file-name (git-file-name name version))
1688 (sha256
1689 (base32
1690 "1b9p8fypc914ij1afn6ir346zsgfqrc5mqc1k3d53n4snypq27qv"))))
1691 (build-system go-build-system)
1692 (arguments
1693 `(#:import-path "gitlab.com/ambrevar/damerau"))
1694 (home-page "https://gitlab.com/ambrevar/damerau")
1695 (synopsis "Damerau-Levenshtein distance for Golang")
1696 (description "This is a spelling corrector implementing the
1697Damerau-Levenshtein distance. Takes a string value input from the user.
1698Looks for an identical word on a list of words, if none is found, look for a
1699similar word.")
1700 (license license:expat))))
c4962817
PN
1701
1702(define-public go-github-com-stevedonovan-luar
1703 (let ((commit "22d247e5366095f491cd83edf779ee99a78f5ead")
1704 (revision "0"))
1705 (package
1706 (name "go-github-com-stevedonovan-luar")
1707 (version (git-version "0.0.0" revision commit))
1708 (source
1709 (origin
1710 (method git-fetch)
1711 (uri (git-reference
1712 (url
1713 "https://github.com/stevedonovan/luar")
1714 (commit commit)))
1715 (file-name (git-file-name name version))
1716 (sha256
1717 (base32
1718 "1acjgw9cz1l0l9mzkyk7irz6cfk31wnxgbwa805fvm1rqcjzin2c"))))
1719 (build-system go-build-system)
1720 (native-inputs
1721 `(("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
1722 (arguments
1723 `(#:tests? #f ; Upstream tests are broken.
1724 #:import-path "github.com/stevedonovan/luar"))
1725 (home-page "https://github.com/stevedonovan/luar")
1726 (synopsis "Lua reflection bindings for Go")
1727 (description "Luar is designed to make using Lua from Go more
1728convenient. Go structs, slices and maps can be automatically converted to Lua
1729tables and vice-versa. The resulting conversion can either be a copy or a
1730proxy. In the latter case, any change made to the result will reflect on the
1731source.
1732
1733Any Go function can be made available to Lua scripts, without having to write
1734C-style wrappers.
1735
1736Luar support cyclic structures (lists, etc.).
1737
1738User-defined types can be made available to Lua as well: their exported
1739methods can be called and usual operations such as indexing or arithmetic can
1740be performed.")
1741 (license license:expat))))
bc3138d2 1742
9630ae34
PN
1743(define-public go-github-com-michiwend-golang-pretty
1744 (let ((commit "8ac61812ea3fa540f3f141a444fcb0dd713cdca4")
1745 (revision "0"))
1746 (package
1747 (name "go-github-com-michiwend-golang-pretty")
1748 (version (git-version "0.0.0" revision commit))
1749 (source
1750 (origin
1751 (method git-fetch)
1752 (uri (git-reference
1753 (url
1754 "https://github.com/michiwend/golang-pretty")
1755 (commit commit)))
1756 (file-name (git-file-name name version))
1757 (sha256
1758 (base32
1759 "0rjfms0csjqi91xnddzx3rcrcaikc7xc027617px3kdwdap80ir4"))))
1760 (build-system go-build-system)
1761 (native-inputs
1762 `(("go-github-com-kr-text" ,go-github-com-kr-text)))
1763 (arguments
1764 `(#:tests? #f ; Upstream tests seem to be broken.
1765 #:import-path "github.com/michiwend/golang-pretty"))
1766 (home-page "https://github.com/michiwend/golang-pretty")
1767 (synopsis "Pretty printing for Go values")
1768 (description "Package @code{pretty} provides pretty-printing for Go
1769values. This is useful during debugging, to avoid wrapping long output lines
1770in the terminal.
1771
1772It provides a function, @code{Formatter}, that can be used with any function
1773that accepts a format string. It also provides convenience wrappers for
1774functions in packages @code{fmt} and @code{log}.")
1775 (license license:expat))))
62879d22
PN
1776
1777(define-public go-github-com-michiwend-gomusicbrainz
1778 (let ((commit "0cdeb13f9b24d2c714feb7e3c63d595cf7121d7d")
1779 (revision "0"))
1780 (package
1781 (name "go-github-com-michiwend-gomusicbrainz")
1782 (version (git-version "0.0.0" revision commit))
1783 (source
1784 (origin
1785 (method git-fetch)
1786 (uri (git-reference
1787 (url
1788 "https://github.com/michiwend/gomusicbrainz")
1789 (commit commit)))
1790 (file-name (git-file-name name version))
1791 (sha256
1792 (base32
1793 "1li9daw0kghb80rdmxbh7g72qhxcvx3rvhwq5gs0jrr9hb8pjvcn"))))
1794 (build-system go-build-system)
1795 (native-inputs
1796 `(("go-github-com-michiwend-golang-pretty" ,go-github-com-michiwend-golang-pretty)
1797 ("go-github-com-kr-text" ,go-github-com-kr-text)))
1798 (arguments
1799 `(#:import-path "github.com/michiwend/gomusicbrainz"))
1800 (home-page "https://github.com/michiwend/gomusicbrainz")
1801 (synopsis "MusicBrainz WS2 client library for Golang")
1802 (description "Currently GoMusicBrainz provides methods to perform search
1803and lookup requests. Browse requests are not supported yet.")
1804 (license license:expat))))
53182924
PN
1805
1806(define-public go-github-com-wtolson-go-taglib
1807 (let ((commit "6e68349ff94ecea412de7e748cb5eaa26f472777")
1808 (revision "0"))
1809 (package
1810 (name "go-github-com-wtolson-go-taglib")
1811 (version (git-version "0.0.0" revision commit))
1812 (source
1813 (origin
1814 (method git-fetch)
1815 (uri (git-reference
1816 (url
1817 "https://github.com/wtolson/go-taglib")
1818 (commit commit)))
1819 (file-name (git-file-name name version))
1820 (sha256
1821 (base32
1822 "1cpjqnrviwflz150g78iir5ndrp3hh7a93zbp4dwbg6sb2q141p2"))))
1823 (build-system go-build-system)
46a4ae22
PN
1824 ;; From go-1.10 onward, "pkg" compiled libraries are not re-used, so
1825 ;; when this package required as input for another one, it will have to
1826 ;; be built again. Thus its CGO requirements must be made available in
1827 ;; the environment, that is, they must be propagated.
1828 (propagated-inputs
53182924
PN
1829 `(("pkg-config" ,pkg-config)
1830 ("taglib" ,taglib)))
1831 (arguments
46a4ae22 1832 `(#:import-path "github.com/wtolson/go-taglib"
e53f9ce2 1833 ;; Tests don't pass "vet" on Go since 1.11. See
46a4ae22
PN
1834 ;; https://github.com/wtolson/go-taglib/issues/12.
1835 #:phases
1836 (modify-phases %standard-phases
1837 (replace 'check
1838 (lambda* (#:key import-path #:allow-other-keys)
1839 (invoke "go" "test"
1840 "-vet=off"
1841 import-path))))))
53182924
PN
1842 (home-page "https://github.com/wtolson/go-taglib")
1843 (synopsis "Go wrapper for taglib")
1844 (description "Go wrapper for taglib")
1845 (license license:unlicense))))
5787e152 1846
5787e152 1847(define-public go-github-com-gogo-protobuf
2f9bbd8e
LF
1848 (package
1849 (name "go-github-com-gogo-protobuf")
a2c885b3 1850 (version "1.3.1")
2f9bbd8e
LF
1851 (source (origin
1852 (method git-fetch)
1853 (uri (git-reference
1854 (url "https://github.com/gogo/protobuf")
1855 (commit (string-append "v" version))))
1856 (file-name (git-file-name name version))
1857 (sha256
1858 (base32
a2c885b3 1859 "0x77x64sxjgfhmbijqfzmj8h4ar25l2w97h01q3cqs1wk7zfnkhp"))))
2f9bbd8e
LF
1860 (build-system go-build-system)
1861 (arguments
35defe61
LF
1862 `(#:import-path "github.com/gogo/protobuf"
1863 ; Source-only package
1864 #:tests? #f
1865 #:phases
1866 (modify-phases %standard-phases
1867 (delete 'build))))
2f9bbd8e
LF
1868 (synopsis "Protocol Buffers for Go with Gadgets")
1869 (description "Gogoprotobuf is a fork of golang/protobuf with extra code
5787e152
PN
1870generation features. This code generation is used to achieve:
1871@itemize
1872@item fast marshalling and unmarshalling
1873@item more canonical Go structures
1874@item goprotobuf compatibility
1875@item less typing by optionally generating extra helper code
1876@item peace of mind by optionally generating test and benchmark code
1877@item other serialization formats
1878@end itemize")
2f9bbd8e
LF
1879 (home-page "https://github.com/gogo/protobuf")
1880 (license license:bsd-3)))
5787e152 1881
386bd7ba
PN
1882(define-public go-github-com-libp2p-go-flow-metrics
1883 (let ((commit "7e5a55af485341567f98d6847a373eb5ddcdcd43")
1884 (revision "0"))
1885 (package
1886 (name "go-github-com-libp2p-go-flow-metrics")
1887 (version (git-version "0.2.0" revision commit))
1888 (source
1889 (origin
1890 (method git-fetch)
1891 (uri (git-reference
1892 (url "https://github.com/libp2p/go-flow-metrics.git")
1893 (commit commit)))
1894 (file-name (git-file-name name version))
1895 (sha256
1896 (base32
1897 "1p87iyk6q6f3g3xkncssx400qlld8f2z93qiz8m1f97grfyhjif1"))))
1898 (build-system go-build-system)
1899 (arguments
1900 `(#:import-path "github.com/libp2p/go-flow-metrics"
1901 ;; TODO: Tests hang.
1902 #:tests? #f))
1903 (home-page
1904 "https://github.com/libp2p/go-flow-metrics")
1905 (synopsis "Simple library for tracking flow metrics")
1906 (description "A simple alternative to rcrowley's @command{go-metrics}
1907that's a lot faster (and only does simple bandwidth metrics).")
1908 (license license:expat))))
6a95e3a3
PN
1909
1910(define-public go-github-com-davecgh-go-spew
1911 (let ((commit "d8f796af33cc11cb798c1aaeb27a4ebc5099927d")
1912 (revision "0"))
1913 (package
1914 (name "go-github-com-davecgh-go-spew")
1915 (version (git-version "0.0.0" revision commit))
1916 (source
1917 (origin
1918 (method git-fetch)
1919 (uri (git-reference
1920 (url "https://github.com/davecgh/go-spew.git")
1921 (commit commit)))
1922 (file-name (git-file-name name version))
1923 (sha256
1924 (base32
1925 "19z27f306fpsrjdvkzd61w1bdazcdbczjyjck177g33iklinhpvx"))))
1926 (build-system go-build-system)
1927 (arguments
1928 '(#:unpack-path "github.com/davecgh/go-spew"
1929 #:import-path "github.com/davecgh/go-spew/spew"))
1930 (home-page "https://github.com/davecgh/go-spew")
1931 (synopsis "Deep pretty printer for Go data structures to aid in debugging")
1932 (description "Package @command{spew} implements a deep pretty printer
1933for Go data structures to aid in debugging.
1934
1935A quick overview of the additional features spew provides over the built-in printing facilities for Go data types are as follows:
1936
1937@itemize
1938@item Pointers are dereferenced and followed.
1939@item Circular data structures are detected and handled properly.
1940@item Custom Stringer/error interfaces are optionally invoked, including on
1941unexported types.
1942@item Custom types which only implement the Stringer/error interfaces via a
1943pointer receiver are optionally invoked when passing non-pointer variables.
1944@item Byte arrays and slices are dumped like the hexdump -C command which
1945includes offsets, byte values in hex, and ASCII output (only when using Dump
1946style).
1947@end itemize\n")
1948 (license license:isc))))
171c3259
PN
1949
1950(define-public go-github-com-btcsuite-btclog
1951 (let ((commit "84c8d2346e9fc8c7b947e243b9c24e6df9fd206a")
1952 (revision "0"))
1953 (package
1954 (name "go-github-com-btcsuite-btclog")
1955 (version (git-version "0.0.3" revision commit))
1956 (source
1957 (origin
1958 (method git-fetch)
1959 (uri (git-reference
1960 (url "https://github.com/btcsuite/btclog.git")
1961 (commit commit)))
1962 (file-name (git-file-name name version))
1963 (sha256
1964 (base32
1965 "02dl46wcnfpg9sqvg0ipipkpnd7lrf4fnvb9zy56jqa7mfcwc7wk"))))
1966 (build-system go-build-system)
1967 (arguments
1968 '(#:import-path "github.com/btcsuite/btclog"))
1969 (home-page "https://github.com/btcsuite/btclog")
1970 (synopsis "Subsystem aware logger for Go")
1971 (description "Package @command{btclog} defines a logger interface and
1972provides a default implementation of a subsystem-aware leveled logger
1973implementing the same interface.")
1974 (license license:isc))))
d5599afa
PN
1975
1976(define-public go-github-com-btcsuite-btcd-btcec
1977 (let ((commit "67e573d211ace594f1366b4ce9d39726c4b19bd0")
1978 (revision "0"))
1979 (package
1980 (name "go-github-com-btcsuite-btcd-btcec")
1981 (version (git-version "0.12.0-beta" revision commit))
1982 (source
1983 (origin
1984 (method git-fetch)
1985 (uri (git-reference
1986 (url "https://github.com/btcsuite/btcd.git")
1987 (commit commit)))
1988 (file-name (git-file-name name version))
1989 (sha256
1990 (base32
1991 "04s92gsy71w1jirlr5lkk9y6r5cparbas7nmf6ywbp7kq7fn8ajn"))))
1992 (build-system go-build-system)
1993 (arguments
1994 '(#:unpack-path "github.com/btcsuite/btcd"
1995 #:import-path "github.com/btcsuite/btcd/btcec"))
1996 (native-inputs
1997 `(("go-github-com-davecgh-go-spew" ,go-github-com-davecgh-go-spew)))
1998 (home-page "https://github.com/btcsuite/btcd")
1999 (synopsis "Elliptic curve cryptography to work with Bitcoin")
2000 (description "Package @command{btcec} implements elliptic curve
2001cryptography needed for working with Bitcoin (secp256k1 only for now). It is
2002designed so that it may be used with the standard crypto/ecdsa packages
2003provided with Go. A comprehensive suite of test is provided to ensure proper
2004functionality. Package @command{btcec} was originally based on work from
2005ThePiachu which is licensed under the same terms as Go, but it has
2ec41781 2006significantly diverged since then. The @command{btcsuite} developers original
d5599afa
PN
2007is licensed under the liberal ISC license.
2008
2009Although this package was primarily written for btcd, it has intentionally
2010been designed so it can be used as a standalone package for any projects
2011needing to use secp256k1 elliptic curve cryptography.")
2012 (license license:isc))))
ff2d11c3
PN
2013
2014(define-public go-github-com-minio-sha256-simd
be47a83a
LF
2015 (package
2016 (name "go-github-com-minio-sha256-simd")
e4d8efe9 2017 (version "0.1.1")
be47a83a
LF
2018 (source
2019 (origin
2020 (method git-fetch)
2021 (uri (git-reference
2022 (url "https://github.com/minio/sha256-simd.git")
2023 (commit (string-append "v" version))))
2024 (file-name (git-file-name name version))
2025 (sha256
2026 (base32
e4d8efe9 2027 "1j0iqsckm97g4l79vd4mc7apbmkdar23jpzqpnpdhwpfd834j8lp"))))
be47a83a
LF
2028 (build-system go-build-system)
2029 (arguments
2030 '(#:import-path "github.com/minio/sha256-simd"))
2031 (home-page "https://github.com/minio/sha256-simd")
2032 (synopsis "Accelerate SHA256 computations in pure Go")
2033 (description "Accelerate SHA256 computations in pure Go using AVX512 and
ff2d11c3
PN
2034AVX2 for Intel and ARM64 for ARM. On AVX512 it provides an up to 8x
2035improvement (over 3 GB/s per core) in comparison to AVX2.
2036
2037This package is designed as a replacement for @command{crypto/sha256}. For
2038Intel CPUs it has two flavors for AVX512 and AVX2 (AVX/SSE are also
2039supported). For ARM CPUs with the Cryptography Extensions, advantage is taken
2040of the SHA2 instructions resulting in a massive performance improvement.
2041
2042This package uses Golang assembly. The AVX512 version is based on the Intel's
2043\"multi-buffer crypto library for IPSec\" whereas the other Intel
2044implementations are described in \"Fast SHA-256 Implementations on Intel
2045Architecture Processors\" by J. Guilford et al.")
be47a83a 2046 (license license:asl2.0)))
71f36804
PN
2047
2048(define-public go-github-com-libp2p-go-libp2p-crypto
2049 (let ((commit "7240b40a3ddc47c4d17c15baabcbe45e5219171b")
2050 (revision "0"))
2051 (package
2052 (name "go-github-com-libp2p-go-libp2p-crypto")
2053 (version (git-version "2.0.1" revision commit))
2054 (source
2055 (origin
2056 (method git-fetch)
2057 (uri (git-reference
2058 (url "https://github.com/libp2p/go-libp2p-crypto.git")
2059 (commit commit)))
2060 (file-name (git-file-name name version))
2061 (sha256
2062 (base32
2063 "0qwpy57qv5143l9dlfwfvpqsxdd2i4zwnawx1w4pmgxxim3nw1wb"))))
2064 (build-system go-build-system)
2065 (arguments
2066 '(#:import-path "github.com/libp2p/go-libp2p-crypto"))
2067 (native-inputs
561d391b 2068 `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
71f36804 2069 ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
35defe61 2070 ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
71f36804
PN
2071 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)))
2072 (home-page
2073 "https://github.com/libp2p/go-libp2p-crypto")
2074 (synopsis "Various cryptographic utilities used by IPFS")
2075 (description "Various cryptographic utilities used by IPFS")
2076 (license license:expat))))
15272a50
PN
2077
2078(define-public go-github-com-mr-tron-base58
2079 (let ((commit "d724c80ecac7b49e4e562d58b2b4f4ee4ed8c312")
2080 (revision "0"))
2081 (package
2082 (name "go-github-com-mr-tron-base58")
2083 (version (git-version "1.1.0" revision commit))
2084 (source
2085 (origin
2086 (method git-fetch)
2087 (uri (git-reference
2088 (url "https://github.com/mr-tron/base58.git")
2089 (commit commit)))
2090 (file-name (git-file-name name version))
2091 (sha256
2092 (base32
2093 "12qhgnn9wf3c1ang16r4i778whk4wsrj7d90h2xgmz4fi1469rqa"))))
2094 (build-system go-build-system)
2095 (arguments
2096 `(#:unpack-path "github.com/mr-tron/base58"
2097 #:import-path "github.com/mr-tron/base58/base58"))
2098 (home-page "https://github.com/mr-tron/base58")
2099 (synopsis "Fast implementation of base58 encoding on Golang")
2100 (description "Fast implementation of base58 encoding on Golang. A
2101trivial @command{big.Int} encoding benchmark results in 6 times faster
2102encoding and 8 times faster decoding.")
2103 (license license:expat))))
27d59d8b
PN
2104
2105(define-public go-github-com-gxed-hashland-keccakpg
2106 (let ((commit "d9f6b97f8db22dd1e090fd0bbbe98f09cc7dd0a8")
2107 (revision "0"))
2108 (package
2109 (name "go-github-com-gxed-hashland-keccakpg")
2110 (version (git-version "0.0.0" revision commit))
2111 (source
2112 (origin
2113 (method git-fetch)
2114 (uri (git-reference
2115 (url "https://github.com/gxed/hashland.git")
2116 (commit commit)))
2117 (file-name (git-file-name name version))
2118 (sha256
2119 (base32
2120 "1q23y4lacsz46k9gmgfw4iwwydw36j2601rbidmmswl94grpc386"))))
2121 (build-system go-build-system)
2122 (arguments
2123 '(#:unpack-path "github.com/gxed/hashland"
2124 #:import-path "github.com/gxed/hashland/keccakpg"))
2125 (home-page "https://github.com/gxed/hashland")
2126 (synopsis "Implements the Keccak (SHA-3) hash algorithm in Go")
2127 (description "Package @command{keccak} implements the Keccak (SHA-3)
2128hash algorithm. See http://keccak.noekeon.org.")
2129 (license license:expat))))
90f2a848
PN
2130
2131(define-public go-github-com-minio-blake2b-simd
2132 (let ((commit "3f5f724cb5b182a5c278d6d3d55b40e7f8c2efb4")
2133 (revision "0"))
2134 (package
2135 (name "go-github-com-minio-blake2b-simd")
2136 (version (git-version "0.0.0" revision commit))
2137 (source
2138 (origin
2139 (method git-fetch)
2140 (uri (git-reference
2141 (url "https://github.com/minio/blake2b-simd.git")
2142 (commit commit)))
2143 (file-name (git-file-name name version))
2144 (sha256
2145 (base32
2146 "0b6jbnj62c0gmmfd4zdmh8xbg01p80f13yygir9xprqkzk6fikmd"))))
2147 (build-system go-build-system)
2148 (arguments
2149 '(#:import-path "github.com/minio/blake2b-simd"))
2150 (home-page "https://github.com/minio/blake2b-simd")
2151 (synopsis "Fast hashing in pure Go of BLAKE2b with SIMD instructions")
2152 (description "This package was initially based on the pure go BLAKE2b
2153implementation of Dmitry Chestnykh and merged with the (cgo dependent) AVX
2154optimized BLAKE2 implementation (which in turn is based on the official
2155implementation. It does so by using Go's Assembler for amd64 architectures
2156with a golang only fallback for other architectures.
2157
2158In addition to AVX there is also support for AVX2 as well as SSE. Best
2159performance is obtained with AVX2 which gives roughly a 4X performance
2160increase approaching hashing speeds of 1GB/sec on a single core.")
2161 (license license:asl2.0))))
9a7f1575
PN
2162
2163(define-public go-github-com-spaolacci-murmur3
cb78846c
LF
2164 (package
2165 (name "go-github-com-spaolacci-murmur3")
2166 (version "1.1.0")
2167 (source
2168 (origin
2169 (method git-fetch)
2170 (uri (git-reference
2171 (url "https://github.com/spaolacci/murmur3.git")
2172 (commit (string-append "v" version))))
2173 (file-name (git-file-name name version))
2174 (sha256
2175 (base32
2176 "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25"))))
2177 (build-system go-build-system)
2178 (arguments
2179 '(#:import-path "github.com/spaolacci/murmur3"))
2180 (home-page "https://github.com/spaolacci/murmur3")
2181 (synopsis "Native MurmurHash3 Go implementation")
2182 (description "Native Go implementation of Austin Appleby's third MurmurHash
2183revision (aka MurmurHash3).
9a7f1575
PN
2184
2185Reference algorithm has been slightly hacked as to support the streaming mode
2186required by Go's standard Hash interface.")
cb78846c 2187 (license license:bsd-3)))
2e42e587 2188
ea2dcf16
LF
2189(define-public go-github-com-calmh-murmur3
2190 (let ((commit "74e9af8f47ac56901c490d45546ca167b60c7066")
2191 (revision "0"))
2192 (package
2193 (name "go-github-com-calmh-murmur3")
2194 (version (git-version "1.1.0" revision commit))
2195 (source
2196 (origin
2197 (method git-fetch)
2198 (uri (git-reference
2199 (url "https://github.com/calmh/murmur3.git")
2200 (commit commit)))
2201 (file-name (git-file-name name version))
2202 (sha256
2203 (base32
2204 "0k8345ivx228qdbkl8bisd2wxwsinkb44ghba6r09538fr3fbr5w"))))
2205 (build-system go-build-system)
2206 (arguments
2207 '(#:import-path "github.com/calmh/murmur3"))
2208 (home-page "https://github.com/calmh/murmur3")
2209 (synopsis "Native MurmurHash3 Go implementation")
2210 (description "Native Go implementation of Austin Appleby's third
2211MurmurHash revision (aka MurmurHash3).
2212
2213Reference algorithm has been slightly hacked as to support the streaming mode
2214required by Go's standard Hash interface.")
2215 (license license:bsd-3))))
2216
2e42e587
PN
2217(define-public go-github-com-multiformats-go-multihash
2218 (let ((commit "97cdb562a04c6ef66d8ed40cd62f8fbcddd396d6")
2219 (revision "0"))
2220 (package
2221 (name "go-github-com-multiformats-go-multihash")
2222 (version (git-version "1.0.8" revision commit))
2223 (source
2224 (origin
2225 (method git-fetch)
2226 (uri (git-reference
2227 (url "https://github.com/multiformats/go-multihash.git")
2228 (commit commit)))
2229 (file-name (git-file-name name version))
2230 (sha256
2231 (base32
2232 "02wd9akrwy4y5m0nig9m24p14bjjgb4n1djydrq8cm4yhbvjrrk0"))))
2233 (build-system go-build-system)
2234 (arguments
2235 '(#:import-path "github.com/multiformats/go-multihash"))
2236 (native-inputs
2237 `(("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2238 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2239 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2240 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2241 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
561d391b 2242 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
2e42e587
PN
2243 (home-page "https://github.com/multiformats/go-multihash")
2244 (synopsis "Multihash implementation in Go")
2245 (description "Multihash implementation in Go.")
2246 (license license:expat))))
1db1e3c7
PN
2247
2248(define-public go-github-com-libp2p-go-libp2p-peer
2249 (let ((commit "993d742bc29dcf4894b7730ba610fd78900be76c")
2250 (revision "0"))
2251 (package
2252 (name "go-github-com-libp2p-go-libp2p-peer")
2253 (version (git-version "2.3.8" revision commit))
2254 (source
2255 (origin
2256 (method git-fetch)
2257 (uri (git-reference
2258 (url "https://github.com/libp2p/go-libp2p-peer.git")
2259 (commit commit)))
2260 (file-name (git-file-name name version))
2261 (sha256
2262 (base32
2263 "1h96qjdi0i1wbr0jliap2903mycphas3ny0zdrm77yca9plcnphh"))))
2264 (build-system go-build-system)
2265 (arguments
2266 '(#:import-path "github.com/libp2p/go-libp2p-peer"))
2267 (native-inputs
2268 `(("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
35defe61 2269 ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
1db1e3c7
PN
2270 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2271 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2272 ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
2273 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2274 ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
2275 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2276 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
561d391b 2277 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
1db1e3c7
PN
2278 (home-page "https://github.com/libp2p/go-libp2p-peer")
2279 (synopsis "PKI based identities for use in go-libp2p")
2280 (description "PKI based identities for use in @command{go-libp2p}.")
2281 (license license:expat))))
43a5c177
PN
2282
2283(define-public go-github-com-libp2p-go-libp2p-protocol
2284 (let ((commit "b29f3d97e3a2fb8b29c5d04290e6cb5c5018004b")
2285 (revision "0"))
2286 (package
2287 (name "go-github-com-libp2p-go-libp2p-protocol")
2288 (version (git-version "1.0.0" revision commit))
2289 (source
2290 (origin
2291 (method git-fetch)
2292 (uri (git-reference
2293 (url "https://github.com/libp2p/go-libp2p-protocol.git")
2294 (commit commit)))
2295 (file-name (git-file-name name version))
2296 (sha256
2297 (base32
2298 "1xgjfnx9zcqglg9li29wdqywsp8hz22wx6phns9zscni2jsfidld"))))
2299 (build-system go-build-system)
2300 (arguments
2301 '(#:import-path
2302 "github.com/libp2p/go-libp2p-protocol"))
2303 (home-page "https://github.com/libp2p/go-libp2p-protocol")
2304 (synopsis "Type for protocol strings in Golang")
2305 (description "Just a type for protocol strings. Nothing more.")
2306 (license license:expat))))
77d8a917
PN
2307
2308(define-public go-github-com-libp2p-go-libp2p-metrics
2309 (let ((commit "a10ff6e75dae3c868023867e8caa534a04bdc624")
2310 (revision "0"))
2311 (package
2312 (name "go-github-com-libp2p-go-libp2p-metrics")
2313 (version (git-version "2.1.6" revision commit))
2314 (source
2315 (origin
2316 (method git-fetch)
2317 (uri (git-reference
2318 (url "https://github.com/libp2p/go-libp2p-metrics.git")
2319 (commit commit)))
2320 (file-name (git-file-name name version))
2321 (sha256
2322 (base32
2323 "05wy0cq4h6yg9bzgapcvm2criwriicbswx80ma82gyn4a9fdrk8m"))))
2324 (build-system go-build-system)
2325 (arguments
2326 '(#:import-path "github.com/libp2p/go-libp2p-metrics"))
2327 (native-inputs
2328 `(("go-github-com-libp2p-go-flow-metrics" ,go-github-com-libp2p-go-flow-metrics)
2329 ("go-github-com-libp2p-go-libp2p-peer" ,go-github-com-libp2p-go-libp2p-peer)
2330 ("go-github-com-libp2p-go-libp2p-protocol" ,go-github-com-libp2p-go-libp2p-protocol)
2331 ("go-github-com-libp2p-go-libp2p-crypto" ,go-github-com-libp2p-go-libp2p-crypto)
2332 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2333 ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
2334 ("go-github-com-btcsuite-btcd-btcec" ,go-github-com-btcsuite-btcd-btcec)
35defe61 2335 ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
77d8a917
PN
2336 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2337 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2338 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2339 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
561d391b 2340 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
77d8a917
PN
2341 (home-page "https://github.com/libp2p/go-libp2p-metrics")
2342 (synopsis "Connection wrapper for go-libp2p that provides bandwidth metrics")
2343 (description "A connection wrapper for @command{go-libp2p} that provides bandwidth
2344statistics for wrapped connections.")
2345 (license license:expat))))
8cb91281
PN
2346
2347(define-public go-github-com-mitchellh-go-homedir
2348 (let ((commit "ae18d6b8b3205b561c79e8e5f69bff09736185f4")
2349 (revision "0"))
2350 (package
2351 (name "go-github-com-mitchellh-go-homedir")
2352 (version (git-version "1.0.0" revision commit))
2353 (source
2354 (origin
2355 (method git-fetch)
2356 (uri (git-reference
2357 (url "https://github.com/mitchellh/go-homedir.git")
2358 (commit commit)))
2359 (file-name (git-file-name name version))
2360 (sha256
2361 (base32
2362 "0f0z0aa4wivk4z1y503dmnw0k0g0g403dly8i4q263gfshs82sbq"))))
2363 (build-system go-build-system)
2364 (arguments
2365 (quote (#:import-path "github.com/mitchellh/go-homedir"
2366 ;; TODO: Tests fail because it tries to access home.
2367 #:tests? #f)))
2368 (home-page "https://github.com/mitchellh/go-homedir")
2369 (synopsis "Go library for detecting and expanding the user's home directory without cgo")
2370 (description "This is a Go library for detecting the user's home
2371directory without the use of @command{cgo}, so the library can be used in
2372cross-compilation environments.
2373
2374Usage is simple, just call homedir.Dir() to get the home directory for a user,
2375and homedir.Expand() to expand the @command{~} in a path to the home
2376directory.
2377
2378Why not just use @command{os/user}? The built-in @command{os/user} package
2379requires cgo on Darwin systems. This means that any Go code that uses that
2380package cannot cross compile. But 99% of the time the use for
2381@command{os/user} is just to retrieve the home directory, which we can do for
2382the current user without cgo. This library does that, enabling
2383cross-compilation.")
2384 (license license:expat))))
e53121b3
PN
2385
2386(define-public go-github-com-multiformats-go-multiaddr
2387 (let ((commit "fe1c46f8be5af4aff4db286e08839295bd922efb")
2388 (revision "0"))
2389 (package
2390 (name "go-github-com-multiformats-go-multiaddr")
2391 (version (git-version "1.3.0" revision commit))
2392 (source
2393 (origin
2394 (method git-fetch)
2395 (uri (git-reference
2396 (url "https://github.com/multiformats/go-multiaddr.git")
2397 (commit commit)))
2398 (file-name (git-file-name name version))
2399 (sha256
2400 (base32
2401 "0p5f8h098a4yjjmzsgqs7vhx1iqifb8izwg3559cr4h7clkpzznh"))))
2402 (build-system go-build-system)
2403 (arguments
2404 '(#:import-path
2405 "github.com/multiformats/go-multiaddr"))
2406 (native-inputs
2407 `(("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
2408 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2409 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2410 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2411 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2412 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
561d391b 2413 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
e53121b3
PN
2414 (home-page "https://github.com/multiformats/go-multiaddr")
2415 (synopsis "Composable and future-proof network addresses")
2416 (description "Multiaddr is a standard way to represent addresses that
2417does the following:
2418
2419@itemize
2420@item Support any standard network protocols.
2421@item Self-describe (include protocols).
2422@item Have a binary packed format.
2423@item Have a nice string representation.
2424@item Encapsulate well.
2425@end itemize\n")
2426 (license license:expat))))
66fb6e29
PN
2427
2428(define-public go-github-com-multiformats-go-multiaddr-net
2429 (let ((commit "1cb9a0e8a6de3c8a10f6cee60d01d793603c4f7e")
2430 (revision "0"))
2431 (package
2432 (name "go-github-com-multiformats-go-multiaddr-net")
2433 (version (git-version "1.6.3" revision commit))
2434 (source
2435 (origin
2436 (method git-fetch)
2437 (uri (git-reference
2438 (url "https://github.com/multiformats/go-multiaddr-net.git")
2439 (commit commit)))
2440 (file-name (git-file-name name version))
2441 (sha256
2442 (base32
2443 "1ypgi47xdz3bh8lh7f8cmk7w3ql9g4izx5l3kzdg9gda1xn5zxq3"))))
2444 (build-system go-build-system)
2445 (arguments
2446 (quote (#:import-path "github.com/multiformats/go-multiaddr-net"
2447 ;; TODO: Tests fail because they try to access the network.
2448 #:tests? #f)))
2449 (native-inputs
2450 `(("go-github-com-multiformats-go-multiaddr" ,go-github-com-multiformats-go-multiaddr)
2451 ("go-github-com-multiformats-go-multihash" ,go-github-com-multiformats-go-multihash)
2452 ("go-github-com-gxed-hashland-keccakpg" ,go-github-com-gxed-hashland-keccakpg)
2453 ("go-github-com-minio-blake2b-simd" ,go-github-com-minio-blake2b-simd)
2454 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
2455 ("go-github-com-mr-tron-base58" ,go-github-com-mr-tron-base58)
2456 ("go-github-com-spaolacci-murmur3" ,go-github-com-spaolacci-murmur3)
561d391b 2457 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
66fb6e29
PN
2458 (home-page "https://github.com/multiformats/go-multiaddr-net")
2459 (synopsis "Multiaddress net tools")
2460 (description "This package provides Multiaddr specific versions of
2461common functions in stdlib's @command{net} package. This means wrappers of
2462standard net symbols like @command{net.Dial} and @command{net.Listen}, as well
2463as conversion to and from @command{net.Addr}.")
2464 (license license:expat))))
38d346dc
PN
2465
2466(define-public go-github-com-whyrusleeping-tar-utils
2467 (let ((commit "8c6c8ba81d5c71fd69c0f48dbde4b2fb422b6dfc")
2468 (revision "0"))
2469 (package
2470 (name "go-github-com-whyrusleeping-tar-utils")
2471 (version (git-version "0.0.0" revision commit))
2472 (source
2473 (origin
2474 (method git-fetch)
2475 (uri (git-reference
2476 (url "https://github.com/whyrusleeping/tar-utils.git")
2477 (commit commit)))
2478 (file-name (git-file-name name version))
2479 (sha256
2480 (base32
2481 "14jjdw3yics0k467xsyk388684wdpi0bbx8nqj0y4pqxa0s0in6s"))))
2482 (build-system go-build-system)
2483 (arguments
2484 '(#:import-path
2485 "github.com/whyrusleeping/tar-utils"))
2486 (home-page "https://github.com/whyrusleeping/tar-utils")
2487 (synopsis "Tar utilities extracted from go-ipfs codebase")
2488 (description "Tar utilities extracted from @command{go-ipfs} codebase.")
2489 (license license:expat))))
ad8d4637
PN
2490
2491(define-public go-github-com-cheekybits-is
2492 (let ((commit "68e9c0620927fb5427fda3708222d0edee89eae9")
2493 (revision "0"))
2494 (package
2495 (name "go-github-com-cheekybits-is")
2496 (version (git-version "0.0.0" revision commit))
2497 (source
2498 (origin
2499 (method git-fetch)
2500 (uri (git-reference
2501 (url "https://github.com/cheekybits/is.git")
2502 (commit commit)))
2503 (file-name (git-file-name name version))
2504 (sha256
2505 (base32
2506 "1mkbyzhwq3rby832ikq00nxv3jnckxsm3949wkxd8ya9js2jmg4d"))))
2507 (build-system go-build-system)
2508 (arguments
2509 '(#:import-path "github.com/cheekybits/is"))
2510 (home-page "https://github.com/cheekybits/is")
2511 (synopsis "Mini testing helper for Go")
2512 (description "A mini testing helper for Go.
2513
2514@itemize
2515@item It has a simple interface (@command{is.OK} and @command{is.Equal}).
2516@item It plugs into existing Go toolchain (uses @command{testing.T}).
2517@item It's obvious for newcomers.
2518@item It also gives you @command{is.Panic} and @command{is.PanicWith} helpers
2519- because testing panics is ugly.
2520@end itemize\n")
2521 (license license:expat))))
20f48e4b
PN
2522
2523(define-public go-github-com-sabhiram-go-gitignore
2524 (let ((commit "d3107576ba9425fc1c85f4b3569c4631b805a02e")
2525 (revision "0"))
2526 (package
2527 (name "go-github-com-sabhiram-go-gitignore")
2528 (version (git-version "1.0.2" revision commit))
2529 (source
2530 (origin
2531 (method git-fetch)
2532 (uri (git-reference
2533 (url "https://github.com/sabhiram/go-gitignore.git")
2534 (commit commit)))
2535 (file-name (git-file-name name version))
2536 (sha256
2537 (base32
2538 "1rdwyxgcsiwgmlqnc3k6h300mzlvjc3j21np4yh1h476wc8dvl0l"))))
2539 (build-system go-build-system)
2540 (arguments
2541 '(#:import-path
2542 "github.com/sabhiram/go-gitignore"))
2543 (native-inputs
2544 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)))
2545 (home-page "https://github.com/sabhiram/go-gitignore")
2546 (synopsis "Gitignore parser for Go")
2547 (description "A @command{.gitignore} parser for Go.")
2548 (license license:expat))))
b5bb0b50
PN
2549
2550(define-public go-github-com-urfave-cli
a8ad05d4
LF
2551 (package
2552 (name "go-github-com-urfave-cli")
5d9515d8 2553 (version "1.22.2")
a8ad05d4
LF
2554 (source
2555 (origin
2556 (method git-fetch)
2557 (uri (git-reference
2558 (url "https://github.com/urfave/cli.git")
2559 (commit (string-append "v" version))))
2560 (file-name (git-file-name name version))
2561 (sha256
2562 (base32
5d9515d8 2563 "10mcnvi5qmn00vpyk6si8gjka7p654wr9hac4zc9w5h3ickhvbdc"))))
a8ad05d4
LF
2564 (build-system go-build-system)
2565 (arguments
2566 '(#:import-path "github.com/urfave/cli"))
5d9515d8
LF
2567 (propagated-inputs
2568 `(("go-github-com-go-md2man" ,go-github-com-go-md2man)))
a8ad05d4
LF
2569 (home-page "https://github.com/urfave/cli")
2570 (synopsis "Simple, fast, and fun package for building command line apps in Go")
2571 (description "@command{cli} is a simple, fast, and fun package for
b5bb0b50
PN
2572building command line apps in Go. The goal is to enable developers to write
2573fast and distributable command line applications in an expressive way.")
a8ad05d4 2574 (license license:expat)))
7bd9020e 2575
2c0bc073
LF
2576(define-public go-github-com-go-md2man
2577 (package
2578 (name "go-github-com-go-md2man")
2579 (version "2.0.0")
2580 (source
2581 (origin
2582 (method git-fetch)
2583 (uri (git-reference
2584 (url "https://github.com/cpuguy83/go-md2man")
2585 (commit (string-append "v" version))))
2586 (file-name (git-file-name name version))
2587 (sha256
2588 (base32
2589 "0r1f7v475dxxgzqci1mxfliwadcrk86ippflx9n411325l4g3ghv"))
2590 (modules '((guix build utils)))
2591 (snippet '(begin
2592 (delete-file-recursively "vendor")
2593 #t))))
2594 (build-system go-build-system)
2595 (arguments
2596 '(#:import-path "github.com/cpuguy83/go-md2man"))
2597 (propagated-inputs
2598 `(("go-github-com-russross-blackfriday" ,go-github-com-russross-blackfriday)))
2599 (home-page "https://github.com/cpuguy83/go-md2man")
2600 (synopsis "Convert markdown into roff")
2601 (description "Go-md2man is a Go program that converts markdown to roff for
2602the purpose of building man pages.")
2603 (license license:expat)))
2604
0ca8bc01
LF
2605(define-public go-github-com-russross-blackfriday
2606 (package
2607 (name "go-github-com-russross-blackfriday")
2608 (version "2.0.1")
2609 (source
2610 (origin
2611 (method git-fetch)
2612 (uri (git-reference
2613 (url "https://github.com/russross/blackfriday")
2614 (commit (string-append "v" version))))
2615 (file-name (git-file-name name version))
2616 (sha256
2617 (base32
2618 "0nlz7isdd4rgnwzs68499hlwicxz34j2k2a0b8jy0y7ycd2bcr5j"))))
2619 (build-system go-build-system)
2620 (arguments
2621 '(#:import-path "github.com/russross/blackfriday"))
2622 (propagated-inputs
2623 `(("go-github-com-shurcool-sanitized-anchor-name"
2624 ,go-github-com-shurcool-sanitized-anchor-name)))
2625 (native-inputs
2626 `(("go-github-com-pmezard-go-difflib" ,go-github-com-pmezard-go-difflib)))
2627 (home-page "https://github.com/russross/blackfriday")
2628 (synopsis "Markdown processor in Go")
2629 (description "Blackfriday is a Markdown processor in Go.")
2630 (license license:bsd-2)))
2631
47a4a6da
LF
2632(define-public go-github-com-shurcool-sanitized-anchor-name
2633 (package
2634 (name "go-github-com-shurcool-sanitized-anchor-name")
2635 (version "1.0.0")
2636 (source
2637 (origin
2638 (method git-fetch)
2639 (uri (git-reference
2640 (url "https://github.com/shurcooL/sanitized_anchor_name")
2641 (commit (string-append "v" version))))
2642 (file-name (git-file-name name version))
2643 (sha256
2644 (base32
2645 "1gv9p2nr46z80dnfjsklc6zxbgk96349sdsxjz05f3z6wb6m5l8f"))))
2646 (build-system go-build-system)
2647 (arguments
2648 '(#:import-path "github.com/shurcooL/sanitized_anchor_name"))
2649 (home-page "https://github.com/shurcooL/sanitized_anchor_name")
2650 (synopsis "Create sanitized anchor names")
2651 (description "This package provides a Go program for creating sanitized
2652anchor names.")
2653 (license license:expat)))
2654
3c06b060
LF
2655(define-public go-github-com-pmezard-go-difflib
2656 (package
2657 (name "go-github-com-pmezard-go-difflib")
2658 (version "1.0.0")
2659 (source (origin
2660 (method git-fetch)
2661 (uri (git-reference
2662 (url "https://github.com/pmezard/go-difflib")
2663 (commit (string-append "v" version))))
2664 (file-name (git-file-name name version))
2665 (sha256
2666 (base32
2667 "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"))))
2668 (build-system go-build-system)
2669 (arguments
2670 '(#:import-path "github.com/pmezard/go-difflib/difflib"
2671 #:unpack-path "github.com/pmezard/go-difflib/"))
2672 (home-page "https://github.com/pmezard/go-difflib")
2673 (synopsis "Go diff implementation")
2674 (description "This package provides unified and context-aware diffs in Go.")
2675 (license license:bsd-3)))
2676
7bd9020e
PN
2677(define-public go-github-com-whyrusleeping-json-filter
2678 (let ((commit "ff25329a9528f01c5175414f16cc0a6a162a5b8b")
2679 (revision "0"))
2680 (package
2681 (name "go-github-com-whyrusleeping-json-filter")
2682 (version (git-version "0.0.0" revision commit))
2683 (source
2684 (origin
2685 (method git-fetch)
2686 (uri (git-reference
2687 (url "https://github.com/whyrusleeping/json-filter.git")
2688 (commit commit)))
2689 (file-name (git-file-name name version))
2690 (sha256
2691 (base32
2692 "0cai0drvx4c8j686l908vpcsz3mw3vxi3ziz94b0f3c5ylpj07j7"))))
2693 (build-system go-build-system)
2694 (arguments
2695 '(#:import-path
2696 "github.com/whyrusleeping/json-filter"))
2697 (home-page "https://github.com/whyrusleeping/json-filter")
2698 (synopsis "Library to query JSON objects marshalled into map[string]interface")
2699 (description "A library to query JSON objects marshalled into
2700@command{map[string]interface{}}.")
2701 (license license:expat))))
38566e97
PN
2702
2703(define-public go-github-com-whyrusleeping-progmeter
2704 (let ((commit "f3e57218a75b913eff88d49a52c1debf9684ea04")
2705 (revision "0"))
2706 (package
2707 (name "go-github-com-whyrusleeping-progmeter")
2708 (version (git-version "0.0.0" revision commit))
2709 (source
2710 (origin
2711 (method git-fetch)
2712 (uri (git-reference
2713 (url "https://github.com/whyrusleeping/progmeter.git")
2714 (commit commit)))
2715 (file-name (git-file-name name version))
2716 (sha256
2717 (base32
2718 "0xs8rz6yhpvj9512c5v3b8dwr2kivywnyyfxzdfbr6fy1xc8zskb"))))
2719 (build-system go-build-system)
2720 (arguments
2721 '(#:import-path
2722 "github.com/whyrusleeping/progmeter"))
2723 (home-page "https://github.com/whyrusleeping/progmeter")
2724 (synopsis "Progress meter for Go")
2725 (description "Progress meter for Go.")
2726 (license license:expat))))
56eb7bd3
PN
2727
2728(define-public go-github-com-whyrusleeping-stump
2729 (let ((commit "206f8f13aae1697a6fc1f4a55799faf955971fc5")
2730 (revision "0"))
2731 (package
2732 (name "go-github-com-whyrusleeping-stump")
2733 (version (git-version "0.0.0" revision commit))
2734 (source
2735 (origin
2736 (method git-fetch)
2737 (uri (git-reference
2738 (url "https://github.com/whyrusleeping/stump.git")
2739 (commit commit)))
2740 (file-name (git-file-name name version))
2741 (sha256
2742 (base32
2743 "1s40qdppjnk8gijk7x6kbviiqz62nz3h6gic2q9cwcmq8r5isw7n"))))
2744 (build-system go-build-system)
2745 (arguments
2746 '(#:import-path "github.com/whyrusleeping/stump"))
2747 (home-page "https://github.com/whyrusleeping/stump")
2748 (synopsis "Very basic logging package for Go")
2749 (description "A simple log library, for when you don't really care to
2750have super fancy logs.")
2751 (license license:expat))))
5b6c3ad0
PN
2752
2753(define-public go-github-com-kr-fs
2754 (let ((commit "1455def202f6e05b95cc7bfc7e8ae67ae5141eba")
2755 (revision "0"))
2756 (package
2757 (name "go-github-com-kr-fs")
2758 (version (git-version "0.1.0" revision commit))
2759 (source
2760 (origin
2761 (method git-fetch)
2762 (uri (git-reference
2763 (url "https://github.com/kr/fs.git")
2764 (commit commit)))
2765 (file-name (git-file-name name version))
2766 (sha256
2767 (base32
2768 "11zg176x9hr9q7fsk95r6q0wf214gg4czy02slax4x56n79g6a7q"))))
2769 (build-system go-build-system)
2770 (arguments
2771 '(#:import-path "github.com/kr/fs"))
2772 (home-page "https://github.com/kr/fs")
52beae7b
TGR
2773 (synopsis "File-system-related functions for Go")
2774 (description
2775 "The fs package provides file-system-related Go functions.")
5b6c3ad0 2776 (license license:bsd-3))))
bc58bb9b
LF
2777
2778(define-public go-github-com-direnv-go-dotenv
2779 (let ((commit "4cce6d1a66f7bc8dc730eab85cab6af1b801abed")
2780 (revision "0"))
2781 (package
2782 (name "go-github-com-direnv-go-dotenv")
2783 (version (git-version "0.0.0" revision commit))
2784 (source
2785 (origin
2786 (method git-fetch)
2787 (uri (git-reference
2788 (url "https://github.com/direnv/go-dotenv")
2789 (commit commit)))
2790 (file-name (git-file-name name version))
2791 (sha256
2792 (base32
2793 "00wn4fc2lma0csf6ryvlc6k9jbpbifm4n7i3kkd2xrfw5qlm29b6"))))
2794 (build-system go-build-system)
2795 (arguments
2796 '(#:import-path "github.com/direnv/go-dotenv"))
2797 (home-page "https://github.com/direnv/go-dotenv")
2798 (synopsis "Go dotenv parsing library")
2799 (description "This package provides a library for parsing the dotenv
2800format in Go.")
2801 (license license:expat))))
56f610f5 2802
aa413ff8
LF
2803(define-public go-github-com-kr-pretty
2804 (package
2805 (name "go-github-com-kr-pretty")
2806 (version "0.1.0")
2807 (source (origin
2808 (method git-fetch)
2809 (uri (git-reference
2810 (url "https://github.com/kr/pretty.git")
2811 (commit (string-append "v" version))))
2812 (file-name (git-file-name name version))
2813 (sha256
2814 (base32
2815 "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp"))))
2816 (build-system go-build-system)
2817 (propagated-inputs
2818 `(("go-github-com-kr-text" ,go-github-com-kr-text)))
2819 (arguments
2820 '(#:import-path "github.com/kr/pretty"))
2821 (synopsis "A pretty printer for Go values")
2822 (description "This package provides a pretty printer for Go values.")
2823 (home-page "https://github.com/kr/pretty")
2824 (license license:expat)))
2825
56f610f5
LF
2826(define-public go-github-com-kr-text
2827 (package
2828 (name "go-github-com-kr-text")
2829 (version "0.1.0")
2830 (source (origin
2831 (method git-fetch)
2832 (uri (git-reference
2833 (url "https://github.com/kr/text.git")
2834 (commit (string-append "v" version))))
2835 (file-name (git-file-name name version))
2836 (sha256
2837 (base32
2838 "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"))))
2839 (build-system go-build-system)
2840 (arguments
2841 '(#:import-path "github.com/kr/text"))
2842 (synopsis "Text formatting in Go")
2843 (description "This package provides a text formatting functions in Go.")
2844 (home-page "https://github.com/kr/text")
2845 (license license:expat)))
4ddf067f 2846
be42a38a
BL
2847(define-public go-golang-org-sql-mock
2848 (let ((commit "e98392b8111b45f8126e00af035a0dd95dc12e8b")
2849 (version "1.3.3")
2850 (revision "1"))
2851 (package
2852 (name "go-golang-org-sql-mock")
2853 (version (git-version version revision commit))
2854 (source (origin
2855 (method git-fetch)
2856 (uri (git-reference
2857 (url "https://github.com/DATA-DOG/go-sqlmock")
2858 (commit commit)))
2859 (file-name (git-file-name name version))
2860 (sha256
2861 (base32
2862 "033vv29g2wf6fd757ajfmha30bqin3b07377037zkl051mk6mghs"))))
2863 (build-system go-build-system)
2864 (arguments
2865 '(#:import-path "github.com/DATA-DOG/go-sqlmock"))
2866 (synopsis "Mock library implementing @code{sql/driver}")
2867 (description "This library simulates SQL-driver behavior in tests
2868without requiring a real database connection.")
2869 (home-page "https://github.com/DATA-DOG/go-sqlmock")
2870 (license license:expat))))
2871
a881a087
BL
2872(define-public go-golang-org-colorful
2873 (package
2874 (name "go-golang-org-colorful")
2875 (version "1.0.2")
2876 (source (origin
2877 (method git-fetch)
2878 (uri (git-reference
2879 (url "https://github.com/lucasb-eyer/go-colorful")
2880 (commit (string-append "v" version))))
2881 (file-name (git-file-name name version))
2882 (sha256
2883 (base32
2884 "0fig06880bvk1l92j4127v4x9sar4ds7ga8959gxxghb2w70b7l2"))))
2885 (build-system go-build-system)
2886 (arguments
2887 '(#:import-path "github.com/lucasb-eyer/go-colorful"))
2888 (native-inputs
2889 `(("go-golang-org-sql-mock" ,go-golang-org-sql-mock)))
2890 (synopsis "Convert between colorspaces and generate colors")
2891 (description "This package implements Go's @code{color.Color} interface
2892and provides a means of converting colors stored as RGB to various
2893colorspaces.")
2894 (home-page "https://github.com/lucasb-eyer/go-colorful")
2895 (license license:expat)))
2896
42a0cfee
BL
2897(define-public go-github-com-gdamore-encoding
2898 (package
2899 (name "go-github-com-gdamore-encoding")
2900 (version "1.0.0")
2901 (source
2902 (origin
2903 (method git-fetch)
2904 (uri (git-reference
2905 (url "https://github.com/gdamore/encoding")
2906 (commit (string-append "v" version))))
2907 (file-name (git-file-name name version))
2908 (sha256
2909 (base32
2910 "1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9"))))
2911 (build-system go-build-system)
2912 (arguments
2913 '(#:import-path "github.com/gdamore/encoding"))
2914 (inputs
561d391b 2915 `(("go-golang-org-x-text" ,go-golang-org-x-text)))
42a0cfee
BL
2916 (home-page "https://github.com/gdamore/encoding")
2917 (synopsis "Provide encodings missing from Go")
2918 (description "This package provides useful encodings not included in the
2919standard @code{Text} package, including some for dealing with I/O streams from
2920non-UTF-friendly sources.")
2921 (license license:expat)))
2922
a6689b99
BL
2923(define-public go-github-com-gdamore-tcell
2924 (let ((commit "aaadc574a6ed8dc3abe56036ca130dcee1ee6b6e")
2925 (version "1.1.2")
2926 (revision "1"))
2927 (package
2928 (name "go-github-com-gdamore-tcell")
2929 (version (git-version version revision commit))
2930 (source
2931 (origin
2932 (method git-fetch)
2933 (uri (git-reference
2934 (url "https://github.com/gdamore/tcell")
2935 (commit commit)))
2936 (file-name (git-file-name name version))
2937 (sha256
2938 (base32
2939 "0il2nnxp2cqiy73m49215dnf9in3vd25ji8qxbmq87c5qy7i1q9d"))))
2940 (build-system go-build-system)
2941 (arguments
2942 `(#:import-path "github.com/gdamore/tcell"
2943 #:phases
2944 (modify-phases %standard-phases
2945 (add-before 'reset-gzip-timestamps 'make-files-writable
2946 (lambda* (#:key outputs #:allow-other-keys)
2947 ;; Make sure .gz files are writable so that the
2948 ;; 'reset-gzip-timestamps' phase can do its work.
2949 (let ((out (assoc-ref outputs "out")))
2950 (for-each make-file-writable
2951 (find-files out "\\.gz$"))
2952 #t))))))
2953 (inputs
2954 `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
2955 ("go-golang-org-colorful" ,go-golang-org-colorful)
561d391b 2956 ("go-golang-org-x-text" ,go-golang-org-x-text)
a6689b99
BL
2957 ("go-github-com-gdamore-encoding" ,go-github-com-gdamore-encoding)))
2958 (home-page "https://github.com/gdamore/tcell")
2959 (synopsis "Provide a cell-based view for text terminals")
2960 (description "This package includes a full parser and expander for
2961terminfo capability strings to avoid hard-coding escape strings for
2962formatting. It also favors portability, and includes support for all POSIX
2963systems.")
2964 (license license:expat))))
2965
f8157350
BL
2966(define-public go-github-com-mattn-go-shellwords
2967 (let ((commit "2444a32a19f450fabaa0bb3e96a703f15d9a97d2")
2968 (version "1.0.5")
2969 (revision "1"))
2970 (package
2971 (name "go-github-com-mattn-go-shellwords")
2972 (version (git-version version revision commit))
2973 (source
2974 (origin
2975 (method git-fetch)
2976 (uri (git-reference
2977 (url "https://github.com/mattn/go-shellwords")
2978 (commit commit)))
2979 (file-name (git-file-name name version))
2980 (sha256
2981 (base32
2982 "08zcgr1az1n8zaxzwdd205j86hczgyc52nxfnw5avpw7rrkf7v0d"))))
2983 (build-system go-build-system)
2984 (arguments
2985 `(#:import-path "github.com/mattn/go-shellwords"
2986 ;; TODO: can't make homeless-shelter:
2987 ;; go: disabling cache (/homeless-shelter/.cache/go-build) due to
2988 ;; initialization failure: mkdir /homeless-shelter: permission denied
2989
2990 ;; This doesn't seem to work:
2991
2992 ;; #:phases
2993 ;; (modify-phases %standard-phases
2994 ;; (replace 'check
2995 ;; (lambda* (#:key import-path #:allow-other-keys)
2996 ;; (setenv "HOME" "/tmp")
2997 ;; (invoke "go" "test" import-path))))
2998
2999 ;; TODO: There are also a couple of tests that have stymied Debian in
3000 ;; the past. They seem to work when run locally.
3001
3002 #:tests? #f
3003 ))
3004 (home-page "https://github.com/mattn/go-shellwords")
3005 (synopsis "Parse lines into shell words")
3006 (description "This package parses text into shell arguments. Based on
3007the @code{cpan} module @code{Parse::CommandLine}.")
3008 (license license:expat))))
3009
4ddf067f
GB
3010(define-public go-github-com-burntsushi-locker
3011 (let ((commit "a6e239ea1c69bff1cfdb20c4b73dadf52f784b6a")
3012 (revision "0"))
3013 (package
3014 (name "go-github-com-burntsushi-locker")
3015 (version (git-version "0.0.0" revision commit))
3016 (source
3017 (origin
3018 (method git-fetch)
3019 (uri (git-reference
3020 (url "https://github.com/BurntSushi/locker")
3021 (commit commit)))
3022 (file-name (git-file-name name version))
3023 (sha256
3024 (base32
3025 "1xak4aync4klswq5217qvw191asgla51jr42y94vp109lirm5dzg"))))
3026 (build-system go-build-system)
3027 (arguments
3028 '(#:import-path "github.com/BurntSushi/locker"))
3029 (home-page "https://github.com/BurntSushi/locker")
3030 (synopsis "Manage named ReadWrite mutexes in Go")
3031 (description "Golang package for conveniently using named read/write
3032locks. These appear to be especially useful for synchronizing access to
3033session based information in web applications.
3034
3035The common use case is to use the package level functions, which use a package
3036level set of locks (safe to use from multiple goroutines
3037simultaneously). However, you may also create a new separate set of locks
3038test.
3039
3040All locks are implemented with read-write mutexes. To use them like a regular
3041mutex, simply ignore the RLock/RUnlock functions.")
3042 (license license:unlicense))))
a3b1dc49
LF
3043
3044(define-public go-github-com-marten-seemann-qtls
3045 (package
3046 (name "go-github-com-marten-seemann-qtls")
199f1be3 3047 (version "0.3.2")
a3b1dc49
LF
3048 (source (origin
3049 (method git-fetch)
3050 (uri (git-reference
3051 (url "https://github.com/marten-seemann/qtls")
3052 (commit (string-append "v" version))))
3053 (file-name (git-file-name name version))
3054 (sha256
3055 (base32
199f1be3 3056 "1mdymj66qrqy80pfkwy9s9z9ifkg251whngw5lim09zm90wv2q7a"))))
a3b1dc49
LF
3057 (build-system go-build-system)
3058 (arguments
3059 '(#:import-path "github.com/marten-seemann/qtls"
3060 ;; The test suite requires networking.
3061 #:tests? #f))
3062 (propagated-inputs
3063 `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)))
3064 (synopsis "TLS 1.3 with QUIC in Go")
3065 (description "This package provides @code{qtls}, a QUIC-capable variant of
3066the Go standard library's TLS 1.3 implementation.")
3067 (home-page "https://github.com/marten-seemann/qtls")
3068 (license license:bsd-3)))
8201afdf
LF
3069
3070(define-public go-github-com-cheekybits-genny
3071 (package
3072 (name "go-github-com-cheekybits-genny")
3073 (version "1.0.0")
3074 (source (origin
3075 (method git-fetch)
3076 (uri (git-reference
3077 (url "https://github.com/cheekybits/genny")
3078 (commit (string-append "v" version))))
3079 (file-name (git-file-name name version))
3080 (sha256
3081 (base32
3082 "1pcir5ic86713aqa51581rfb67rgc3m0c72ddjfcp3yakv9vyq87"))))
3083 (build-system go-build-system)
3084 (arguments
3085 '(#:import-path "github.com/cheekybits/genny"))
3086 (propagated-inputs
3087 `(("go-golang-org-x-tools" ,go-golang-org-x-tools)))
3088 (synopsis "Generics for Go")
3089 (description "This package provides @code{genny}, a Go language
3090implementation of generics.")
3091 (home-page "https://github.com/cheekybits/genny/")
3092 (license license:expat)))
6d766bec
LF
3093
3094(define-public go-github-com-lucas-clemente-quic-go
3095 (package
3096 (name "go-github-com-lucas-clemente-quic-go")
05b8096d 3097 (version "0.12.1")
6d766bec
LF
3098 (source (origin
3099 (method git-fetch)
3100 (uri (git-reference
3101 (url "https://github.com/lucas-clemente/quic-go")
3102 (commit (string-append "v" version))))
3103 (file-name (git-file-name name version))
3104 (sha256
3105 (base32
05b8096d 3106 "156nhq4dvw7mr08j952248v81q7702phbn4mp228319sahnbv65h"))))
6d766bec
LF
3107 (build-system go-build-system)
3108 (arguments
3109 '(#:import-path "github.com/lucas-clemente/quic-go"
3110 ;; XXX More packages required...
3111 #:tests? #f))
3112 (propagated-inputs
3113 `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
3114 ("go-github-com-cheekybits-genny" ,go-github-com-cheekybits-genny)
05b8096d
LF
3115 ("go-github-com-marten-seemann-qtls" ,go-github-com-marten-seemann-qtls)
3116 ("go-github-com-golang-protobuf-proto" ,go-github-com-golang-protobuf-proto)))
6d766bec
LF
3117 (synopsis "QUIC in Go")
3118 (description "This package provides a Go language implementation of the QUIC
3119network protocol.")
3120 (home-page "https://github.com/lucas-clemente/quic-go")
3121 (license license:expat)))
2da5275f
LF
3122
3123(define-public go-github-com-pkg-errors
726727e1
LF
3124 (package
3125 (name "go-github-com-pkg-errors")
98c87318 3126 (version "0.9.1")
726727e1
LF
3127 (source (origin
3128 (method git-fetch)
3129 (uri (git-reference
3130 (url "https://github.com/pkg/errors.git")
3131 (commit (string-append "v" version))))
3132 (file-name (git-file-name name version))
3133 (sha256
3134 (base32
98c87318 3135 "1761pybhc2kqr6v5fm8faj08x9bql8427yqg6vnfv6nhrasx1mwq"))))
726727e1
LF
3136 (build-system go-build-system)
3137 (arguments
3138 `(#:import-path "github.com/pkg/errors"))
3139 (synopsis "Go error handling primitives")
3140 (description "This package provides @code{error}, which offers simple
2da5275f 3141error handling primitives in Go.")
726727e1
LF
3142 (home-page "https://github.com/pkg/errors")
3143 (license license:bsd-2)))
d0ced446
LF
3144
3145(define-public go-github-com-maruel-panicparse
3146 (package
3147 (name "go-github-com-maruel-panicparse")
e7189e0b 3148 (version "1.3.0")
d0ced446
LF
3149 (source (origin
3150 (method git-fetch)
3151 (uri (git-reference
3152 (url "https://github.com/maruel/panicparse")
3153 (commit (string-append "v" version))))
3154 (file-name (git-file-name name version))
3155 (sha256
3156 (base32
e7189e0b 3157 "13qkn7f64yln8jdmma37h6ra4c7anxkp3vfgvfyb6lb07dpr1ibq"))))
d0ced446
LF
3158 (build-system go-build-system)
3159 (arguments
3160 '(#:import-path "github.com/maruel/panicparse"))
3161 (synopsis "Toolkit for parsing Go stack traces")
3162 (description "This package provides a toolkit for parsing Go language panic
3163stack traces. It simplifies the traces to make salient information more visible
3164and aid debugging.")
3165 (home-page "https://github.com/maruel/panicparse")
3166 (license license:asl2.0)))
e30bdd49
AI
3167
3168(define-public go-github-com-robfig-cron
3169 (package
3170 (name "go-github-com-robfig-cron")
3171 (version "3.0.0")
3172 (source
3173 (origin
3174 (method git-fetch)
3175 (uri (git-reference
3176 (url "https://github.com/robfig/cron")
3177 (commit (string-append "v" version))))
3178 (file-name (git-file-name name version))
3179 (sha256
3180 (base32
3181 "0bvq5gxkhyj21lq32nma23i4dpwp7bswnp2yks6372ilkcyisx2z"))))
3182 (build-system go-build-system)
3183 (arguments
3184 `(#:import-path "github.com/robfig/cron"))
3185 (home-page "https://godoc.org/github.com/robfig/cron")
3186 (synopsis "Cron library for Go")
3187 (description "This package provides a cron library for Go. It implements
3188a cron spec parser and job runner.")
3189 (license license:expat)))
9a2f2334
LF
3190
3191(define-public go-github-com-shirou-gopsutil
3192 (let ((commit "47ef3260b6bf6ead847e7c8fc4101b33c365e399")
3193 (revision "0"))
3194 (package
3195 (name "go-github-com-shirou-gopsutil")
3196 (version (git-version "v2.19.7" revision commit))
3197 (source (origin
3198 (method git-fetch)
3199 (uri (git-reference
3200 (url "https://github.com/shirou/gopsutil")
3201 (commit commit))) ; XXX
f1d4d79f 3202 (file-name (git-file-name name version))
9a2f2334
LF
3203 (sha256
3204 (base32
3205 "0x1g4r32q4201nr2b754xnrrndmwsrhfr7zg37spya86qrmijnws"))))
3206 (build-system go-build-system)
3207 (arguments
3208 '(#:import-path "github.com/shirou/gopsutil"))
3209 (synopsis "Process and system monitoring in Go")
3210 (description "This package provides a library for retrieving information
3211on running processes and system utilization (CPU, memory, disks, network,
3212sensors).")
3213 (home-page "https://github.com/shirou/gopsutil")
3214 (license license:bsd-3))))
07f7bf36
DM
3215
3216(define-public go-github-com-fatih-color
3217 (package
3218 (name "go-github-com-fatih-color")
3219 (version "1.8.0")
3220 (source (origin
3221 (method git-fetch)
3222 (uri (git-reference
3223 (url "https://github.com/fatih/color.git")
3224 (commit (string-append "v" version))))
3225 (file-name (git-file-name name version))
3226 (sha256
3227 (base32
3228 "1zc0zlilf03h121f9jqq3ar0hfm7706547zysxp2qxbm920pz7h0"))))
3229 (build-system go-build-system)
3230 (arguments
3231 '(#:import-path "github.com/fatih/color"))
3232 (synopsis "Print colored text in Go")
3233 (description "This package provides an ANSI color package to output
3234colorized or SGR defined output to the standard output.")
3235 (home-page "https://godoc.org/github.com/fatih/color")
3236 (license license:expat)))
ee46bc59
DM
3237
3238(define-public go-github-com-google-go-cmp-cmp
3239 (package
3240 (name "go-github-com-google-go-cmp-cmp")
3241 (version "0.3.1")
3242 (source (origin
3243 (method git-fetch)
3244 (uri (git-reference
3245 (url "https://github.com/google/go-cmp.git")
3246 (commit (string-append "v" version))))
3247 (file-name (git-file-name name version))
3248 (sha256
3249 (base32
3250 "1caw49i0plkjxir7kdf5qhwls3krqwfmi7g4h392rdfwi3kfahx1"))))
3251 (build-system go-build-system)
3252 (arguments
3253 '(#:import-path "github.com/google/go-cmp/cmp"
3254 #:unpack-path "github.com/google/go-cmp"))
3255 (synopsis "Determine equality of values in Go")
3256 (description "This package provides a more powerful and safer
3257alternative to @code{reflect.DeepEqual} for comparing whether two values
3258are semantically equal in Go (for writing tests).")
3259 (home-page "https://godoc.org/github.com/google/go-cmp/cmp")
3260 (license license:asl2.0)))
cb2555e2
DM
3261
3262(define-public go-golang.org-x-sync-errgroup
3263 (let ((commit "cd5d95a43a6e21273425c7ae415d3df9ea832eeb")
3264 (revision "0"))
3265 (package
3266 (name "go-golang.org-x-sync-errgroup")
3267 (version (git-version "0.0.0" revision commit))
3268 (source (origin
3269 (method git-fetch)
3270 (uri (git-reference
3271 (url "https://go.googlesource.com/sync")
3272 (commit commit)))
3273 (file-name (git-file-name name version))
3274 (sha256
3275 (base32
3276 "1nqkyz2y1qvqcma52ijh02s8aiqmkfb95j08f6zcjhbga3ds6hds"))))
3277 (build-system go-build-system)
3278 (arguments
3279 '(#:import-path "golang.org/x/sync/errgroup"
3280 #:unpack-path "golang.org/x/sync"))
5fb3c002 3281 (synopsis "Synchronization, error propagation, and Context cancellation
cb2555e2
DM
3282for groups of goroutines working on subtasks of a common task.")
3283 (description "This package provides synchronization, error propagation,
3284and Context cancelation for groups of goroutines working on subtasks of a
3285common task.")
3286 (home-page "https://godoc.org/golang.org/x/sync/errgroup")
3287 (license license:bsd-3))))
9d64d150 3288
90bce159
DM
3289(define (go-gotest-tools-source version sha256-base32-hash)
3290 (origin
3291 (method git-fetch)
3292 (uri (git-reference
3293 (url "https://github.com/gotestyourself/gotest.tools.git")
3294 (commit (string-append "v" version))))
3295 (file-name (git-file-name "go-gotest-tools" version))
3296 (sha256
3297 (base32 sha256-base32-hash))))
3298
2d1232e0
DM
3299;; Note that version 3.0.0 is incompatible to 2.3.0.
3300;; See also <https://github.com/gotestyourself/gotest.tools/issues/166>.
944f370b 3301(define (go-gotest-tools-package suffix)
9d64d150 3302 (package
944f370b
DM
3303 (name (string-append "go-gotest-tools-"
3304 (string-replace-substring suffix "/" "-")))
3305 (version "2.3.0")
90bce159
DM
3306 (source
3307 (go-gotest-tools-source version
944f370b 3308 "0071rjxp4xzcr3vprkaj1hdk35a3v45bx8v0ipk16wwc5hx84i2i"))
9d64d150
DM
3309 (build-system go-build-system)
3310 (arguments
944f370b
DM
3311 `(#:import-path ,(string-append "gotest.tools/" suffix)
3312 #:unpack-path "gotest.tools"))
3313 (synopsis "@code{gotest-tools} part")
3314 (description "This package provides a part of @code{gotest-tools}.")
3315 (home-page "https://github.com/gotestyourself/gotest.tools")
3316 (license license:asl2.0)))
3317
d19e096a
DM
3318(define-public go-gotest-tools-internal-format
3319 (package (inherit (go-gotest-tools-package "internal/format"))
3320 (native-inputs
3321 `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
3322 ("go-github-com-google-go-cmp-cmp"
3323 ,go-github-com-google-go-cmp-cmp)))
3324 (synopsis "Formats messages for use with gotest-tools")
3325 (description "This package provides a way to format messages for use
3326with gotest-tools.")))
3327
67d84852
DM
3328(define-public go-gotest-tools-internal-difflib
3329 (package (inherit (go-gotest-tools-package "internal/difflib"))
3330 (synopsis "Differences for use with gotest-tools")
3331 (description "This package computes differences for use
3332with gotest-tools.")))
3333
1e18d073
DM
3334(define-public go-gotest-tools-internal-source
3335 (package (inherit (go-gotest-tools-package "internal/source"))
3336 (native-inputs
3337 `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
3338 ("go-github-com-google-go-cmp-cmp" ,go-github-com-google-go-cmp-cmp)))
3339 (synopsis "Source code AST formatters for gotest-tools")
3340 (description "This package provides source code AST formatters for
3341gotest-tools.")))
3342
944f370b
DM
3343(define-public go-gotest-tools-assert
3344 (package (inherit (go-gotest-tools-package "assert"))
3345 (name "go-gotest-tools-assert")
3346 (arguments
3347 `(#:tests? #f ; Test failure concerning message formatting (FIXME)
3348 #:import-path "gotest.tools/assert"
3349 #:unpack-path "gotest.tools"))
3350 ;(propagated-inputs
3351 ; `(("go-gotest-tools-internal-format" ,go-gotest-tools-internal-format)))
9d64d150
DM
3352 (native-inputs
3353 `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
3354 ("go-github-com-google-go-cmp-cmp"
3355 ,go-github-com-google-go-cmp-cmp)))
3356 (synopsis "Compare values and fail a test when a comparison fails")
3357 (description "This package provides a way to compare values and fail a
3358test when a comparison fails.")
3359 (home-page "https://github.com/gotestyourself/gotest.tools")
3360 (license license:asl2.0)))
639371c6
DM
3361
3362(define-public gotestsum
3363 (package
3364 (name "gotestsum")
3365 (version "0.4.0")
3366 (source (origin
3367 (method git-fetch)
3368 (uri (git-reference
3369 (url "https://github.com/gotestyourself/gotestsum.git")
3370 (commit (string-append "v" version))))
3371 (file-name (git-file-name name version))
3372 (sha256
3373 (base32
3374 "0y71qr3ss3hgc8c7nmvpwk946xy1jc5d8whsv6y77wb24ncla7n0"))))
3375 (build-system go-build-system)
3376 (arguments
3377 '(#:import-path "gotest.tools/gotestsum"))
3378 (native-inputs
3379 `(("go-github-com-fatih-color" ,go-github-com-fatih-color)
3380 ("go-golang.org-x-sync-errgroup" ,go-golang.org-x-sync-errgroup)
3381 ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
3382 ("go-github-com-sirupsen-logrus"
3383 ,go-github-com-sirupsen-logrus)
3384 ("go-github-com-spf13-pflag" ,go-github-com-spf13-pflag)
3385 ("go-github-com-jonboulle-clockwork"
3386 ,go-github-com-jonboulle-clockwork)
3387 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
3388 ("go-gotest-tools-assert" ,go-gotest-tools-assert)
d78178fa
DM
3389 ("go-github-com-google-go-cmp-cmp"
3390 ,go-github-com-google-go-cmp-cmp)
3391 ;; TODO: This would be better as a propagated-input of
3392 ;; go-gotest-tools-assert, but that does not work for
3393 ;; some reason.
3394 ("go-gotest-tools-internal-format"
3395 ,go-gotest-tools-internal-format)
3396 ("go-gotest-tools-internal-difflib"
3397 ,go-gotest-tools-internal-difflib)
3398 ("go-gotest-tools-internal-source"
3399 ,go-gotest-tools-internal-source)
639371c6
DM
3400 ("go-github-com-google-go-cmp-cmp"
3401 ,go-github-com-google-go-cmp-cmp)))
3402 (synopsis "Go test runner with output optimized for humans")
3403 (description "This package provides a @code{go test} runner with output
3404optimized for humans, JUnit XML for CI integration, and a summary of the
3405test results.")
3406 (home-page "https://github.com/gotestyourself/gotestsum")
3407 (license license:asl2.0)))
a726d91d
LF
3408
3409(define-public go-github-com-golang-protobuf-proto
3410 (package
3411 (name "go-github-com-golang-protobuf-proto")
3412 (version "1.3.1")
3413 (source (origin
3414 (method git-fetch)
3415 (uri (git-reference
3416 (url "https://github.com/golang/protobuf.git")
3417 (commit (string-append "v" version))))
3418 (file-name (git-file-name name version))
3419 (sha256
3420 (base32
3421 "15am4s4646qy6iv0g3kkqq52rzykqjhm4bf08dk0fy2r58knpsyl"))))
3422 (build-system go-build-system)
3423 (arguments
3424 '(#:import-path "github.com/golang/protobuf/proto"
3425 #:unpack-path "github.com/golang/protobuf"
3426 ;; Requires unpackaged golang.org/x/sync/errgroup
3427 #:tests? #f))
3428 (synopsis "Go support for Protocol Buffers")
3429 (description "This package provides Go support for the Protocol Buffers
3430data serialization format.")
3431 (home-page "https://github.com/golang/protobuf")
3432 (license license:bsd-3)))
42c6503d
AG
3433
3434(define-public go-github-com-mattn-go-zglob
3435 (package
3436 (name "go-github-com-mattn-go-zglob")
3437 (version "0.0.1")
3438 (source (origin
3439 (method git-fetch)
3440 (uri (git-reference
3441 (url "https://github.com/mattn/go-zglob.git")
3442 (commit (string-append "v" version))))
3443 (file-name (git-file-name name version))
3444 (sha256
3445 (base32
3446 "1sncdyq5fbd42al4amyy91h7vlzm3wm6c9vl8za2pjgfgsd581fz"))))
3447 (build-system go-build-system)
3448 (arguments
3449 `(#:import-path "github.com/mattn/go-zglob"))
3450 (home-page "https://github.com/mattn/go-zglob")
3451 (synopsis "Glob library that descends into other directories")
3452 (description " A glob library that implements descending into other
3453directories. It is optimized for filewalking. ")
3454 (license license:expat)))
88841a3e
LF
3455
3456(define-public go-github-com-willf-bitset
3457 (package
3458 (name "go-github-com-willf-bitset")
3459 (version "1.1.10")
3460 (source (origin
3461 (method git-fetch)
3462 (uri (git-reference
3463 (url "https://github.com/willf/bitset")
3464 (commit (string-append "v" version))))
3465 (file-name (git-file-name name version))
3466 (sha256
3467 (base32
3468 "0wpaxg6va3qwd0hq0b8rpb1hswvzzbfm2h8sjmcsdpbkydjjx9zg"))))
3469 (build-system go-build-system)
3470 (arguments
3471 '(#:import-path "github.com/willf/bitset"))
3472 (synopsis "Bitsets in Go")
3473 (description "This package provides a Go implementation of bitsets, which
3474are a mapping between non-negative integers and boolean values focused on
3475efficient space usage.")
3476 (home-page "https://github.com/willf/bitset")
3477 (license license:bsd-3)))
79405c03
LF
3478
3479(define-public go-github-com-willf-bloom
3480 (package
3481 (name "go-github-com-willf-bloom")
3482 (version "2.0.3")
3483 (source (origin
3484 (method git-fetch)
3485 (uri (git-reference
3486 (url "https://github.com/willf/bloom")
3487 (commit (string-append "v" version))))
3488 (file-name (git-file-name name version))
3489 (sha256
3490 (base32
3491 "0ygan8pgcay7wx3cs3ja8rdqj7nly7v3and97ddcc66020jxchzg"))))
3492 (build-system go-build-system)
3493 (arguments
ea2dcf16
LF
3494 '(#:import-path "github.com/willf/bloom"
3495 #:phases
3496 (modify-phases %standard-phases
3497 (add-after 'unpack 'patch-import-path
3498 (lambda _
3499 ;; See 'go.mod' in the source distribution of Syncthing 1.4.1 for
3500 ;; more information.
3501 ;; <https://github.com/spaolacci/murmur3/issues/29>
3502 (substitute* "src/github.com/willf/bloom/bloom.go"
3503 (("spaolacci") "calmh"))
3504 #t)))))
79405c03 3505 (propagated-inputs
ea2dcf16 3506 `(("go-github-com-calmh-murmur3" ,go-github-com-calmh-murmur3)
79405c03
LF
3507 ("go-github-com-willf-bitset" ,go-github-com-willf-bitset)))
3508 (synopsis "Bloom filters in Go")
3509 (description "This package provides a Go implementation of bloom filters,
3510based on murmurhash.")
3511 (home-page "https://github.com/willf/bloom")
3512 (license license:bsd-2)))
3770bd65
EF
3513
3514(define-public go-golang-org-rainycape-unidecode
3515 (let ((commit "cb7f23ec59bec0d61b19c56cd88cee3d0cc1870c")
3516 (revision "1"))
3517 (package
3518 (name "go-golang-org-rainycape-unidecode")
3519 (version (git-version "0.0.0" revision commit))
3520 (source (origin
3521 (method git-fetch)
3522 (uri (git-reference
3523 (url "https://github.com/rainycape/unidecode")
3524 (commit commit)))
3525 (file-name (string-append "go-golang-org-rainycape-unidecode-"
3526 version "-checkout"))
3527 (sha256
3528 (base32
3529 "1wvzdijd640blwkgmw6h09frkfa04kcpdq87n2zh2ymj1dzla5v5"))))
3530 (build-system go-build-system)
3531 (arguments
3532 `(#:import-path "golang.org/rainycape/unidecode"))
3533 (home-page "https://github.com/rainycape/unidecode")
3534 (synopsis "Unicode transliterator in Golang")
3535 (description "Unicode transliterator in Golang - Replaces non-ASCII
3536characters with their ASCII approximations.")
3537 (license license:asl2.0))))
ae863ccd
EF
3538
3539(define-public go-github-com-golang-freetype
3540 (let ((commit "e2365dfdc4a05e4b8299a783240d4a7d5a65d4e4")
3541 (revision "1"))
3542 (package
3543 (name "go-github-com-golang-freetype")
3544 (version (git-version "0.0.0" revision commit))
3545 (source (origin
3546 (method git-fetch)
3547 (uri (git-reference
3548 (url "https://github.com/golang/freetype")
3549 (commit commit)))
3550 (file-name (string-append "go-github-com-golang-freetype-"
3551 version "-checkout"))
3552 (sha256
3553 (base32
3554 "194w3djc6fv1rgcjqds085b9fq074panc5vw582bcb8dbfzsrqxc"))))
3555 (build-system go-build-system)
3556 (arguments
3557 `(#:import-path "github.com/golang/freetype"))
3558 (propagated-inputs
3559 `(("go-golang-org-x-image" ,go-golang-org-x-image)))
3560 (home-page "https://github.com/golang/freetype")
3561 (synopsis "Freetype font rasterizer in the Go programming language")
3562 (description "The Freetype font rasterizer in the Go programming language.")
3563 (license (list license:freetype
3564 license:gpl2+)))))
40c86b39
EF
3565
3566(define-public go-github-com-fogleman-gg
3567 (package
3568 (name "go-github-com-fogleman-gg")
3569 (version "1.3.0")
3570 (source (origin
3571 (method git-fetch)
3572 (uri (git-reference
3573 (url "https://github.com/fogleman/gg")
3574 (commit (string-append "v" version))))
3575 (file-name (git-file-name name version))
3576 (sha256
3577 (base32
3578 "1nkldjghbqnzj2djfaxhiv35kk341xhcrj9m2dwq65v684iqkk8n"))))
3579 (build-system go-build-system)
3580 (arguments
3581 `(#:tests? #f ; Issue with test flags.
3582 #:import-path "github.com/fogleman/gg"))
3583 (propagated-inputs
3584 `(("go-github-com-golang-freetype" ,go-github-com-golang-freetype)))
3585 (home-page "https://github.com/fogleman/gg")
3586 (synopsis "2D rendering in Go")
3587 (description "@code{gg} is a library for rendering 2D graphics in pure Go.")
3588 (license license:expat)))
44b9e8fd
EF
3589
3590(define-public go-github-com-gedex-inflector
3591 (let ((commit "16278e9db8130ac7ec405dc174cfb94344f16325")
3592 (revision "1"))
3593 (package
3594 (name "go-github-com-gedex-inflector")
3595 (version (git-version "0.0.0" revision commit))
3596 (source (origin
3597 (method git-fetch)
3598 (uri (git-reference
3599 (url "https://github.com/gedex/inflector")
3600 (commit commit)))
3601 (file-name (string-append "go-github-com-gedex-inflector-"
3602 version "-checkout"))
3603 (sha256
3604 (base32
3605 "05hjqw1m71vww4914d9h6nqa9jw3lgjzwsy7qaffl02s2lh1amks"))))
3606 (build-system go-build-system)
3607 (arguments
3608 `(#:import-path "github.com/gedex/inflector"))
3609 (home-page "https://github.com/gedex/inflector")
3610 (synopsis "Go library that pluralizes and singularizes English nouns")
3611 (description "Go library that pluralizes and singularizes English nouns.")
3612 (license license:bsd-2))))
cb380998
EF
3613
3614(define-public go-github-com-klauspost-cpuid
3615 (package
3616 (name "go-github-com-klauspost-cpuid")
3617 (version "1.2.3")
3618 (source (origin
3619 (method git-fetch)
3620 (uri (git-reference
3621 (url "https://github.com/klauspost/cpuid")
3622 (commit (string-append "v" version))))
3623 (file-name (git-file-name name version))
3624 (sha256
3625 (base32
3626 "1s510210wdj5dkamii1qrk7v87k4qpdcrrjzflp5ha9iscw6b06l"))))
3627 (build-system go-build-system)
3628 (arguments
3629 `(#:import-path "github.com/klauspost/cpuid"))
3630 (home-page "https://github.com/klauspost/cpuid")
3631 (synopsis "CPU feature identification for Go")
3632 (description "@code{cpuid} provides information about the CPU running the
3633current program. CPU features are detected on startup, and kept for fast access
3634through the life of the application. Currently x86 / x64 (AMD64) is supported,
3635and no external C (cgo) code is used, which should make the library very eas
3636to use.")
3637 (license license:expat)))
03baf02e
EF
3638
3639(define-public go-github-com-pbnjay-memory
3640 (let ((commit "974d429e7ae40c89e7dcd41cfcc22a0bfbe42510")
3641 (revision "1"))
3642 (package
3643 (name "go-github-com-pbnjay-memory")
3644 (version (git-version "0.0.0" revision commit))
3645 (source (origin
3646 (method git-fetch)
3647 (uri (git-reference
3648 (url "https://github.com/pbnjay/memory")
3649 (commit commit)))
3650 (file-name (string-append "go-github-com-pbnjay-memory-"
3651 version "-checkout"))
3652 (sha256
3653 (base32
3654 "0kazg5psdn90pqadrzma5chdwh0l2by9z31sspr47gx93fhjmkkq"))))
3655 (build-system go-build-system)
3656 (arguments
3657 `(#:import-path "github.com/pbnjay/memory"))
3658 (home-page "https://github.com/gedex/inflector")
3659 (synopsis "Go library to report total system memory")
3660 (description "@code{memory} provides a single method reporting total
3661physical system memory accessible to the kernel. It does not account for memory
3662used by other processes.")
3663 (license license:bsd-3))))
62cfb491
EF
3664
3665(define-public go-github-com-surge-glog
3666 (let ((commit "2578deb2b95c665e6b1ebabf304ce2085c9e1985")
3667 (revision "1"))
3668 (package
3669 (name "go-github-com-surge-glog")
3670 (version (git-version "0.0.0" revision commit))
3671 (source (origin
3672 (method git-fetch)
3673 (uri (git-reference
3674 (url "https://github.com/surge/glog")
3675 (commit commit)))
3676 (file-name (string-append "go-github-com-surge-glog-"
3677 version "-checkout"))
3678 (sha256
3679 (base32
3680 "1bxcwxvsvr2hfpjz9hrrn0wrgykwmrbyk567102k3vafw9xdcwk4"))))
3681 (build-system go-build-system)
3682 (arguments
3683 `(#:import-path "github.com/surge/glog"))
3684 (home-page "https://github.com/surge/glog")
3685 (synopsis "Leveled execution logs for Go")
3686 (description "Leveled execution logs for Go.")
3687 (license license:asl2.0))))
073c64dc
EF
3688
3689(define-public go-github-com-surgebase-porter2
3690 (let ((commit "56e4718818e8dc4ea5ba6348402fc7661863732a")
3691 (revision "1"))
3692 (package
3693 (name "go-github-com-surgebase-porter2")
3694 (version (git-version "0.0.0" revision commit))
3695 (source (origin
3696 (method git-fetch)
3697 (uri (git-reference
3698 (url "https://github.com/surgebase/porter2")
3699 (commit commit)))
3700 (file-name (string-append "go-github-com-surgebase-porter2-"
3701 version "-checkout"))
3702 (sha256
3703 (base32
3704 "1ivcf83jlj9s7q5y9dfbpyl0br35cz8fcp0dm8sxxvqh54py06v2"))))
3705 (build-system go-build-system)
3706 (arguments
3707 `(#:import-path "github.com/surgebase/porter2"))
3708 (native-inputs
3709 `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)
3710 ("go-github-com-surge-glog" ,go-github-com-surge-glog)))
3711 (home-page "https://github.com/surgebase/porter2")
3712 (synopsis "Go library implementing english Porter2 stemmer")
3713 (description "Porter2 implements the
3714@url{http://snowball.tartarus.org/algorithms/english/stemmer.html, english
3715Porter2 stemmer}. It is written completely using finite state machines to do
3716suffix comparison, rather than the string-based or tree-based approaches.")
3717 (license license:asl2.0))))