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