build-system/go: Parameterize installing the source code.
[jackhill/guix/guix.git] / gnu / packages / syncthing.scm
CommitLineData
56a37713
LF
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2016 Petter <petter@mykolab.ch>
3;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
4;;;
5;;; This file is part of GNU Guix.
6;;;
7;;; GNU Guix is free software; you can redistribute it and/or modify it
8;;; under the terms of the GNU General Public License as published by
9;;; the Free Software Foundation; either version 3 of the License, or (at
10;;; your option) any later version.
11;;;
12;;; GNU Guix is distributed in the hope that it will be useful, but
13;;; WITHOUT ANY WARRANTY; without even the implied warranty of
14;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15;;; GNU General Public License for more details.
16;;;
17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19
20(define-module (gnu packages syncthing)
21 #:use-module (guix build-system go)
cca22eb3 22 #:use-module (guix build-system trivial)
56a37713 23 #:use-module (guix packages)
947453a8 24 #:use-module (guix download)
56a37713
LF
25 #:use-module (guix git-download)
26 #:use-module (guix licenses))
27
947453a8
LF
28(define-public syncthing
29 (package
30 (name "syncthing")
31 (version "0.14.39")
32 (source (origin
33 (method url-fetch)
34 (uri (string-append "https://github.com/syncthing/syncthing"
35 "/releases/download/v" version
36 "/syncthing-source-v" version ".tar.gz"))
37 (sha256
38 (base32
39 "07mrvd3vq0p4f550dpq73xg1vpa2h7xxz7vq07sjw0whapknkw9f"))))
40 (build-system go-build-system)
41 (arguments
42 `(#:import-path "github.com/syncthing/syncthing"
43 #:unpack-path "github.com/syncthing"
44 #:phases
45 (modify-phases %standard-phases
46 (add-after 'unpack 'delete-bundled-source-code
47 (lambda _
48 ;; Keep the bundled cznic libraries. There are some "internal"
49 ;; cznic libraries that complicate the use of non-bundled copies.
50 (rename-file "src/github.com/syncthing/syncthing/vendor/github.com/cznic"
51 "cznic")
52 (delete-file-recursively "src/github.com/syncthing/syncthing/vendor")
53 (mkdir-p "src/github.com/syncthing/syncthing/vendor/github.com/")
54 (rename-file "cznic"
55 "src/github.com/syncthing/syncthing/vendor/github.com/cznic")
56 #t))
57
58 ;; We don't need to install the source code for end-user applications.
59 (delete 'install-source)
60
61 (add-before 'build 'increase-test-timeout
62 (lambda _
63 (substitute* "src/github.com/syncthing/syncthing/build.go"
64 (("60s") "999s"))
65 #t))
66
67 (replace 'build
68 (lambda* (#:key inputs #:allow-other-keys)
69 (with-directory-excursion "src/github.com/syncthing/syncthing"
70 (zero? (system* "go" "run" "build.go" "-no-upgrade")))))
71
72 (replace 'check
73 (lambda _
74 (with-directory-excursion "src/github.com/syncthing/syncthing"
75 (zero? (system* "go" "run" "build.go" "test")))))
76
77 (replace 'install
78 (lambda _
79 (copy-recursively "src/github.com/syncthing/syncthing/bin/"
80 (string-append (assoc-ref %outputs "out") "/bin"))
81 #t))
82
83 (add-after 'install 'install-docs
84 (lambda* (#:key outputs #:allow-other-keys)
85 (let* ((out (assoc-ref outputs "out"))
86 (man (string-append out "/share/man/man"))
87 (src "src/github.com/syncthing/syncthing/man/"))
88 (for-each
89 (lambda (file)
90 (install-file file
91 (string-append man (string-take-right file 1))))
92 (find-files src "\\.[1-9]"))
93 #t))))))
94 ;; When updating Syncthing, check 'vendor/manifest' in the source
95 ;; distribution to ensure we are using the correct versions of these
96 ;; dependencies.
97 (inputs
98 `(("go-github-com-audriusbutkevicius-cli"
99 ,go-github-com-audriusbutkevicius-cli)
100 ("go-github-com-audriusbutkevicius-kcp-go"
101 ,go-github-com-audriusbutkevicius-kcp-go)
102 ("go-github-com-audriusbutkevicius-go-nat-pmp"
103 ,go-github-com-audriusbutkevicius-go-nat-pmp)
104 ("go-github-com-audriusbutkevicius-pfilter"
105 ,go-github-com-audriusbutkevicius-pfilter)
106 ("go-github-com-bkaradzic-go-lz4" ,go-github-com-bkaradzic-go-lz4)
107 ("go-github-com-calmh-du" ,go-github-com-calmh-du)
108 ("go-github-com-calmh-xdr" ,go-github-com-calmh-xdr)
109 ("go-github-com-ccding-go-stun"
110 ,go-github-com-ccding-go-stun)
111 ("go-github-com-chmduquesne-rollinghash-adler32"
112 ,go-github-com-chmduquesne-rollinghash-adler32)
113; ("go-github-com-cznic-ql" ,go-github-com-cznic-ql) ; bundled
114 ; Used by bundled ql
115 ("go-github-com-edsrzf-mmap-go" ,go-github-com-edsrzf-mmap-go)
116 ("go-github-com-gobwas-glob" ,go-github-com-gobwas-glob)
117 ("go-github-com-gogo-protobuf-union"
118 ,(go-github-com-gogo-protobuf-union))
119 ("go-github-com-golang-groupcache-lru"
120 ,go-github-com-golang-groupcache-lru)
121 ("go-github-com-jackpal-gateway" ,go-github-com-jackpal-gateway)
122 ("go-github-com-kardianos-osext" ,go-github-com-kardianos-osext)
123 ("go-github-com-kballard-go-shellquote"
124 ,go-github-com-kballard-go-shellquote)
125 ("go-github-com-lib-pq" ,go-github-com-lib-pq)
126 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
127 ("go-github-com-oschwald-geoip2-golang"
128 ,go-github-com-oschwald-geoip2-golang)
129 ("go-github-com-rcrowley-go-metrics" ,go-github-com-rcrowley-go-metrics)
130 ("go-github-com-sasha-s-go-deadlock" ,go-github-com-sasha-s-go-deadlock)
131 ("go-github-com-syndtr-goleveldb" ,go-github-com-syndtr-goleveldb)
132 ("go-github-com-thejerf-suture" ,go-github-com-thejerf-suture)
133 ("go-github-com-vitrun-qart" ,(go-github-com-vitrun-qart-union))
134 ("go-github-com-xtaci-smux" ,go-github-com-xtaci-smux)
135 ("go-golang-org-x-crypto" ,(go-golang-org-x-crypto-union))
136 ("go-golang-org-x-net-union" ,(go-golang-org-x-net-union))
137 ("go-golang-org-x-text" ,(go-golang-org-x-text-union))
138 ("go-golang-org-x-time-rate" ,go-golang-org-x-time-rate)
139 ("go-github-com-d4l3k-messagediff"
140 ,go-github-com-d4l3k-messagediff)))
141 (synopsis "Decentralized continuous filesystem synchronization")
142 (description "Syncthing is a peer-to-peer file synchronization tool that
143supports a wide variety of computing platforms. It uses the Block Exchange
144Protocol.")
145 (home-page "https://github.com/syncthing/syncthing")
146 (license mpl2.0)))
147
56a37713
LF
148(define-public go-github-com-audriusbutkevicius-go-nat-pmp
149 (let ((commit "452c97607362b2ab5a7839b8d1704f0396b640ca")
150 (revision "0"))
151 (package
152 (name "go-github-com-audriusbutkevicius-go-nat-pmp")
153 (version (git-version "0.0.0" revision commit))
154 (source (origin
155 (method git-fetch)
156 (uri (git-reference
157 (url "https://github.com/AudriusButkevicius/go-nat-pmp")
158 (commit commit)))
159 (file-name (git-file-name name version))
160 (sha256
161 (base32 "1accmpl1llk16a19nlyy991fqrgfay6l53gb64hgmdfmqljdvbk7"))))
162 (build-system go-build-system)
163 (arguments
164 `(#:import-path "github.com/AudriusButkevicius/go-nat-pmp"))
165 (synopsis "Port mapping and discovery of external IP address")
166 (description "This packages provides a Go client for the NAT-PMP internet
167protocol for port mapping and discovering the external IP address of a
168firewall.")
169 (home-page "https://github.com/AudriusButkevicius/go-nat-pmp")
170 (license asl2.0))))
67b46818
LF
171
172(define-public go-github-com-bkaradzic-go-lz4
173 (let ((commit "7224d8d8f27ef618c0a95f1ae69dbb0488abc33a")
174 (revision "0"))
175 (package
176 (name "go-github-com-bkaradzic-go-lz4")
177 (version (git-version "0.0.0" revision commit))
178 (source (origin
179 (method git-fetch)
180 (uri (git-reference
181 (url "https://github.com/bkaradzic/go-lz4")
182 (commit commit)))
183 (file-name (git-file-name name version))
184 (sha256
185 (base32
186 "10lmya17vdqg2pvqni0p73iahni48s1v11ya9a0hcz4jh5vw4dkb"))))
187 (build-system go-build-system)
188 (arguments
189 `(#:import-path "github.com/bkaradzic/go-lz4"))
190 (synopsis "LZ4 compression algorithm")
191 (description "This package provides @code{go-lz4}, a Go implementation of
192the LZ4 compression algorithm.")
193 (home-page "https://github.com/bkaradzic/go-lz4")
194 (license bsd-2))))
add56f34
LF
195
196(define-public go-github-com-calmh-du
197 (package
198 (name "go-github-com-calmh-du")
199 (version "1.0.1")
200 (source (origin
201 (method git-fetch)
202 (uri (git-reference
203 (url "https://github.com/calmh/du")
204 (commit (string-append "v" version))))
205 (file-name (git-file-name name version))
206 (sha256
207 (base32
208 "0qb3a6y3p9nkyn3s66k6zcm16y8n8578qh23ddj14cxf2scrr2n2"))))
209 (build-system go-build-system)
210 (arguments
211 `(#:import-path "github.com/calmh/du"))
212 (synopsis "Get total and available disk space of a given volume")
213 (description "This is a Go implementation of `du`. It provides disk usage
214information, such as how much storage space is available, free, and used.")
215 (home-page "https://github.com/calmh/du")
216 (license public-domain)))
1e28085e
LF
217
218(define-public go-github-com-calmh-xdr
219 (let ((commit "08e072f9cb164f943a92eb59f90f3abc64ac6e8f")
220 (revision "0"))
221 (package
222 (name "go-github-com-calmh-xdr")
223 (version (git-version "2.0.1" revision commit))
224 (source (origin
225 (method git-fetch)
226 (uri (git-reference
227 (url "https://github.com/calmh/xdr")
228 (commit commit)))
229 (file-name (git-file-name name version))
230 (sha256
231 (base32
232 "072wqdncz3nd4a3zkhvzzx1y3in1lm29wfvl0d8wrnqs5pyqh0mh"))))
233 (build-system go-build-system)
234 (arguments
235 `(#:import-path "github.com/calmh/xdr"))
236 (synopsis "XDR marshalling and unmarshalling")
237 (description "XDR is an External Data Representation (XDR)
238marshalling and unmarshalling library in Go. It uses code generation and not
239reflection.")
240 (home-page "https://github.com/calmh/xdr")
241 (license expat))))
ab3e1589
LF
242
243(define-public go-github-com-d4l3k-messagediff
244 (let ((commit "29f32d820d112dbd66e58492a6ffb7cc3106312b")
245 (revision "0"))
246 (package
247 (name "go-github-com-d4l3k-messagediff")
248 (version (git-version "1.1.0" revision commit))
249 (source (origin
250 (method git-fetch)
251 (uri (git-reference
252 (url "https://github.com/d4l3k/messagediff")
253 (commit commit)))
254 (file-name (git-file-name name version))
255 (sha256
256 (base32
257 "104hl8x57ciaz7mzafg1vp9qggxcyfm8hsv9bmlihbz9ml3nyr8v"))))
258 (build-system go-build-system)
259 (arguments
260 `(#:import-path "github.com/d4l3k/messagediff"))
261 (synopsis "Diff arbitrary Go structs")
262 (description "Messagediff is a library for calculating diffs of arbitrary
263structs in the Go programming language.")
264 (home-page "https://github.com/d4l3k/messagediff")
265 (license expat))))
a3a5b012
LF
266
267(define-public go-github-com-edsrzf-mmap-go
268 (let ((commit "0bce6a6887123b67a60366d2c9fe2dfb74289d2e")
269 (revision "0"))
270 (package
271 (name "go-github-com-edsrzf-mmap-go")
272 (version (git-version "0.0.0" revision commit))
273 (source (origin
274 (method git-fetch)
275 (uri (git-reference
276 (url "https://github.com/edsrzf/mmap-go")
277 (commit commit)))
278 (file-name (git-file-name name version))
279 (sha256
280 (base32
281 "1am4m2k451bksnbiqj6lxknk4lsgmrhv0q3ajqac818vj0cpfgs9"))))
282 (build-system go-build-system)
283 (arguments
284 `(#:import-path "github.com/edsrzf/mmap-go"))
285 (synopsis "Go implementation of mmap")
286 (description "This packages provides a Go implementation of mmap.")
287 (home-page "https://github.com/edsrzf/mmap-go")
288 (license bsd-3))))
4d93ebb3
LF
289
290(define-public go-github-com-gobwas-glob
291 (let ((commit "51eb1ee00b6d931c66d229ceeb7c31b985563420")
292 (revision "0"))
293 (package
294 (name "go-github-com-gobwas-glob")
295 (version (git-version "0.0.0" revision commit))
296 (source (origin
297 (method git-fetch)
298 (uri (git-reference
299 (url "https://github.com/gobwas/glob")
300 (commit commit)))
301 (file-name (git-file-name name version))
302 (sha256
303 (base32
304 "090wzpwsjana1qas8ipwh1pj959gvc4b7vwybzi01f3bmd79jwlp"))))
305 (build-system go-build-system)
306 (arguments
307 `(#:import-path "github.com/gobwas/glob"))
308 (synopsis "Go globbing library")
309 (description "This packages provides a Go implementation of globs.")
310 (home-page "https://github.com/gobwas/glob")
311 (license expat))))
07e88fc6 312
503802ab
LF
313(define* (go-github-com-gogo-protobuf-union
314 #:optional (packages (list go-github-com-gogo-protobuf
315 go-github-com-gogo-protobuf-protoc-gen-gogo)))
316 (package
317 (name "go-github-com-gogo-protobuf-union")
318 (version (package-version go-github-com-gogo-protobuf))
319 (source #f)
320 (build-system trivial-build-system)
321 (arguments
322 '(#:modules ((guix build union))
323 #:builder (begin
324 (use-modules (ice-9 match)
325 (guix build union))
326 (match %build-inputs
327 (((names . directories) ...)
328 (union-build (assoc-ref %outputs "out")
329 directories))))))
330 (inputs (map (lambda (package)
331 (list (package-name package) package))
332 packages))
333 (synopsis "Union of Go protobuf libraries")
334 (description "This is a union of Go protobuf libraries")
335 (home-page (package-home-page go-github-com-gogo-protobuf))
336 (license (package-license go-github-com-gogo-protobuf))))
337
3a4d3838
LF
338(define-public go-github-com-gogo-protobuf
339 (let ((commit "efccd33a0c20aa078705571d5ddbfa14c8395a63")
340 (revision "0"))
341 (package
342 (name "go-github-com-gogo-protobuf")
343 (version (git-version "0.2" revision commit))
344 (source (origin
345 (method git-fetch)
346 (uri (git-reference
347 (url "https://github.com/gogo/protobuf")
348 (commit commit)))
349 (file-name (git-file-name name version))
350 (sha256
351 (base32
352 "09kfa3aqmhh7p0rc6wd4fw5cjccidsk9vgcy13albv0g8vnbmmgw"))))
353 (build-system go-build-system)
354 (arguments
355 `(#:import-path "github.com/gogo/protobuf/proto"
356 #:unpack-path "github.com/gogo/protobuf"))
357 (propagated-inputs
358 `(("go-github-com-gogo-protobuf-protoc-gen-gogo"
359 ,go-github-com-gogo-protobuf-protoc-gen-gogo)))
360 (synopsis "Protocol Buffers for Go with Gadgets")
361 (description "Gogoprotobuf is a fork of golang/protobuf with extra code
362generation features. This code generation is used to achieve:
363@itemize
364@item fast marshalling and unmarshalling
365@item more canonical Go structures
366@item goprotobuf compatibility
367@item less typing by optionally generating extra helper code
368@item peace of mind by optionally generating test and benchmark code
369@item other serialization formats
370@end itemize")
371 (home-page "https://github.com/gogo/protobuf")
372 (license bsd-3))))
373
07e88fc6
LF
374(define-public go-github-com-gogo-protobuf-protoc-gen-gogo
375 (let ((commit "efccd33a0c20aa078705571d5ddbfa14c8395a63")
376 (revision "0"))
377 (package
378 (name "go-github-com-gogo-protobuf-protoc-gen-gogo")
379 (version (git-version "0.2" revision commit))
380 (source (origin
381 (method git-fetch)
382 (uri (git-reference
383 (url "https://github.com/gogo/protobuf")
384 (commit commit)))
385 (file-name (git-file-name name version))
386 (sha256
387 (base32
388 "09kfa3aqmhh7p0rc6wd4fw5cjccidsk9vgcy13albv0g8vnbmmgw"))))
389 (build-system go-build-system)
390 (arguments
391 `(#:import-path "github.com/gogo/protobuf/protoc-gen-gogo"
392 #:unpack-path "github.com/gogo/protobuf"))
393 (synopsis "Protocol Buffers for Go with Gadgets")
394 (description "Gogoprotobuf is a fork of golang/protobuf with extra code
395generation features. This code generation is used to achieve:
396@itemize
397@item fast marshalling and unmarshalling
398@item more canonical Go structures
399@item goprotobuf compatibility
400@item less typing by optionally generating extra helper code
401@item peace of mind by optionally generating test and benchmark code
402@item other serialization formats
403@end itemize")
404 (home-page "https://github.com/gogo/protobuf")
405 (license bsd-3))))
ede4f50c
LF
406
407(define-public go-github-com-golang-groupcache-lru
408 (let ((commit "72d04f9fcdec7d3821820cc4a6f150eae553639a")
409 (revision "0"))
410 (package
411 (name "go-github-com-golang-groupcache-lru")
412 (version (git-version "0.0.0" revision commit))
413 (source (origin
414 (method git-fetch)
415 (uri (git-reference
416 (url "https://github.com/golang/groupcache")
417 (commit commit)))
418 (file-name (git-file-name name version))
419 (sha256
420 (base32
421 "1l3ryh7bq1f2mhr3sd3x1wav99pd27r8l3ydgqh375wn4x7v5qd6"))))
422 (build-system go-build-system)
423 (arguments
424 `(#:import-path "github.com/golang/groupcache/lru"
425 #:unpack-path "github.com/golang/groupcache"))
426 (synopsis "Groupcache is a caching and cache-filling library")
427 (description "Groupcache is a caching and cache-filling library, intended
428as a replacement for memcached in many cases. It provides a data loading
429mechanism with caching and de-duplication that works across a set of peer
430processes.")
431 (home-page "https://github.com/golang/groupcache")
432 (license asl2.0))))
b32eab0b
LF
433
434(define-public go-github-com-golang-snappy
435 (let ((commit "553a641470496b2327abcac10b36396bd98e45c9")
436 (revision "0"))
437 (package
438 (name "go-github-com-golang-snappy")
439 (version (git-version "0.0.0" revision commit))
440 (source (origin
441 (method git-fetch)
442 (uri (git-reference
443 (url "https://github.com/golang/snappy")
444 (commit commit)))
445 (file-name (git-file-name name version))
446 (sha256
447 (base32
448 "0kssxnih1l722hx9219c7javganjqkqhvl3i0hp0hif6xm6chvqk"))))
449 (build-system go-build-system)
450 (arguments
451 `(#:import-path "github.com/golang/snappy"))
452 (synopsis "Snappy compression format in the Go programming language")
453 (description "This package provides a Go implementation of the Snappy
454compression format.")
455 (home-page "https://github.com/golang/snappy")
456 (license bsd-3))))
7b92093d
LF
457
458(define-public go-github-com-jackpal-gateway
459 (let ((commit "5795ac81146e01d3fab7bcf21c043c3d6a32b006")
460 (revision "0"))
461 (package
462 (name "go-github-com-jackpal-gateway")
463 (version (git-version "0.0.0" revision commit))
464 (source (origin
465 (method git-fetch)
466 (uri (git-reference
467 (url "https://github.com/jackpal/gateway")
468 (commit commit)))
469 (file-name (git-file-name name version))
470 (sha256
471 (base32
472 "0fkwkwmhfadwk3cha8616bhqxfkr9gjjnynhhxyldlphixgs3f25"))))
473 (build-system go-build-system)
474 (arguments
475 `(#:import-path "github.com/jackpal/gateway"))
476 (synopsis "Discover the address of a LAN gateway")
477 (description "@code{gateway} is a Go library for discovering the IP
478address of the default LAN gateway.")
479 (home-page "https://github.com/jackpal/gateway")
480 (license bsd-3))))
7577a1d5
LF
481
482(define-public go-github-com-kardianos-osext
483 (let ((commit "9d302b58e975387d0b4d9be876622c86cefe64be")
484 (revision "0"))
485 (package
486 (name "go-github-com-kardianos-osext")
487 (version (git-version "0.0.0" revision commit))
488 (source (origin
489 (method git-fetch)
490 (uri (git-reference
491 (url "https://github.com/kardianos/osext")
492 (commit commit)))
493 (file-name (git-file-name name version))
494 (sha256
495 (base32
496 "0r6f727s16g4f66k8c2z1xh8ga1p53hg9g2v95pmhd1i60fhy47a"))))
497 (build-system go-build-system)
498 (arguments
499 `(#:import-path "github.com/kardianos/osext"))
500 (synopsis "Find the running executable")
501 (description "Osext provides a method for finding the current executable
502file that is running. This can be used for upgrading the current executable or
503finding resources located relative to the executable file.")
504 (home-page "https://github.com/kardianos/osext")
505 (license bsd-3))))
340e1a9a
LF
506
507(define-public go-github-com-lib-pq
508 (let ((commit "2704adc878c21e1329f46f6e56a1c387d788ff94")
509 (revision "0"))
510 (package
511 (name "go-github-com-lib-pq")
512 (version (git-version "0.0.0" revision commit))
513 (source (origin
514 (method git-fetch)
515 (uri (git-reference
516 (url "https://github.com/lib/pq")
517 (commit commit)))
518 (file-name (git-file-name name version))
519 (sha256
520 (base32
521 "160fmvi7bczxw3i3h5s821hv029ph5ld8x3c36b4cz2sr30wp110"))))
522 (build-system go-build-system)
523 (arguments
524 `(#:import-path "github.com/lib/pq"
525 ;; The tests seem to fail without access to the network or a running
526 ;; Postgres instance.
527 #:tests? #f))
528 (synopsis "Golang Postgres driver for Go's database/sql")
529 (description "This packages provides a pure Go Postgres driver for Go's
530database/sql package.")
531 (home-page "https://github.com/lib/pq")
532 (license expat))))
4a9c4dbe
LF
533
534(define-public go-github-com-minio-sha256-simd
535 (let ((commit "6124d070eb4e7001c244b6ccc282620a5dce44a0")
536 (revision "0"))
537 (package
538 (name "go-github-com-minio-sha256-simd")
539 (version (git-version "0.0.0" revision commit))
540 (source (origin
541 (method git-fetch)
542 (uri (git-reference
543 (url "https://github.com/minio/sha256-simd")
544 (commit commit)))
545 (file-name (git-file-name name version))
546 (sha256
547 (base32
548 "1azrdp7x7vl9ngkxs890blspz0345xhadvssdlb0435hdqa0gkll"))))
549 (build-system go-build-system)
550 (arguments
551 `(#:import-path "github.com/minio/sha256-simd"))
552 (synopsis "Hardware-accelerated SHA256 in Go using SIMD")
553 (description "This packages provides a pure Go implementation of SHA256
554using SIMD (Single instruction, multiple data) instructions for Intel and ARM
555architectures.")
556 (home-page "https://github.com/minio/sha256-simd")
557 (license asl2.0))))
bde48edc 558
0921b230
LF
559(define-public go-github-com-oschwald-geoip2-golang
560 (let ((commit "0fd242da7906550802871efe101abfdb1cc550a8")
561 (revision "0"))
562 (package
563 (name "go-github-com-oschwald-geoip2-golang")
564 (version (git-version "0.1.0" revision commit))
565 (source (origin
566 (method git-fetch)
567 (uri (git-reference
568 (url "https://github.com/oschwald/geoip2-golang")
569 (commit commit)))
570 (file-name (git-file-name name version))
571 (sha256
572 (base32
573 "0kglnix0r5sjkk346ip30l7dwq1gv2g4wjy2cjmgjvb8x778hnww"))))
574 (build-system go-build-system)
575 (propagated-inputs
576 `(("go-github-com-oschwald-maxminddb-golang"
577 ,go-github-com-oschwald-maxminddb-golang)
578 ("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
579 (arguments
580 `(#:import-path "github.com/oschwald/geoip2-golang"
581 #:tests? #f)) ; Requires some unpackaged software and test data
582 (synopsis "MaxMind GeoIP2 reader")
583 (description "This packages provides a library for reading MaxMind
584GeoLite2 and GeoIP2 databases in Go.")
585 (home-page "https://github.com/oschwald/geoip2-golang")
586 (license isc))))
587
a57778f5
LF
588(define-public go-github-com-oschwald-maxminddb-golang
589 (let ((commit "697da8075d2061aa8ed639346443f5d3e8c80b30")
590 (revision "0"))
591 (package
592 (name "go-github-com-oschwald-maxminddb-golang")
593 (version (git-version "0.2.0" revision commit))
594 (source (origin
595 (method git-fetch)
596 (uri (git-reference
597 (url "https://github.com/oschwald/maxminddb-golang")
598 (commit commit)))
599 (file-name (git-file-name name version))
600 (sha256
601 (base32
602 "00kkxzlvra0kcbkl56wp0dp1yw3cmfjqqlwbqy7bq5r34s7iavq0"))))
603 (build-system go-build-system)
604 (propagated-inputs
605 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
606 (arguments
607 `(#:import-path "github.com/oschwald/maxminddb-golang"
608 #:tests? #f)) ; Requires some unpackaged software and test data
609 (synopsis "MaxMind DB Reader for Go")
610 (description "This is a Go reader for the MaxMind DB format. Although
611this can be used to read GeoLite2 and GeoIP2 databases, @code{geoip2} provides a
612higher-level API for doing so.")
613 (home-page "https://github.com/oschwald/maxminddb-golang")
614 (license isc))))
615
6bc1eb11
LF
616(define-public go-github-com-stathat-go
617 (let ((commit "74669b9f388d9d788c97399a0824adbfee78400e")
618 (revision "0"))
619 (package
620 (name "go-github-com-stathat-go")
621 (version (git-version "0.0.0" revision commit))
622 (source (origin
623 (method git-fetch)
624 (uri (git-reference
625 (url "https://github.com/stathat/go")
626 (commit commit)))
627 (file-name (git-file-name name version))
628 (sha256
629 (base32
630 "1zzlsl24dyr202qkr2pay22m6d0gb7ssms77wgdx0r0clgm7dihw"))))
631 (build-system go-build-system)
632 (arguments
633 `(#:import-path "github.com/stathat/go"))
634 (synopsis "Post statistics to StatHat")
635 (description "This is a Go package for posting to a StatHat account.")
636 (home-page "https://github.com/stathat/go")
637 (license expat))))
638
1a4795f9
LF
639(define-public go-github-com-rcrowley-go-metrics
640 (let ((commit "1f30fe9094a513ce4c700b9a54458bbb0c96996c")
641 (revision "0"))
642 (package
643 (name "go-github-com-rcrowley-go-metrics")
644 (version (git-version "0.0.0" revision commit))
645 (source (origin
646 (method git-fetch)
647 (uri (git-reference
648 (url "https://github.com/rcrowley/go-metrics")
649 (commit commit)))
650 (file-name (git-file-name name version))
651 (sha256
652 (base32
653 "1hvbiaq4b6dqgjz6jkkxglfh9gf71zin6qsg508sh0r0ixfavrzj"))))
654 (build-system go-build-system)
655 (arguments
656 `(#:import-path "github.com/rcrowley/go-metrics"))
657 (propagated-inputs
658 `(("go-github-com-stathat-go" ,go-github-com-stathat-go)))
659 (synopsis "Go port of Coda Hale's Metrics library")
660 (description "This package provides a Go implementation of Coda Hale's
661Metrics library.")
662 (home-page "https://github.com/rcrowley/go-metrics")
663 (license bsd-2))))
664
8d7e9924
LF
665(define-public go-github-com-sasha-s-go-deadlock
666 (let ((commit "341000892f3dd25f440e6231e8533eb3688ed7ec")
667 (revision "0"))
668 (package
669 (name "go-github-com-sasha-s-go-deadlock")
670 (version (git-version "0.1.0" revision commit))
671 (source (origin
672 (method git-fetch)
673 (uri (git-reference
674 (url "https://github.com/sasha-s/go-deadlock")
675 (commit commit)))
676 (file-name (git-file-name name version))
677 (sha256
678 (base32
679 "1bcdyxwm5qpqynxahwaahbqi7ghgdajmg7b4276pdalkxkxkhsv8"))))
680 (build-system go-build-system)
681 (arguments
682 `(#:import-path "github.com/sasha-s/go-deadlock"))
683 (propagated-inputs
684 `(("go-github-com-petermattis-goid" ,go-github-com-petermattis-goid)))
685 (synopsis "Deadlock detection in go")
686 (description "This package provides tools for detecting deadlocks at
687run-time in Go.")
688 (home-page "https://github.com/sasha-s/go-deadlock")
689 (license asl2.0))))
690
c864a4a7
LF
691(define-public go-github-com-syndtr-goleveldb
692 (let ((commit "3c5717caf1475fd25964109a0fc640bd150fce43")
693 (revision "0"))
694 (package
695 (name "go-github-com-syndtr-goleveldb")
696 (version (git-version "0.0.0" revision commit))
697 (source (origin
698 (method git-fetch)
699 (uri (git-reference
700 (url "https://github.com/syndtr/goleveldb")
701 (commit commit)))
702 (file-name (git-file-name name version))
703 (sha256
704 (base32
705 "0wng25bw885ppiny9rz42kq0a7ddkym5zl0glb8rfk0m8dpvi1dd"))))
706 (build-system go-build-system)
707 (propagated-inputs
708 `(("go-github-com-golang-snappy" ,go-github-com-golang-snappy)))
709 (arguments
710 `(#:import-path "github.com/syndtr/goleveldb/leveldb"
711 #:unpack-path "github.com/syndtr/goleveldb"
712 #:tests? #f)) ; XXX needs 'github.com/onsi/gomega' package
713 (synopsis "LevelDB key/value database")
714 (description "This is an implementation of the LevelDB key / value
715database in Go.")
716 (home-page "https://github.com/syndtr/goleveldb")
717 (license bsd-2))))
718
f7612f0f
LF
719(define-public go-github-com-thejerf-suture
720 (let ((commit "0ac47afae95ad5bc5184ed346bc945168e883f5d")
721 (revision "0"))
722 (package
723 (name "go-github-com-thejerf-suture")
724 (version (git-version "0.0.0" revision commit))
725 (source (origin
726 (method git-fetch)
727 (uri (git-reference
728 (url "https://github.com/thejerf/suture")
729 (commit commit)))
730 (file-name (git-file-name name version))
731 (sha256
732 (base32
733 "0f860fkaibnnkmh4q6q9yn3r26sraaj8wx9irwm76cmsp48zcxfy"))))
734 (build-system go-build-system)
735 (arguments
736 `(#:import-path "github.com/thejerf/suture"))
737 (synopsis "Supervisor trees for Go")
738 (description "Suture provides Erlang-ish supervisor trees for Go.
739\"Supervisor trees\" -> \"sutree\" -> \"suture\" -> holds your code together
740when it's trying to die.
741
742It is intended to deal gracefully with the real failure cases that can occur
743with supervision trees (such as burning all your CPU time endlessly restarting
744dead services), while also making no unnecessary demands on the \"service\"
745code, and providing hooks to perform adequate logging with in a production
746environment")
747 (home-page "https://github.com/thejerf/suture")
748 (license expat))))
749
3c466da1
LF
750(define* (go-github-com-vitrun-qart-union
751 #:optional (packages (list go-github-com-vitrun-qart-coding
752 go-github-com-vitrun-qart-gf256
753 go-github-com-vitrun-qart-qr)))
754 (package
755 (name "go-github-com-vitrun-qart")
756 (version (package-version go-github-com-vitrun-qart-qr))
757 (source #f)
758 (build-system trivial-build-system)
759 (arguments
760 '(#:modules ((guix build union))
761 #:builder (begin
762 (use-modules (ice-9 match)
763 (guix build union))
764 (match %build-inputs
765 (((names . directories) ...)
766 (union-build (assoc-ref %outputs "out")
767 directories))))))
768 (inputs (map (lambda (package)
769 (list (package-name package) package))
770 packages))
771 (synopsis "Union of qart libraries")
772 (description "This is a union of qart libraries.")
773 (home-page (package-home-page go-github-com-vitrun-qart-qr))
774 (license (package-license go-github-com-vitrun-qart-qr))))
775
292a6b0d
LF
776(define-public go-github-com-vitrun-qart-coding
777 (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa")
778 (revision "0"))
779 (package
780 (name "go-github-com-vitrun-qart-coding")
781 (version (git-version "0.0.0" revision commit))
782 (source (origin
783 (method git-fetch)
784 (uri (git-reference
785 (url "https://github.com/vitrun/qart")
786 (commit commit)))
787 (file-name (string-append "go-github-com-vitrun-qart-"
788 version "-checkout"))
789 (sha256
790 (base32
791 "1xk7qki703xmay9ghi3kq2bjf1iw9dz8wik55739d6i7sn77vvkc"))))
792 (build-system go-build-system)
793 (arguments
794 `(#:import-path "github.com/vitrun/qart/coding"
795 #:unpack-path "github.com/vitrun/qart"))
796 (synopsis "Low-level QR coding library")
797 (description "This package provides a library for embedding
798human-meaningful graphics in QR codes. However, instead of scribbling on
799redundant pieces and relying on error correction to preserve the meaning,
800@code{qart} engineers the encoded values to create the picture in a code with no
801inherent errors. This @code{qart} component, @code{coding}, implements
802low-level QR coding details.")
803 (home-page "https://github.com/vitrun/qart/")
804 (license bsd-3))))
805
6934827a
LF
806(define-public go-github-com-vitrun-qart-gf256
807 (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa")
808 (revision "0"))
809 (package
810 (name "go-github-com-vitrun-qart-gf256")
811 (version (git-version "0.0.0" revision commit))
812 (source (origin
813 (method git-fetch)
814 (uri (git-reference
815 (url "https://github.com/vitrun/qart")
816 (commit commit)))
817 (file-name (string-append "go-github-com-vitrun-qart-"
818 version "-checkout"))
819 (sha256
820 (base32
821 "1xk7qki703xmay9ghi3kq2bjf1iw9dz8wik55739d6i7sn77vvkc"))))
822 (build-system go-build-system)
823 (arguments
824 `(#:import-path "github.com/vitrun/qart/gf256"
825 #:unpack-path "github.com/vitrun/qart"))
826 (synopsis "Qart library for Galois Field GF(256) math")
827 (description "This package, a component of @code{qart}, provides @code{gf256},
828implements arithmetic over the Galois Field GF(256).")
829 (home-page "https://github.com/vitrun/qart")
892ced6d
LF
830 (license bsd-3))))
831
832(define-public go-github-com-vitrun-qart-qr
833 (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa")
834 (revision "0"))
835 (package
836 (name "go-github-com-vitrun-qart-qr")
837 (version (git-version "0.0.0" revision commit))
838 (source (origin
839 (method git-fetch)
840 (uri (git-reference
841 (url "https://github.com/vitrun/qart")
842 (commit commit)))
843 (file-name (string-append "go-github-com-vitrun-qart-"
844 version "-checkout"))
845 (sha256
846 (base32
847 "1xk7qki703xmay9ghi3kq2bjf1iw9dz8wik55739d6i7sn77vvkc"))))
848 (build-system go-build-system)
849 (arguments
850 `(#:import-path "github.com/vitrun/qart/qr"
851 #:unpack-path "github.com/vitrun/qart"))
852 (synopsis "Qart component for generating QR codes")
853 (description "This package, a component of @code{qart}, provides
854@code{qr}, for QR code generation.")
855 (description "This package provides a library for embedding
856human-meaningful graphics in QR codes. However, instead of scribbling on
857redundant pieces and relying on error correction to preserve the meaning,
858@code{qart} engineers the encoded values to create the picture in a code with no
859inherent errors. This @code{qart} component, @code{qr}, provides QR code
860generation.")
861 (home-page "https://github.com/vitrun/qart")
6934827a
LF
862 (license bsd-3))))
863
cca22eb3
LF
864;; Go searches for library modules by looking in the GOPATH environment
865;; variable. This variable is a list of paths. However, Go does not
866;; keep searching on GOPATH if it tries and fails to import a module.
867;; So, we use a union for packages sharing a namespace.
868(define* (go-golang-org-x-crypto-union #:optional
869 (packages (list go-golang-org-x-crypto-blowfish
870 go-golang-org-x-crypto-bcrypt
871 go-golang-org-x-crypto-tea
872 go-golang-org-x-crypto-xtea
873 go-golang-org-x-crypto-pbkdf2
874 go-golang-org-x-crypto-twofish
875 go-golang-org-x-crypto-cast5
876 go-golang-org-x-crypto-salsa20)))
877 (package
878 (name "go-golang-org-x-crypto")
879 (version (package-version go-golang-org-x-crypto-bcrypt))
880 (source #f)
881 (build-system trivial-build-system)
882 (arguments
883 '(#:modules ((guix build union))
884 #:builder (begin
885 (use-modules (ice-9 match)
886 (guix build union))
887 (match %build-inputs
888 (((names . directories) ...)
889 (union-build (assoc-ref %outputs "out")
890 directories))))))
891 (inputs (map (lambda (package)
892 (list (package-name package) package))
893 packages))
894 (synopsis "Union of the Go x crypto libraries")
895 (description "A union of the Golang cryptographic libraries. A
896union is required because `go build` assumes that all of the headers and
897libraries are in the same directory.")
898 (home-page (package-home-page go-golang-org-x-crypto-bcrypt))
899 (license (package-license go-golang-org-x-crypto-bcrypt))))
900
8da09afc
LF
901(define-public go-golang-org-x-crypto-bcrypt
902 (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
903 (revision "0"))
904 (package
905 (name "go-golang-org-x-crypto-bcrypt")
906 (version (git-version "0.0.0" revision commit))
907 (source (origin
908 (method git-fetch)
909 (uri (git-reference
910 (url "https://go.googlesource.com/crypto")
911 (commit commit)))
912 (file-name (string-append "go.googlesource.com-crypto-"
913 version "-checkout"))
914 (sha256
915 (base32
916 "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))))
917 (build-system go-build-system)
918 (arguments
919 `(#:import-path "golang.org/x/crypto/bcrypt"
920 #:unpack-path "golang.org/x/crypto"
921 #:phases
922 (modify-phases %standard-phases
923 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
924 (lambda* (#:key outputs #:allow-other-keys)
925 (map (lambda (file)
926 (make-file-writable file))
927 (find-files
928 (string-append (assoc-ref outputs "out")
929 "/src/golang.org/x/crypto/ed25519/testdata")
930 ".*\\.gz$"))
931 #t)))))
932 (synopsis "Bcrypt in Go")
933 (description "This package provides a Go implementation of the bcrypt
934password hashing function.")
935 (home-page "https://go.googlesource.com/crypto/")
3cf3cdc9
LF
936 (license bsd-3))))
937
938(define-public go-golang-org-x-crypto-blowfish
939 (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
940 (revision "0"))
941 (package
942 (name "go-golang-org-x-crypto-blowfish")
943 (version (git-version "0.0.0" revision commit))
944 (source (origin
945 (method git-fetch)
946 (uri (git-reference
947 (url "https://go.googlesource.com/crypto")
948 (commit commit)))
949 (file-name (string-append "go.googlesource.com-crypto-"
950 version "-checkout"))
951 (sha256
952 (base32
953 "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))))
954 (build-system go-build-system)
955 (arguments
956 `(#:import-path "golang.org/x/crypto/blowfish"
957 #:unpack-path "golang.org/x/crypto"
958 #:phases
959 (modify-phases %standard-phases
960 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
961 (lambda* (#:key outputs #:allow-other-keys)
962 (map (lambda (file)
963 (make-file-writable file))
964 (find-files
965 (string-append (assoc-ref outputs "out")
966 "/src/golang.org/x/crypto/ed25519/testdata")
967 ".*\\.gz$"))
968 #t)))))
969 (synopsis "Blowfish in Go")
970 (description "This package provides a Go implementation of the Blowfish
971symmetric-key block cipher.")
972 (home-page "https://go.googlesource.com/crypto/")
b65620b6
LF
973 (license bsd-3))))
974
975(define-public go-golang-org-x-crypto-pbkdf2
976 (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
977 (revision "0"))
978 (package
979 (name "go-golang-org-x-crypto-pbkdf2")
980 (version (git-version "0.0.0" revision commit))
981 (source (origin
982 (method git-fetch)
983 (uri (git-reference
984 (url "https://go.googlesource.com/crypto")
985 (commit commit)))
986 (file-name (string-append "go.googlesource.com-crypto-"
987 version "-checkout"))
988 (sha256
989 (base32
990 "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))))
991 (build-system go-build-system)
992 (arguments
993 `(#:import-path "golang.org/x/crypto/pbkdf2"
994 #:unpack-path "golang.org/x/crypto"
995 #:phases
996 (modify-phases %standard-phases
997 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
998 (lambda* (#:key outputs #:allow-other-keys)
999 (map (lambda (file)
1000 (make-file-writable file))
1001 (find-files
1002 (string-append (assoc-ref outputs "out")
1003 "/src/golang.org/x/crypto/ed25519/testdata")
1004 ".*\\.gz$"))
1005 #t)))))
1006 (synopsis "PBKDF2 in Go")
1007 (description "This package provides a Go implementation of the PBKDF2 key
1008derivation function.")
1009 (home-page "https://go.googlesource.com/crypto/")
63950f9b
LF
1010 (license bsd-3))))
1011
1012(define-public go-golang-org-x-crypto-tea
1013 (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
1014 (revision "0"))
1015 (package
1016 (name "go-golang-org-x-crypto-tea")
1017 (version (git-version "0.0.0" revision commit))
1018 (source (origin
1019 (method git-fetch)
1020 (uri (git-reference
1021 (url "https://go.googlesource.com/crypto")
1022 (commit commit)))
1023 (file-name (string-append "go.googlesource.com-crypto-"
1024 version "-checkout"))
1025 (sha256
1026 (base32
1027 "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))))
1028 (build-system go-build-system)
1029 (arguments
1030 `(#:import-path "golang.org/x/crypto/tea"
1031 #:unpack-path "golang.org/x/crypto"
1032 #:phases
1033 (modify-phases %standard-phases
1034 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1035 (lambda* (#:key outputs #:allow-other-keys)
1036 (map (lambda (file)
1037 (make-file-writable file))
1038 (find-files
1039 (string-append (assoc-ref outputs "out")
1040 "/src/golang.org/x/crypto/ed25519/testdata")
1041 ".*\\.gz$"))
1042 #t)))))
1043 (synopsis "Tiny Encryption Algorithm (TEA) in Go")
1044 (description "This packages a Go implementation of the Tiny Encryption
1045Algorithm (TEA) block cipher.")
1046 (home-page "https://go.googlesource.com/crypto/")
7e7df095
LF
1047 (license bsd-3))))
1048
1049(define-public go-golang-org-x-crypto-salsa20
1050 (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
1051 (revision "0"))
1052 (package
1053 (name "go-golang-org-x-crypto-salsa20")
1054 (version (git-version "0.0.0" revision commit))
1055 (source (origin
1056 (method git-fetch)
1057 (uri (git-reference
1058 (url "https://go.googlesource.com/crypto")
1059 (commit commit)))
1060 (file-name (string-append "go.googlesource.com-crypto-"
1061 version "-checkout"))
1062 (sha256
1063 (base32
1064 "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))))
1065 (build-system go-build-system)
1066 (arguments
1067 `(#:import-path "golang.org/x/crypto/salsa20"
1068 #:unpack-path "golang.org/x/crypto"
1069 #:phases
1070 (modify-phases %standard-phases
1071 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1072 (lambda* (#:key outputs #:allow-other-keys)
1073 (map (lambda (file)
1074 (make-file-writable file))
1075 (find-files
1076 (string-append (assoc-ref outputs "out")
1077 "/src/golang.org/x/crypto/ed25519/testdata")
1078 ".*\\.gz$"))
1079 #t)))))
1080 (synopsis "Salsa20 in Go")
1081 (description "This packages provides a Go implementation of the Salsa20
1082stream cipher.")
1083 (home-page "https://go.googlesource.com/crypto/")
95b493f2
LF
1084 (license bsd-3))))
1085
1086(define-public go-golang-org-x-crypto-cast5
1087 (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
1088 (revision "0"))
1089 (package
1090 (name "go-golang-org-x-crypto-cast5")
1091 (version (git-version "0.0.0" revision commit))
1092 (source (origin
1093 (method git-fetch)
1094 (uri (git-reference
1095 (url "https://go.googlesource.com/crypto")
1096 (commit commit)))
1097 (file-name (string-append "go.googlesource.com-crypto-"
1098 version "-checkout"))
1099 (sha256
1100 (base32
1101 "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))))
1102 (build-system go-build-system)
1103 (arguments
1104 `(#:import-path "golang.org/x/crypto/cast5"
1105 #:unpack-path "golang.org/x/crypto"
1106 #:phases
1107 (modify-phases %standard-phases
1108 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1109 (lambda* (#:key outputs #:allow-other-keys)
1110 (map (lambda (file)
1111 (make-file-writable file))
1112 (find-files
1113 (string-append (assoc-ref outputs "out")
1114 "/src/golang.org/x/crypto/ed25519/testdata")
1115 ".*\\.gz$"))
1116 #t)))))
1117 (synopsis "Cast5 in Go")
1118 (description "This packages provides a Go implementation of the Cast5
932fb477
LF
1119symmetric-key block cipher.")
1120 (home-page "https://go.googlesource.com/crypto/")
1121 (license bsd-3))))
1122
1123(define-public go-golang-org-x-crypto-twofish
1124 (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
1125 (revision "0"))
1126 (package
1127 (name "go-golang-org-x-crypto-twofish")
1128 (version (git-version "0.0.0" revision commit))
1129 (source (origin
1130 (method git-fetch)
1131 (uri (git-reference
1132 (url "https://go.googlesource.com/crypto")
1133 (commit commit)))
1134 (file-name (string-append "go.googlesource.com-crypto-"
1135 version "-checkout"))
1136 (sha256
1137 (base32
1138 "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))))
1139 (build-system go-build-system)
1140 (arguments
1141 `(#:import-path "golang.org/x/crypto/twofish"
1142 #:unpack-path "golang.org/x/crypto"
1143 #:phases
1144 (modify-phases %standard-phases
1145 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1146 (lambda* (#:key outputs #:allow-other-keys)
1147 (map (lambda (file)
1148 (make-file-writable file))
1149 (find-files
1150 (string-append (assoc-ref outputs "out")
1151 "/src/golang.org/x/crypto/ed25519/testdata")
1152 ".*\\.gz$"))
1153 #t)))))
1154 (synopsis "Twofish in Go")
1155 (description "This packages provides a Go implementation of the Twofish
95b493f2
LF
1156symmetric-key block cipher.")
1157 (home-page "https://go.googlesource.com/crypto/")
edcc061c
LF
1158 (license bsd-3))))
1159
1160(define-public go-golang-org-x-crypto-xtea
1161 (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
1162 (revision "0"))
1163 (package
1164 (name "go-golang-org-x-crypto-xtea")
1165 (version (git-version "0.0.0" revision commit))
1166 (source (origin
1167 (method git-fetch)
1168 (uri (git-reference
1169 (url "https://go.googlesource.com/crypto")
1170 (commit commit)))
1171 (file-name (string-append "go.googlesource.com-crypto-"
1172 version "-checkout"))
1173 (sha256
1174 (base32
1175 "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))))
1176 (build-system go-build-system)
1177 (arguments
1178 `(#:import-path "golang.org/x/crypto/xtea"
1179 #:unpack-path "golang.org/x/crypto"
1180 #:phases
1181 (modify-phases %standard-phases
1182 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1183 (lambda* (#:key outputs #:allow-other-keys)
1184 (map (lambda (file)
1185 (make-file-writable file))
1186 (find-files
1187 (string-append (assoc-ref outputs "out")
1188 "/src/golang.org/x/crypto/ed25519/testdata")
1189 ".*\\.gz$"))
1190 #t)))))
1191 (synopsis "eXtended Tiny Encryption Algorithm (XTEA) in Go")
1192 (description "This package provides a Go implementation of the eXtended
1193Tiny Encryption Algorithm (XTEA) block cipher.")
1194 (home-page "https://go.googlesource.com/crypto/")
8da09afc
LF
1195 (license bsd-3))))
1196
4c3cc949
LF
1197(define* (go-golang-org-x-net-union #:optional
1198 (packages (list go-golang-org-x-net-ipv4
1199 go-golang-org-x-net-bpf
1200 go-golang-org-x-net-context
1201 go-golang-org-x-net-ipv6
1202 go-golang-org-x-net-proxy
1203 go-golang-org-x-net-internal-iana)))
1204 (package
1205 (name "go-golang-org-x-net")
1206 (version (package-version go-golang-org-x-net-ipv4))
1207 (source #f)
1208 (build-system trivial-build-system)
1209 (arguments
1210 '(#:modules ((guix build union))
1211 #:builder (begin
1212 (use-modules (ice-9 match)
1213 (guix build union))
1214 (match %build-inputs
1215 (((names . directories) ...)
1216 (union-build (assoc-ref %outputs "out")
1217 directories))))))
1218 (inputs (map (lambda (package)
1219 (list (package-name package) package))
1220 packages))
1221 (synopsis "Union of the Go net libraries")
1222 (description "A union of the Golang net libraries.")
1223 (home-page (package-home-page go-golang-org-x-net-ipv4))
1224 (license (package-license go-golang-org-x-net-ipv4))))
1225
b5ad117b
LF
1226(define-public go-golang-org-x-net-ipv4
1227 (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d")
1228 (revision "0"))
1229 (package
1230 (name "go-golang-org-x-net-ipv4")
1231 (version (git-version "0.0.0" revision commit))
1232 (source (origin
1233 (method git-fetch)
1234 (uri (git-reference
1235 (url "https://go.googlesource.com/net")
1236 (commit commit)))
1237 (file-name (git-file-name name version))
1238 (sha256
1239 (base32
1240 "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp"))))
1241 (build-system go-build-system)
1242 (arguments
1243 `(#:import-path "golang.org/x/net/ipv4"
1244 #:unpack-path "golang.org/x/net"))
1245 (synopsis "Go IPv4 support")
1246 (description "This package provides @code{ipv4}, which implements IP-level
1247socket options for the Internet Protocol version 4.")
1248 (home-page "https://go.googlesource.com/net")
1249 (license bsd-3))))
1250
3544d525
LF
1251(define-public go-golang-org-x-net-bpf
1252 (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d")
1253 (revision "0"))
1254 (package
1255 (name "go-golang-org-x-net-bpf")
1256 (version (git-version "0.0.0" revision commit))
1257 (source (origin
1258 (method git-fetch)
1259 (uri (git-reference
1260 (url "https://go.googlesource.com/net")
1261 (commit commit)))
1262 (file-name (string-append "go.googlesource.com-net-"
1263 version "-checkout"))
1264 (sha256
1265 (base32
1266 "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp"))))
1267 (build-system go-build-system)
1268 (arguments
1269 `(#:import-path "golang.org/x/net/bpf"
1270 #:unpack-path "golang.org/x/net"))
1271 (synopsis "Berkeley Packet Filters (BPF) in Go")
1272 (description "This packages provides a Go implementation of the Berkeley
1273Packet Filter (BPF) virtual machine.")
1274 (home-page "https://go.googlesource.com/net/")
303dfd5c
LF
1275 (license bsd-3))))
1276
1277(define-public go-golang-org-x-net-context
1278 (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d")
1279 (revision "0"))
1280 (package
1281 (name "go-golang-org-x-net-context")
1282 (version (git-version "0.0.0" revision commit))
1283 (source (origin
1284 (method git-fetch)
1285 (uri (git-reference
1286 (url "https://go.googlesource.com/net")
1287 (commit commit)))
1288 (file-name (string-append "go.googlesource.com-net-"
1289 version "-checkout"))
1290 (sha256
1291 (base32
1292 "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp"))))
1293 (build-system go-build-system)
1294 (arguments
1295 `(#:import-path "golang.org/x/net/context"
1296 #:unpack-path "golang.org/x/net"))
1297 (synopsis "Golang Context type")
1298 (description "This packages provides @code{context}, which defines the
1299Context type, which carries deadlines, cancelation signals, and other
1300request-scoped values across API boundaries and between processes.")
1301 (home-page "https://go.googlesource.com/net/")
f20d1300
LF
1302 (license bsd-3))))
1303
1304(define-public go-golang-org-x-net-internal-iana
1305 (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d")
1306 (revision "0"))
1307 (package
1308 (name "go-golang-org-x-net-internal-iana")
1309 (version (git-version "0.0.0" revision commit))
1310 (source (origin
1311 (method git-fetch)
1312 (uri (git-reference
1313 (url "https://go.googlesource.com/net")
1314 (commit commit)))
1315 (file-name (string-append "go.googlesource.com-net-"
1316 version "-checkout"))
1317 (sha256
1318 (base32
1319 "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp"))))
1320 (build-system go-build-system)
1321 (arguments
1322 `(#:import-path "golang.org/x/net/internal/iana"
1323 #:unpack-path "golang.org/x/net"))
1324 (synopsis "Go support for assigned numbers (IANA)")
1325 (description "This packages provides @code{iana}, which provides protocol
1326number resources managed by the Internet Assigned Numbers Authority (IANA).")
1327 (home-page "https://go.googlesource.com/net/")
3544d525
LF
1328 (license bsd-3))))
1329
8c73bb2c
LF
1330(define-public go-golang-org-x-net-ipv6
1331 (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d")
1332 (revision "0"))
1333 (package
1334 (name "go-golang-org-x-net-ipv6")
1335 (version (git-version "0.0.0" revision commit))
1336 (source (origin
1337 (method git-fetch)
1338 (uri (git-reference
1339 (url "https://go.googlesource.com/net")
1340 (commit commit)))
1341 (file-name (string-append "go.googlesource.com-net-"
1342 version "-checkout"))
1343 (sha256
1344 (base32
1345 "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp"))))
1346 (build-system go-build-system)
1347 (arguments
1348 `(#:import-path "golang.org/x/net/ipv6"
1349 #:unpack-path "golang.org/x/net"))
1350 (synopsis "Go IPv6 support")
1351 (description "This packages provides @code{ipv6}, which implements
1352IP-level socket options for the Internet Protocol version 6.")
1353 (home-page "https://go.googlesource.com/net")
04e2d470
LF
1354 (license bsd-3))))
1355
1356(define-public go-golang-org-x-net-proxy
1357 (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d")
1358 (revision "0"))
1359 (package
1360 (name "go-golang-org-x-net-proxy")
1361 (version (git-version "0.0.0" revision commit))
1362 (source (origin
1363 (method git-fetch)
1364 (uri (git-reference
1365 (url "https://go.googlesource.com/net")
1366 (commit commit)))
1367 (file-name (string-append "go.googlesource.com-net-"
1368 version "-checkout"))
1369 (sha256
1370 (base32
1371 "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp"))))
1372 (build-system go-build-system)
1373 (arguments
1374 `(#:import-path "golang.org/x/net/proxy"
1375 #:unpack-path "golang.org/x/net/"))
1376 (synopsis "Go support for network proxies")
1377 (description "This packages provides @code{proxy}, which provides support
1378for a variety of protocols to proxy network data.")
1379 (home-page "https://go.googlesource.com/net")
8c73bb2c
LF
1380 (license bsd-3))))
1381
bde48edc
LF
1382(define-public go-golang-org-x-sys-unix
1383 (let ((commit "f3918c30c5c2cb527c0b071a27c35120a6c0719a")
1384 (revision "0"))
1385 (package
1386 (name "go-golang-org-x-sys-unix")
1387 (version (git-version "0.0.0" revision commit))
1388 (source (origin
1389 (method git-fetch)
1390 (uri (git-reference
1391 (url "https://go.googlesource.com/sys")
1392 (commit commit)))
1393 (file-name (git-file-name name version))
1394 (sha256
1395 (base32
1396 "02967mw0nq7hp39bcf8rdbid4jgz2fn6hd1x03mmavvca03scxbh"))))
1397 (build-system go-build-system)
1398 (arguments
1399 `(#:import-path "golang.org/x/sys/unix"
1400 #:unpack-path "golang.org/x/sys"))
1401 (synopsis "Go support for low-level system interaction")
1402 (description "This package provides @code{unix}, which offers Go support
1403for low-level interaction with the operating system.")
1404 (home-page "https://go.googlesource.com/sys")
1405 (license bsd-3))))
73a2f841 1406
ae8c7774
LF
1407(define* (go-golang-org-x-text-union #:optional
1408 (packages (list go-golang-org-x-text-transform
1409 go-golang-org-x-text-unicode-norm)))
1410 (package
1411 (name "go-golang-org-x-text")
1412 (version (package-version go-golang-org-x-text-transform))
1413 (source #f)
1414 (build-system trivial-build-system)
1415 (arguments
1416 '(#:modules ((guix build union))
1417 #:builder (begin
1418 (use-modules (ice-9 match)
1419 (guix build union))
1420 (match %build-inputs
1421 (((names . directories) ...)
1422 (union-build (assoc-ref %outputs "out")
1423 directories))))))
1424 (inputs (map (lambda (package)
1425 (list (package-name package) package))
1426 packages))
1427 (synopsis "Union of the Go text libraries")
1428 (description "A union of the Golang text libraries.")
1429 (home-page (package-home-page go-golang-org-x-text-transform))
1430 (license (package-license go-golang-org-x-text-transform))))
1431
e4ef4772
LF
1432(define-public go-golang-org-x-text-transform
1433 (let ((commit "f4b4367115ec2de254587813edaa901bc1c723a8")
1434 (revision "0"))
1435 (package
1436 (name "go-golang-org-x-text-transform")
1437 (version (git-version "0.0.0" revision commit))
1438 (source (origin
1439 (method git-fetch)
1440 (uri (git-reference
1441 (url "https://go.googlesource.com/text")
1442 (commit commit)))
1443 (file-name (string-append "go.googlesource.com-text-"
1444 version "-checkout"))
1445 (sha256
1446 (base32
1447 "1a5m97y7sdxks02p4swg8ffp8bgr95aaf5fhfw511p7h3xg1dm0d"))))
1448 (build-system go-build-system)
1449 (arguments
1450 `(#:import-path "golang.org/x/text/transform"
1451 #:unpack-path "golang.org/x/text"))
1452 (synopsis "Go text transformation")
1453 (description "This package provides @code{transform}, which provides
1454reader and writer wrappers that transform the bytes passing through. Example
1455transformations provided by other packages include normalization and conversion
1456between character sets.")
1457 (home-page "https://go.googlesource.com/text")
ea969c6b
LF
1458 (license bsd-3))))
1459
1460(define-public go-golang-org-x-text-unicode-norm
1461 (let ((commit "f4b4367115ec2de254587813edaa901bc1c723a8")
1462 (revision "0"))
1463 (package
1464 (name "go-golang-org-x-text-unicode-norm")
1465 (version (git-version "0.0.0" revision commit))
1466 (source (origin
1467 (method git-fetch)
1468 (uri (git-reference
1469 (url "https://go.googlesource.com/text")
1470 (commit commit)))
1471 (file-name (string-append "go.googlesource.com-text-"
1472 version "-checkout"))
1473 (sha256
1474 (base32
1475 "1a5m97y7sdxks02p4swg8ffp8bgr95aaf5fhfw511p7h3xg1dm0d"))))
1476 (build-system go-build-system)
1477 (arguments
1478 `(#:import-path "golang.org/x/text/unicode/norm"
1479 #:unpack-path "golang.org/x/text"))
1480 (synopsis "Unicode normalization in Go")
1481 (description "This package provides @code{norm}, which contains types and
1482functions for normalizing Unicode strings.")
1483 (home-page "https://go.googlesource.com/text")
e4ef4772
LF
1484 (license bsd-3))))
1485
6deb73c4
LF
1486(define-public go-github-com-audriusbutkevicius-pfilter
1487 (let ((commit "09b3cfdd04de89f0196caecb0b335d7149a6593a")
1488 (revision "0"))
1489 (package
1490 (name "go-github-com-audriusbutkevicius-pfilter")
1491 (version (git-version "0.0.0" revision commit))
1492 (source
1493 (origin
1494 (method git-fetch)
1495 (uri (git-reference
1496 (url "https://github.com/AudriusButkevicius/pfilter.git")
1497 (commit commit)))
1498 (file-name (git-file-name name version))
1499 (sha256
1500 (base32
1501 "176g8dmi2i94bxpnpgvj3dv5y9hripi45kbrfvy2bk884hwbp1zq"))))
1502 (build-system go-build-system)
1503 (arguments
1504 '(#:import-path "github.com/AudriusButkevicius/pfilter"))
1505 (synopsis "Filter packets into mulitple virtual connections")
1506 (description "Pfilter is a Go package for filtering packets into multiple
1507virtual connections from a single physical connection.")
1508 (home-page "https://github.com/AudriusButkevicius/pfilter")
1509 (license expat))))
1510
db64cb40
LF
1511(define-public go-github-com-ccding-go-stun
1512 (let ((commit "04a4eed61c57ecc9903f8983d1d2c17b88d2e9e1")
1513 (revision "0"))
1514 (package
1515 (name "go-github-com-ccding-go-stun")
1516 (version (git-version "0.0.0" revision commit))
1517 (source
1518 (origin
1519 (method git-fetch)
1520 (uri (git-reference
1521 (url "https://github.com/ccding/go-stun.git")
1522 (commit commit)))
1523 (file-name (git-file-name name version))
1524 (sha256
1525 (base32
1526 "09fgmkvm0vzinl3ifrixyyxk2c9hbahrja7i0ir400harzq3my10"))))
1527 (build-system go-build-system)
1528 (arguments
1529 '(#:import-path "github.com/ccding/go-stun"))
1530 (synopsis "STUN client implementation")
1531 (description "Go-stun is a go implementation of the STUN client (RFC 3489
1532and RFC 5389).")
1533 (home-page "https://github.com/ccding/go-stun")
1534 (license asl2.0))))
1535
2785690a
LF
1536(define-public go-github-com-chmduquesne-rollinghash-adler32
1537 (let ((commit "043b8fdecc9816f0011a056f6d92f9a091ab63dd")
1538 (revision "0"))
1539 (package
1540 (name "go-github-com-chmduquesne-rollinghash-adler32")
1541 (version (git-version "0.0.0" revision commit))
1542 (source
1543 (origin
1544 (method git-fetch)
1545 (uri (git-reference
1546 (url "https://github.com/chmduquesne/rollinghash.git")
1547 (commit commit)))
1548 (file-name (git-file-name name version))
1549 (sha256
1550 (base32
1551 "0pc87laxgydqv03bdirfv32y9k0bdk2cwjxn28yh42nvay9p6y0k"))))
1552 (build-system go-build-system)
1553 (arguments
1554 '(#:import-path "github.com/chmduquesne/rollinghash/adler32"
1555 #:unpack-path "github.com/chmduquesne/rollinghash"))
1556 (synopsis "Adler-32 rolling hash in Go")
1557 (description "This package provides a Go implementation of the Adler-32
1558rolling hash.")
1559 (home-page "https://github.com/chmduquesne/rollinghash")
1560 (license expat))))
1561
3d86b557
LF
1562(define-public go-github-com-audriusbutkevicius-kcp-go
1563 (let ((commit "02298ef4d96d48912e016f5fb36dcc0cd93c257f")
1564 (revision "0"))
1565 (package
1566 (name "go-github-com-audriusbutkevicius-kcp-go")
1567 (version (git-version "0.0.0" revision commit))
1568 (source
1569 (origin
1570 (method git-fetch)
1571 (uri (git-reference
1572 (url "https://github.com/AudriusButkevicius/kcp-go")
1573 (commit commit)))
1574 (file-name (git-file-name name version))
1575 (sha256
1576 (base32
1577 "1xanidjz8rhk28ybxnfk55nsd3h0a707dsq7mmxpjmycdacbm0j0"))))
1578 (build-system go-build-system)
1579 (propagated-inputs
1580 `(("go-golang-org-x-net-ipv4" ,go-golang-org-x-net-ipv4)
1581 ("go-github-com-templexxx-reedsolomon"
1582 ,go-github-com-templexxx-reedsolomon)
1583 ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
1584 ("go-golang-org-x-crypto" ,(go-golang-org-x-crypto-union))
1585 ("go-github-com-templexxx-xor" ,go-github-com-templexxx-xor)))
1586 (arguments
1587 '(#:import-path "github.com/AudriusButkevicius/kcp-go"
1588 ;; 'TestListenerClose' is known to fail. It seems that the test suite
1589 ;; is not being used upstream:
1590 ;; https://github.com/AudriusButkevicius/kcp-go/pull/1
1591 #:tests? #f))
1592 (synopsis "Reliable UDP connections in Go")
1593 (description "This package provides @code{kcp-go}, a reliable UDP library
1594written in Go. It offers fast, ordered and error-checked delivery of streams
1595over UDP packets.")
1596 (home-page "https://github.com/xtaci/kcp-go")
1597 (license expat))))
1598
66500b27
LF
1599(define-public go-github-com-templexxx-xor
1600 (let ((commit "42f9c041c330b560afb991153bf183c25444bcdc")
1601 (revision "0"))
1602 (package
1603 (name "go-github-com-templexxx-xor")
1604 (version (git-version "0.0.0" revision commit))
1605 (source
1606 (origin
1607 (method git-fetch)
1608 (uri (git-reference
1609 (url "https://github.com/templexxx/xor.git")
1610 (commit commit)))
1611 (file-name (git-file-name name version))
1612 (sha256
1613 (base32
1614 "0ixzk64nyyzas4lyqxdih824xg5f5vph18vyiibmnflwd61m0i78"))))
1615 (build-system go-build-system)
1616 (arguments
1617 '(#:import-path "github.com/templexxx/xor"))
1618 (synopsis "XOR in Go")
1619 (description "This packages provides a Go implementation of XOR.")
1620 (home-page "https://github.com/templexxx/xor")
1621 (license expat))))
1622
3ce46390
LF
1623(define-public go-github-com-xtaci-smux
1624 (let ((commit "0f6b9aaecaaf354357adc7def9239011ad276776")
1625 (revision "0"))
1626 (package
1627 (name "go-github-com-xtaci-smux")
1628 (version (git-version "0.0.0" revision commit))
1629 (source
1630 (origin
1631 (method git-fetch)
1632 (uri (git-reference
1633 (url "https://github.com/xtaci/smux.git")
1634 (commit commit)))
1635 (file-name (git-file-name name version))
1636 (sha256
1637 (base32
1638 "0wx9j0id2f5iqvyalhm4i80fr9k25klr7qqj8sd9acwp5vfl5fas"))))
1639 (build-system go-build-system)
1640 (propagated-inputs
1641 `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)))
1642 (arguments
1643 '(#:import-path "github.com/xtaci/smux"))
1644 (synopsis "Network multiplexing in Go")
1645 (description "Smux ( Simple MUltipleXing) is a multiplexing library for
1646Golang. It relies on an underlying connection to provide reliability and
1647ordering, such as TCP or KCP, and provides stream-oriented multiplexing.")
1648 (home-page "https://github.com/xtaci/smux")
1649 (license expat))))
1650
936e02b4
LF
1651(define-public go-github-com-pkg-errors
1652 (let ((commit "ff09b135c25aae272398c51a07235b90a75aa4f0")
1653 (revision "0"))
1654 (package
1655 (name "go-github-com-pkg-errors")
1656 (version (git-version "0.0.0" revision commit))
1657 (source (origin
1658 (method git-fetch)
1659 (uri (git-reference
1660 (url "https://github.com/pkg/errors.git")
1661 (commit commit)))
1662 (file-name (git-file-name name version))
1663 (sha256
1664 (base32
1665 "0pwl6v3hmc22zp32gkyqykl4kg69xk1mlp0vmhgd1f44difd5fvz"))))
1666 (build-system go-build-system)
1667 (arguments
1668 `(#:import-path "github.com/pkg/errors"))
1669 (synopsis "Go error handling primitives")
1670 (description "This packages provides @code{error}, which offers simple
1671error handling primitives in Go.")
1672 (home-page "https://github.com/pkg/errors")
1673 (license bsd-2))))
1674
cb42a2a8
LF
1675(define-public go-golang-org-x-time-rate
1676 (let ((commit "f51c12702a4d776e4c1fa9b0fabab841babae631")
1677 (revision "0"))
1678 (package
1679 (name "go-golang-org-x-time-rate")
1680 (version (git-version "0.0.0" revision commit))
1681 (source (origin
1682 (method git-fetch)
1683 (uri (git-reference
1684 (url "https://go.googlesource.com/time")
1685 (commit commit)))
1686 (file-name (git-file-name name version))
1687 (sha256
1688 (base32
1689 "07wc6g2fvafkr6djsscm0jpbpl4135khhb6kpyx1953hi5d1jvyy"))))
1690 (build-system go-build-system)
1691 (arguments
1692 `(#:import-path "golang.org/x/time/rate"
1693 #:unpack-path "golang.org/x/time"))
1694 (propagated-inputs
1695 `(("go-golang-org-x-net-context" ,go-golang-org-x-net-context)))
1696 (synopsis "Rate limiting in Go")
1697 (description "This package provides @{rate}, which implements rate
1698limiting in Go.")
1699 (home-page "https://godoc.org/golang.org/x/time/rate")
1700 (license bsd-3))))
1701
73a2f841
LF
1702(define-public go-github-com-petermattis-goid
1703 (let ((commit "3db12ebb2a599ba4a96bea1c17b61c2f78a40e02")
1704 (revision "0"))
1705 (package
1706 (name "go-github-com-petermattis-goid")
1707 (version (git-version "0.0.0" revision commit))
1708 (source (origin
1709 (method git-fetch)
1710 (uri (git-reference
1711 (url "https://github.com/petermattis/goid.git")
1712 (commit commit)))
1713 (file-name (git-file-name name version))
1714 (sha256
1715
1716 (base32
1717 "0z18a3mr72c52g7g94n08gxw0ksnaafbfwdl5p5jav2sffirb0kd"))))
1718 (build-system go-build-system)
1719 (arguments
1720 '(#:import-path "github.com/petermattis/goid"))
1721 (synopsis "Identify the running goroutine")
1722 (description "This package offers a method of programatically retrieving
1723the current goroutine's ID.")
1724 (home-page "https://github.com/petermattis/goid")
1725 (license asl2.0))))
71415e23
LF
1726
1727(define-public go-github-com-audriusbutkevicius-cli
1728 (let ((commit "7f561c78b5a4aad858d9fd550c92b5da6d55efbb")
1729 (revision "0"))
1730 (package
1731 (name "go-github-com-audriusbutkevicius-cli")
1732 (version (git-version "0.0.0" revision commit))
1733 (source (origin
1734 (method git-fetch)
1735 (uri (git-reference
1736 (url "https://github.com/AudriusButkevicius/cli.git")
1737 (commit commit)))
1738 (file-name (git-file-name name version))
1739 (sha256
1740 (base32
1741 "0bg26pfg25vr16jmczig2m493mja2nxjxyswz3hha7avxw20rpi5"))))
1742 (build-system go-build-system)
1743 (arguments
1744 '(#:import-path "github.com/AudriusButkevicius/cli"))
1745 (synopsis "Library for building command-line interfaces in Go")
1746 (description "This package provides a library for building command-line
1747interfaces in Go.")
1748 (home-page "https://github.com/AudriusButkevicius/cli")
1749 (license expat))))
89d91ee2
LF
1750
1751(define-public go-github-com-kballard-go-shellquote
1752 (let ((commit "cd60e84ee657ff3dc51de0b4f55dd299a3e136f2")
1753 (revision "0"))
1754 (package
1755 (name "go-github-com-kballard-go-shellquote")
1756 (version (git-version "0.0.0" revision commit))
1757 (source (origin
1758 (method git-fetch)
1759 (uri (git-reference
1760 (url "https://github.com/kballard/go-shellquote.git")
1761 (commit commit)))
1762 (file-name (git-file-name name version))
1763 (sha256
1764 (base32
1765 "1xjpin4jq1zl84dcn96xhjmn9bsfyszf6g9aqyj2dc0xfi6c88y0"))))
1766 (build-system go-build-system)
1767 (arguments
1768 '(#:import-path "github.com/kballard/go-shellquote"))
1769 (synopsis "Shell-style string joins and splits")
1770 (description "Shellquote provides utilities for joining/splitting strings
1771using sh's word-splitting rules.")
1772 (home-page "https://github.com/kballard/go-shellquote")
1773 (license expat))))
a3d98dd8 1774
478ebb31
LF
1775(define-public go-github-com-templexxx-reedsolomon
1776 (package
1777 (name "go-github-com-templexxx-reedsolomon")
1778 (version "0.1.1")
1779 (source (origin
1780 (method git-fetch)
1781 (uri (git-reference
1782 (url "https://github.com/templexxx/reedsolomon.git")
1783 (commit version)))
1784 (sha256
1785 (base32
1786 "05yfi6dq2mwaw6jf9vq2qhpw8vb9y94b3zi6mpfcpma262rxdkg4"))))
1787 (build-system go-build-system)
1788 (arguments
1789 '(#:import-path "github.com/templexxx/reedsolomon"))
1790 (propagated-inputs
1791 `(("go-github-com-templexxx-cpufeat"
1792 ,go-github-com-templexxx-cpufeat)))
1793 (synopsis "Reed-Solomon Erasure Coding in Go")
1794 (description "This package provides and implemenation of Reed-Solomon
1795Erasure Coding in Go.")
1796 (home-page "https://github.com/templexxx/reedsolomon")
1797 (license expat)))
1798
a3d98dd8
LF
1799(define-public go-github-com-templexxx-cpufeat
1800 (let ((commit "3794dfbfb04749f896b521032f69383f24c3687e")
1801 (revision "0"))
1802 (package
1803 (name "go-github-com-templexxx-cpufeat")
1804 (version (git-version "0.0.0" revision commit))
1805 (source (origin
1806 (method git-fetch)
1807 (uri (git-reference
1808 (url "https://github.com/templexxx/cpufeat.git")
1809 (commit commit)))
1810 (file-name (git-file-name name version))
1811 (sha256
1812 (base32
1813 "0b9f5p6nsiv907rz5d66qzgxnsz4k68r2f45vxi2hwdbnkjfxz8j"))))
1814 (build-system go-build-system)
1815 (arguments
1816 '(#:import-path "github.com/templexxx/cpufeat"))
1817 (synopsis "CPU feature identification for Go")
1818 (description "This package provides @code{cpu}, which implements
1819processor feature detection used by the Go standard libary.")
1820 (home-page "https://github.com/templexxx/cpufeat")
1821 (license bsd-3))))