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