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