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