gnu: Move go-github-com-gogo-protobuf* from syncthing.scm to golang.scm
[jackhill/guix/guix.git] / gnu / packages / golang.scm
CommitLineData
7a2941a8 1;;; GNU Guix --- Functional package management for GNU
2ab321ca 2;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
7a2941a8
MJ
3;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
4;;; Copyright © 2016 Andy Wingo <wingo@igalia.com>
ec91bcb5 5;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
c04ef86e 6;;; Copyright © 2016, 2017 Petter <petter@mykolab.ch>
17399545 7;;; Copyright © 2016, 2017 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>
21280a8c 15;;; Copyright @ 2018 Katherine Cox-Buday <cox.katherine.e@gmail.com>
7a2941a8 16;;;
8a610eb6 17;;; This file is part of GNU Guix.
7a2941a8
MJ
18;;;
19;;; GNU Guix is free software; you can redistribute it and/or modify it
20;;; under the terms of the GNU General Public License as published by
21;;; the Free Software Foundation; either version 3 of the License, or (at
22;;; your option) any later version.
23;;;
24;;; GNU Guix is distributed in the hope that it will be useful, but
25;;; WITHOUT ANY WARRANTY; without even the implied warranty of
26;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27;;; GNU General Public License for more details.
28;;;
29;;; You should have received a copy of the GNU General Public License
30;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
31
32(define-module (gnu packages golang)
33 #:use-module ((guix licenses) #:prefix license:)
34 #:use-module (guix utils)
35 #:use-module (guix download)
d3878e88 36 #:use-module (guix git-download)
7a2941a8
MJ
37 #:use-module (guix packages)
38 #:use-module (guix build-system gnu)
d3878e88 39 #:use-module (guix build-system go)
7a2941a8
MJ
40 #:use-module (gnu packages admin)
41 #:use-module (gnu packages gcc)
42 #:use-module (gnu packages base)
43 #:use-module (gnu packages perl)
44 #:use-module (gnu packages pkg-config)
45 #:use-module (gnu packages pcre)
e25ddef5 46 #:use-module (gnu packages lua)
53182924 47 #:use-module (gnu packages mp3)
7a2941a8 48 #:use-module (ice-9 match)
5787e152
PN
49 #:use-module (srfi srfi-1)
50 #:export (go-github-com-gogo-protobuf-union))
7a2941a8
MJ
51
52;; According to https://golang.org/doc/install/gccgo, gccgo-4.8.2 includes a
53;; complete go-1.1.2 implementation, gccgo-4.9 includes a complete go-1.2
54;; implementation, and gccgo-5 a complete implementation of go-1.4. Ultimately
55;; we hope to build go-1.5+ with a bootstrap process using gccgo-5. As of
56;; go-1.5, go cannot be bootstrapped without go-1.4, so we need to use go-1.4 or
57;; gccgo-5. Mips is not officially supported, but it should work if it is
58;; bootstrapped.
59
60(define-public go-1.4
61 (package
62 (name "go")
63 (version "1.4.3")
64 (source (origin
65 (method url-fetch)
66 (uri (string-append "https://storage.googleapis.com/golang/"
67 name version ".src.tar.gz"))
68 (sha256
69 (base32
70 "0na9yqilzpvq0bjndbibfp07wr796gf252y471cip10bbdqgqiwr"))))
71 (build-system gnu-build-system)
72 (outputs '("out"
73 "doc"
74 "tests"))
75 (arguments
76 `(#:modules ((ice-9 match)
77 (guix build gnu-build-system)
1d698a8b
ST
78 (guix build utils)
79 (srfi srfi-1))
7a2941a8 80 #:tests? #f ; Tests are run by the all.bash script.
2ab321ca
EF
81 ,@(if (string-prefix? "aarch64-linux" (or (%current-system)
82 (%current-target-system)))
83 '(#:system "armhf-linux")
84 '())
7a2941a8
MJ
85 #:phases
86 (modify-phases %standard-phases
87 (delete 'configure)
88 (add-after 'patch-generated-file-shebangs 'chdir
89 (lambda _
2a49f7ad
TGR
90 (chdir "src")
91 #t))
7a2941a8
MJ
92 (add-before 'build 'prebuild
93 (lambda* (#:key inputs outputs #:allow-other-keys)
94 (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
95 (ld (string-append (assoc-ref inputs "libc") "/lib"))
96 (loader (car (find-files ld "^ld-linux.+")))
97 (net-base (assoc-ref inputs "net-base"))
98 (tzdata-path
99 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
100 (output (assoc-ref outputs "out")))
101
102 ;; Removing net/ tests, which fail when attempting to access
103 ;; network resources not present in the build container.
104 (for-each delete-file
105 '("net/multicast_test.go" "net/parse_test.go"
106 "net/port_test.go"))
107
108 ;; Add libgcc to the RUNPATH.
109 (substitute* "cmd/go/build.go"
110 (("cgoldflags := \\[\\]string\\{\\}")
111 (string-append "cgoldflags := []string{"
112 "\"-rpath=" gcclib "\"}"))
113 (("ldflags := buildLdflags")
114 (string-append
115 "ldflags := buildLdflags\n"
116 "ldflags = append(ldflags, \"-r\")\n"
117 "ldflags = append(ldflags, \"" gcclib "\")\n")))
118
119 (substitute* "os/os_test.go"
120 (("/usr/bin") (getcwd))
121 (("/bin/pwd") (which "pwd")))
122
123 ;; Disable failing tests: these tests attempt to access
124 ;; commands or network resources which are neither available or
125 ;; necessary for the build to succeed.
126 (for-each
127 (match-lambda
128 ((file regex)
129 (substitute* file
130 ((regex all before test_name)
131 (string-append before "Disabled" test_name)))))
132 '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
133 ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
134 ("os/os_test.go" "(.+)(TestHostname.+)")
135 ("time/format_test.go" "(.+)(TestParseInSydney.+)")
4b0bac4b
LF
136
137 ;; Tzdata 2016g changed the name of the time zone used in this
138 ;; test, and the patch for Go 1.7 does not work for 1.4.3:
139 ;; https://github.com/golang/go/issues/17545
140 ;; https://github.com/golang/go/issues/17276
141 ("time/time_test.go" "(.+)(TestLoadFixed.+)")
f826c8c7 142 ("time/format_test.go" "(.+)(TestParseInLocation.+)")
4b0bac4b 143
7a2941a8
MJ
144 ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
145 ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
146 ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
147 ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
148 ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
149 ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
150 ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
151 ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
152 ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")))
153
154 (substitute* "net/lookup_unix.go"
155 (("/etc/protocols") (string-append net-base "/etc/protocols")))
156 (substitute* "time/zoneinfo_unix.go"
157 (("/usr/share/zoneinfo/") tzdata-path))
158 (substitute* (find-files "cmd" "asm.c")
159 (("/lib/ld-linux.*\\.so\\.[0-9]") loader))
160 #t)))
161
162 (replace 'build
163 (lambda* (#:key inputs outputs #:allow-other-keys)
164 ;; FIXME: Some of the .a files are not bit-reproducible.
165 (let* ((output (assoc-ref outputs "out")))
166 (setenv "CC" (which "gcc"))
167 (setenv "GOOS" "linux")
168 (setenv "GOROOT" (dirname (getcwd)))
169 (setenv "GOROOT_FINAL" output)
04a95a4f
LF
170 ;; Go 1.4's cgo will not work with binutils >= 2.27:
171 ;; https://github.com/golang/go/issues/16906
172 (setenv "CGO_ENABLED" "0")
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)
fcbb8461
LF
203 ;; Building Go 1.10 with the Go 1.4 bootstrap, Thread Sanitizer from GCC
204 ;; 5 finds a data race during the the test suite of Go 1.10. With GCC 6,
205 ;; the race doesn't seem to be present:
206 ;; https://github.com/golang/go/issues/24046
207 ("gcc:lib" ,gcc-6 "lib")))
7a2941a8 208 (native-inputs
3f0ec617 209 `(("pkg-config" ,pkg-config)
7a2941a8
MJ
210 ("which" ,which)
211 ("net-base" ,net-base)
212 ("perl" ,perl)))
213
214 (home-page "https://golang.org/")
215 (synopsis "Compiler and libraries for Go, a statically-typed language")
216 (description "Go, also commonly referred to as golang, is an imperative
247064c3
TGR
217programming language designed primarily for systems programming. Go is a
218compiled, statically typed language in the tradition of C and C++, but adds
219garbage collection, various safety features, and concurrent programming features
220in the style of communicating sequential processes (@dfn{CSP}).")
2ab321ca 221 (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux"))
7a2941a8 222 (license license:bsd-3)))
ec91bcb5 223
35131bab 224(define-public go-1.9
ec91bcb5
MJ
225 (package
226 (inherit go-1.4)
227 (name "go")
96fd9a0e 228 (version "1.9.7")
ec91bcb5
MJ
229 (source
230 (origin
231 (method url-fetch)
232 (uri (string-append "https://storage.googleapis.com/golang/"
233 name version ".src.tar.gz"))
234 (sha256
235 (base32
96fd9a0e 236 "08kpy874x0rx43zpyv5kwd8xj2ma91xm33i0ka2v1v788px18a2q"))))
ec91bcb5
MJ
237 (arguments
238 (substitute-keyword-arguments (package-arguments go-1.4)
239 ((#:phases phases)
240 `(modify-phases ,phases
241 (replace 'prebuild
242 ;; TODO: Most of this could be factorized with Go 1.4.
243 (lambda* (#:key inputs outputs #:allow-other-keys)
244 (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
245 (ld (string-append (assoc-ref inputs "libc") "/lib"))
246 (loader (car (find-files ld "^ld-linux.+")))
247 (net-base (assoc-ref inputs "net-base"))
248 (tzdata-path
249 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
250 (output (assoc-ref outputs "out")))
251
252 ;; Removing net/ tests, which fail when attempting to access
253 ;; network resources not present in the build container.
254 (for-each delete-file
a6169621
P
255 '("net/listen_test.go"
256 "net/parse_test.go"
257 "net/cgo_unix_test.go"))
ec91bcb5
MJ
258
259 (substitute* "os/os_test.go"
260 (("/usr/bin") (getcwd))
a6169621
P
261 (("/bin/pwd") (which "pwd"))
262 (("/bin/sh") (which "sh")))
ec91bcb5
MJ
263
264 ;; Add libgcc to runpath
265 (substitute* "cmd/link/internal/ld/lib.go"
266 (("!rpath.set") "true"))
35131bab 267 (substitute* "cmd/go/internal/work/build.go"
ec91bcb5
MJ
268 (("cgoldflags := \\[\\]string\\{\\}")
269 (string-append "cgoldflags := []string{"
270 "\"-rpath=" gcclib "\""
271 "}"))
272 (("ldflags = setextld\\(ldflags, compiler\\)")
273 (string-append
274 "ldflags = setextld(ldflags, compiler)\n"
275 "ldflags = append(ldflags, \"-r\")\n"
276 "ldflags = append(ldflags, \"" gcclib "\")\n"))
277 (("\"-lgcc_s\", ")
278 (string-append
279 "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
280
281 ;; Disable failing tests: these tests attempt to access
1c797d4b
LF
282 ;; commands or network resources which are neither available
283 ;; nor necessary for the build to succeed.
ec91bcb5
MJ
284 (for-each
285 (match-lambda
286 ((file regex)
287 (substitute* file
288 ((regex all before test_name)
289 (string-append before "Disabled" test_name)))))
290 '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
291 ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
292 ("os/os_test.go" "(.+)(TestHostname.+)")
293 ("time/format_test.go" "(.+)(TestParseInSydney.+)")
f826c8c7 294 ("time/format_test.go" "(.+)(TestParseInLocation.+)")
ec91bcb5
MJ
295 ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
296 ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
297 ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
298 ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
299 ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
300 ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
301 ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
302 ("os/exec/exec_test.go" "(.+)(TestIgnorePipeErrorOnSuccess.+)")
303 ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
304 ("os/exec/exec_test.go" "(.+)(TestExtraFiles/areturn.+)")
305 ("cmd/go/go_test.go" "(.+)(TestCoverageWithCgo.+)")
3f157443 306 ("cmd/go/go_test.go" "(.+)(TestTwoPkgConfigs.+)")
ec91bcb5
MJ
307 ("os/exec/exec_test.go" "(.+)(TestOutputStderrCapture.+)")
308 ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")
309 ("os/exec/exec_test.go" "(.+)(TestExtraFilesRace.+)")
310 ("net/lookup_test.go" "(.+)(TestLookupPort.+)")
311 ("syscall/exec_linux_test.go"
17399545 312 "(.+)(TestCloneNEWUSERAndRemapNoRootDisableSetgroups.+)")))
ec91bcb5
MJ
313
314 (substitute* "../misc/cgo/testsanitizers/test.bash"
315 (("(CC=)cc" all var) (string-append var "gcc")))
316
317 ;; fix shebang for testar script
318 ;; note the target script is generated at build time.
a6169621 319 (substitute* "../misc/cgo/testcarchive/carchive_test.go"
ec91bcb5
MJ
320 (("#!/usr/bin/env") (string-append "#!" (which "env"))))
321
322 (substitute* "net/lookup_unix.go"
323 (("/etc/protocols") (string-append net-base "/etc/protocols")))
324 (substitute* "net/port_unix.go"
325 (("/etc/services") (string-append net-base "/etc/services")))
326 (substitute* "time/zoneinfo_unix.go"
327 (("/usr/share/zoneinfo/") tzdata-path))
c04ef86e
P
328 (substitute* (find-files "cmd" "\\.go")
329 (("/lib(64)?/ld-linux.*\\.so\\.[0-9]") loader))
ec91bcb5
MJ
330 #t)))
331 (add-before 'build 'set-bootstrap-variables
332 (lambda* (#:key outputs inputs #:allow-other-keys)
333 ;; Tell the build system where to find the bootstrap Go.
334 (let ((go (assoc-ref inputs "go"))
335 (out (assoc-ref outputs "out")))
336 (setenv "GOROOT_BOOTSTRAP" go)
337 (setenv "PATH"
338 (string-append out "/bin:"
339 (dirname (getcwd)) "/bin:"
340 (getenv "PATH")))
341
342 ;; XXX: The following variables seem unrelated.
343 (setenv "GOGC" "400")
344 (setenv "GO_TEST_TIMEOUT_SCALE" "9999")
345 #t)))
04a95a4f
LF
346
347 (replace 'build
348 (lambda* (#:key inputs outputs #:allow-other-keys)
349 ;; FIXME: Some of the .a files are not bit-reproducible.
350 (let* ((output (assoc-ref outputs "out")))
351 (setenv "CC" (which "gcc"))
352 (setenv "GOOS" "linux")
353 (setenv "GOROOT" (dirname (getcwd)))
354 (setenv "GOROOT_FINAL" output)
355 (setenv "CGO_ENABLED" "1")
188b88e2 356 (invoke "sh" "all.bash"))))
04a95a4f 357
ec91bcb5
MJ
358 (replace 'install
359 ;; TODO: Most of this could be factorized with Go 1.4.
360 (lambda* (#:key outputs #:allow-other-keys)
361 (let* ((output (assoc-ref outputs "out"))
362 (doc_out (assoc-ref outputs "doc"))
363 (docs (string-append doc_out "/share/doc/" ,name "-" ,version))
364 (src (string-append
365 (assoc-ref outputs "tests") "/share/" ,name "-" ,version)))
366 (delete-file-recursively "../pkg/bootstrap")
367
368 (mkdir-p src)
369 (copy-recursively "../test" (string-append src "/test"))
370 (delete-file-recursively "../test")
371 (mkdir-p docs)
372 (copy-recursively "../api" (string-append docs "/api"))
373 (delete-file-recursively "../api")
374 (copy-recursively "../doc" (string-append docs "/doc"))
375 (delete-file-recursively "../doc")
376
377 (for-each
378 (lambda (file)
379 (let* ((filein (string-append "../" file))
380 (fileout (string-append docs "/" file)))
381 (copy-file filein fileout)
382 (delete-file filein)))
383 ;; Note the slightly different file names compared to 1.4.
384 '("README.md" "CONTRIBUTORS" "AUTHORS" "PATENTS"
385 "LICENSE" "VERSION" "CONTRIBUTING.md" "robots.txt"))
386
188b88e2
TGR
387 (copy-recursively "../" output)
388 #t)))))))
ec91bcb5
MJ
389 (native-inputs
390 `(("go" ,go-1.4)
dda785f6
EF
391 ,@(package-native-inputs go-1.4)))
392 (supported-systems %supported-systems)))
ec91bcb5 393
21280a8c
KCB
394(define-public go-1.11
395 (package
a18accba 396 (inherit go-1.9)
21280a8c 397 (name "go")
227ce488 398 (version "1.11.1")
21280a8c
KCB
399 (source
400 (origin
401 (method url-fetch)
402 (uri (string-append "https://storage.googleapis.com/golang/"
403 name version ".src.tar.gz"))
404 (sha256
405 (base32
227ce488 406 "05qivf2f59pv4bfrmdr4m0xvswkmvvl9c5a2h5dy45g2k8b8r3sm"))))
21280a8c 407 (arguments
a18accba 408 (substitute-keyword-arguments (package-arguments go-1.9)
21280a8c
KCB
409 ((#:phases phases)
410 `(modify-phases ,phases
411 (replace 'prebuild
412 (lambda* (#:key inputs outputs #:allow-other-keys)
413 (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib"))
414 (ld (string-append (assoc-ref inputs "libc") "/lib"))
415 (loader (car (find-files ld "^ld-linux.+")))
416 (net-base (assoc-ref inputs "net-base"))
417 (tzdata-path
418 (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
419 (output (assoc-ref outputs "out")))
420
421 (for-each delete-file
422 ;; Removing net/ tests, which fail when attempting to access
423 ;; network resources not present in the build container.
424 '("net/listen_test.go"
425 "net/parse_test.go"
426 "net/cgo_unix_test.go"
a18accba 427 ;; A side effect of these test scripts is testing
21280a8c
KCB
428 ;; cgo. Attempts at using cgo flags and
429 ;; directives with these scripts as specified
430 ;; here (https://golang.org/cmd/cgo/) have not
431 ;; worked. The tests continue to state that they
432 ;; can not find crt1.o despite being present.
433 "cmd/go/testdata/script/list_compiled_imports.txt"
434 "cmd/go/testdata/script/mod_case_cgo.txt"
435 ;; https://github.com/golang/go/issues/24884
436 "os/user/user_test.go"))
437
438 (substitute* "os/os_test.go"
439 (("/usr/bin") (getcwd))
440 (("/bin/pwd") (which "pwd"))
441 (("/bin/sh") (which "sh")))
442
443 (substitute* "cmd/vendor/golang.org/x/sys/unix/syscall_unix_test.go"
444 (("/usr/bin") "/tmp"))
445
446 ;; Add libgcc to runpath
447 (substitute* "cmd/link/internal/ld/lib.go"
448 (("!rpath.set") "true"))
449 (substitute* "cmd/go/internal/work/gccgo.go"
450 (("cgoldflags := \\[\\]string\\{\\}")
451 (string-append "cgoldflags := []string{"
452 "\"-rpath=" gcclib "\""
453 "}"))
454 (("\"-lgcc_s\", ")
455 (string-append
456 "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
457 (substitute* "cmd/go/internal/work/gc.go"
458 (("ldflags = setextld\\(ldflags, compiler\\)")
459 (string-append
460 "ldflags = setextld(ldflags, compiler)\n"
461 "ldflags = append(ldflags, \"-r\")\n"
462 "ldflags = append(ldflags, \"" gcclib "\")\n")))
463
464 ;; Disable failing tests: these tests attempt to access
465 ;; commands or network resources which are neither available
466 ;; nor necessary for the build to succeed.
467 (for-each
468 (match-lambda
469 ((file regex)
470 (substitute* file
471 ((regex all before test_name)
472 (string-append before "Disabled" test_name)))))
473 '(("net/net_test.go" "(.+)(TestShutdownUnix.+)")
474 ("net/dial_test.go" "(.+)(TestDialTimeout.+)")
475 ("os/os_test.go" "(.+)(TestHostname.+)")
476 ("time/format_test.go" "(.+)(TestParseInSydney.+)")
477 ("time/format_test.go" "(.+)(TestParseInLocation.+)")
478 ("os/exec/exec_test.go" "(.+)(TestEcho.+)")
479 ("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
480 ("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")
481 ("os/exec/exec_test.go" "(.+)(TestCatGoodAndBadFile.+)")
482 ("os/exec/exec_test.go" "(.+)(TestExitStatus.+)")
483 ("os/exec/exec_test.go" "(.+)(TestPipes.+)")
484 ("os/exec/exec_test.go" "(.+)(TestStdinClose.+)")
485 ("os/exec/exec_test.go" "(.+)(TestIgnorePipeErrorOnSuccess.+)")
486 ("syscall/syscall_unix_test.go" "(.+)(TestPassFD\\(.+)")
487 ("os/exec/exec_test.go" "(.+)(TestExtraFiles/areturn.+)")
488 ("cmd/go/go_test.go" "(.+)(TestCoverageWithCgo.+)")
489 ("cmd/go/go_test.go" "(.+)(TestTwoPkgConfigs.+)")
490 ("os/exec/exec_test.go" "(.+)(TestOutputStderrCapture.+)")
491 ("os/exec/exec_test.go" "(.+)(TestExtraFiles.+)")
492 ("os/exec/exec_test.go" "(.+)(TestExtraFilesRace.+)")
493 ("net/lookup_test.go" "(.+)(TestLookupPort.+)")
494 ("syscall/exec_linux_test.go"
495 "(.+)(TestCloneNEWUSERAndRemapNoRootDisableSetgroups.+)")))
496
497 ;; fix shebang for testar script
498 ;; note the target script is generated at build time.
499 (substitute* "../misc/cgo/testcarchive/carchive_test.go"
500 (("#!/usr/bin/env") (string-append "#!" (which "env"))))
501
502 (substitute* "net/lookup_unix.go"
503 (("/etc/protocols") (string-append net-base "/etc/protocols")))
504 (substitute* "net/port_unix.go"
505 (("/etc/services") (string-append net-base "/etc/services")))
506 (substitute* "time/zoneinfo_unix.go"
507 (("/usr/share/zoneinfo/") tzdata-path))
508 (substitute* (find-files "cmd" "\\.go")
509 (("/lib(64)?/ld-linux.*\\.so\\.[0-9]") loader))
a18accba
LF
510 #t)))
511 (replace 'set-bootstrap-variables
512 (lambda* (#:key outputs inputs #:allow-other-keys)
513 ;; Tell the build system where to find the bootstrap Go.
514 (let ((go (assoc-ref inputs "go")))
515 (setenv "GOROOT_BOOTSTRAP" go)
516 (setenv "GOGC" "400"))))))))))
21280a8c 517
35131bab 518(define-public go go-1.9)
d3878e88
LF
519
520(define-public go-github-com-alsm-ioprogress
521 (let ((commit "063c3725f436e7fba0c8f588547bee21ffec7ac5")
522 (revision "0"))
523 (package
524 (name "go-github-com-alsm-ioprogress")
525 (version (git-version "0.0.0" revision commit))
526 (source (origin
527 (method git-fetch)
528 (uri (git-reference
529 (url "https://github.com/alsm/ioprogress.git")
530 (commit commit)))
fdbece74 531 (file-name (git-file-name name version))
d3878e88
LF
532 (sha256
533 (base32
534 "10ym5qlq77nynmkxbk767f2hfwyxg2k7hrzph05hvgzv833dhivh"))))
535 (build-system go-build-system)
536 (arguments
537 '(#:import-path "github.com/alsm/ioprogress"))
538 (synopsis "Textual progress bars in Go")
539 (description "@code{ioprogress} is a Go library with implementations of
540@code{io.Reader} and @code{io.Writer} that draws progress bars. The primary use
541case for these are for command-line applications but alternate progress bar
542writers can be supplied for alternate environments.")
543 (home-page "https://github.com/alsm/ioprogress")
544 (license license:expat))))
11b12655
LF
545
546(define-public go-github-com-aki237-nscjar
547 (let ((commit "e2df936ddd6050d30dd90c7214c02b5019c42f06")
548 (revision "0"))
549 (package
550 (name "go-github-com-aki237-nscjar")
551 (version (git-version "0.0.0" revision commit))
552 (source (origin
553 (method git-fetch)
554 (uri (git-reference
555 (url "https://github.com/aki237/nscjar.git")
556 (commit commit)))
82f09c0e 557 (file-name (git-file-name name version))
11b12655
LF
558 (sha256
559 (base32
560 "03y7zzq12qvhsq86lb06sgns8xrkblbn7i7wd886wk3zr5574b96"))))
561 (build-system go-build-system)
562 (arguments
563 '(#:import-path "github.com/aki237/nscjar"))
564 (synopsis "Handle Netscape / Mozilla cookies")
565 (description "@code{nscjar} is a Go library used to parse and output
566Netscape/Mozilla's old-style cookie files. It also implements a simple cookie
567jar struct to manage the cookies added to the cookie jar.")
568 (home-page "https://github.com/aki237/nscjar")
569 (license license:expat))))
12f496ba 570
60a8cbc4
CB
571(define-public go-github.com-jessevdk-go-flags
572 (package
573 (name "go-github.com-jessevdk-go-flags")
574 (version "1.3.0")
575 (source (origin
576 (method git-fetch)
577 (uri (git-reference
578 (url "https://github.com/jessevdk/go-flags")
579 (commit (string-append "v" version))))
580 (file-name (git-file-name name version))
581 (sha256
582 (base32
583 "1jk2k2l10lwrn1r3nxdvbs0yz656830j4khzirw8p4ahs7c5zz36"))))
584 (build-system go-build-system)
585 (arguments
586 '(#:import-path "github.com/jessevdk/go-flags"))
587 (synopsis "Go library for parsing command line arguments")
588 (description
589 "The @code{flags} package provides a command line option parser. The
590functionality is similar to the go builtin @code{flag} package, but
591@code{flags} provides more options and uses reflection to provide a succinct
592way of specifying command line options.")
593 (home-page "https://github.com/jessevdk/go-flags")
594 (license license:bsd-3)))
210c6d95
CB
595
596(define-public go-gopkg.in-tomb.v2
597 (let ((commit "d5d1b5820637886def9eef33e03a27a9f166942c")
598 (revision "0"))
599 (package
600 (name "go-gopkg.in-tomb.v2")
601 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
602 (source (origin
603 (method git-fetch)
604 (uri (git-reference
605 (url "https://github.com/go-tomb/tomb.git")
606 (commit commit)))
607 (file-name (string-append name "-" version ".tar.gz"))
608 (sha256
609 (base32
610 "1sv15sri99szkdz1bkh0ir46w9n8prrwx5hfai13nrhkawfyfy10"))))
611 (build-system go-build-system)
612 (arguments
613 '(#:import-path "gopkg.in/tomb.v2"))
614 (synopsis "@code{tomb} handles clean goroutine tracking and termination")
615 (description
616 "The @code{tomb} package handles clean goroutine tracking and
617termination.")
618 (home-page "https://gopkg.in/tomb.v2")
619 (license license:bsd-3))))
da6f9d41
CB
620
621(define-public go-github.com-jtolds-gls
622 (package
623 (name "go-github.com-jtolds-gls")
624 (version "4.2.1")
625 (source (origin
626 (method git-fetch)
627 (uri (git-reference
628 (url "https://github.com/jtolds/gls")
629 (commit (string-append "v" version))))
630 (file-name (git-file-name name version))
631 (sha256
632 (base32
633 "1vm37pvn0k4r6d3m620swwgama63laz8hhj3pyisdhxwam4m2g1h"))))
634 (build-system go-build-system)
635 (arguments
636 '(#:import-path "github.com/jtolds/gls"))
637 (synopsis "@code{gls} provides Goroutine local storage")
638 (description
639 "The @code{gls} package provides a way to store a retrieve values
640per-goroutine.")
641 (home-page "https://github.com/jtolds/gls")
642 (license license:expat)))
c4d2cffa
CB
643
644(define-public go-github-com-tj-docopt
645 (package
646 (name "go-github-com-tj-docopt")
647 (version "1.0.0")
648 (source (origin
649 (method git-fetch)
650 (uri (git-reference
651 (url "https://github.com/tj/docopt")
652 (commit (string-append "v" version))))
653 (file-name (git-file-name name version))
654 (sha256
655 (base32
656 "06h8hdg1mh3s78zqlr01g4si7k0f0g6pr7fj7lnvfg446hgc7080"))))
657 (build-system go-build-system)
658 (arguments
659 '(#:import-path "github.com/tj/docopt"))
660 (synopsis "Go implementation of docopt")
661 (description
662 "This library allows the user to define a command-line interface from a
663program's help message rather than specifying it programatically with
664command-line parsers.")
665 (home-page "https://github.com/tj/docopt")
666 (license license:expat)))
ed0c6a76
CB
667
668(define-public go-github-com-hashicorp-hcl
669 (let ((commit "23c074d0eceb2b8a5bfdbb271ab780cde70f05a8")
670 (revision "0"))
671 (package
672 (name "go-github-com-hashicorp-hcl")
673 (version (git-version "0.0.0" revision commit))
674 (source (origin
675 (method git-fetch)
676 (uri (git-reference
677 (url "https://github.com/hashicorp/hcl")
678 (commit commit)))
679 (file-name (git-file-name name version))
680 (sha256
681 (base32
682 "0db4lpqb5m130rmfy3s3gjjf4dxllypmyrzxv6ggqhkmwmc7w4mc"))))
683 (build-system go-build-system)
684 (arguments
685 '(#:tests? #f
686 #:import-path "github.com/hashicorp/hcl"))
687 (synopsis "Go implementation of HashiCorp Configuration Language")
688 (description
689 "This package contains the main implementation of the @acronym{HCL,
690HashiCorp Configuration Language}. HCL is designed to be a language for
691expressing configuration which is easy for both humans and machines to read.")
692 (home-page "https://github.com/hashicorp/hcl")
693 (license license:mpl2.0))))
269d0858
LF
694
695(define-public go-golang-org-x-crypto-bcrypt
696 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
697 (revision "1"))
698 (package
699 (name "go-golang-org-x-crypto-bcrypt")
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/crypto")
705 (commit commit)))
706 (file-name (string-append "go.googlesource.com-crypto-"
707 version "-checkout"))
708 (sha256
709 (base32
710 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
711 (build-system go-build-system)
712 (arguments
713 `(#:import-path "golang.org/x/crypto/bcrypt"
714 #:unpack-path "golang.org/x/crypto"
715 #:phases
716 (modify-phases %standard-phases
717 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
718 (lambda* (#:key outputs #:allow-other-keys)
719 (map (lambda (file)
720 (make-file-writable file))
721 (find-files
722 (string-append (assoc-ref outputs "out")
723 "/src/golang.org/x/crypto/ed25519/testdata")
724 ".*\\.gz$"))
725 #t)))))
726 (synopsis "Bcrypt in Go")
727 (description "This package provides a Go implementation of the bcrypt
728password hashing function.")
729 (home-page "https://go.googlesource.com/crypto/")
730 (license license:bsd-3))))
731
732(define-public go-golang-org-x-crypto-blowfish
733 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
734 (revision "1"))
735 (package
736 (name "go-golang-org-x-crypto-blowfish")
737 (version (git-version "0.0.0" revision commit))
738 (source (origin
739 (method git-fetch)
740 (uri (git-reference
741 (url "https://go.googlesource.com/crypto")
742 (commit commit)))
743 (file-name (string-append "go.googlesource.com-crypto-"
744 version "-checkout"))
745 (sha256
746 (base32
747 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
748 (build-system go-build-system)
749 (arguments
750 `(#:import-path "golang.org/x/crypto/blowfish"
751 #:unpack-path "golang.org/x/crypto"
752 #:phases
753 (modify-phases %standard-phases
754 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
755 (lambda* (#:key outputs #:allow-other-keys)
756 (map (lambda (file)
757 (make-file-writable file))
758 (find-files
759 (string-append (assoc-ref outputs "out")
760 "/src/golang.org/x/crypto/ed25519/testdata")
761 ".*\\.gz$"))
762 #t)))))
763 (synopsis "Blowfish in Go")
764 (description "This package provides a Go implementation of the Blowfish
765symmetric-key block cipher.")
766 (home-page "https://go.googlesource.com/crypto/")
767 (license license:bsd-3))))
768
769(define-public go-golang-org-x-crypto-pbkdf2
770 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
771 (revision "1"))
772 (package
773 (name "go-golang-org-x-crypto-pbkdf2")
774 (version (git-version "0.0.0" revision commit))
775 (source (origin
776 (method git-fetch)
777 (uri (git-reference
778 (url "https://go.googlesource.com/crypto")
779 (commit commit)))
780 (file-name (string-append "go.googlesource.com-crypto-"
781 version "-checkout"))
782 (sha256
783 (base32
784 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
785 (build-system go-build-system)
786 (arguments
787 `(#:import-path "golang.org/x/crypto/pbkdf2"
788 #:unpack-path "golang.org/x/crypto"
789 #:phases
790 (modify-phases %standard-phases
791 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
792 (lambda* (#:key outputs #:allow-other-keys)
793 (map (lambda (file)
794 (make-file-writable file))
795 (find-files
796 (string-append (assoc-ref outputs "out")
797 "/src/golang.org/x/crypto/ed25519/testdata")
798 ".*\\.gz$"))
799 #t)))))
800 (synopsis "PBKDF2 in Go")
801 (description "This package provides a Go implementation of the PBKDF2 key
802derivation function.")
803 (home-page "https://go.googlesource.com/crypto/")
804 (license license:bsd-3))))
805
806(define-public go-golang-org-x-crypto-tea
807 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
808 (revision "1"))
809 (package
810 (name "go-golang-org-x-crypto-tea")
811 (version (git-version "0.0.0" revision commit))
812 (source (origin
813 (method git-fetch)
814 (uri (git-reference
815 (url "https://go.googlesource.com/crypto")
816 (commit commit)))
817 (file-name (string-append "go.googlesource.com-crypto-"
818 version "-checkout"))
819 (sha256
820 (base32
821 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
822 (build-system go-build-system)
823 (arguments
824 `(#:import-path "golang.org/x/crypto/tea"
825 #:unpack-path "golang.org/x/crypto"
826 #:phases
827 (modify-phases %standard-phases
828 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
829 (lambda* (#:key outputs #:allow-other-keys)
830 (map (lambda (file)
831 (make-file-writable file))
832 (find-files
833 (string-append (assoc-ref outputs "out")
834 "/src/golang.org/x/crypto/ed25519/testdata")
835 ".*\\.gz$"))
836 #t)))))
837 (synopsis "Tiny Encryption Algorithm (TEA) in Go")
838 (description "This packages a Go implementation of the Tiny Encryption
839Algorithm (TEA) block cipher.")
840 (home-page "https://go.googlesource.com/crypto/")
841 (license license:bsd-3))))
842
843(define-public go-golang-org-x-crypto-salsa20
844 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
845 (revision "1"))
846 (package
847 (name "go-golang-org-x-crypto-salsa20")
848 (version (git-version "0.0.0" revision commit))
849 (source (origin
850 (method git-fetch)
851 (uri (git-reference
852 (url "https://go.googlesource.com/crypto")
853 (commit commit)))
854 (file-name (string-append "go.googlesource.com-crypto-"
855 version "-checkout"))
856 (sha256
857 (base32
858 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
859 (build-system go-build-system)
860 (arguments
861 `(#:import-path "golang.org/x/crypto/salsa20"
862 #:unpack-path "golang.org/x/crypto"
863 #:phases
864 (modify-phases %standard-phases
865 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
866 (lambda* (#:key outputs #:allow-other-keys)
867 (map (lambda (file)
868 (make-file-writable file))
869 (find-files
870 (string-append (assoc-ref outputs "out")
871 "/src/golang.org/x/crypto/ed25519/testdata")
872 ".*\\.gz$"))
873 #t)))))
874 (synopsis "Salsa20 in Go")
875 (description "This packages provides a Go implementation of the Salsa20
876stream cipher.")
877 (home-page "https://go.googlesource.com/crypto/")
878 (license license:bsd-3))))
879
880(define-public go-golang-org-x-crypto-cast5
881 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
882 (revision "1"))
883 (package
884 (name "go-golang-org-x-crypto-cast5")
885 (version (git-version "0.0.0" revision commit))
886 (source (origin
887 (method git-fetch)
888 (uri (git-reference
889 (url "https://go.googlesource.com/crypto")
890 (commit commit)))
891 (file-name (string-append "go.googlesource.com-crypto-"
892 version "-checkout"))
893 (sha256
894 (base32
895 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
896 (build-system go-build-system)
897 (arguments
898 `(#:import-path "golang.org/x/crypto/cast5"
899 #:unpack-path "golang.org/x/crypto"
900 #:phases
901 (modify-phases %standard-phases
902 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
903 (lambda* (#:key outputs #:allow-other-keys)
904 (map (lambda (file)
905 (make-file-writable file))
906 (find-files
907 (string-append (assoc-ref outputs "out")
908 "/src/golang.org/x/crypto/ed25519/testdata")
909 ".*\\.gz$"))
910 #t)))))
911 (synopsis "Cast5 in Go")
912 (description "This packages provides a Go implementation of the Cast5
913symmetric-key block cipher.")
914 (home-page "https://go.googlesource.com/crypto/")
915 (license license:bsd-3))))
916
917(define-public go-golang-org-x-crypto-twofish
918 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
919 (revision "1"))
920 (package
921 (name "go-golang-org-x-crypto-twofish")
922 (version (git-version "0.0.0" revision commit))
923 (source (origin
924 (method git-fetch)
925 (uri (git-reference
926 (url "https://go.googlesource.com/crypto")
927 (commit commit)))
928 (file-name (string-append "go.googlesource.com-crypto-"
929 version "-checkout"))
930 (sha256
931 (base32
932 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
933 (build-system go-build-system)
934 (arguments
935 `(#:import-path "golang.org/x/crypto/twofish"
936 #:unpack-path "golang.org/x/crypto"
937 #:phases
938 (modify-phases %standard-phases
939 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
940 (lambda* (#:key outputs #:allow-other-keys)
941 (map (lambda (file)
942 (make-file-writable file))
943 (find-files
944 (string-append (assoc-ref outputs "out")
945 "/src/golang.org/x/crypto/ed25519/testdata")
946 ".*\\.gz$"))
947 #t)))))
948 (synopsis "Twofish in Go")
949 (description "This packages provides a Go implementation of the Twofish
950symmetric-key block cipher.")
951 (home-page "https://go.googlesource.com/crypto/")
952 (license license:bsd-3))))
953
954(define-public go-golang-org-x-crypto-xtea
955 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
956 (revision "1"))
957 (package
958 (name "go-golang-org-x-crypto-xtea")
959 (version (git-version "0.0.0" revision commit))
960 (source (origin
961 (method git-fetch)
962 (uri (git-reference
963 (url "https://go.googlesource.com/crypto")
964 (commit commit)))
965 (file-name (string-append "go.googlesource.com-crypto-"
966 version "-checkout"))
967 (sha256
968 (base32
969 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
970 (build-system go-build-system)
971 (arguments
972 `(#:import-path "golang.org/x/crypto/xtea"
973 #:unpack-path "golang.org/x/crypto"
974 #:phases
975 (modify-phases %standard-phases
976 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
977 (lambda* (#:key outputs #:allow-other-keys)
978 (map (lambda (file)
979 (make-file-writable file))
980 (find-files
981 (string-append (assoc-ref outputs "out")
982 "/src/golang.org/x/crypto/ed25519/testdata")
983 ".*\\.gz$"))
984 #t)))))
985 (synopsis "eXtended Tiny Encryption Algorithm (XTEA) in Go")
986 (description "This package provides a Go implementation of the eXtended
987Tiny Encryption Algorithm (XTEA) block cipher.")
988 (home-page "https://go.googlesource.com/crypto/")
989 (license license:bsd-3))))
990
991(define-public go-golang-org-x-net-ipv4
992 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
993 (revision "1"))
994 (package
995 (name "go-golang-org-x-net-ipv4")
996 (version (git-version "0.0.0" revision commit))
997 (source (origin
998 (method git-fetch)
999 (uri (git-reference
1000 (url "https://go.googlesource.com/net")
1001 (commit commit)))
1002 (file-name (git-file-name name version))
1003 (sha256
1004 (base32
1005 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1006 (build-system go-build-system)
1007 (arguments
1008 `(#:import-path "golang.org/x/net/ipv4"
1009 #:unpack-path "golang.org/x/net"))
1010 (synopsis "Go IPv4 support")
1011 (description "This package provides @code{ipv4}, which implements IP-level
1012socket options for the Internet Protocol version 4.")
1013 (home-page "https://go.googlesource.com/net")
1014 (license license:bsd-3))))
1015
1016(define-public go-golang-org-x-net-bpf
1017 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1018 (revision "1"))
1019 (package
1020 (name "go-golang-org-x-net-bpf")
1021 (version (git-version "0.0.0" revision commit))
1022 (source (origin
1023 (method git-fetch)
1024 (uri (git-reference
1025 (url "https://go.googlesource.com/net")
1026 (commit commit)))
1027 (file-name (string-append "go.googlesource.com-net-"
1028 version "-checkout"))
1029 (sha256
1030 (base32
1031 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1032 (build-system go-build-system)
1033 (arguments
1034 `(#:import-path "golang.org/x/net/bpf"
1035 #:unpack-path "golang.org/x/net"))
1036 (synopsis "Berkeley Packet Filters (BPF) in Go")
1037 (description "This packages provides a Go implementation of the Berkeley
1038Packet Filter (BPF) virtual machine.")
1039 (home-page "https://go.googlesource.com/net/")
1040 (license license:bsd-3))))
1041
1042(define-public go-golang-org-x-net-context
1043 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1044 (revision "1"))
1045 (package
1046 (name "go-golang-org-x-net-context")
1047 (version (git-version "0.0.0" revision commit))
1048 (source (origin
1049 (method git-fetch)
1050 (uri (git-reference
1051 (url "https://go.googlesource.com/net")
1052 (commit commit)))
1053 (file-name (string-append "go.googlesource.com-net-"
1054 version "-checkout"))
1055 (sha256
1056 (base32
1057 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1058 (build-system go-build-system)
1059 (arguments
1060 `(#:import-path "golang.org/x/net/context"
1061 #:unpack-path "golang.org/x/net"))
1062 (synopsis "Golang Context type")
1063 (description "This packages provides @code{context}, which defines the
1064Context type, which carries deadlines, cancelation signals, and other
1065request-scoped values across API boundaries and between processes.")
1066 (home-page "https://go.googlesource.com/net/")
1067 (license license:bsd-3))))
1068
1069(define-public go-golang-org-x-net-internal-iana
1070 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1071 (revision "1"))
1072 (package
1073 (name "go-golang-org-x-net-internal-iana")
1074 (version (git-version "0.0.0" revision commit))
1075 (source (origin
1076 (method git-fetch)
1077 (uri (git-reference
1078 (url "https://go.googlesource.com/net")
1079 (commit commit)))
1080 (file-name (string-append "go.googlesource.com-net-"
1081 version "-checkout"))
1082 (sha256
1083 (base32
1084 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1085 (build-system go-build-system)
1086 (arguments
1087 `(#:import-path "golang.org/x/net/internal/iana"
1088 #:unpack-path "golang.org/x/net"))
1089 (synopsis "Go support for assigned numbers (IANA)")
1090 (description "This packages provides @code{iana}, which provides protocol
1091number resources managed by the Internet Assigned Numbers Authority (IANA).")
1092 (home-page "https://go.googlesource.com/net/")
1093 (license license:bsd-3))))
1094
1095(define-public go-golang-org-x-net-ipv6
1096 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1097 (revision "1"))
1098 (package
1099 (name "go-golang-org-x-net-ipv6")
1100 (version (git-version "0.0.0" revision commit))
1101 (source (origin
1102 (method git-fetch)
1103 (uri (git-reference
1104 (url "https://go.googlesource.com/net")
1105 (commit commit)))
1106 (file-name (string-append "go.googlesource.com-net-"
1107 version "-checkout"))
1108 (sha256
1109 (base32
1110 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1111 (build-system go-build-system)
1112 (arguments
1113 `(#:import-path "golang.org/x/net/ipv6"
1114 #:unpack-path "golang.org/x/net"))
1115 (synopsis "Go IPv6 support")
1116 (description "This packages provides @code{ipv6}, which implements
1117IP-level socket options for the Internet Protocol version 6.")
1118 (home-page "https://go.googlesource.com/net")
1119 (license license:bsd-3))))
1120
1121(define-public go-golang-org-x-net-proxy
1122 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1123 (revision "1"))
1124 (package
1125 (name "go-golang-org-x-net-proxy")
1126 (version (git-version "0.0.0" revision commit))
1127 (source (origin
1128 (method git-fetch)
1129 (uri (git-reference
1130 (url "https://go.googlesource.com/net")
1131 (commit commit)))
1132 (file-name (string-append "go.googlesource.com-net-"
1133 version "-checkout"))
1134 (sha256
1135 (base32
1136 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
1137 (build-system go-build-system)
1138 (arguments
1139 `(#:import-path "golang.org/x/net/proxy"
1140 #:unpack-path "golang.org/x/net/"))
1141 (synopsis "Go support for network proxies")
1142 (description "This packages provides @code{proxy}, which provides support
1143for a variety of protocols to proxy network data.")
1144 (home-page "https://go.googlesource.com/net")
1145 (license license:bsd-3))))
1146
1147(define-public go-golang-org-x-sys-unix
1148 (let ((commit "83801418e1b59fb1880e363299581ee543af32ca")
1149 (revision "1"))
1150 (package
1151 (name "go-golang-org-x-sys-unix")
1152 (version (git-version "0.0.0" revision commit))
1153 (source (origin
1154 (method git-fetch)
1155 (uri (git-reference
1156 (url "https://go.googlesource.com/sys")
1157 (commit commit)))
1158 (file-name (git-file-name name version))
1159 (sha256
1160 (base32
1161 "0ilykaanvnzb27d42kmbr4i37hcn7hgqbx98z945gy63aa8dskji"))))
1162 (build-system go-build-system)
1163 (arguments
1164 `(#:import-path "golang.org/x/sys/unix"
1165 #:unpack-path "golang.org/x/sys"
1166 #:phases
1167 (modify-phases %standard-phases
1168 (add-after 'unpack 'patch-tests
1169 (lambda _
1170 (pk (getcwd))
1171 (substitute* "src/golang.org/x/sys/unix/syscall_unix_test.go"
1172 (("/usr/bin") "/tmp"))
1173 #t)))))
1174 (synopsis "Go support for low-level system interaction")
1175 (description "This package provides @code{unix}, which offers Go support
1176for low-level interaction with the operating system.")
1177 (home-page "https://go.googlesource.com/sys")
1178 (license license:bsd-3))))
1179
1180(define-public go-golang-org-x-text-transform
1181 (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
1182 (revision "1"))
1183 (package
1184 (name "go-golang-org-x-text-transform")
1185 (version (git-version "0.0.0" revision commit))
1186 (source (origin
1187 (method git-fetch)
1188 (uri (git-reference
1189 (url "https://go.googlesource.com/text")
1190 (commit commit)))
1191 (file-name (string-append "go.googlesource.com-text-"
1192 version "-checkout"))
1193 (sha256
1194 (base32
1195 "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
1196 (build-system go-build-system)
1197 (arguments
1198 `(#:import-path "golang.org/x/text/transform"
1199 #:unpack-path "golang.org/x/text"))
1200 (synopsis "Go text transformation")
1201 (description "This package provides @code{transform}, which provides
1202reader and writer wrappers that transform the bytes passing through. Example
1203transformations provided by other packages include normalization and conversion
1204between character sets.")
1205 (home-page "https://go.googlesource.com/text")
1206 (license license:bsd-3))))
1207
1208(define-public go-golang-org-x-text-unicode-norm
1209 (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
1210 (revision "1"))
1211 (package
1212 (name "go-golang-org-x-text-unicode-norm")
1213 (version (git-version "0.0.0" revision commit))
1214 (source (origin
1215 (method git-fetch)
1216 (uri (git-reference
1217 (url "https://go.googlesource.com/text")
1218 (commit commit)))
1219 (file-name (string-append "go.googlesource.com-text-"
1220 version "-checkout"))
1221 (sha256
1222 (base32
1223 "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
1224 (build-system go-build-system)
1225 (arguments
1226 `(#:import-path "golang.org/x/text/unicode/norm"
1227 #:unpack-path "golang.org/x/text"))
1228 (synopsis "Unicode normalization in Go")
1229 (description "This package provides @code{norm}, which contains types and
1230functions for normalizing Unicode strings.")
1231 (home-page "https://go.googlesource.com/text")
1232 (license license:bsd-3))))
1233
1234(define-public go-golang-org-x-time-rate
1235 (let ((commit "6dc17368e09b0e8634d71cac8168d853e869a0c7")
1236 (revision "1"))
1237 (package
1238 (name "go-golang-org-x-time-rate")
1239 (version (git-version "0.0.0" revision commit))
1240 (source (origin
1241 (method git-fetch)
1242 (uri (git-reference
1243 (url "https://go.googlesource.com/time")
1244 (commit commit)))
1245 (file-name (git-file-name name version))
1246 (sha256
1247 (base32
1248 "1fx4cf5fpdz00g3c7vxzy92hdcg0vh4yqw00qp5s52j72qixynbk"))))
1249 (build-system go-build-system)
1250 (arguments
1251 `(#:import-path "golang.org/x/time/rate"
1252 #:unpack-path "golang.org/x/time"))
1253 (propagated-inputs
1254 `(("go-golang-org-x-net-context" ,go-golang-org-x-net-context)))
1255 (synopsis "Rate limiting in Go")
1256 (description "This package provides @{rate}, which implements rate
1257limiting in Go.")
1258 (home-page "https://godoc.org/golang.org/x/time/rate")
1259 (license license:bsd-3))))
e60352e4
1260
1261(define-public go-golang-org-x-crypto-ssh-terminal
1262 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
1263 (revision "1"))
1264 (package
1265 (name "go-golang-org-x-crypto-ssh-terminal")
1266 (version (git-version "0.0.0" revision commit))
1267 (source (origin
1268 (method git-fetch)
1269 (uri (git-reference
1270 (url "https://go.googlesource.com/crypto")
1271 (commit commit)))
1272 (file-name (string-append "go.googlesource.com-crypto-"
1273 version "-checkout"))
1274 (sha256
1275 (base32
1276 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
1277 (build-system go-build-system)
1278 (inputs
1279 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
1280 (arguments
1281 `(#:import-path "golang.org/x/crypto/ssh/terminal"
1282 #:unpack-path "golang.org/x/crypto"
1283 #:phases
1284 (modify-phases %standard-phases
1285 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1286 (lambda* (#:key outputs #:allow-other-keys)
1287 (map (lambda (file)
1288 (make-file-writable file))
1289 (find-files
1290 (string-append (assoc-ref outputs "out")
1291 "/src/golang.org/x/crypto/ed25519/testdata")
1292 ".*\\.gz$"))
1293 #t)))))
1294 (synopsis "Terminal functions for Go")
1295 (description "This package provides @{terminal}, which implements
1296support functions for dealing with terminals, as commonly found on UNIX
1297systems.")
1298 (home-page "https://go.googlesource.com/crypto/")
1299 (license license:bsd-3))))
fb50664f
PAR
1300
1301(define-public go-github-com-burntsushi-toml
1302 (let ((commit
1303 "a368813c5e648fee92e5f6c30e3944ff9d5e8895")
1304 (revision "0"))
1305 (package
1306 (name "go-github-com-burntsushi-toml")
1307 (version (git-version "0.0.0" revision commit))
1308 (source
1309 (origin
1310 (method git-fetch)
1311 (uri (git-reference
1312 (url "https://github.com/BurntSushi/toml.git")
1313 (commit commit)))
1314 (file-name (git-file-name name version))
1315 (sha256
1316 (base32
1317 "1sjxs2lwc8jpln80s4rlzp7nprbcljhy5mz4rf9995gq93wqnym5"))))
1318 (build-system go-build-system)
1319 (arguments
1320 '(#:import-path "github.com/BurntSushi/toml"))
1321 (home-page "https://github.com/BurntSushi/toml")
1322 (synopsis "Toml parser and encoder for Go")
1323 (description "This package is toml parser and encoder for Go. The
1324interface is similar to Go's standard library @code{json} and @code{xml}
1325package.")
1326 (license license:expat))))
8c5a69aa
PAR
1327
1328(define-public go-github-com-getsentry-raven-go
1329 (let ((commit
1330 "dffeb57df75d6a911f00232155194e43d79d38d7")
1331 (revision "0"))
1332 (package
1333 (name "go-github-com-getsentry-raven-go")
1334 (version (git-version "0.0.0" revision commit))
1335 (source
1336 (origin
1337 (method git-fetch)
1338 (uri (git-reference
1339 (url "https://github.com/getsentry/raven-go.git")
1340 (commit commit)))
1341 (file-name (git-file-name name version))
1342 (sha256
1343 (base32
1344 "13sb9rvl3369m7fah3ss9g0hwky259snqfn8gmbr0h5zvp651lja"))))
1345 (build-system go-build-system)
1346 (arguments
1347 '(#:import-path "github.com/getsentry/raven-go"))
1348 (home-page
1349 "https://github.com/getsentry/raven-go")
1350 (synopsis "Sentry client in Go")
1351 (description "This package is Go client API for the Sentry event/error
1352logging system.")
1353 (license license:bsd-3))))
0972411a
PAR
1354
1355(define-public go-github-com-hashicorp-go-version
1356 (let ((commit
1357 "03c5bf6be031b6dd45afec16b1cf94fc8938bc77")
1358 (revision "0"))
1359 (package
1360 (name "go-github-com-hashicorp-go-version")
1361 (version (git-version "0.0.0" revision commit))
1362 (source
1363 (origin
1364 (method git-fetch)
1365 (uri (git-reference
1366 (url "https://github.com/hashicorp/go-version.git")
1367 (commit commit)))
1368 (file-name (git-file-name name version))
1369 (sha256
1370 (base32
1371 "0sjq57gpfznaqdrbyb2p0bn90g9h661cvr0jrk6ngags4pbw14ik"))))
1372 (build-system go-build-system)
1373 (arguments
1374 '(#:import-path "github.com/hashicorp/go-version"))
1375 (home-page
1376 "https://github.com/hashicorp/go-version")
1377 (synopsis "Go library for parsing and verifying versions and version
1378constraints")
1379 (description "This package is a library for parsing versions and version
1380constraints, and verifying versions against a set of constraints. It can sort
1381a collection of versions properly, handles prerelease/beta versions, can
1382increment versions.")
1383 (license license:mpl2.0))))
c4230cda
PAR
1384
1385(define-public go-github-com-jpillora-backoff
1386 (let ((commit
1387 "06c7a16c845dc8e0bf575fafeeca0f5462f5eb4d")
1388 (revision "0"))
1389 (package
1390 (name "go-github-com-jpillora-backoff")
1391 (version (git-version "0.0.0" revision commit))
1392 (source
1393 (origin
1394 (method git-fetch)
1395 (uri (git-reference
1396 (url "https://github.com/jpillora/backoff.git")
1397 (commit commit)))
1398 (file-name (git-file-name name version))
1399 (sha256
1400 (base32
1401 "0xhvxr7bm47czdc5hy3kl508z3y4j91i2jm7vg774i52zych6k4l"))))
1402 (build-system go-build-system)
1403 (arguments
1404 '(#:import-path "github.com/jpillora/backoff"))
1405 (home-page "https://github.com/jpillora/backoff")
1406 (synopsis "Simple exponential backoff counter in Go")
1407 (description "This package is a simple exponential backoff counter in
1408Go.")
1409 (license license:expat))))
28380e0e
PAR
1410
1411(define-public go-github-com-stretchr-testify
1412 (let ((commit
1413 "b1f989447a57594c728884458a39abf3a73447f7")
1414 (revision "0"))
1415 (package
1416 (name "go-github-com-stretchr-testify")
1417 (version (git-version "1.1.4" revision commit))
1418 (source
1419 (origin
1420 (method git-fetch)
1421 (uri (git-reference
1422 (url "https://github.com/stretchr/testify.git")
1423 (commit commit)))
1424 (file-name (git-file-name name version))
1425 (sha256
1426 (base32
1427 "0p0gkqzh2p8r5g0rxm885ljl7ghih7h7hx9w562imx5ka0vdgixv"))))
1428 (build-system go-build-system)
1429 (arguments
1430 '(#:import-path "github.com/stretchr/testify"))
1431 (home-page "https://github.com/stretchr/testify")
1432 (synopsis "Go helper library for tests and invariant checking")
1433 (description "This package provide many tools for testifying that your
1434code will behave as you intend.
1435
1436Features include:
1437@itemize
1438@item Easy assertions
1439@item Mocking
1440@item HTTP response trapping
1441@item Testing suite interfaces and functions.
1442@end itemize")
1443 (license license:expat))))
21290c35
PAR
1444
1445(define-public go-github-com-tevino-abool
1446 (let ((commit
1447 "3c25f2fe7cd0ef3eabefce1d90efd69a65d35b12")
1448 (revision "0"))
1449 (package
1450 (name "go-github-com-tevino-abool")
1451 (version (git-version "0.0.0" revision commit))
1452 (source
1453 (origin
1454 (method git-fetch)
1455 (uri (git-reference
1456 (url "https://github.com/tevino/abool.git")
1457 (commit commit)))
1458 (file-name (git-file-name name version))
1459 (sha256
1460 (base32
1461 "1wxqrclxk93q0aj15z596dx2y57x9nkhi64nbrr5cxnhxn8vwixm"))))
1462 (build-system go-build-system)
1463 (arguments
1464 '(#:import-path "github.com/tevino/abool"))
1465 (home-page "https://github.com/tevino/abool")
1466 (synopsis "Atomic boolean library for Go code")
1467 (description "This package is atomic boolean library for Go code,
1468optimized for performance yet simple to use.")
1469 (license license:expat))))
7c2ebbd4
PAR
1470
1471(define-public go-github-com-urfave-cli
1472 (let ((commit "cfb38830724cc34fedffe9a2a29fb54fa9169cd1")
1473 (revision "0"))
1474 (package
1475 (name "go-github-com-urfave-cli")
1476 (version (git-version "0.0.0" revision commit))
1477 (source
1478 (origin
1479 (method git-fetch)
1480 (uri (git-reference
1481 (url "https://github.com/urfave/cli.git")
1482 (commit commit)))
1483 (file-name (git-file-name name version))
1484 (sha256
1485 (base32
1486 "0y6f4sbzkiiwrxbl15biivj8c7qwxnvm3zl2dd3mw4wzg4x10ygj"))))
1487 (build-system go-build-system)
1488 (arguments
1489 '(#:import-path "github.com/urfave/cli"))
1490 (home-page "https://github.com/urfave/cli")
1491 (synopsis "Library for building command-line interfaces in Go")
1492 (description "This package provides a library for building command-line
1493interfaces in Go.")
1494 (license license:expat))))
67836c59
PAR
1495
1496(define-public go-github-com-blang-semver
1497 (let ((commit "60ec3488bfea7cca02b021d106d9911120d25fe9")
1498 (revision "0"))
1499 (package
1500 (name "go-github-com-blang-semver")
1501 (version (git-version "0.0.0" revision commit))
1502 (source
1503 (origin
1504 (method git-fetch)
1505 (uri (git-reference
1506 (url "https://github.com/blang/semver.git")
1507 (commit commit)))
1508 (file-name (git-file-name name version))
1509 (sha256
1510 (base32
1511 "19pli07y5592g4dyjyj0jq5rn548vc3fz0qg3624vm1j5828p1c2"))))
1512 (build-system go-build-system)
1513 (arguments
1514 '(#:import-path "github.com/blang/semver"))
1515 (home-page "https://github.com/blang/semver")
1516 (synopsis "Semantic versioning library written in Go")
1517 (description "Semver is a library for Semantic versioning written in Go.")
1518 (license license:expat))))
1519
7979f7df
PAR
1520(define-public go-github-com-emicklei-go-restful
1521 (let ((commit "89ef8af493ab468a45a42bb0d89a06fccdd2fb22")
1522 (revision "0"))
1523 (package
1524 (name "go-github-com-emicklei-go-restful")
1525 (version (git-version "0.0.0" revision commit))
1526 (source
1527 (origin
1528 (method git-fetch)
1529 (uri (git-reference
1530 (url "https://github.com/emicklei/go-restful.git")
1531 (commit commit)))
1532 (file-name (git-file-name name version))
1533 (sha256
1534 (base32
1535 "0rrlfcfq80fkxifpih6bq31vavb5mf4530xz51pp9pq1mn2fzjfh"))))
1536 (build-system go-build-system)
1537 (arguments
1538 '(#:import-path "github.com/emicklei/go-restful"))
1539 (home-page "https://github.com/emicklei/go-restful")
1540 (synopsis "Build REST-style web services using Go")
1541 (description "This package provides @code{go-restful}, which helps
1542developers to use @code{http} methods explicitly and in a way that's consistent
1543with the HTTP protocol definition.")
1544 (license license:expat))))
73fe19ef
PAR
1545
1546(define-public go-github-com-google-cadvisor
1547 (let ((commit "2ed7198f77395ee9a172878a0a7ab92ab59a2cfd")
1548 (revision "0"))
1549 (package
1550 (name "go-github-com-google-cadvisor")
1551 (version (git-version "0.0.0" revision commit))
1552 (source
1553 (origin
1554 (method git-fetch)
1555 (uri (git-reference
1556 (url "https://github.com/google/cadvisor.git")
1557 (commit commit)))
1558 (file-name (git-file-name name version))
1559 (sha256
1560 (base32
1561 "1w8p345z5j0gk3yiq5ah0znd5lfh348p2s624k5r10drz04p3f55"))))
1562 (build-system go-build-system)
1563 (arguments
1564 '(#:import-path "github.com/google/cadvisor"))
1565 (home-page "https://github.com/google/cadvisor")
1566 (synopsis "Analyze resource usage of running containers")
1567 (description "The package provides @code{cadvisor}, which provides
1568information about the resource usage and preformance characteristics of running
1569containers.")
1570 (license license:asl2.0))))
daed2c5e
PAR
1571
1572(define-public go-github-com-google-gofuzz
1573 (let ((commit "fd52762d25a41827db7ef64c43756fd4b9f7e382")
1574 (revision "0"))
1575 (package
1576 (name "go-github-com-google-gofuzz")
1577 (version (git-version "0.0.0" revision commit))
1578 (source
1579 (origin
1580 (method git-fetch)
1581 (uri (git-reference
1582 (url "https://github.com/google/gofuzz.git")
1583 (commit commit)))
1584 (file-name (git-file-name name version))
1585 (sha256
1586 (base32
1587 "1yxmmr73h0lq7ryf3q9a7pcm2x5xrg4d5bxkq8n5pxwxwyq26kw8"))))
1588 (build-system go-build-system)
1589 (arguments
1590 '(#:import-path "github.com/google/gofuzz"))
1591 (home-page "https://github.com/google/gofuzz")
1592 (synopsis "Fuzz testing library for Go")
1593 (description "Gofuzz is a library for populationg Go objects with random
1594values for the purpose of fuzz testing.")
1595 (license license:asl2.0))))
9cf879a5
PAR
1596
1597(define-public go-github-com-gorilla-context
1598 (let ((commit "08b5f424b9271eedf6f9f0ce86cb9396ed337a42")
1599 (revision "0"))
1600 (package
1601 (name "go-github-com-gorilla-context")
1602 (version (git-version "0.0.0" revision commit))
1603 (source
1604 (origin
1605 (method git-fetch)
1606 (uri (git-reference
1607 (url "https://github.com/gorilla/context.git")
1608 (commit commit)))
1609 (file-name (git-file-name name version))
1610 (sha256
1611 (base32
1612 "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4"))))
1613 (build-system go-build-system)
1614 (arguments
1615 '(#:import-path "github.com/gorilla/context"))
1616 (home-page "https://github.com/gorilla/context")
1617 (synopsis "Go registry for request variables")
1618 (description "This package provides @code{gorilla/context}, which is a general purpose registry for global request variables in the Go programming language.")
1619 (license license:bsd-3))))
e8cdf560
PAR
1620
1621(define-public go-github-com-gorilla-mux
1622 (let ((commit "599cba5e7b6137d46ddf58fb1765f5d928e69604")
1623 (revision "0"))
1624 (package
1625 (name "go-github-com-gorilla-mux")
1626 (version (git-version "0.0.0" revision commit))
1627 (source
1628 (origin
1629 (method git-fetch)
1630 (uri (git-reference
1631 (url "https://github.com/gorilla/mux.git")
1632 (commit commit)))
1633 (file-name (git-file-name name version))
1634 (sha256
1635 (base32
1636 "0wd6jjii1kg5s0nk3ri6gqriz6hbd6bbcn6x4jf8n7ncrb8qsxyz"))))
1637 (build-system go-build-system)
1638 (arguments
1639 '(#:import-path "github.com/gorilla/mux"))
1640 (home-page "https://github.com/gorilla/mux")
1641 (synopsis "URL router and dispatcher for Go")
1642 (description
1643 "Gorilla/Mux implements a request router and dispatcher for matching
1644incoming requests with their respective handler.")
1645 (license license:bsd-3))))
bcb21790
PAR
1646
1647(define-public go-github-com-jonboulle-clockwork
1648 (let ((commit "e3653ace2d63753697e0e5b07b9393971c0bba9d")
1649 (revision "0"))
1650 (package
1651 (name "go-github-com-jonboulle-clockwork")
1652 (version (git-version "0.0.0" revision commit))
1653 (source
1654 (origin
1655 (method git-fetch)
1656 (uri (git-reference
1657 (url "https://github.com/jonboulle/clockwork.git")
1658 (commit commit)))
1659 (file-name (git-file-name name version))
1660 (sha256
1661 (base32
1662 "1avzqhks12a8x2yzpvjsf3k0gv9cy7zx2z88hn0scacnxkphisvc"))))
1663 (build-system go-build-system)
1664 (arguments
1665 '(#:import-path "github.com/jonboulle/clockwork"))
1666 (home-page "https://github.com/jonboulle/clockwork")
1667 (synopsis "Fake clock library for Go")
1668 (description
1669 "Replace uses of the @code{time} package with the
1670@code{clockwork.Clock} interface instead.")
1671 (license license:asl2.0))))
76a2b278
PAR
1672
1673(define-public go-github-com-spf13-pflag
1674 (let ((commit "4f9190456aed1c2113ca51ea9b89219747458dc1")
1675 (revision "0"))
1676 (package
1677 (name "go-github-com-spf13-pflag")
1678 (version (git-version "0.0.0" revision commit))
1679 (source
1680 (origin
1681 (method git-fetch)
1682 (uri (git-reference
1683 (url "https://github.com/spf13/pflag.git")
1684 (commit commit)))
1685 (file-name (git-file-name name version))
1686 (sha256
1687 (base32
1688 "12vrlcsbwjqlfc49rwky45mbcj74c0kb6z54354pzas6fwzyi1kc"))))
1689 (build-system go-build-system)
1690 (arguments
1691 '(#:import-path "github.com/spf13/pflag"))
1692 (home-page "https://github.com/spf13/pflag")
1693 (synopsis "Replacement for Go's @code{flag} package")
1694 (description
1695 "Pflag is library to replace Go's @code{flag} package. It implements
1696POSIX/GNU-style command-line options with double hyphens. It is is compatible
1697with the
1698@uref{https://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html,
1699GNU extensions} to the POSIX recommendations for command-line options.")
1700 (license license:bsd-3))))
7427b2c6
PAR
1701
1702(define-public go-github-com-sirupsen-logrus
1703 (package
1704 (name "go-github-com-sirupsen-logrus")
1705 (version "1.0.5")
1706 (source
1707 (origin
1708 (method git-fetch)
1709 (uri (git-reference
1710 (url "https://github.com/sirupsen/logrus.git")
1711 (commit (string-append "v" version))))
1712 (sha256
1713 (base32
1714 "0g5z7al7kky11ai2dhac6gkp3b5pxsvx72yj3xg4wg3265gbn7yz"))))
1715 (build-system go-build-system)
1716 (native-inputs
1717 `(("go-golang-org-x-crypto-ssh-terminal"
1718 ,go-golang-org-x-crypto-ssh-terminal)
1719 ("go-github-com-stretchr-testify"
1720 ,go-github-com-stretchr-testify)
1721 ("go-golang-org-x-sys-unix"
1722 ,go-golang-org-x-sys-unix)))
1723 (arguments
1724 '(#:tests? #f ;FIXME missing dependencies
1725 #:import-path "github.com/sirupsen/logrus"))
1726 (home-page "https://github.com/sirupsen/logrus")
1727 (synopsis "Structured, pluggable logging for Go")
1728 (description "Logrus is a structured logger for Go, completely API
1729compatible with the standard library logger.")
1730 (license license:expat)))
5cc2b845
LF
1731
1732(define-public go-github-com-kardianos-osext
1733 (let ((commit "ae77be60afb1dcacde03767a8c37337fad28ac14")
1734 (revision "1"))
1735 (package
1736 (name "go-github-com-kardianos-osext")
1737 (version (git-version "0.0.0" revision commit))
1738 (source (origin
1739 (method git-fetch)
1740 (uri (git-reference
1741 (url "https://github.com/kardianos/osext")
1742 (commit commit)))
1743 (file-name (git-file-name name version))
1744 (sha256
1745 (base32
1746 "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz"))))
1747 (build-system go-build-system)
1748 (arguments
1749 `(#:import-path "github.com/kardianos/osext"
1750 ;; The tests are flaky:
1751 ;; <https://github.com/kardianos/osext/issues/21>
1752 #:tests? #f))
1753 (synopsis "Find the running executable")
1754 (description "Osext provides a method for finding the current executable
1755file that is running. This can be used for upgrading the current executable or
1756finding resources located relative to the executable file.")
1757 (home-page "https://github.com/kardianos/osext")
1758 (license license:bsd-3))))
aed4944d
PAR
1759
1760(define-public go-github-com-ayufan-golang-kardianos-service
1761 (let ((commit "0c8eb6d8fff2e2fb884a7bfd23e183fb63c0eff3")
1762 (revision "0"))
1763 (package
1764 (name "go-github-com-ayufan-golang-kardianos-service")
1765 (version (git-version "0.0.0" revision commit))
1766 (source
1767 (origin
1768 (method git-fetch)
1769 (uri (git-reference
1770 (url
1771 "https://github.com/ayufan/golang-kardianos-service.git")
1772 (commit commit)))
1773 (file-name (git-file-name name version))
1774 (sha256
1775 (base32
1776 "0x0cn7l5gda2khsfypix7adxd5yqighzn04mxjw6hc4ayrh7his5"))))
1777 (build-system go-build-system)
1778 (native-inputs
1779 `(("go-github-com-kardianos-osext"
1780 ,go-github-com-kardianos-osext)))
1781 (arguments
1782 '(#:tests? #f ;FIXME tests fail: Service is not running.
1783 #:import-path "github.com/ayufan/golang-kardianos-service"))
1784 (home-page "https://github.com/ayufan/golang-kardianos-service")
1785 (synopsis "Go interface to a variety of service supervisors")
1786 (description "This package provides @code{service}, a Go module that can
1787run programs as a service using a variety of supervisors, including systemd,
1788SysVinit, and more.")
1789 (license license:zlib))))
e2826118
PAR
1790
1791(define-public go-github-com-docker-distribution
1792 (let ((commit "325b0804fef3a66309d962357aac3c2ce3f4d329")
1793 (revision "0"))
1794 (package
1795 (name "go-github-com-docker-distribution")
1796 (version (git-version "0.0.0" revision commit))
1797 (source
1798 ;; FIXME: This bundles many things, see
1799 ;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31881#41>.
1800 (origin
1801 (method git-fetch)
1802 (uri (git-reference
1803 (url "https://github.com/docker/distribution")
1804 (commit commit)))
1805 (file-name (git-file-name name version))
1806 (sha256
1807 (base32
1808 "1yg2zrikn3vkvkx5mn51p6bfjk840qdkn7ahhhvvcsc8mpigrjc6"))))
1809 (build-system go-build-system)
1810 (native-inputs
1811 `(("go-golang-org-x-sys-unix"
1812 ,go-golang-org-x-sys-unix)
1813 ("go-github-com-sirupsen-logrus"
1814 ,go-github-com-sirupsen-logrus)
1815 ("go-golang-org-x-crypto-ssh-terminal"
1816 ,go-golang-org-x-crypto-ssh-terminal)))
1817 (arguments
1818 '(#:import-path "github.com/docker/distribution"
1819 #:phases
1820 (modify-phases %standard-phases
1821 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1822 (lambda* (#:key outputs #:allow-other-keys)
1823 (map (lambda (file)
1824 (make-file-writable file))
1825 (find-files
1826 (assoc-ref outputs "out")
1827 ".*\\.gz$"))
1828 #t)))))
1829 (home-page
1830 "https://github.com/docker/distribution")
1831 (synopsis "This package is Docker toolset to pack, ship, store, and
1832deliver content")
1833 (description "Docker Distribution is Docker toolset to pack, ship,
1834store, and deliver content. It's containe Docker Registry 2.0 and libraries
1835to interacting with distribution components.")
1836 (license license:asl2.0))))
01bcc94c
PAR
1837
1838(define-public go-github-com-docker-go-connections
1839 (let ((commit "3ede32e2033de7505e6500d6c868c2b9ed9f169d")
1840 (revision "0"))
1841 (package
1842 (name "go-github-com-docker-go-connections")
1843 (version (git-version "0.0.0" revision commit))
1844 (source
1845 (origin
1846 (method git-fetch)
1847 (uri (git-reference
1848 (url "https://github.com/docker/go-connections.git")
1849 (commit commit)))
1850 (file-name (git-file-name name version))
1851 (sha256
1852 (base32
1853 "0v1pkr8apwmhyzbjfriwdrs1ihlk6pw7izm57r24mf9jdmg3fyb0"))))
1854 (build-system go-build-system)
1855 (arguments
1856 '(#:import-path "github.com/docker/go-connections"))
1857 (home-page "https://github.com/docker/go-connections")
1858 (synopsis "Networking library for Go")
1859 (description
1860 "This packages provides a library to work with network connections in
1861the Go language. In particular it provides tools to deal with network address
1862translation (NAT), proxies, sockets, and transport layer security (TLS).")
1863 (license license:asl2.0))))
af132bcc
PAR
1864
1865(define-public go-github-com-docker-machine
1866 (let ((commit "7b7a141da84480342357c51838be142bf183b095")
1867 (revision "0"))
1868 (package
1869 (name "go-github-com-docker-machine")
1870 (version (git-version "0.0.0" revision commit))
1871 (source
1872 (origin
1873 (method git-fetch)
1874 (uri (git-reference
1875 (url "https://github.com/docker/machine.git")
1876 (commit commit)))
1877 (file-name (git-file-name name version))
1878 (sha256
1879 (base32
1880 "0bavk0lvs462yh0lnmnxi9psi5qv1x3nvzmd2b0drsahlp1gxi8s"))))
1881 (build-system go-build-system)
1882 (arguments
1883 '(#:import-path "github.com/docker/machine"))
1884 (home-page "https://github.com/docker/machine")
1885 (synopsis "Machine management for a container-centric world")
1886 (description
1887 "@dfn{Machine} lets you create Docker hosts on your computer, on
1888hosting providers, and inside your data center. It creates servers, installs
1889Docker on them, then configures the Docker client to talk to them.")
1890 (license license:asl2.0))))
d850e7a0
PAR
1891
1892(define-public go-github-com-gorhill-cronexpr
1893 (let ((commit "f0984319b44273e83de132089ae42b1810f4933b")
1894 (revision "0"))
1895 (package
1896 (name "go-github-com-gorhill-cronexpr")
1897 (version (git-version "0.0.0" revision commit))
1898 (source
1899 (origin
1900 (method git-fetch)
1901 (uri (git-reference
1902 (url "https://github.com/gorhill/cronexpr.git")
1903 (commit commit)))
1904 (file-name (git-file-name name version))
1905 (sha256
1906 (base32
1907 "0dphhhqy3i7265znv3m8n57l80dmaq6z4hsj5kgd87qd19z8x0l2"))))
1908 (build-system go-build-system)
1909 (arguments
1910 '(#:import-path "github.com/gorhill/cronexpr"))
1911 (home-page "https://github.com/gorhill/cronexpr")
1912 (synopsis "Cron expression parser in the Go language")
1913 (description
1914 "This package provides a cron expression parser in the Go language.
1915Given a cron expression and a time stamp, you can get the next time stamp
1916which satisfies the cron expression.")
1917 (license (list license:gpl3+
1918 license:asl2.0)))))
abd47216
PAR
1919
1920(define-public go-gopkg-in-check-v1
1921 (let ((commit "20d25e2804050c1cd24a7eea1e7a6447dd0e74ec")
1922 (revision "0"))
1923 (package
1924 (name "go-gopkg-in-check-v1")
1925 (version (git-version "0.0.0" revision commit))
1926 (source
1927 (origin
1928 (method git-fetch)
1929 (uri (git-reference
1930 (url "https://github.com/go-check/check")
1931 (commit commit)))
1932 (file-name (git-file-name name version))
1933 (sha256
1934 (base32
1935 "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np"))))
1936 (build-system go-build-system)
1937 (arguments
1938 '(#:import-path "gopkg.in/check.v1"))
1939 (home-page "https://gopkg.in/check.v1")
1940 (synopsis "Test framework for the Go language")
1941 (description
1942 "This package provides a test library for the Go language.")
1943 (license license:asl2.0))))
d2c5e912
PAR
1944
1945(define-public go-gopkg-in-yaml-v2
1946 (let ((commit "14227de293ca979cf205cd88769fe71ed96a97e2")
1947 (revision "0"))
1948 (package
1949 (name "go-gopkg-in-yaml-v2")
1950 (version (git-version "0.0.0" revision commit))
1951 (source
1952 (origin
1953 (method git-fetch)
1954 (uri (git-reference
1955 (url "https://gopkg.in/yaml.v2.git")
1956 (commit commit)))
1957 (file-name (git-file-name name version))
1958 (sha256
1959 (base32
1960 "038hnrjcnjygyi3qidfrkpkakis82qg381sr495d2s40g2dwlzah"))))
1961 (build-system go-build-system)
1962 (arguments
1963 '(#:import-path "gopkg.in/yaml.v2"))
1964 (native-inputs
1965 `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
1966 (home-page "https://gopkg.in/yaml.v2")
1967 (synopsis "YAML reader and writer for the Go language")
1968 (description
1969 "This package provides a Go library for encode and decode YAML
1970values.")
1971 (license license:asl2.0))))
3291be81
PN
1972
1973(define-public go-github-com-mattn-go-isatty
1974 (let ((commit "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c")
1975 (revision "0"))
1976 (package
1977 (name "go-github-com-mattn-go-isatty")
1978 (version (git-version "0.0.0" revision commit))
1979 (source
1980 (origin
1981 (method git-fetch)
1982 (uri (git-reference
1983 (url "https://github.com/mattn/go-isatty")
1984 (commit commit)))
1985 (file-name (git-file-name name version))
1986 (sha256
1987 (base32
1988 "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w"))))
1989 (build-system go-build-system)
1990 (arguments
1991 '(#:import-path "github.com/mattn/go-isatty"))
1992 (home-page "https://github.com/mattn/go-isatty")
1993 (synopsis "Provide @code{isatty} for Golang")
1994 (description "This package provides @code{isatty}, a Go module that can
1995tell you whether a file descriptor points to a terminal and the type of the
1996terminal.")
1997 (license license:expat))))
7601b4e4
PN
1998
1999(define-public go-github-com-mattn-go-colorable
2000 (let ((commit "efa589957cd060542a26d2dd7832fd6a6c6c3ade")
2001 (revision "0"))
2002 (package
2003 (name "go-github-com-mattn-go-colorable")
2004 (version (git-version "0.0.0" revision commit))
2005 (source
2006 (origin
2007 (method git-fetch)
2008 (uri (git-reference
2009 (url "https://github.com/mattn/go-colorable")
2010 (commit commit)))
2011 (file-name (git-file-name name version))
2012 (sha256
2013 (base32
2014 "0kshi4hvm0ayrsxqxy0599iv81kryhd2fn9lwjyczpj593cq069r"))))
2015 (build-system go-build-system)
2016 (native-inputs
2017 `(("go-github-com-mattn-go-isatty"
2018 ,go-github-com-mattn-go-isatty)))
2019 (arguments
2020 '(#:import-path "github.com/mattn/go-colorable"))
2021 (home-page "https://github.com/mattn/go-colorable")
2022 (synopsis "Handle ANSI color escapes on Windows")
2023 (description "This package provides @code{colorable}, a module that
2024makes it possible to handle ANSI color escapes on Windows.")
2025 (license license:expat))))
32cb1af6
PN
2026
2027(define-public go-github-com-mgutz-ansi
2028 (let ((commit "9520e82c474b0a04dd04f8a40959027271bab992")
2029 (revision "0"))
2030 (package
2031 (name "go-github-com-mgutz-ansi")
2032 (version (git-version "0.0.0" revision commit))
2033 (source
2034 (origin
2035 (method git-fetch)
2036 (uri (git-reference
2037 (url
2038 "https://github.com/mgutz/ansi")
2039 (commit commit)))
2040 (file-name (git-file-name name version))
2041 (sha256
2042 (base32
2043 "00bz22314j26736w1f0q4jy9d9dfaml17vn890n5zqy3cmvmww1j"))))
2044 (build-system go-build-system)
2045 (native-inputs
2046 `(("go-github-com-mattn-go-isatty"
2047 ,go-github-com-mattn-go-isatty)
2048 ("go-github-com-mattn-go-colorable"
2049 ,go-github-com-mattn-go-colorable)))
2050 (arguments
2051 '(#:import-path "github.com/mgutz/ansi"))
2052 (home-page "https://github.com/mgutz/ansi")
2053 (synopsis "Small, fast library to create ANSI colored strings and codes")
2054 (description "This package provides @code{ansi}, a Go module that can
2055generate ANSI colored strings.")
2056 (license license:expat))))
e25ddef5
PN
2057
2058(define-public go-github-com-aarzilli-golua
2059 (let ((commit "03fc4642d792b1f2bc5e7343b403cf490f8c501d")
2060 (revision "0"))
2061 (package
2062 (name "go-github-com-aarzilli-golua")
2063 (version (git-version "0.0.0" revision commit))
2064 (source
2065 (origin
2066 (method git-fetch)
2067 (uri (git-reference
2068 (url
2069 "https://github.com/aarzilli/golua")
2070 (commit commit)))
2071 (file-name (git-file-name name version))
2072 (sha256
2073 (base32
2074 "1d9hr29i36cza98afj3g6rs3l7xbkprwzz0blcxsr9dd7nak20di"))))
2075 (build-system go-build-system)
2076 (native-inputs
2077 `(("lua" ,lua)))
2078 (arguments
2079 `(#:unpack-path "github.com/aarzilli/golua"
2080 #:import-path "github.com/aarzilli/golua/lua"
2081 #:phases
2082 (modify-phases %standard-phases
2083 (replace 'build
2084 (lambda* (#:key import-path #:allow-other-keys)
2085 (invoke "go" "install"
2086 "-v" ; print the name of packages as they are compiled
2087 "-x" ; print each command as it is invoked
2088 "-ldflags=-s -w" ; strip the symbol table and debug
2089 "-tags" "llua" ; Latest Lua on Guix does not have a version number.
2090 import-path)))
2091 (replace 'check
2092 (lambda* (#:key import-path #:allow-other-keys)
2093 (invoke "go" "test"
2094 "-tags" "llua" ; Latest Lua on Guix does not have a version number.
2095 import-path))))))
2096 (home-page "https://github.com/aarzilli/golua")
2097 (synopsis "Go Bindings for the Lua C API")
2098 (description "This package provides @code{lua}, a Go module that can
2099run a Lua virtual machine.")
2100 (license license:expat))))
f25e3b39
PN
2101
2102(define-public go-gitlab-com-ambrevar-golua-unicode
2103 (let ((commit "97ce517e7a1fe2407a90c317a9c74b173d396144")
2104 (revision "0"))
2105 (package
2106 (name "go-gitlab-com-ambrevar-golua-unicode")
2107 (version (git-version "0.0.0" revision commit))
2108 (source
2109 (origin
2110 (method git-fetch)
2111 (uri (git-reference
2112 (url
2113 "https://gitlab.com/ambrevar/golua")
2114 (commit commit)))
2115 (file-name (git-file-name name version))
2116 (sha256
2117 (base32
2118 "1izcp7p8nagjwqd13shb0020w7xhppib1a3glw2d1468bflhksnm"))))
2119 (build-system go-build-system)
2120 (native-inputs
2121 `(("lua" ,lua)
2122 ("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
2123 (arguments
2124 `(#:unpack-path "gitlab.com/ambrevar/golua"
2125 #:import-path "gitlab.com/ambrevar/golua/unicode"
2126 #:phases
2127 (modify-phases %standard-phases
2128 (replace 'check
2129 (lambda* (#:key import-path #:allow-other-keys)
2130 (setenv "USER" "homeless-dude")
2131 (invoke "go" "test" import-path))))))
2132 (home-page "https://gitlab.com/ambrevar/golua")
2133 (synopsis "Add Unicode support to Golua")
2134 (description "This extension to Arzilli's Golua adds Unicode support to
2135all functions from the Lua string library. Lua patterns are replaced by Go
2136regexps. This breaks compatibility with Lua, but Unicode support breaks it
2137anyways and Go regexps are more powerful.")
2138 (license license:expat))))
b4d1440f
PN
2139
2140(define-public go-github-com-yookoala-realpath
2141 (let ((commit "d19ef9c409d9817c1e685775e53d361b03eabbc8")
2142 (revision "0"))
2143 (package
2144 (name "go-github-com-yookoala-realpath")
2145 (version (git-version "0.0.0" revision commit))
2146 (source
2147 (origin
2148 (method git-fetch)
2149 (uri (git-reference
2150 (url
2151 "https://github.com/yookoala/realpath")
2152 (commit commit)))
2153 (file-name (git-file-name name version))
2154 (sha256
2155 (base32
2156 "0qvz1dcdldf53rq69fli76z5k1vr7prx9ds1d5rpzgs68kwn40nw"))))
2157 (build-system go-build-system)
2158 (arguments
2159 `(#:import-path "github.com/yookoala/realpath"))
2160 (home-page "https://github.com/yookoala/realpath")
2161 (synopsis "@code{realpath} for Golang")
2162 (description "This package provides @code{realpath}, a Go module that
2163when provided with a valid relative path / alias path, it will return you with
2164a string of its real absolute path in the system.")
0e11f5da 2165 (license license:expat))))
54b83f0e
PN
2166
2167(define-public go-gitlab-com-ambrevar-damerau
2168 (let ((commit "883829e1f25fad54015772ea663e69017cf22352")
2169 (revision "0"))
2170 (package
2171 (name "go-gitlab-com-ambrevar-damerau")
2172 (version (git-version "0.0.0" revision commit))
2173 (source
2174 (origin
2175 (method git-fetch)
2176 (uri (git-reference
2177 (url
2178 "https://gitlab.com/ambrevar/damerau")
2179 (commit commit)))
2180 (file-name (git-file-name name version))
2181 (sha256
2182 (base32
2183 "1b9p8fypc914ij1afn6ir346zsgfqrc5mqc1k3d53n4snypq27qv"))))
2184 (build-system go-build-system)
2185 (arguments
2186 `(#:import-path "gitlab.com/ambrevar/damerau"))
2187 (home-page "https://gitlab.com/ambrevar/damerau")
2188 (synopsis "Damerau-Levenshtein distance for Golang")
2189 (description "This is a spelling corrector implementing the
2190Damerau-Levenshtein distance. Takes a string value input from the user.
2191Looks for an identical word on a list of words, if none is found, look for a
2192similar word.")
2193 (license license:expat))))
c4962817
PN
2194
2195(define-public go-github-com-stevedonovan-luar
2196 (let ((commit "22d247e5366095f491cd83edf779ee99a78f5ead")
2197 (revision "0"))
2198 (package
2199 (name "go-github-com-stevedonovan-luar")
2200 (version (git-version "0.0.0" revision commit))
2201 (source
2202 (origin
2203 (method git-fetch)
2204 (uri (git-reference
2205 (url
2206 "https://github.com/stevedonovan/luar")
2207 (commit commit)))
2208 (file-name (git-file-name name version))
2209 (sha256
2210 (base32
2211 "1acjgw9cz1l0l9mzkyk7irz6cfk31wnxgbwa805fvm1rqcjzin2c"))))
2212 (build-system go-build-system)
2213 (native-inputs
2214 `(("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
2215 (arguments
2216 `(#:tests? #f ; Upstream tests are broken.
2217 #:import-path "github.com/stevedonovan/luar"))
2218 (home-page "https://github.com/stevedonovan/luar")
2219 (synopsis "Lua reflection bindings for Go")
2220 (description "Luar is designed to make using Lua from Go more
2221convenient. Go structs, slices and maps can be automatically converted to Lua
2222tables and vice-versa. The resulting conversion can either be a copy or a
2223proxy. In the latter case, any change made to the result will reflect on the
2224source.
2225
2226Any Go function can be made available to Lua scripts, without having to write
2227C-style wrappers.
2228
2229Luar support cyclic structures (lists, etc.).
2230
2231User-defined types can be made available to Lua as well: their exported
2232methods can be called and usual operations such as indexing or arithmetic can
2233be performed.")
2234 (license license:expat))))
bc3138d2
PN
2235
2236(define-public go-github-com-kr-text
2237 (let ((commit "e2ffdb16a802fe2bb95e2e35ff34f0e53aeef34f")
2238 (revision "0"))
2239 (package
2240 (name "go-github-com-kr-text")
2241 (version (git-version "0.0.0" revision commit))
2242 (source
2243 (origin
2244 (method git-fetch)
2245 (uri (git-reference
2246 (url
2247 "https://github.com/kr/text")
2248 (commit commit)))
2249 (file-name (git-file-name name version))
2250 (sha256
2251 (base32
2252 "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"))))
2253 (build-system go-build-system)
2254 (arguments
2255 `(#:import-path "github.com/kr/text"))
2256 (home-page "https://github.com/kr/text")
2257 (synopsis "Go package for manipulating paragraphs of text")
2258 (description "Package @code{text} provides manipulation Go functions for
2259paragraphs of text.")
2260 (license license:expat))))
9630ae34
PN
2261
2262(define-public go-github-com-michiwend-golang-pretty
2263 (let ((commit "8ac61812ea3fa540f3f141a444fcb0dd713cdca4")
2264 (revision "0"))
2265 (package
2266 (name "go-github-com-michiwend-golang-pretty")
2267 (version (git-version "0.0.0" revision commit))
2268 (source
2269 (origin
2270 (method git-fetch)
2271 (uri (git-reference
2272 (url
2273 "https://github.com/michiwend/golang-pretty")
2274 (commit commit)))
2275 (file-name (git-file-name name version))
2276 (sha256
2277 (base32
2278 "0rjfms0csjqi91xnddzx3rcrcaikc7xc027617px3kdwdap80ir4"))))
2279 (build-system go-build-system)
2280 (native-inputs
2281 `(("go-github-com-kr-text" ,go-github-com-kr-text)))
2282 (arguments
2283 `(#:tests? #f ; Upstream tests seem to be broken.
2284 #:import-path "github.com/michiwend/golang-pretty"))
2285 (home-page "https://github.com/michiwend/golang-pretty")
2286 (synopsis "Pretty printing for Go values")
2287 (description "Package @code{pretty} provides pretty-printing for Go
2288values. This is useful during debugging, to avoid wrapping long output lines
2289in the terminal.
2290
2291It provides a function, @code{Formatter}, that can be used with any function
2292that accepts a format string. It also provides convenience wrappers for
2293functions in packages @code{fmt} and @code{log}.")
2294 (license license:expat))))
62879d22
PN
2295
2296(define-public go-github-com-michiwend-gomusicbrainz
2297 (let ((commit "0cdeb13f9b24d2c714feb7e3c63d595cf7121d7d")
2298 (revision "0"))
2299 (package
2300 (name "go-github-com-michiwend-gomusicbrainz")
2301 (version (git-version "0.0.0" revision commit))
2302 (source
2303 (origin
2304 (method git-fetch)
2305 (uri (git-reference
2306 (url
2307 "https://github.com/michiwend/gomusicbrainz")
2308 (commit commit)))
2309 (file-name (git-file-name name version))
2310 (sha256
2311 (base32
2312 "1li9daw0kghb80rdmxbh7g72qhxcvx3rvhwq5gs0jrr9hb8pjvcn"))))
2313 (build-system go-build-system)
2314 (native-inputs
2315 `(("go-github-com-michiwend-golang-pretty" ,go-github-com-michiwend-golang-pretty)
2316 ("go-github-com-kr-text" ,go-github-com-kr-text)))
2317 (arguments
2318 `(#:import-path "github.com/michiwend/gomusicbrainz"))
2319 (home-page "https://github.com/michiwend/gomusicbrainz")
2320 (synopsis "MusicBrainz WS2 client library for Golang")
2321 (description "Currently GoMusicBrainz provides methods to perform search
2322and lookup requests. Browse requests are not supported yet.")
2323 (license license:expat))))
53182924
PN
2324
2325(define-public go-github-com-wtolson-go-taglib
2326 (let ((commit "6e68349ff94ecea412de7e748cb5eaa26f472777")
2327 (revision "0"))
2328 (package
2329 (name "go-github-com-wtolson-go-taglib")
2330 (version (git-version "0.0.0" revision commit))
2331 (source
2332 (origin
2333 (method git-fetch)
2334 (uri (git-reference
2335 (url
2336 "https://github.com/wtolson/go-taglib")
2337 (commit commit)))
2338 (file-name (git-file-name name version))
2339 (sha256
2340 (base32
2341 "1cpjqnrviwflz150g78iir5ndrp3hh7a93zbp4dwbg6sb2q141p2"))))
2342 (build-system go-build-system)
2343 (native-inputs
2344 `(("pkg-config" ,pkg-config)
2345 ("taglib" ,taglib)))
2346 (arguments
2347 `(#:import-path "github.com/wtolson/go-taglib"))
2348 (home-page "https://github.com/wtolson/go-taglib")
2349 (synopsis "Go wrapper for taglib")
2350 (description "Go wrapper for taglib")
2351 (license license:unlicense))))
5787e152
PN
2352
2353(define* (go-github-com-gogo-protobuf-union
2354 #:optional (packages (list go-github-com-gogo-protobuf
2355 go-github-com-gogo-protobuf-protoc-gen-gogo)))
2356 (package
2357 (name "go-github-com-gogo-protobuf-union")
2358 (version (package-version go-github-com-gogo-protobuf))
2359 (source #f)
2360 (build-system trivial-build-system)
2361 (arguments
2362 '(#:modules ((guix build union))
2363 #:builder (begin
2364 (use-modules (ice-9 match)
2365 (guix build union))
2366 (match %build-inputs
2367 (((names . directories) ...)
2368 (union-build (assoc-ref %outputs "out")
2369 directories)
2370 #t)))))
2371 (inputs (map (lambda (package)
2372 (list (package-name package) package))
2373 packages))
2374 (synopsis "Union of Go protobuf libraries")
2375 (description "This is a union of Go protobuf libraries")
2376 (home-page (package-home-page go-github-com-gogo-protobuf))
2377 (license (package-license go-github-com-gogo-protobuf))))
2378
2379(define-public go-github-com-gogo-protobuf
2380 (let ((commit "160de10b2537169b5ae3e7e221d28269ef40d311")
2381 (revision "2"))
2382 (package
2383 (name "go-github-com-gogo-protobuf")
2384 (version (git-version "0.5" revision commit))
2385 (source (origin
2386 (method git-fetch)
2387 (uri (git-reference
2388 (url "https://github.com/gogo/protobuf")
2389 (commit commit)))
2390 (file-name (git-file-name name version))
2391 (sha256
2392 (base32
2393 "0hxq28sgxym04rv0q40gpwkh4ni359q21hq3g78wwxwx4qfd4zwm"))))
2394 (build-system go-build-system)
2395 (arguments
2396 `(#:import-path "github.com/gogo/protobuf/proto"
2397 #:unpack-path "github.com/gogo/protobuf"))
2398 (propagated-inputs
2399 `(("go-github-com-gogo-protobuf-protoc-gen-gogo"
2400 ,go-github-com-gogo-protobuf-protoc-gen-gogo)))
2401 (synopsis "Protocol Buffers for Go with Gadgets")
2402 (description "Gogoprotobuf is a fork of golang/protobuf with extra code
2403generation features. This code generation is used to achieve:
2404@itemize
2405@item fast marshalling and unmarshalling
2406@item more canonical Go structures
2407@item goprotobuf compatibility
2408@item less typing by optionally generating extra helper code
2409@item peace of mind by optionally generating test and benchmark code
2410@item other serialization formats
2411@end itemize")
2412 (home-page "https://github.com/gogo/protobuf")
2413 (license license:bsd-3))))
2414
2415(define-public go-github-com-gogo-protobuf-protoc-gen-gogo
2416 (let ((commit "efccd33a0c20aa078705571d5ddbfa14c8395a63")
2417 (revision "0"))
2418 (package
2419 (name "go-github-com-gogo-protobuf-protoc-gen-gogo")
2420 (version (git-version "0.2" revision commit))
2421 (source (origin
2422 (method git-fetch)
2423 (uri (git-reference
2424 (url "https://github.com/gogo/protobuf")
2425 (commit commit)))
2426 (file-name (git-file-name name version))
2427 (sha256
2428 (base32
2429 "09kfa3aqmhh7p0rc6wd4fw5cjccidsk9vgcy13albv0g8vnbmmgw"))))
2430 (build-system go-build-system)
2431 (arguments
2432 `(#:import-path "github.com/gogo/protobuf/protoc-gen-gogo"
2433 #:unpack-path "github.com/gogo/protobuf"))
2434 (synopsis "Protocol Buffers for Go with Gadgets")
2435 (description "Gogoprotobuf is a fork of golang/protobuf with extra code
2436generation features. This code generation is used to achieve:
2437@itemize
2438@item fast marshalling and unmarshalling
2439@item more canonical Go structures
2440@item goprotobuf compatibility
2441@item less typing by optionally generating extra helper code
2442@item peace of mind by optionally generating test and benchmark code
2443@item other serialization formats
2444@end itemize")
2445 (home-page "https://github.com/gogo/protobuf")
2446 (license license:bsd-3))))
2447
2448(define-public go-github-com-gogo-protobuf-proto
2449 (let ((commit
2450 "fd322a3c49630fe6d05737e2b7d9426e6680e28d")
2451 (revision "0"))
2452 (package
2453 (name "go-github-com-gogo-protobuf-proto")
2454 (version (git-version "0.0.0" revision commit))
2455 (source
2456 (origin
2457 (method git-fetch)
2458 (uri (git-reference
2459 (url "https://github.com/gogo/protobuf.git")
2460 (commit commit)))
2461 (file-name (git-file-name name version))
2462 (sha256
2463 (base32
2464 "1zi85584dy91hyrwpanygz1pppi0chn3hzzv128i83i6j45a5fp9"))))
2465 (build-system go-build-system)
2466 (arguments
2467 '(#:unpack-path "github.com/gogo/protobuf"
2468 #:import-path "github.com/gogo/protobuf/proto"))
2469 (native-inputs `())
2470 (home-page "https://github.com/gogo/protobuf")
2471 (synopsis "XXX")
2472 (description "XXX")
2473 (license license:expat))))