gnu: Add go-github-com-matttproud-golang-protobuf-extensions-pbutil.
[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")
d9a38cc2 31 (version "0.14.43")
947453a8
LF
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
d9a38cc2 39 "175xkc4i00axxljc5kgkr30lm1s9hfmz0hrzrsl91rpwpbh500mv"))))
947453a8 40 (build-system go-build-system)
c330c27f
LF
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"))
947453a8
LF
45 (arguments
46 `(#:import-path "github.com/syncthing/syncthing"
47 #:unpack-path "github.com/syncthing"
1899ef0b
LF
48 ;; We don't need to install the source code for end-user applications.
49 #:install-source? #f
947453a8
LF
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
947453a8
LF
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
c330c27f
LF
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)))
947453a8
LF
91
92 (add-after 'install 'install-docs
93 (lambda* (#:key outputs #:allow-other-keys)
94 (let* ((out (assoc-ref outputs "out"))
c330c27f
LF
95 (utils (assoc-ref outputs "utils"))
96 (man "/share/man")
97 (man-section (string-append man "/man"))
947453a8 98 (src "src/github.com/syncthing/syncthing/man/"))
c330c27f 99 ;; Install all the man pages to "out".
947453a8
LF
100 (for-each
101 (lambda (file)
102 (install-file file
c330c27f
LF
103 (string-append out man-section
104 (string-take-right file 1))))
947453a8 105 (find-files src "\\.[1-9]"))
c330c27f
LF
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"))
947453a8
LF
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)
27fbcae6
LF
121 ("go-github-com-xtaci-kcp-go"
122 ,go-github-com-xtaci-kcp-go)
947453a8
LF
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)
d9a38cc2
LF
160 ("go-github-com-zillode-notify" ,go-github-com-zillode-notify)
161 ;; For tests
162 ("go-github-com-d4l3k-messagediff" ,go-github-com-d4l3k-messagediff)))
162a1374 163 (synopsis "Decentralized continuous file system synchronization")
947453a8
LF
164 (description "Syncthing is a peer-to-peer file synchronization tool that
165supports a wide variety of computing platforms. It uses the Block Exchange
166Protocol.")
167 (home-page "https://github.com/syncthing/syncthing")
168 (license mpl2.0)))
169
56a37713
LF
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
189protocol for port mapping and discovering the external IP address of a
190firewall.")
191 (home-page "https://github.com/AudriusButkevicius/go-nat-pmp")
192 (license asl2.0))))
67b46818
LF
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
214the LZ4 compression algorithm.")
215 (home-page "https://github.com/bkaradzic/go-lz4")
216 (license bsd-2))))
add56f34
LF
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
236information, such as how much storage space is available, free, and used.")
237 (home-page "https://github.com/calmh/du")
238 (license public-domain)))
1e28085e
LF
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)
260marshalling and unmarshalling library in Go. It uses code generation and not
261reflection.")
262 (home-page "https://github.com/calmh/xdr")
263 (license expat))))
ab3e1589
LF
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
285structs in the Go programming language.")
286 (home-page "https://github.com/d4l3k/messagediff")
287 (license expat))))
a3a5b012
LF
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))))
4d93ebb3
LF
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))))
07e88fc6 334
503802ab
LF
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
3a4d3838 360(define-public go-github-com-gogo-protobuf
d095620a
LF
361 (let ((commit "160de10b2537169b5ae3e7e221d28269ef40d311")
362 (revision "2"))
3a4d3838
LF
363 (package
364 (name "go-github-com-gogo-protobuf")
c1753d6c 365 (version (git-version "0.5" revision commit))
3a4d3838
LF
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
d095620a 374 "0hxq28sgxym04rv0q40gpwkh4ni359q21hq3g78wwxwx4qfd4zwm"))))
3a4d3838
LF
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
384generation 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
07e88fc6
LF
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
417generation 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))))
ede4f50c
LF
428
429(define-public go-github-com-golang-groupcache-lru
e83994f2
LF
430 (let ((commit "84a468cf14b4376def5d68c722b139b881c450a4")
431 (revision "1"))
ede4f50c
LF
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
e83994f2 443 "1ky1r9qh54yi9zp2769qrjngzndgd8fn7mja2qfac285n06chmcn"))))
ede4f50c
LF
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
450as a replacement for memcached in many cases. It provides a data loading
451mechanism with caching and de-duplication that works across a set of peer
452processes.")
453 (home-page "https://github.com/golang/groupcache")
454 (license asl2.0))))
b32eab0b
LF
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
476compression format.")
477 (home-page "https://github.com/golang/snappy")
478 (license bsd-3))))
7b92093d
LF
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
500address of the default LAN gateway.")
501 (home-page "https://github.com/jackpal/gateway")
502 (license bsd-3))))
7577a1d5
LF
503
504(define-public go-github-com-kardianos-osext
ece4c5bc
LF
505 (let ((commit "ae77be60afb1dcacde03767a8c37337fad28ac14")
506 (revision "1"))
7577a1d5
LF
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
ece4c5bc 518 "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz"))))
7577a1d5
LF
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
524file that is running. This can be used for upgrading the current executable or
525finding resources located relative to the executable file.")
526 (home-page "https://github.com/kardianos/osext")
527 (license bsd-3))))
340e1a9a
LF
528
529(define-public go-github-com-lib-pq
5e30d8c1
LF
530 (let ((commit "83612a56d3dd153a94a629cd64925371c9adad78")
531 (revision "1"))
340e1a9a
LF
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
5e30d8c1 543 "12334yigh284k5cdvb9pgxaq6n78205jcbp75ajz44vvfd4wi6qc"))))
340e1a9a
LF
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
552database/sql package.")
553 (home-page "https://github.com/lib/pq")
554 (license expat))))
4a9c4dbe
LF
555
556(define-public go-github-com-minio-sha256-simd
b12df4f5
LF
557 (let ((commit "ad98a36ba0da87206e3378c556abbfeaeaa98668")
558 (revision "1"))
4a9c4dbe
LF
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
b12df4f5 570 "0yfnqn3kqdnlfm54yvc4fr5vpdmwdi2kw571nlkbpmy8ldhsqqfi"))))
4a9c4dbe
LF
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
576using SIMD (Single instruction, multiple data) instructions for Intel and ARM
577architectures.")
578 (home-page "https://github.com/minio/sha256-simd")
579 (license asl2.0))))
bde48edc 580
0921b230 581(define-public go-github-com-oschwald-geoip2-golang
d277b9bc
LF
582 (package
583 (name "go-github-com-oschwald-geoip2-golang")
584 (version "1.1.0")
585 (source (origin
586 (method git-fetch)
587 (uri (git-reference
588 (url "https://github.com/oschwald/geoip2-golang")
589 (commit (string-append "v" version))))
590 (file-name (git-file-name name version))
591 (sha256
592 (base32
593 "0v698bzs8lb59cqpsa9cf4sl8rdsvnnmaravhbfn6g6i511ppclr"))))
594 (build-system go-build-system)
595 (propagated-inputs
596 `(("go-github-com-oschwald-maxminddb-golang"
597 ,go-github-com-oschwald-maxminddb-golang)
598 ("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
599 (arguments
600 `(#:import-path "github.com/oschwald/geoip2-golang"
601 #:tests? #f)) ; Requires some unpackaged software and test data
602 (synopsis "MaxMind GeoIP2 reader")
603 (description "This packages provides a library for reading MaxMind
0921b230 604GeoLite2 and GeoIP2 databases in Go.")
d277b9bc
LF
605 (home-page "https://github.com/oschwald/geoip2-golang")
606 (license isc)))
0921b230 607
a57778f5 608(define-public go-github-com-oschwald-maxminddb-golang
ac909141 609 (let ((commit "26fe5ace1c706491c2936119e1dc69c1a9c04d7f")
a57778f5
LF
610 (revision "0"))
611 (package
612 (name "go-github-com-oschwald-maxminddb-golang")
ac909141 613 (version (git-version "1.2.0" revision commit))
a57778f5
LF
614 (source (origin
615 (method git-fetch)
616 (uri (git-reference
617 (url "https://github.com/oschwald/maxminddb-golang")
618 (commit commit)))
619 (file-name (git-file-name name version))
620 (sha256
621 (base32
ac909141 622 "1i6d935f3cv9djpjvc2ibh8aps8jqvg454b9pkwg2h98al759ggk"))))
a57778f5
LF
623 (build-system go-build-system)
624 (propagated-inputs
625 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
626 (arguments
627 `(#:import-path "github.com/oschwald/maxminddb-golang"
628 #:tests? #f)) ; Requires some unpackaged software and test data
629 (synopsis "MaxMind DB Reader for Go")
630 (description "This is a Go reader for the MaxMind DB format. Although
631this can be used to read GeoLite2 and GeoIP2 databases, @code{geoip2} provides a
632higher-level API for doing so.")
633 (home-page "https://github.com/oschwald/maxminddb-golang")
634 (license isc))))
635
6bc1eb11
LF
636(define-public go-github-com-stathat-go
637 (let ((commit "74669b9f388d9d788c97399a0824adbfee78400e")
638 (revision "0"))
639 (package
640 (name "go-github-com-stathat-go")
641 (version (git-version "0.0.0" revision commit))
642 (source (origin
643 (method git-fetch)
644 (uri (git-reference
645 (url "https://github.com/stathat/go")
646 (commit commit)))
647 (file-name (git-file-name name version))
648 (sha256
649 (base32
650 "1zzlsl24dyr202qkr2pay22m6d0gb7ssms77wgdx0r0clgm7dihw"))))
651 (build-system go-build-system)
652 (arguments
653 `(#:import-path "github.com/stathat/go"))
654 (synopsis "Post statistics to StatHat")
655 (description "This is a Go package for posting to a StatHat account.")
656 (home-page "https://github.com/stathat/go")
657 (license expat))))
658
1a4795f9 659(define-public go-github-com-rcrowley-go-metrics
d2c7971d
LF
660 (let ((commit "e181e095bae94582363434144c61a9653aff6e50")
661 (revision "1"))
1a4795f9
LF
662 (package
663 (name "go-github-com-rcrowley-go-metrics")
664 (version (git-version "0.0.0" revision commit))
665 (source (origin
666 (method git-fetch)
667 (uri (git-reference
668 (url "https://github.com/rcrowley/go-metrics")
669 (commit commit)))
670 (file-name (git-file-name name version))
671 (sha256
672 (base32
d2c7971d 673 "1pwkyw801hy7n94skzk6h177zqcil6ayrmb5gs3jdpsfayh8ia5w"))))
1a4795f9
LF
674 (build-system go-build-system)
675 (arguments
676 `(#:import-path "github.com/rcrowley/go-metrics"))
677 (propagated-inputs
678 `(("go-github-com-stathat-go" ,go-github-com-stathat-go)))
679 (synopsis "Go port of Coda Hale's Metrics library")
680 (description "This package provides a Go implementation of Coda Hale's
681Metrics library.")
682 (home-page "https://github.com/rcrowley/go-metrics")
683 (license bsd-2))))
684
8d7e9924 685(define-public go-github-com-sasha-s-go-deadlock
feade866
LF
686 (let ((commit "03d40e5dbd5488667a13b3c2600b2f7c2886f02f")
687 (revision "1"))
8d7e9924
LF
688 (package
689 (name "go-github-com-sasha-s-go-deadlock")
690 (version (git-version "0.1.0" revision commit))
691 (source (origin
692 (method git-fetch)
693 (uri (git-reference
694 (url "https://github.com/sasha-s/go-deadlock")
695 (commit commit)))
696 (file-name (git-file-name name version))
697 (sha256
698 (base32
feade866 699 "13p7b7pakd9k1c2k0fs1hfim3c8mivz679977ai6zb01s4aw7gyg"))))
8d7e9924
LF
700 (build-system go-build-system)
701 (arguments
702 `(#:import-path "github.com/sasha-s/go-deadlock"))
703 (propagated-inputs
704 `(("go-github-com-petermattis-goid" ,go-github-com-petermattis-goid)))
705 (synopsis "Deadlock detection in go")
706 (description "This package provides tools for detecting deadlocks at
707run-time in Go.")
708 (home-page "https://github.com/sasha-s/go-deadlock")
709 (license asl2.0))))
710
c864a4a7 711(define-public go-github-com-syndtr-goleveldb
619db5cf
LF
712 (let ((commit "34011bf325bce385408353a30b101fe5e923eb6e")
713 (revision "2"))
c864a4a7
LF
714 (package
715 (name "go-github-com-syndtr-goleveldb")
716 (version (git-version "0.0.0" revision commit))
717 (source (origin
718 (method git-fetch)
719 (uri (git-reference
720 (url "https://github.com/syndtr/goleveldb")
721 (commit commit)))
722 (file-name (git-file-name name version))
723 (sha256
724 (base32
619db5cf 725 "097ja0vyj6p27zrxha9nhk09fj977xsvhmd3bk2hbyvnbw4znnhd"))))
c864a4a7
LF
726 (build-system go-build-system)
727 (propagated-inputs
728 `(("go-github-com-golang-snappy" ,go-github-com-golang-snappy)))
729 (arguments
730 `(#:import-path "github.com/syndtr/goleveldb/leveldb"
731 #:unpack-path "github.com/syndtr/goleveldb"
732 #:tests? #f)) ; XXX needs 'github.com/onsi/gomega' package
733 (synopsis "LevelDB key/value database")
734 (description "This is an implementation of the LevelDB key / value
735database in Go.")
736 (home-page "https://github.com/syndtr/goleveldb")
737 (license bsd-2))))
738
f7612f0f 739(define-public go-github-com-thejerf-suture
48f677c9 740 (let ((commit "87e298c9891673c9ae76e10c2c9be589127e5f49")
f7612f0f
LF
741 (revision "0"))
742 (package
743 (name "go-github-com-thejerf-suture")
48f677c9 744 (version (git-version "2.0.1" revision commit))
f7612f0f
LF
745 (source (origin
746 (method git-fetch)
747 (uri (git-reference
748 (url "https://github.com/thejerf/suture")
749 (commit commit)))
750 (file-name (git-file-name name version))
751 (sha256
752 (base32
48f677c9 753 "0srw0g94z6jplvlsjqsr6wf7885alnbb6h4fhvbg2i7q1ia5ldy2"))))
f7612f0f
LF
754 (build-system go-build-system)
755 (arguments
756 `(#:import-path "github.com/thejerf/suture"))
757 (synopsis "Supervisor trees for Go")
758 (description "Suture provides Erlang-ish supervisor trees for Go.
759\"Supervisor trees\" -> \"sutree\" -> \"suture\" -> holds your code together
760when it's trying to die.
761
762It is intended to deal gracefully with the real failure cases that can occur
763with supervision trees (such as burning all your CPU time endlessly restarting
764dead services), while also making no unnecessary demands on the \"service\"
765code, and providing hooks to perform adequate logging with in a production
766environment")
767 (home-page "https://github.com/thejerf/suture")
768 (license expat))))
769
3c466da1
LF
770(define* (go-github-com-vitrun-qart-union
771 #:optional (packages (list go-github-com-vitrun-qart-coding
772 go-github-com-vitrun-qart-gf256
773 go-github-com-vitrun-qart-qr)))
774 (package
775 (name "go-github-com-vitrun-qart")
776 (version (package-version go-github-com-vitrun-qart-qr))
777 (source #f)
778 (build-system trivial-build-system)
779 (arguments
780 '(#:modules ((guix build union))
781 #:builder (begin
782 (use-modules (ice-9 match)
783 (guix build union))
784 (match %build-inputs
785 (((names . directories) ...)
786 (union-build (assoc-ref %outputs "out")
787 directories))))))
788 (inputs (map (lambda (package)
789 (list (package-name package) package))
790 packages))
791 (synopsis "Union of qart libraries")
792 (description "This is a union of qart libraries.")
793 (home-page (package-home-page go-github-com-vitrun-qart-qr))
794 (license (package-license go-github-com-vitrun-qart-qr))))
795
292a6b0d
LF
796(define-public go-github-com-vitrun-qart-coding
797 (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa")
798 (revision "0"))
799 (package
800 (name "go-github-com-vitrun-qart-coding")
801 (version (git-version "0.0.0" revision commit))
802 (source (origin
803 (method git-fetch)
804 (uri (git-reference
805 (url "https://github.com/vitrun/qart")
806 (commit commit)))
807 (file-name (string-append "go-github-com-vitrun-qart-"
808 version "-checkout"))
809 (sha256
810 (base32
811 "1xk7qki703xmay9ghi3kq2bjf1iw9dz8wik55739d6i7sn77vvkc"))))
812 (build-system go-build-system)
813 (arguments
814 `(#:import-path "github.com/vitrun/qart/coding"
815 #:unpack-path "github.com/vitrun/qart"))
816 (synopsis "Low-level QR coding library")
817 (description "This package provides a library for embedding
818human-meaningful graphics in QR codes. However, instead of scribbling on
819redundant pieces and relying on error correction to preserve the meaning,
820@code{qart} engineers the encoded values to create the picture in a code with no
821inherent errors. This @code{qart} component, @code{coding}, implements
822low-level QR coding details.")
823 (home-page "https://github.com/vitrun/qart/")
824 (license bsd-3))))
825
6934827a
LF
826(define-public go-github-com-vitrun-qart-gf256
827 (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa")
828 (revision "0"))
829 (package
830 (name "go-github-com-vitrun-qart-gf256")
831 (version (git-version "0.0.0" revision commit))
832 (source (origin
833 (method git-fetch)
834 (uri (git-reference
835 (url "https://github.com/vitrun/qart")
836 (commit commit)))
837 (file-name (string-append "go-github-com-vitrun-qart-"
838 version "-checkout"))
839 (sha256
840 (base32
841 "1xk7qki703xmay9ghi3kq2bjf1iw9dz8wik55739d6i7sn77vvkc"))))
842 (build-system go-build-system)
843 (arguments
844 `(#:import-path "github.com/vitrun/qart/gf256"
845 #:unpack-path "github.com/vitrun/qart"))
846 (synopsis "Qart library for Galois Field GF(256) math")
847 (description "This package, a component of @code{qart}, provides @code{gf256},
848implements arithmetic over the Galois Field GF(256).")
849 (home-page "https://github.com/vitrun/qart")
892ced6d
LF
850 (license bsd-3))))
851
852(define-public go-github-com-vitrun-qart-qr
853 (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa")
854 (revision "0"))
855 (package
856 (name "go-github-com-vitrun-qart-qr")
857 (version (git-version "0.0.0" revision commit))
858 (source (origin
859 (method git-fetch)
860 (uri (git-reference
861 (url "https://github.com/vitrun/qart")
862 (commit commit)))
863 (file-name (string-append "go-github-com-vitrun-qart-"
864 version "-checkout"))
865 (sha256
866 (base32
867 "1xk7qki703xmay9ghi3kq2bjf1iw9dz8wik55739d6i7sn77vvkc"))))
868 (build-system go-build-system)
869 (arguments
870 `(#:import-path "github.com/vitrun/qart/qr"
871 #:unpack-path "github.com/vitrun/qart"))
872 (synopsis "Qart component for generating QR codes")
873 (description "This package, a component of @code{qart}, provides
874@code{qr}, for QR code generation.")
875 (description "This package provides a library for embedding
876human-meaningful graphics in QR codes. However, instead of scribbling on
877redundant pieces and relying on error correction to preserve the meaning,
878@code{qart} engineers the encoded values to create the picture in a code with no
879inherent errors. This @code{qart} component, @code{qr}, provides QR code
880generation.")
881 (home-page "https://github.com/vitrun/qart")
6934827a
LF
882 (license bsd-3))))
883
cca22eb3
LF
884;; Go searches for library modules by looking in the GOPATH environment
885;; variable. This variable is a list of paths. However, Go does not
886;; keep searching on GOPATH if it tries and fails to import a module.
887;; So, we use a union for packages sharing a namespace.
888(define* (go-golang-org-x-crypto-union #:optional
889 (packages (list go-golang-org-x-crypto-blowfish
890 go-golang-org-x-crypto-bcrypt
891 go-golang-org-x-crypto-tea
892 go-golang-org-x-crypto-xtea
893 go-golang-org-x-crypto-pbkdf2
894 go-golang-org-x-crypto-twofish
895 go-golang-org-x-crypto-cast5
896 go-golang-org-x-crypto-salsa20)))
897 (package
898 (name "go-golang-org-x-crypto")
899 (version (package-version go-golang-org-x-crypto-bcrypt))
900 (source #f)
901 (build-system trivial-build-system)
902 (arguments
903 '(#:modules ((guix build union))
904 #:builder (begin
905 (use-modules (ice-9 match)
906 (guix build union))
907 (match %build-inputs
908 (((names . directories) ...)
909 (union-build (assoc-ref %outputs "out")
910 directories))))))
911 (inputs (map (lambda (package)
912 (list (package-name package) package))
913 packages))
914 (synopsis "Union of the Go x crypto libraries")
915 (description "A union of the Golang cryptographic libraries. A
916union is required because `go build` assumes that all of the headers and
917libraries are in the same directory.")
918 (home-page (package-home-page go-golang-org-x-crypto-bcrypt))
919 (license (package-license go-golang-org-x-crypto-bcrypt))))
920
8da09afc 921(define-public go-golang-org-x-crypto-bcrypt
f394db42
LF
922 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
923 (revision "1"))
8da09afc
LF
924 (package
925 (name "go-golang-org-x-crypto-bcrypt")
926 (version (git-version "0.0.0" revision commit))
927 (source (origin
928 (method git-fetch)
929 (uri (git-reference
930 (url "https://go.googlesource.com/crypto")
931 (commit commit)))
932 (file-name (string-append "go.googlesource.com-crypto-"
933 version "-checkout"))
934 (sha256
935 (base32
f394db42 936 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
8da09afc
LF
937 (build-system go-build-system)
938 (arguments
939 `(#:import-path "golang.org/x/crypto/bcrypt"
940 #:unpack-path "golang.org/x/crypto"
941 #:phases
942 (modify-phases %standard-phases
943 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
944 (lambda* (#:key outputs #:allow-other-keys)
945 (map (lambda (file)
946 (make-file-writable file))
947 (find-files
948 (string-append (assoc-ref outputs "out")
949 "/src/golang.org/x/crypto/ed25519/testdata")
950 ".*\\.gz$"))
951 #t)))))
952 (synopsis "Bcrypt in Go")
953 (description "This package provides a Go implementation of the bcrypt
954password hashing function.")
955 (home-page "https://go.googlesource.com/crypto/")
3cf3cdc9
LF
956 (license bsd-3))))
957
958(define-public go-golang-org-x-crypto-blowfish
f394db42
LF
959 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
960 (revision "1"))
3cf3cdc9
LF
961 (package
962 (name "go-golang-org-x-crypto-blowfish")
963 (version (git-version "0.0.0" revision commit))
964 (source (origin
965 (method git-fetch)
966 (uri (git-reference
967 (url "https://go.googlesource.com/crypto")
968 (commit commit)))
969 (file-name (string-append "go.googlesource.com-crypto-"
970 version "-checkout"))
971 (sha256
972 (base32
f394db42 973 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
3cf3cdc9
LF
974 (build-system go-build-system)
975 (arguments
976 `(#:import-path "golang.org/x/crypto/blowfish"
977 #:unpack-path "golang.org/x/crypto"
978 #:phases
979 (modify-phases %standard-phases
980 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
981 (lambda* (#:key outputs #:allow-other-keys)
982 (map (lambda (file)
983 (make-file-writable file))
984 (find-files
985 (string-append (assoc-ref outputs "out")
986 "/src/golang.org/x/crypto/ed25519/testdata")
987 ".*\\.gz$"))
988 #t)))))
989 (synopsis "Blowfish in Go")
990 (description "This package provides a Go implementation of the Blowfish
991symmetric-key block cipher.")
992 (home-page "https://go.googlesource.com/crypto/")
b65620b6
LF
993 (license bsd-3))))
994
995(define-public go-golang-org-x-crypto-pbkdf2
f394db42
LF
996 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
997 (revision "1"))
b65620b6
LF
998 (package
999 (name "go-golang-org-x-crypto-pbkdf2")
1000 (version (git-version "0.0.0" revision commit))
1001 (source (origin
1002 (method git-fetch)
1003 (uri (git-reference
1004 (url "https://go.googlesource.com/crypto")
1005 (commit commit)))
1006 (file-name (string-append "go.googlesource.com-crypto-"
1007 version "-checkout"))
1008 (sha256
1009 (base32
f394db42 1010 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
b65620b6
LF
1011 (build-system go-build-system)
1012 (arguments
1013 `(#:import-path "golang.org/x/crypto/pbkdf2"
1014 #:unpack-path "golang.org/x/crypto"
1015 #:phases
1016 (modify-phases %standard-phases
1017 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1018 (lambda* (#:key outputs #:allow-other-keys)
1019 (map (lambda (file)
1020 (make-file-writable file))
1021 (find-files
1022 (string-append (assoc-ref outputs "out")
1023 "/src/golang.org/x/crypto/ed25519/testdata")
1024 ".*\\.gz$"))
1025 #t)))))
1026 (synopsis "PBKDF2 in Go")
1027 (description "This package provides a Go implementation of the PBKDF2 key
1028derivation function.")
1029 (home-page "https://go.googlesource.com/crypto/")
63950f9b
LF
1030 (license bsd-3))))
1031
1032(define-public go-golang-org-x-crypto-tea
f394db42
LF
1033 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
1034 (revision "1"))
63950f9b
LF
1035 (package
1036 (name "go-golang-org-x-crypto-tea")
1037 (version (git-version "0.0.0" revision commit))
1038 (source (origin
1039 (method git-fetch)
1040 (uri (git-reference
1041 (url "https://go.googlesource.com/crypto")
1042 (commit commit)))
1043 (file-name (string-append "go.googlesource.com-crypto-"
1044 version "-checkout"))
1045 (sha256
1046 (base32
f394db42 1047 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
63950f9b
LF
1048 (build-system go-build-system)
1049 (arguments
1050 `(#:import-path "golang.org/x/crypto/tea"
1051 #:unpack-path "golang.org/x/crypto"
1052 #:phases
1053 (modify-phases %standard-phases
1054 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1055 (lambda* (#:key outputs #:allow-other-keys)
1056 (map (lambda (file)
1057 (make-file-writable file))
1058 (find-files
1059 (string-append (assoc-ref outputs "out")
1060 "/src/golang.org/x/crypto/ed25519/testdata")
1061 ".*\\.gz$"))
1062 #t)))))
1063 (synopsis "Tiny Encryption Algorithm (TEA) in Go")
1064 (description "This packages a Go implementation of the Tiny Encryption
1065Algorithm (TEA) block cipher.")
1066 (home-page "https://go.googlesource.com/crypto/")
7e7df095
LF
1067 (license bsd-3))))
1068
1069(define-public go-golang-org-x-crypto-salsa20
f394db42
LF
1070 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
1071 (revision "1"))
7e7df095
LF
1072 (package
1073 (name "go-golang-org-x-crypto-salsa20")
1074 (version (git-version "0.0.0" revision commit))
1075 (source (origin
1076 (method git-fetch)
1077 (uri (git-reference
1078 (url "https://go.googlesource.com/crypto")
1079 (commit commit)))
1080 (file-name (string-append "go.googlesource.com-crypto-"
1081 version "-checkout"))
1082 (sha256
1083 (base32
f394db42 1084 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
7e7df095
LF
1085 (build-system go-build-system)
1086 (arguments
1087 `(#:import-path "golang.org/x/crypto/salsa20"
1088 #:unpack-path "golang.org/x/crypto"
1089 #:phases
1090 (modify-phases %standard-phases
1091 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1092 (lambda* (#:key outputs #:allow-other-keys)
1093 (map (lambda (file)
1094 (make-file-writable file))
1095 (find-files
1096 (string-append (assoc-ref outputs "out")
1097 "/src/golang.org/x/crypto/ed25519/testdata")
1098 ".*\\.gz$"))
1099 #t)))))
1100 (synopsis "Salsa20 in Go")
1101 (description "This packages provides a Go implementation of the Salsa20
1102stream cipher.")
1103 (home-page "https://go.googlesource.com/crypto/")
95b493f2
LF
1104 (license bsd-3))))
1105
1106(define-public go-golang-org-x-crypto-cast5
f394db42
LF
1107 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
1108 (revision "1"))
95b493f2
LF
1109 (package
1110 (name "go-golang-org-x-crypto-cast5")
1111 (version (git-version "0.0.0" revision commit))
1112 (source (origin
1113 (method git-fetch)
1114 (uri (git-reference
1115 (url "https://go.googlesource.com/crypto")
1116 (commit commit)))
1117 (file-name (string-append "go.googlesource.com-crypto-"
1118 version "-checkout"))
1119 (sha256
1120 (base32
f394db42 1121 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
95b493f2
LF
1122 (build-system go-build-system)
1123 (arguments
1124 `(#:import-path "golang.org/x/crypto/cast5"
1125 #:unpack-path "golang.org/x/crypto"
1126 #:phases
1127 (modify-phases %standard-phases
1128 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1129 (lambda* (#:key outputs #:allow-other-keys)
1130 (map (lambda (file)
1131 (make-file-writable file))
1132 (find-files
1133 (string-append (assoc-ref outputs "out")
1134 "/src/golang.org/x/crypto/ed25519/testdata")
1135 ".*\\.gz$"))
1136 #t)))))
1137 (synopsis "Cast5 in Go")
1138 (description "This packages provides a Go implementation of the Cast5
932fb477
LF
1139symmetric-key block cipher.")
1140 (home-page "https://go.googlesource.com/crypto/")
1141 (license bsd-3))))
1142
1143(define-public go-golang-org-x-crypto-twofish
f394db42
LF
1144 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
1145 (revision "1"))
932fb477
LF
1146 (package
1147 (name "go-golang-org-x-crypto-twofish")
1148 (version (git-version "0.0.0" revision commit))
1149 (source (origin
1150 (method git-fetch)
1151 (uri (git-reference
1152 (url "https://go.googlesource.com/crypto")
1153 (commit commit)))
1154 (file-name (string-append "go.googlesource.com-crypto-"
1155 version "-checkout"))
1156 (sha256
1157 (base32
f394db42 1158 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
932fb477
LF
1159 (build-system go-build-system)
1160 (arguments
1161 `(#:import-path "golang.org/x/crypto/twofish"
1162 #:unpack-path "golang.org/x/crypto"
1163 #:phases
1164 (modify-phases %standard-phases
1165 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1166 (lambda* (#:key outputs #:allow-other-keys)
1167 (map (lambda (file)
1168 (make-file-writable file))
1169 (find-files
1170 (string-append (assoc-ref outputs "out")
1171 "/src/golang.org/x/crypto/ed25519/testdata")
1172 ".*\\.gz$"))
1173 #t)))))
1174 (synopsis "Twofish in Go")
1175 (description "This packages provides a Go implementation of the Twofish
95b493f2
LF
1176symmetric-key block cipher.")
1177 (home-page "https://go.googlesource.com/crypto/")
edcc061c
LF
1178 (license bsd-3))))
1179
1180(define-public go-golang-org-x-crypto-xtea
f394db42
LF
1181 (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419")
1182 (revision "1"))
edcc061c
LF
1183 (package
1184 (name "go-golang-org-x-crypto-xtea")
1185 (version (git-version "0.0.0" revision commit))
1186 (source (origin
1187 (method git-fetch)
1188 (uri (git-reference
1189 (url "https://go.googlesource.com/crypto")
1190 (commit commit)))
1191 (file-name (string-append "go.googlesource.com-crypto-"
1192 version "-checkout"))
1193 (sha256
1194 (base32
f394db42 1195 "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx"))))
edcc061c
LF
1196 (build-system go-build-system)
1197 (arguments
1198 `(#:import-path "golang.org/x/crypto/xtea"
1199 #:unpack-path "golang.org/x/crypto"
1200 #:phases
1201 (modify-phases %standard-phases
1202 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1203 (lambda* (#:key outputs #:allow-other-keys)
1204 (map (lambda (file)
1205 (make-file-writable file))
1206 (find-files
1207 (string-append (assoc-ref outputs "out")
1208 "/src/golang.org/x/crypto/ed25519/testdata")
1209 ".*\\.gz$"))
1210 #t)))))
1211 (synopsis "eXtended Tiny Encryption Algorithm (XTEA) in Go")
1212 (description "This package provides a Go implementation of the eXtended
1213Tiny Encryption Algorithm (XTEA) block cipher.")
1214 (home-page "https://go.googlesource.com/crypto/")
8da09afc
LF
1215 (license bsd-3))))
1216
4c3cc949
LF
1217(define* (go-golang-org-x-net-union #:optional
1218 (packages (list go-golang-org-x-net-ipv4
1219 go-golang-org-x-net-bpf
1220 go-golang-org-x-net-context
1221 go-golang-org-x-net-ipv6
1222 go-golang-org-x-net-proxy
1223 go-golang-org-x-net-internal-iana)))
1224 (package
1225 (name "go-golang-org-x-net")
1226 (version (package-version go-golang-org-x-net-ipv4))
1227 (source #f)
1228 (build-system trivial-build-system)
1229 (arguments
1230 '(#:modules ((guix build union))
1231 #:builder (begin
1232 (use-modules (ice-9 match)
1233 (guix build union))
1234 (match %build-inputs
1235 (((names . directories) ...)
1236 (union-build (assoc-ref %outputs "out")
1237 directories))))))
1238 (inputs (map (lambda (package)
1239 (list (package-name package) package))
1240 packages))
1241 (synopsis "Union of the Go net libraries")
1242 (description "A union of the Golang net libraries.")
1243 (home-page (package-home-page go-golang-org-x-net-ipv4))
1244 (license (package-license go-golang-org-x-net-ipv4))))
1245
b5ad117b 1246(define-public go-golang-org-x-net-ipv4
51bca8bd
LF
1247 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1248 (revision "1"))
b5ad117b
LF
1249 (package
1250 (name "go-golang-org-x-net-ipv4")
1251 (version (git-version "0.0.0" revision commit))
1252 (source (origin
1253 (method git-fetch)
1254 (uri (git-reference
1255 (url "https://go.googlesource.com/net")
1256 (commit commit)))
1257 (file-name (git-file-name name version))
1258 (sha256
1259 (base32
51bca8bd 1260 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
b5ad117b
LF
1261 (build-system go-build-system)
1262 (arguments
1263 `(#:import-path "golang.org/x/net/ipv4"
1264 #:unpack-path "golang.org/x/net"))
1265 (synopsis "Go IPv4 support")
1266 (description "This package provides @code{ipv4}, which implements IP-level
1267socket options for the Internet Protocol version 4.")
1268 (home-page "https://go.googlesource.com/net")
1269 (license bsd-3))))
1270
3544d525 1271(define-public go-golang-org-x-net-bpf
51bca8bd
LF
1272 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1273 (revision "1"))
3544d525
LF
1274 (package
1275 (name "go-golang-org-x-net-bpf")
1276 (version (git-version "0.0.0" revision commit))
1277 (source (origin
1278 (method git-fetch)
1279 (uri (git-reference
1280 (url "https://go.googlesource.com/net")
1281 (commit commit)))
1282 (file-name (string-append "go.googlesource.com-net-"
1283 version "-checkout"))
1284 (sha256
1285 (base32
51bca8bd 1286 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
3544d525
LF
1287 (build-system go-build-system)
1288 (arguments
1289 `(#:import-path "golang.org/x/net/bpf"
1290 #:unpack-path "golang.org/x/net"))
1291 (synopsis "Berkeley Packet Filters (BPF) in Go")
1292 (description "This packages provides a Go implementation of the Berkeley
1293Packet Filter (BPF) virtual machine.")
1294 (home-page "https://go.googlesource.com/net/")
303dfd5c
LF
1295 (license bsd-3))))
1296
1297(define-public go-golang-org-x-net-context
51bca8bd
LF
1298 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1299 (revision "1"))
303dfd5c
LF
1300 (package
1301 (name "go-golang-org-x-net-context")
1302 (version (git-version "0.0.0" revision commit))
1303 (source (origin
1304 (method git-fetch)
1305 (uri (git-reference
1306 (url "https://go.googlesource.com/net")
1307 (commit commit)))
1308 (file-name (string-append "go.googlesource.com-net-"
1309 version "-checkout"))
1310 (sha256
1311 (base32
51bca8bd 1312 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
303dfd5c
LF
1313 (build-system go-build-system)
1314 (arguments
1315 `(#:import-path "golang.org/x/net/context"
1316 #:unpack-path "golang.org/x/net"))
1317 (synopsis "Golang Context type")
1318 (description "This packages provides @code{context}, which defines the
1319Context type, which carries deadlines, cancelation signals, and other
1320request-scoped values across API boundaries and between processes.")
1321 (home-page "https://go.googlesource.com/net/")
f20d1300
LF
1322 (license bsd-3))))
1323
1324(define-public go-golang-org-x-net-internal-iana
51bca8bd
LF
1325 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1326 (revision "1"))
f20d1300
LF
1327 (package
1328 (name "go-golang-org-x-net-internal-iana")
1329 (version (git-version "0.0.0" revision commit))
1330 (source (origin
1331 (method git-fetch)
1332 (uri (git-reference
1333 (url "https://go.googlesource.com/net")
1334 (commit commit)))
1335 (file-name (string-append "go.googlesource.com-net-"
1336 version "-checkout"))
1337 (sha256
1338 (base32
51bca8bd 1339 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
f20d1300
LF
1340 (build-system go-build-system)
1341 (arguments
1342 `(#:import-path "golang.org/x/net/internal/iana"
1343 #:unpack-path "golang.org/x/net"))
1344 (synopsis "Go support for assigned numbers (IANA)")
1345 (description "This packages provides @code{iana}, which provides protocol
1346number resources managed by the Internet Assigned Numbers Authority (IANA).")
1347 (home-page "https://go.googlesource.com/net/")
3544d525
LF
1348 (license bsd-3))))
1349
8c73bb2c 1350(define-public go-golang-org-x-net-ipv6
51bca8bd
LF
1351 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1352 (revision "1"))
8c73bb2c
LF
1353 (package
1354 (name "go-golang-org-x-net-ipv6")
1355 (version (git-version "0.0.0" revision commit))
1356 (source (origin
1357 (method git-fetch)
1358 (uri (git-reference
1359 (url "https://go.googlesource.com/net")
1360 (commit commit)))
1361 (file-name (string-append "go.googlesource.com-net-"
1362 version "-checkout"))
1363 (sha256
1364 (base32
51bca8bd 1365 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
8c73bb2c
LF
1366 (build-system go-build-system)
1367 (arguments
1368 `(#:import-path "golang.org/x/net/ipv6"
1369 #:unpack-path "golang.org/x/net"))
1370 (synopsis "Go IPv6 support")
1371 (description "This packages provides @code{ipv6}, which implements
1372IP-level socket options for the Internet Protocol version 6.")
1373 (home-page "https://go.googlesource.com/net")
04e2d470
LF
1374 (license bsd-3))))
1375
1376(define-public go-golang-org-x-net-proxy
51bca8bd
LF
1377 (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6")
1378 (revision "1"))
04e2d470
LF
1379 (package
1380 (name "go-golang-org-x-net-proxy")
1381 (version (git-version "0.0.0" revision commit))
1382 (source (origin
1383 (method git-fetch)
1384 (uri (git-reference
1385 (url "https://go.googlesource.com/net")
1386 (commit commit)))
1387 (file-name (string-append "go.googlesource.com-net-"
1388 version "-checkout"))
1389 (sha256
1390 (base32
51bca8bd 1391 "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03"))))
04e2d470
LF
1392 (build-system go-build-system)
1393 (arguments
1394 `(#:import-path "golang.org/x/net/proxy"
1395 #:unpack-path "golang.org/x/net/"))
1396 (synopsis "Go support for network proxies")
1397 (description "This packages provides @code{proxy}, which provides support
1398for a variety of protocols to proxy network data.")
1399 (home-page "https://go.googlesource.com/net")
8c73bb2c
LF
1400 (license bsd-3))))
1401
bde48edc 1402(define-public go-golang-org-x-sys-unix
2b458860
LF
1403 (let ((commit "83801418e1b59fb1880e363299581ee543af32ca")
1404 (revision "1"))
bde48edc
LF
1405 (package
1406 (name "go-golang-org-x-sys-unix")
1407 (version (git-version "0.0.0" revision commit))
1408 (source (origin
1409 (method git-fetch)
1410 (uri (git-reference
1411 (url "https://go.googlesource.com/sys")
1412 (commit commit)))
1413 (file-name (git-file-name name version))
1414 (sha256
1415 (base32
2b458860 1416 "0ilykaanvnzb27d42kmbr4i37hcn7hgqbx98z945gy63aa8dskji"))))
bde48edc
LF
1417 (build-system go-build-system)
1418 (arguments
1419 `(#:import-path "golang.org/x/sys/unix"
2b458860
LF
1420 #:unpack-path "golang.org/x/sys"
1421 #:phases
1422 (modify-phases %standard-phases
1423 (add-after 'unpack 'patch-tests
1424 (lambda _
1425 (pk (getcwd))
1426 (substitute* "src/golang.org/x/sys/unix/syscall_unix_test.go"
1427 (("/usr/bin") "/tmp"))
1428 #t)))))
bde48edc
LF
1429 (synopsis "Go support for low-level system interaction")
1430 (description "This package provides @code{unix}, which offers Go support
1431for low-level interaction with the operating system.")
1432 (home-page "https://go.googlesource.com/sys")
1433 (license bsd-3))))
73a2f841 1434
ae8c7774
LF
1435(define* (go-golang-org-x-text-union #:optional
1436 (packages (list go-golang-org-x-text-transform
1437 go-golang-org-x-text-unicode-norm)))
1438 (package
1439 (name "go-golang-org-x-text")
1440 (version (package-version go-golang-org-x-text-transform))
1441 (source #f)
1442 (build-system trivial-build-system)
1443 (arguments
1444 '(#:modules ((guix build union))
1445 #:builder (begin
1446 (use-modules (ice-9 match)
1447 (guix build union))
1448 (match %build-inputs
1449 (((names . directories) ...)
1450 (union-build (assoc-ref %outputs "out")
1451 directories))))))
1452 (inputs (map (lambda (package)
1453 (list (package-name package) package))
1454 packages))
1455 (synopsis "Union of the Go text libraries")
1456 (description "A union of the Golang text libraries.")
1457 (home-page (package-home-page go-golang-org-x-text-transform))
1458 (license (package-license go-golang-org-x-text-transform))))
1459
e4ef4772 1460(define-public go-golang-org-x-text-transform
924d777a
LF
1461 (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
1462 (revision "1"))
e4ef4772
LF
1463 (package
1464 (name "go-golang-org-x-text-transform")
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
924d777a 1475 "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
e4ef4772
LF
1476 (build-system go-build-system)
1477 (arguments
1478 `(#:import-path "golang.org/x/text/transform"
1479 #:unpack-path "golang.org/x/text"))
1480 (synopsis "Go text transformation")
1481 (description "This package provides @code{transform}, which provides
1482reader and writer wrappers that transform the bytes passing through. Example
1483transformations provided by other packages include normalization and conversion
1484between character sets.")
1485 (home-page "https://go.googlesource.com/text")
ea969c6b
LF
1486 (license bsd-3))))
1487
1488(define-public go-golang-org-x-text-unicode-norm
924d777a
LF
1489 (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3")
1490 (revision "1"))
ea969c6b
LF
1491 (package
1492 (name "go-golang-org-x-text-unicode-norm")
1493 (version (git-version "0.0.0" revision commit))
1494 (source (origin
1495 (method git-fetch)
1496 (uri (git-reference
1497 (url "https://go.googlesource.com/text")
1498 (commit commit)))
1499 (file-name (string-append "go.googlesource.com-text-"
1500 version "-checkout"))
1501 (sha256
1502 (base32
924d777a 1503 "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w"))))
ea969c6b
LF
1504 (build-system go-build-system)
1505 (arguments
1506 `(#:import-path "golang.org/x/text/unicode/norm"
1507 #:unpack-path "golang.org/x/text"))
1508 (synopsis "Unicode normalization in Go")
1509 (description "This package provides @code{norm}, which contains types and
1510functions for normalizing Unicode strings.")
1511 (home-page "https://go.googlesource.com/text")
e4ef4772
LF
1512 (license bsd-3))))
1513
6deb73c4 1514(define-public go-github-com-audriusbutkevicius-pfilter
23e2c09c
LF
1515 (let ((commit "9dca34a5b530bfc9843fa8aa2ff08ff9821032cb")
1516 (revision "2"))
6deb73c4
LF
1517 (package
1518 (name "go-github-com-audriusbutkevicius-pfilter")
1519 (version (git-version "0.0.0" revision commit))
1520 (source
1521 (origin
1522 (method git-fetch)
1523 (uri (git-reference
1524 (url "https://github.com/AudriusButkevicius/pfilter.git")
1525 (commit commit)))
1526 (file-name (git-file-name name version))
1527 (sha256
1528 (base32
23e2c09c 1529 "0i4qbnwba49db27fb1y792gcvhb0m744i9q4zgwjbypqmy3bj2a5"))))
6deb73c4
LF
1530 (build-system go-build-system)
1531 (arguments
1532 '(#:import-path "github.com/AudriusButkevicius/pfilter"))
1533 (synopsis "Filter packets into mulitple virtual connections")
1534 (description "Pfilter is a Go package for filtering packets into multiple
1535virtual connections from a single physical connection.")
1536 (home-page "https://github.com/AudriusButkevicius/pfilter")
1537 (license expat))))
1538
db64cb40 1539(define-public go-github-com-ccding-go-stun
3b58b7f2
LF
1540 (let ((commit "d9bbe8f8fa7bf7ed03e6cfc6a2796bb36139e1f4")
1541 (revision "1"))
db64cb40
LF
1542 (package
1543 (name "go-github-com-ccding-go-stun")
1544 (version (git-version "0.0.0" revision commit))
1545 (source
1546 (origin
1547 (method git-fetch)
1548 (uri (git-reference
1549 (url "https://github.com/ccding/go-stun.git")
1550 (commit commit)))
1551 (file-name (git-file-name name version))
1552 (sha256
1553 (base32
3b58b7f2 1554 "04a4q69cmw6snlx54wikyj1y6gk94qzm9xv9als17inmj8z60xv7"))))
db64cb40
LF
1555 (build-system go-build-system)
1556 (arguments
1557 '(#:import-path "github.com/ccding/go-stun"))
1558 (synopsis "STUN client implementation")
1559 (description "Go-stun is a go implementation of the STUN client (RFC 3489
1560and RFC 5389).")
1561 (home-page "https://github.com/ccding/go-stun")
1562 (license asl2.0))))
1563
2785690a 1564(define-public go-github-com-chmduquesne-rollinghash-adler32
e1c81535
LF
1565 (let ((commit "3dc7875a1f890f9bcf0619adb5571fc6f7d516bb")
1566 (revision "1"))
2785690a
LF
1567 (package
1568 (name "go-github-com-chmduquesne-rollinghash-adler32")
1569 (version (git-version "0.0.0" revision commit))
1570 (source
1571 (origin
1572 (method git-fetch)
1573 (uri (git-reference
1574 (url "https://github.com/chmduquesne/rollinghash.git")
1575 (commit commit)))
1576 (file-name (git-file-name name version))
1577 (sha256
1578 (base32
e1c81535 1579 "0frl021qdqcdyk9fccw6x1v2byvh0hls4rsrdjih5jgqpc18kx6y"))))
2785690a
LF
1580 (build-system go-build-system)
1581 (arguments
1582 '(#:import-path "github.com/chmduquesne/rollinghash/adler32"
1583 #:unpack-path "github.com/chmduquesne/rollinghash"))
1584 (synopsis "Adler-32 rolling hash in Go")
1585 (description "This package provides a Go implementation of the Adler-32
1586rolling hash.")
1587 (home-page "https://github.com/chmduquesne/rollinghash")
1588 (license expat))))
1589
27fbcae6
LF
1590(define-public go-github-com-xtaci-kcp-go
1591 (let ((commit "86eebd5cadb519b7c9306082c7eb3bcee2c49a7b")
1592 (revision "0"))
3d86b557 1593 (package
27fbcae6 1594 (name "go-github-com-xtaci-kcp-go")
3d86b557
LF
1595 (version (git-version "0.0.0" revision commit))
1596 (source
1597 (origin
1598 (method git-fetch)
1599 (uri (git-reference
27fbcae6 1600 (url "https://github.com/xtaci/kcp-go")
3d86b557
LF
1601 (commit commit)))
1602 (file-name (git-file-name name version))
1603 (sha256
1604 (base32
27fbcae6 1605 "1mdfsya4y04nycfgsk9ghm67zpim5pw78si3f1566xgrv4ghl0ni"))))
3d86b557
LF
1606 (build-system go-build-system)
1607 (propagated-inputs
1608 `(("go-golang-org-x-net-ipv4" ,go-golang-org-x-net-ipv4)
27fbcae6
LF
1609 ("go-github-com-klauspost-reedsolomon"
1610 ,go-github-com-klauspost-reedsolomon)
4cf6827d 1611 ("go-github-com-tjfoc-gmsm-sm4" ,go-github-com-tjfoc-gmsm-sm4)
3d86b557
LF
1612 ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
1613 ("go-golang-org-x-crypto" ,(go-golang-org-x-crypto-union))
1614 ("go-github-com-templexxx-xor" ,go-github-com-templexxx-xor)))
1615 (arguments
27fbcae6
LF
1616 '(#:import-path "github.com/xtaci/kcp-go"
1617 ;; XXX update comment
3d86b557
LF
1618 ;; 'TestListenerClose' is known to fail. It seems that the test suite
1619 ;; is not being used upstream:
1620 ;; https://github.com/AudriusButkevicius/kcp-go/pull/1
1621 #:tests? #f))
1622 (synopsis "Reliable UDP connections in Go")
1623 (description "This package provides @code{kcp-go}, a reliable UDP library
1624written in Go. It offers fast, ordered and error-checked delivery of streams
1625over UDP packets.")
1626 (home-page "https://github.com/xtaci/kcp-go")
1627 (license expat))))
1628
66500b27 1629(define-public go-github-com-templexxx-xor
b39bd1d4
LF
1630 (package
1631 (name "go-github-com-templexxx-xor")
1632 (version "0.1.2")
1633 (source
1634 (origin
1635 (method git-fetch)
1636 (uri (git-reference
1637 (url "https://github.com/templexxx/xor.git")
1638 (commit version)))
1639 (file-name (git-file-name name version))
1640 (sha256
1641 (base32
1642 "0v1maiii0sggmxk9bgpy6pypb40j3hy2328pc4kd5bldkpdb67d5"))))
1643 (build-system go-build-system)
1644 (arguments
1645 '(#:import-path "github.com/templexxx/xor"))
1646 (propagated-inputs
1647 `(("go-github-com-templexxx-cpufeat" ,go-github-com-templexxx-cpufeat)))
1648 (synopsis "XOR in Go")
1649 (description "This packages provides a Go implementation of XOR.")
1650 (home-page "https://github.com/templexxx/xor")
1651 (license expat)))
66500b27 1652
3ce46390 1653(define-public go-github-com-xtaci-smux
a1d1e55c 1654 (let ((commit "c3e18246ff2252a6e9d6b529fcbf22ae5c74c007")
3ce46390
LF
1655 (revision "0"))
1656 (package
1657 (name "go-github-com-xtaci-smux")
a1d1e55c 1658 (version (git-version "1.0.6" revision commit))
3ce46390
LF
1659 (source
1660 (origin
1661 (method git-fetch)
1662 (uri (git-reference
1663 (url "https://github.com/xtaci/smux.git")
1664 (commit commit)))
1665 (file-name (git-file-name name version))
1666 (sha256
1667 (base32
a1d1e55c 1668 "1dfmxd9g31idldhq6n7r998gi4jw51ji3xvkjrzypsw2ypbjx1dz"))))
3ce46390
LF
1669 (build-system go-build-system)
1670 (propagated-inputs
1671 `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)))
1672 (arguments
1673 '(#:import-path "github.com/xtaci/smux"))
1674 (synopsis "Network multiplexing in Go")
1675 (description "Smux ( Simple MUltipleXing) is a multiplexing library for
1676Golang. It relies on an underlying connection to provide reliability and
1677ordering, such as TCP or KCP, and provides stream-oriented multiplexing.")
1678 (home-page "https://github.com/xtaci/smux")
1679 (license expat))))
1680
936e02b4 1681(define-public go-github-com-pkg-errors
1ad4e366
LF
1682 (let ((commit "e881fd58d78e04cf6d0de1217f8707c8cc2249bc")
1683 (revision "1"))
936e02b4
LF
1684 (package
1685 (name "go-github-com-pkg-errors")
1686 (version (git-version "0.0.0" revision commit))
1687 (source (origin
1688 (method git-fetch)
1689 (uri (git-reference
1690 (url "https://github.com/pkg/errors.git")
1691 (commit commit)))
1692 (file-name (git-file-name name version))
1693 (sha256
1694 (base32
1ad4e366 1695 "0vfhj598jp6dzy4pbyjdrqxzb5kppw8ggvfh78g80nz11r34xnzs"))))
936e02b4
LF
1696 (build-system go-build-system)
1697 (arguments
1698 `(#:import-path "github.com/pkg/errors"))
1699 (synopsis "Go error handling primitives")
1700 (description "This packages provides @code{error}, which offers simple
1701error handling primitives in Go.")
1702 (home-page "https://github.com/pkg/errors")
1703 (license bsd-2))))
1704
cb42a2a8 1705(define-public go-golang-org-x-time-rate
3aecf5bd
LF
1706 (let ((commit "6dc17368e09b0e8634d71cac8168d853e869a0c7")
1707 (revision "1"))
cb42a2a8
LF
1708 (package
1709 (name "go-golang-org-x-time-rate")
1710 (version (git-version "0.0.0" revision commit))
1711 (source (origin
1712 (method git-fetch)
1713 (uri (git-reference
1714 (url "https://go.googlesource.com/time")
1715 (commit commit)))
1716 (file-name (git-file-name name version))
1717 (sha256
1718 (base32
3aecf5bd 1719 "1fx4cf5fpdz00g3c7vxzy92hdcg0vh4yqw00qp5s52j72qixynbk"))))
cb42a2a8
LF
1720 (build-system go-build-system)
1721 (arguments
1722 `(#:import-path "golang.org/x/time/rate"
1723 #:unpack-path "golang.org/x/time"))
1724 (propagated-inputs
1725 `(("go-golang-org-x-net-context" ,go-golang-org-x-net-context)))
1726 (synopsis "Rate limiting in Go")
1727 (description "This package provides @{rate}, which implements rate
1728limiting in Go.")
1729 (home-page "https://godoc.org/golang.org/x/time/rate")
1730 (license bsd-3))))
1731
73a2f841
LF
1732(define-public go-github-com-petermattis-goid
1733 (let ((commit "3db12ebb2a599ba4a96bea1c17b61c2f78a40e02")
1734 (revision "0"))
1735 (package
1736 (name "go-github-com-petermattis-goid")
1737 (version (git-version "0.0.0" revision commit))
1738 (source (origin
1739 (method git-fetch)
1740 (uri (git-reference
1741 (url "https://github.com/petermattis/goid.git")
1742 (commit commit)))
1743 (file-name (git-file-name name version))
1744 (sha256
1745
1746 (base32
1747 "0z18a3mr72c52g7g94n08gxw0ksnaafbfwdl5p5jav2sffirb0kd"))))
1748 (build-system go-build-system)
1749 (arguments
1750 '(#:import-path "github.com/petermattis/goid"))
1751 (synopsis "Identify the running goroutine")
1752 (description "This package offers a method of programatically retrieving
1753the current goroutine's ID.")
1754 (home-page "https://github.com/petermattis/goid")
1755 (license asl2.0))))
71415e23
LF
1756
1757(define-public go-github-com-audriusbutkevicius-cli
1758 (let ((commit "7f561c78b5a4aad858d9fd550c92b5da6d55efbb")
1759 (revision "0"))
1760 (package
1761 (name "go-github-com-audriusbutkevicius-cli")
1762 (version (git-version "0.0.0" revision commit))
1763 (source (origin
1764 (method git-fetch)
1765 (uri (git-reference
1766 (url "https://github.com/AudriusButkevicius/cli.git")
1767 (commit commit)))
1768 (file-name (git-file-name name version))
1769 (sha256
1770 (base32
1771 "0bg26pfg25vr16jmczig2m493mja2nxjxyswz3hha7avxw20rpi5"))))
1772 (build-system go-build-system)
1773 (arguments
1774 '(#:import-path "github.com/AudriusButkevicius/cli"))
1775 (synopsis "Library for building command-line interfaces in Go")
1776 (description "This package provides a library for building command-line
1777interfaces in Go.")
1778 (home-page "https://github.com/AudriusButkevicius/cli")
1779 (license expat))))
89d91ee2
LF
1780
1781(define-public go-github-com-kballard-go-shellquote
1782 (let ((commit "cd60e84ee657ff3dc51de0b4f55dd299a3e136f2")
1783 (revision "0"))
1784 (package
1785 (name "go-github-com-kballard-go-shellquote")
1786 (version (git-version "0.0.0" revision commit))
1787 (source (origin
1788 (method git-fetch)
1789 (uri (git-reference
1790 (url "https://github.com/kballard/go-shellquote.git")
1791 (commit commit)))
1792 (file-name (git-file-name name version))
1793 (sha256
1794 (base32
1795 "1xjpin4jq1zl84dcn96xhjmn9bsfyszf6g9aqyj2dc0xfi6c88y0"))))
1796 (build-system go-build-system)
1797 (arguments
1798 '(#:import-path "github.com/kballard/go-shellquote"))
1799 (synopsis "Shell-style string joins and splits")
1800 (description "Shellquote provides utilities for joining/splitting strings
1801using sh's word-splitting rules.")
1802 (home-page "https://github.com/kballard/go-shellquote")
1803 (license expat))))
a3d98dd8
LF
1804
1805(define-public go-github-com-templexxx-cpufeat
1806 (let ((commit "3794dfbfb04749f896b521032f69383f24c3687e")
1807 (revision "0"))
1808 (package
1809 (name "go-github-com-templexxx-cpufeat")
1810 (version (git-version "0.0.0" revision commit))
1811 (source (origin
1812 (method git-fetch)
1813 (uri (git-reference
1814 (url "https://github.com/templexxx/cpufeat.git")
1815 (commit commit)))
1816 (file-name (git-file-name name version))
1817 (sha256
1818 (base32
1819 "0b9f5p6nsiv907rz5d66qzgxnsz4k68r2f45vxi2hwdbnkjfxz8j"))))
1820 (build-system go-build-system)
1821 (arguments
1822 '(#:import-path "github.com/templexxx/cpufeat"))
1823 (synopsis "CPU feature identification for Go")
1824 (description "This package provides @code{cpu}, which implements
1825processor feature detection used by the Go standard libary.")
1826 (home-page "https://github.com/templexxx/cpufeat")
1827 (license bsd-3))))
f44169c2
LF
1828
1829(define-public go-github-com-tjfoc-gmsm-sm4
d4138c0c
LF
1830 (let ((commit "98aa888b79d8de04afe0fccf45ed10594efc858b")
1831 (revision "1"))
f44169c2
LF
1832 (package
1833 (name "go-github-com-tjfoc-gmsm-sm4")
1834 (version (git-version "0.0.0" revision commit))
1835 (source (origin
1836 (method git-fetch)
1837 (uri (git-reference
1838 (url "https://github.com/tjfoc/gmsm")
1839 (commit commit)))
1840 (file-name (git-file-name name version))
1841 (sha256
1842 (base32
d4138c0c 1843 "1ii4imnz3ims2s23pdv0l4ijzxjsvl82h4yzgfqm5y809ph6pjq9"))))
f44169c2
LF
1844 (build-system go-build-system)
1845 (arguments
1846 '(#:import-path "github.com/tjfoc/gmsm/sm4"
1847 #:unpack-path "github.com/tjfoc/gmsm"))
1848 (synopsis "SM4 block cipher")
1849 (description "This package provides a Go implementation of SM4, a block
1850cipher used in the Chinese National Standard for Wireless LAN WAPI (Wired
1851Authentication and Privacy Infrastructure).")
1852 (home-page "https://github.com/tjfoc/gmsm")
1853 (license asl2.0))))
52ff28e4
LF
1854
1855(define-public go-github-com-zillode-notify
38ea2802
LF
1856 (let ((commit "8fff849a2026ce7a59f67ed9747dd9c7adc8bd0b")
1857 (revision "1"))
52ff28e4
LF
1858 (package
1859 (name "go-github-com-zillode-notify")
1860 (version (git-version "0.0.0" revision commit))
1861 (source (origin
1862 (method git-fetch)
1863 (uri (git-reference
1864 (url "https://github.com/zillode/notify")
1865 (commit commit)))
1866 (file-name (git-file-name name version))
1867 (sha256
1868 (base32
38ea2802 1869 "1aazci21y85k1c02dlvdfx926vxb3j4i96fn27s7zxmqjlk7l3ga"))))
52ff28e4
LF
1870 (build-system go-build-system)
1871 (arguments
1872 '(#:import-path "github.com/zillode/notify"))
1873 (propagated-inputs
1874 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
1875 (synopsis "Filesystem event notification library")
162a1374 1876 (description "This package provides @code{notify}, a file system event
52ff28e4
LF
1877notification library in Go.")
1878 (home-page "https://github.com/zillode/notify")
1879 (license expat))))
63aade45
LF
1880
1881(define-public go-github-com-klauspost-cpuid
1882 (let ((commit "eae9b3e628d72774e13bdf024e78c0802f85a5b9")
1883 (revision "0"))
1884 (package
1885 (name "go-github-com-klauspost-cpuid")
1886 (version (git-version "1.1" revision commit))
1887 (source (origin
1888 (method git-fetch)
1889 (uri (git-reference
1890 (url "https://github.com/klauspost/cpuid.git")
1891 (commit commit)))
1892 (file-name (git-file-name name version))
1893 (sha256
1894 (base32
1895 "0dgxlsxdfhfapmz1qlvc919m3kcbmfqcfpxk78zl9am5zc3zr689"))))
1896 (build-system go-build-system)
1897 (arguments
1898 '(#:import-path "github.com/klauspost/cpuid"))
1899 (synopsis "CPU feature identification library")
1900 (description "This package provides @code{cpuid}, a Go library that provides information about the CPU running the current program")
1901 (home-page "https://github.com/klauspost/cpuid")
1902 (license expat))))
e62d0575
LF
1903
1904(define-public go-github-com-klauspost-reedsolomon
1905 (let ((commit "0b30fa71cc8e4e9010c9aba6d0320e2e5b163b29")
1906 (revision "0"))
1907 (package
1908 (name "go-github-com-klauspost-reedsolomon")
1909 (version (git-version "1.6" revision commit))
1910 (source (origin
1911 (method git-fetch)
1912 (uri (git-reference
1913 (url "https://github.com/klauspost/reedsolomon.git")
1914 (commit commit)))
1915 (file-name (git-file-name name version))
1916 (sha256
1917 (base32
1918 "04jvf65ybsa7w4d7s2n0s174p0q2fl0dqd5hhn2krw66z9i3rc6d"))))
1919 (build-system go-build-system)
1920 (arguments
1921 '(#:import-path "github.com/klauspost/reedsolomon"))
1922 (propagated-inputs
1923 `(("go-github-com-klauspost-cpuid"
1924 ,go-github-com-klauspost-cpuid)))
1925 (synopsis "Reed-Solomon Erasure Coding in Go")
1926 (description "This package provides and implemenation of Reed-Solomon
1927Erasure Coding in Go.")
1928 (home-page "https://github.com/klauspost/reedsolomon")
1929 (license expat))))
a04434f2
LF
1930
1931(define-public go-github-com-beorn7-perks-quantile
1932 (let ((commit "4c0e84591b9aa9e6dcfdf3e020114cd81f89d5f9")
1933 (revision "0"))
1934 (package
1935 (name "go-github-com-beorn7-perks-quantile")
1936 (version (git-version "0.0.0" revision commit))
1937 (source (origin
1938 (method git-fetch)
1939 (uri (git-reference
1940 (url "https://github.com/beorn7/perks.git")
1941 (commit commit)))
1942 (file-name (git-file-name name version))
1943 (sha256
1944 (base32
1945 "1hrybsql68xw57brzj805xx2mghydpdiysv3gbhr7f5wlxj2514y"))))
1946 (build-system go-build-system)
1947 (arguments
1948 '(#:import-path "github.com/beorn7/perks/quantile"
1949 #:unpack-path "github.com/beorn7/perks"))
1950 (synopsis "Compute approximate quantiles over an unbounded data stream")
1951 (description "Perks contains the Go package @code{quantile} that computes
1952approximate quantiles over an unbounded data stream within low memory and CPU
1953bounds.")
1954 (home-page "https://github.com/beorn7/perks")
1955 (license expat))))
339e44da
LF
1956
1957(define-public go-github-com-golang-protobuf-proto
1958 (let ((commit "1e59b77b52bf8e4b449a57e6f79f21226d571845")
1959 (revision "0"))
1960 (package
1961 (name "go-github-com-golang-protobuf-proto")
1962 (version (git-version "0.0.0" revision commit))
1963 (source (origin
1964 (method git-fetch)
1965 (uri (git-reference
1966 (url "https://github.com/golang/protobuf.git")
1967 (commit commit)))
1968 (file-name (git-file-name name version))
1969 (sha256
1970 (base32
1971 "19bkh81wnp6njg3931wky6hsnnl2d1ig20vfjxpv450sd3k6yys8"))))
1972 (build-system go-build-system)
1973 (arguments
1974 '(#:import-path "github.com/golang/protobuf/proto"
1975 #:unpack-path "github.com/golang/protobuf"
1976 #:tests? #f ; requires unpackaged golang.org/x/sync/errgroup
1977 ))
1978 (synopsis "Go support for Protocol Buffers")
1979 (description "This package provides Go support for the Protocol Buffers
1980data serialization format.")
1981 (home-page "https://github.com/golang/protobuf")
1982 (license bsd-3))))
4b6b1a38
LF
1983
1984(define-public go-github-com-prometheus-client-model-go
1985 (let ((commit "99fa1f4be8e564e8a6b613da7fa6f46c9edafc6c")
1986 (revision "0"))
1987 (package
1988 (name "go-github-com-prometheus-client-model-go")
1989 (version (git-version "0.0.2" revision commit))
1990 (source (origin
1991 (method git-fetch)
1992 (uri (git-reference
1993 (url "https://github.com/prometheus/client_model.git")
1994 (commit commit)))
1995 (file-name (git-file-name name version))
1996 (sha256
1997 (base32
1998 "19y4ywsivhpxj7ikf2j0gm9k3cmyw37qcbfi78n526jxcc7kw998"))))
1999 (build-system go-build-system)
2000 (arguments
2001 '(#:import-path "github.com/prometheus/client_model/go"
2002 #:unpack-path "github.com/prometheus/client_model"))
2003 (propagated-inputs
2004 `(("go-github-com-golang-protobuf-proto"
2005 ,go-github-com-golang-protobuf-proto)))
2006 (synopsis "Data model artifacts for Prometheus")
2007 (description "This package provides data model artifacts for Prometheus.")
2008 (home-page "https://github.com/prometheus/client_model")
2009 (license asl2.0))))
1da227b0
LF
2010
2011(define-public go-github-com-matttproud-golang-protobuf-extensions-pbutil
2012 (let ((commit "c12348ce28de40eed0136aa2b644d0ee0650e56c")
2013 (revision "0"))
2014 (package
2015 (name "go-github-com-matttproud-golang-protobuf-extensions-pbutil")
2016 (version (git-version "1.0.0" revision commit))
2017 (source
2018 (origin
2019 (method git-fetch)
2020 (uri
2021 (git-reference
2022 (url "https://github.com/matttproud/golang_protobuf_extensions.git")
2023 (commit commit)))
2024 (file-name (git-file-name name version))
2025 (sha256
2026 (base32
2027 "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya"))))
2028 (build-system go-build-system)
2029 (arguments
2030 '(#:import-path "github.com/matttproud/golang_protobuf_extensions/pbutil"
2031 #:unpack-path "github.com/matttproud/golang_protobuf_extensions"))
2032 (propagated-inputs
2033 `(("go-github-com-golang-protobuf-proto"
2034 ,go-github-com-golang-protobuf-proto)))
2035 (synopsis "Streaming Protocol Buffers in Go")
2036 (description "This package provides various Protocol Buffer
2037extensions for the Go language, namely support for record length-delimited
2038message streaming.")
2039 (home-page "https://github.com/matttproud/golang_protobuf_extensions")
2040 (license asl2.0))))