gnu: Add cl-ana.statistical-learning.
[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, 2018, 2019 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 #:use-module (gnu packages)
28 #:use-module (gnu packages golang))
29
30 (define-public syncthing
31 (package
32 (name "syncthing")
33 (version "1.2.2")
34 (source (origin
35 (method url-fetch)
36 (uri (string-append "https://github.com/syncthing/syncthing"
37 "/releases/download/v" version
38 "/syncthing-source-v" version ".tar.gz"))
39 (sha256
40 (base32
41 "1wdjh8xw09s1nfkpc95v04619gqa4dpbygp2y5l35ww4g916lv3s"))
42 (modules '((guix build utils)))
43 ;; Delete bundled ("vendored") free software source code.
44 (snippet '(begin
45 (delete-file-recursively "vendor")
46 #t))))
47 (build-system go-build-system)
48 ;; The primary Syncthing executable goes to "out", while the auxiliary
49 ;; server programs and utility tools go to "utils". This reduces the size
50 ;; of "out" by ~80 MiB.
51 (outputs '("out" "utils"))
52 ;; When updating Syncthing, check 'go.mod' in the source distribution to
53 ;; ensure we are using the correct versions of these dependencies.
54 (inputs
55 `(("go-github-com-audriusbutkevicius-go-nat-pmp"
56 ,go-github-com-audriusbutkevicius-go-nat-pmp)
57 ("go-github-com-bkaradzic-go-lz4" ,go-github-com-bkaradzic-go-lz4)
58 ("go-github-com-calmh-xdr" ,go-github-com-calmh-xdr)
59 ("go-github-com-chmduquesne-rollinghash"
60 ,go-github-com-chmduquesne-rollinghash)
61 ("go-github-com-gobwas-glob" ,go-github-com-gobwas-glob)
62 ("go-github-com-golang-groupcache-lru"
63 ,go-github-com-golang-groupcache-lru)
64 ("go-github-com-jackpal-gateway" ,go-github-com-jackpal-gateway)
65 ("go-github-com-kballard-go-shellquote"
66 ,go-github-com-kballard-go-shellquote)
67 ("go-github-com-lib-pq" ,go-github-com-lib-pq)
68 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
69 ("go-github-com-oschwald-geoip2-golang"
70 ,go-github-com-oschwald-geoip2-golang)
71 ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
72 ("go-github-com-rcrowley-go-metrics" ,go-github-com-rcrowley-go-metrics)
73 ("go-github-com-sasha-s-go-deadlock" ,go-github-com-sasha-s-go-deadlock)
74 ("go-github-com-syncthing-notify" ,go-github-com-syncthing-notify)
75 ("go-github-com-syndtr-goleveldb" ,go-github-com-syndtr-goleveldb)
76 ("go-github-com-thejerf-suture" ,go-github-com-thejerf-suture)
77 ("go-golang-org-x-time" ,go-golang-org-x-time)
78 ("go-gopkg.in-ldap.v2" ,go-gopkg.in-ldap.v2)
79 ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
80 ("go-github-com-shirou-gopsutil" ,go-github-com-shirou-gopsutil)
81 ("go-github-com-prometheus-client-golang"
82 ,go-github-com-prometheus-client-golang)
83 ("go-golang-org-x-net" ,go-golang-org-x-net)
84 ("go-golang-org-x-text" ,go-golang-org-x-text)
85 ("go-github-com-audriusbutkevicius-recli"
86 ,go-github-com-audriusbutkevicius-recli)
87 ("go-github-com-urfave-cli" ,go-github-com-urfave-cli)
88 ("go-github-com-vitrun-qart" ,go-github-com-vitrun-qart)
89 ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
90 ("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
91 ("go-github-com-flynn-archive-go-shlex"
92 ,go-github-com-flynn-archive-go-shlex)
93 ("go-github-com-getsentry-raven-go" ,go-github-com-getsentry-raven-go)
94 ("go-github-com-maruel-panicparse" ,go-github-com-maruel-panicparse)
95 ("go-github-com-ccding-go-stun" ,go-github-com-ccding-go-stun)
96 ("go-github-com-audriusbutkevicius-pfilter" ,go-github-com-audriusbutkevicius-pfilter)
97 ("go-github-com-lucas-clemente-quic-go" ,go-github-com-lucas-clemente-quic-go)
98
99 ;; For tests
100 ("go-github-com-d4l3k-messagediff" ,go-github-com-d4l3k-messagediff)))
101
102 (arguments
103 `(#:import-path "github.com/syncthing/syncthing"
104 ;; We don't need to install the source code for end-user applications.
105 #:install-source? #f
106 #:phases
107 (modify-phases %standard-phases
108 (add-before 'build 'increase-test-timeout
109 (lambda _
110 (substitute* "src/github.com/syncthing/syncthing/build.go"
111 (("120s") "999s"))
112 #t))
113
114 (replace 'build
115 (lambda _
116 (with-directory-excursion "src/github.com/syncthing/syncthing"
117 (invoke "go" "run" "build.go" "-no-upgrade"))))
118
119 (replace 'check
120 (lambda _
121 (with-directory-excursion "src/github.com/syncthing/syncthing"
122 (invoke "go" "run" "build.go" "test"))))
123
124 (replace 'install
125 (lambda* (#:key outputs #:allow-other-keys)
126 (let ((out (assoc-ref outputs "out"))
127 (utils (assoc-ref outputs "utils"))
128 (src "src/github.com/syncthing/syncthing/bin/"))
129 (install-file (string-append src "/syncthing")
130 (string-append out "/bin"))
131 (delete-file (string-append src "/syncthing"))
132 (copy-recursively "src/github.com/syncthing/syncthing/bin/"
133 (string-append utils "/bin"))
134 #t)))
135
136 (add-after 'install 'install-docs
137 (lambda* (#:key outputs #:allow-other-keys)
138 (let* ((out (assoc-ref outputs "out"))
139 (utils (assoc-ref outputs "utils"))
140 (man "/share/man")
141 (man-section (string-append man "/man"))
142 (src "src/github.com/syncthing/syncthing/man/"))
143 ;; Install all the man pages to "out".
144 (for-each
145 (lambda (file)
146 (install-file file
147 (string-append out man-section
148 (string-take-right file 1))))
149 (find-files src "\\.[1-9]"))
150 ;; Copy all the man pages to "utils"
151 (copy-recursively (string-append out man)
152 (string-append utils man))
153 ;; Delete extraneous man pages from "out" and "utils",
154 ;; respectively.
155 (delete-file (string-append out man "/man1/stdiscosrv.1"))
156 (delete-file (string-append out man "/man1/strelaysrv.1"))
157 (delete-file (string-append utils man "/man1/syncthing.1"))
158 #t))))))
159 (synopsis "Decentralized continuous file system synchronization")
160 (description "Syncthing is a peer-to-peer file synchronization tool that
161 supports a wide variety of computing platforms. It uses the Block Exchange
162 Protocol.")
163 (home-page "https://github.com/syncthing/syncthing")
164 (license mpl2.0)))
165
166 (define-public go-github-com-audriusbutkevicius-go-nat-pmp
167 (let ((commit "452c97607362b2ab5a7839b8d1704f0396b640ca")
168 (revision "0"))
169 (package
170 (name "go-github-com-audriusbutkevicius-go-nat-pmp")
171 (version (git-version "0.0.0" revision commit))
172 (source (origin
173 (method git-fetch)
174 (uri (git-reference
175 (url "https://github.com/AudriusButkevicius/go-nat-pmp")
176 (commit commit)))
177 (file-name (git-file-name name version))
178 (sha256
179 (base32 "1accmpl1llk16a19nlyy991fqrgfay6l53gb64hgmdfmqljdvbk7"))))
180 (build-system go-build-system)
181 (arguments
182 `(#:import-path "github.com/AudriusButkevicius/go-nat-pmp"))
183 (synopsis "Port mapping and discovery of external IP address")
184 (description "This package provides a Go client for the NAT-PMP internet
185 protocol for port mapping and discovering the external IP address of a
186 firewall.")
187 (home-page "https://github.com/AudriusButkevicius/go-nat-pmp")
188 (license asl2.0))))
189
190 (define-public go-github-com-audriusbutkevicius-recli
191 (package
192 (name "go-github-com-audriusbutkevicius-recli")
193 (version "0.0.5")
194 (source (origin
195 (method git-fetch)
196 (uri (git-reference
197 (url "https://github.com/AudriusButkevicius/recli")
198 (commit (string-append "v" version))))
199 (file-name (git-file-name name version))
200 (sha256
201 (base32
202 "1m1xna1kb78pkmr1lfmvvnpk9j7c4x71j3a7c6vj7zpzc4srpsmf"))))
203 (build-system go-build-system)
204 (inputs
205 `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
206 ("go-github-com-urfave-cli" ,go-github-com-urfave-cli)))
207 (arguments
208 `(#:import-path "github.com/AudriusButkevicius/recli"))
209 (synopsis "Reflection-based CLI generator")
210 (description "For a given struct, @code{recli} builds a set of
211 @code{urfave/cli} commands which allows you to modify it from the command line.
212 It is useful for generating command line clients for your application
213 configuration that is stored in a Go struct.")
214 (home-page "https://github.com/AudriusButkevicius/recli")
215 (license mpl2.0)))
216
217 (define-public go-github-com-bkaradzic-go-lz4
218 (let ((commit "7224d8d8f27ef618c0a95f1ae69dbb0488abc33a")
219 (revision "0"))
220 (package
221 (name "go-github-com-bkaradzic-go-lz4")
222 (version (git-version "0.0.0" revision commit))
223 (source (origin
224 (method git-fetch)
225 (uri (git-reference
226 (url "https://github.com/bkaradzic/go-lz4")
227 (commit commit)))
228 (file-name (git-file-name name version))
229 (sha256
230 (base32
231 "10lmya17vdqg2pvqni0p73iahni48s1v11ya9a0hcz4jh5vw4dkb"))))
232 (build-system go-build-system)
233 (arguments
234 `(#:import-path "github.com/bkaradzic/go-lz4"))
235 (synopsis "LZ4 compression algorithm")
236 (description "This package provides @code{go-lz4}, a Go implementation of
237 the LZ4 compression algorithm.")
238 (home-page "https://github.com/bkaradzic/go-lz4")
239 (license bsd-2))))
240
241 (define-public go-github-com-calmh-du
242 (package
243 (name "go-github-com-calmh-du")
244 (version "1.0.1")
245 (source (origin
246 (method git-fetch)
247 (uri (git-reference
248 (url "https://github.com/calmh/du")
249 (commit (string-append "v" version))))
250 (file-name (git-file-name name version))
251 (sha256
252 (base32
253 "0qb3a6y3p9nkyn3s66k6zcm16y8n8578qh23ddj14cxf2scrr2n2"))))
254 (build-system go-build-system)
255 (arguments
256 `(#:import-path "github.com/calmh/du"))
257 (synopsis "Get total and available disk space of a given volume")
258 (description "This is a Go implementation of `du`. It provides disk usage
259 information, such as how much storage space is available, free, and used.")
260 (home-page "https://github.com/calmh/du")
261 (license public-domain)))
262
263 (define-public go-github-com-calmh-xdr
264 (package
265 (name "go-github-com-calmh-xdr")
266 (version "1.1.0")
267 (source (origin
268 (method git-fetch)
269 (uri (git-reference
270 (url "https://github.com/calmh/xdr")
271 (commit (string-append "v" version))))
272 (file-name (git-file-name name version))
273 (sha256
274 (base32
275 "072wqdncz3nd4a3zkhvzzx1y3in1lm29wfvl0d8wrnqs5pyqh0mh"))))
276 (build-system go-build-system)
277 (arguments
278 `(#:import-path "github.com/calmh/xdr"))
279 (synopsis "XDR marshalling and unmarshalling")
280 (description "XDR is an External Data Representation (XDR)
281 marshalling and unmarshalling library in Go. It uses code generation and not
282 reflection.")
283 (home-page "https://github.com/calmh/xdr")
284 (license expat)))
285
286 (define-public go-github-com-d4l3k-messagediff
287 (package
288 (name "go-github-com-d4l3k-messagediff")
289 (version "1.2.1")
290 (source (origin
291 (method git-fetch)
292 (uri (git-reference
293 (url "https://github.com/d4l3k/messagediff")
294 (commit (string-append "v" version))))
295 (file-name (git-file-name name version))
296 (sha256
297 (base32
298 "104hl8x57ciaz7mzafg1vp9qggxcyfm8hsv9bmlihbz9ml3nyr8v"))))
299 (build-system go-build-system)
300 (arguments
301 `(#:import-path "github.com/d4l3k/messagediff"))
302 (synopsis "Diff arbitrary Go structs")
303 (description "Messagediff is a library for calculating diffs of arbitrary
304 structs in the Go programming language.")
305 (home-page "https://github.com/d4l3k/messagediff")
306 (license expat)))
307
308 (define-public go-github-com-gobwas-glob
309 (let ((commit "51eb1ee00b6d931c66d229ceeb7c31b985563420")
310 (revision "0"))
311 (package
312 (name "go-github-com-gobwas-glob")
313 (version (git-version "0.0.0" revision commit))
314 (source (origin
315 (method git-fetch)
316 (uri (git-reference
317 (url "https://github.com/gobwas/glob")
318 (commit commit)))
319 (file-name (git-file-name name version))
320 (sha256
321 (base32
322 "090wzpwsjana1qas8ipwh1pj959gvc4b7vwybzi01f3bmd79jwlp"))))
323 (build-system go-build-system)
324 (arguments
325 `(#:import-path "github.com/gobwas/glob"))
326 (synopsis "Go globbing library")
327 (description "This package provides a Go implementation of globs.")
328 (home-page "https://github.com/gobwas/glob")
329 (license expat))))
330
331
332 (define-public go-github-com-golang-groupcache-lru
333 (let ((commit "84a468cf14b4376def5d68c722b139b881c450a4")
334 (revision "1"))
335 (package
336 (name "go-github-com-golang-groupcache-lru")
337 (version (git-version "0.0.0" revision commit))
338 (source (origin
339 (method git-fetch)
340 (uri (git-reference
341 (url "https://github.com/golang/groupcache")
342 (commit commit)))
343 (file-name (git-file-name name version))
344 (sha256
345 (base32
346 "1ky1r9qh54yi9zp2769qrjngzndgd8fn7mja2qfac285n06chmcn"))))
347 (build-system go-build-system)
348 (arguments
349 `(#:import-path "github.com/golang/groupcache/lru"
350 #:unpack-path "github.com/golang/groupcache"))
351 (synopsis "Groupcache is a caching and cache-filling library")
352 (description "Groupcache is a caching and cache-filling library, intended
353 as a replacement for memcached in many cases. It provides a data loading
354 mechanism with caching and de-duplication that works across a set of peer
355 processes.")
356 (home-page "https://github.com/golang/groupcache")
357 (license asl2.0))))
358
359 (define-public go-github-com-golang-snappy
360 (let ((commit "553a641470496b2327abcac10b36396bd98e45c9")
361 (revision "0"))
362 (package
363 (name "go-github-com-golang-snappy")
364 (version (git-version "0.0.0" revision commit))
365 (source (origin
366 (method git-fetch)
367 (uri (git-reference
368 (url "https://github.com/golang/snappy")
369 (commit commit)))
370 (file-name (git-file-name name version))
371 (sha256
372 (base32
373 "0kssxnih1l722hx9219c7javganjqkqhvl3i0hp0hif6xm6chvqk"))))
374 (build-system go-build-system)
375 (arguments
376 `(#:import-path "github.com/golang/snappy"))
377 (synopsis "Snappy compression format in the Go programming language")
378 (description "This package provides a Go implementation of the Snappy
379 compression format.")
380 (home-page "https://github.com/golang/snappy")
381 (license bsd-3))))
382
383 (define-public go-github-com-jackpal-gateway
384 (let ((commit "5795ac81146e01d3fab7bcf21c043c3d6a32b006")
385 (revision "0"))
386 (package
387 (name "go-github-com-jackpal-gateway")
388 (version (git-version "0.0.0" revision commit))
389 (source (origin
390 (method git-fetch)
391 (uri (git-reference
392 (url "https://github.com/jackpal/gateway")
393 (commit commit)))
394 (file-name (git-file-name name version))
395 (sha256
396 (base32
397 "0fkwkwmhfadwk3cha8616bhqxfkr9gjjnynhhxyldlphixgs3f25"))))
398 (build-system go-build-system)
399 (arguments
400 `(#:import-path "github.com/jackpal/gateway"))
401 (synopsis "Discover the address of a LAN gateway")
402 (description "@code{gateway} is a Go library for discovering the IP
403 address of the default LAN gateway.")
404 (home-page "https://github.com/jackpal/gateway")
405 (license bsd-3))))
406
407 (define-public go-github-com-lib-pq
408 (package
409 (name "go-github-com-lib-pq")
410 (version "1.2.0")
411 (source (origin
412 (method git-fetch)
413 (uri (git-reference
414 (url "https://github.com/lib/pq")
415 (commit (string-append "v" version))))
416 (file-name (git-file-name name version))
417 (sha256
418 (base32
419 "08j1smm6rassdssdks4yh9aspa1dv1g5nvwimmknspvhx8a7waqz"))))
420 (build-system go-build-system)
421 (arguments
422 `(#:import-path "github.com/lib/pq"
423 ;; The tests seem to fail without access to the network or a running
424 ;; Postgres instance.
425 #:tests? #f))
426 (synopsis "Golang Postgres driver for Go's database/sql")
427 (description "This package provides a pure Go Postgres driver for Go's
428 database/sql package.")
429 (home-page "https://github.com/lib/pq")
430 (license expat)))
431
432 (define-public go-github-com-oschwald-geoip2-golang
433 (package
434 (name "go-github-com-oschwald-geoip2-golang")
435 (version "1.3.0")
436 (source (origin
437 (method git-fetch)
438 (uri (git-reference
439 (url "https://github.com/oschwald/geoip2-golang")
440 (commit (string-append "v" version))))
441 (file-name (git-file-name name version))
442 (sha256
443 (base32
444 "0jivzl15jb8n16rm1b2w97kf7vna5dd3kcz865wfi233qay075j2"))))
445 (build-system go-build-system)
446 (propagated-inputs
447 `(("go-github-com-oschwald-maxminddb-golang"
448 ,go-github-com-oschwald-maxminddb-golang)
449 ("go-golang-org-x-sys" ,go-golang-org-x-sys)))
450 (arguments
451 `(#:import-path "github.com/oschwald/geoip2-golang"
452 #:tests? #f)) ; Requires some unpackaged software and test data
453 (synopsis "MaxMind GeoIP2 reader")
454 (description "This package provides a library for reading MaxMind
455 GeoLite2 and GeoIP2 databases in Go.")
456 (home-page "https://github.com/oschwald/geoip2-golang")
457 (license isc)))
458
459 (define-public go-github-com-oschwald-maxminddb-golang
460 (let ((commit "26fe5ace1c706491c2936119e1dc69c1a9c04d7f")
461 (revision "0"))
462 (package
463 (name "go-github-com-oschwald-maxminddb-golang")
464 (version (git-version "1.2.0" revision commit))
465 (source (origin
466 (method git-fetch)
467 (uri (git-reference
468 (url "https://github.com/oschwald/maxminddb-golang")
469 (commit commit)))
470 (file-name (git-file-name name version))
471 (sha256
472 (base32
473 "1i6d935f3cv9djpjvc2ibh8aps8jqvg454b9pkwg2h98al759ggk"))))
474 (build-system go-build-system)
475 (propagated-inputs
476 `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
477 (arguments
478 `(#:import-path "github.com/oschwald/maxminddb-golang"
479 #:tests? #f)) ; Requires some unpackaged software and test data
480 (synopsis "MaxMind DB Reader for Go")
481 (description "This is a Go reader for the MaxMind DB format. Although
482 this can be used to read GeoLite2 and GeoIP2 databases, @code{geoip2} provides a
483 higher-level API for doing so.")
484 (home-page "https://github.com/oschwald/maxminddb-golang")
485 (license isc))))
486
487 (define-public go-github-com-stathat-go
488 (let ((commit "74669b9f388d9d788c97399a0824adbfee78400e")
489 (revision "0"))
490 (package
491 (name "go-github-com-stathat-go")
492 (version (git-version "0.0.0" revision commit))
493 (source (origin
494 (method git-fetch)
495 (uri (git-reference
496 (url "https://github.com/stathat/go")
497 (commit commit)))
498 (file-name (git-file-name name version))
499 (sha256
500 (base32
501 "1zzlsl24dyr202qkr2pay22m6d0gb7ssms77wgdx0r0clgm7dihw"))))
502 (build-system go-build-system)
503 (arguments
504 `(#:import-path "github.com/stathat/go"))
505 (synopsis "Post statistics to StatHat")
506 (description "This is a Go package for posting to a StatHat account.")
507 (home-page "https://github.com/stathat/go")
508 (license expat))))
509
510 (define-public go-github-com-rcrowley-go-metrics
511 (let ((commit "e181e095bae94582363434144c61a9653aff6e50")
512 (revision "1"))
513 (package
514 (name "go-github-com-rcrowley-go-metrics")
515 (version (git-version "0.0.0" revision commit))
516 (source (origin
517 (method git-fetch)
518 (uri (git-reference
519 (url "https://github.com/rcrowley/go-metrics")
520 (commit commit)))
521 (file-name (git-file-name name version))
522 (sha256
523 (base32
524 "1pwkyw801hy7n94skzk6h177zqcil6ayrmb5gs3jdpsfayh8ia5w"))))
525 (build-system go-build-system)
526 (arguments
527 `(#:import-path "github.com/rcrowley/go-metrics"))
528 (propagated-inputs
529 `(("go-github-com-stathat-go" ,go-github-com-stathat-go)))
530 (synopsis "Go port of Coda Hale's Metrics library")
531 (description "This package provides a Go implementation of Coda Hale's
532 Metrics library.")
533 (home-page "https://github.com/rcrowley/go-metrics")
534 (license bsd-2))))
535
536 (define-public go-github-com-sasha-s-go-deadlock
537 (package
538 (name "go-github-com-sasha-s-go-deadlock")
539 (version "0.2.0")
540 (source (origin
541 (method git-fetch)
542 (uri (git-reference
543 (url "https://github.com/sasha-s/go-deadlock")
544 (commit (string-append "v" version))))
545 (file-name (git-file-name name version))
546 (sha256
547 (base32
548 "13p7b7pakd9k1c2k0fs1hfim3c8mivz679977ai6zb01s4aw7gyg"))))
549 (build-system go-build-system)
550 (arguments
551 `(#:import-path "github.com/sasha-s/go-deadlock"))
552 (propagated-inputs
553 `(("go-github-com-petermattis-goid" ,go-github-com-petermattis-goid)))
554 (synopsis "Deadlock detection in go")
555 (description "This package provides tools for detecting deadlocks at
556 run-time in Go.")
557 (home-page "https://github.com/sasha-s/go-deadlock")
558 (license asl2.0)))
559
560 (define-public go-github-com-syndtr-goleveldb
561 (let ((commit "c3a204f8e96543bb0cc090385c001078f184fc46")
562 (revision "3"))
563 (package
564 (name "go-github-com-syndtr-goleveldb")
565 (version (git-version "1.0.1" revision commit))
566 (source (origin
567 (method git-fetch)
568 (uri (git-reference
569 (url "https://github.com/syndtr/goleveldb")
570 (commit commit)))
571 (file-name (git-file-name name version))
572 (sha256
573 (base32
574 "18cac90dim2z5g28vazzibxa058q2ynihsmf0vbscwzba6l5s5ms"))))
575 (build-system go-build-system)
576 (propagated-inputs
577 `(("go-github-com-golang-snappy" ,go-github-com-golang-snappy)))
578 (arguments
579 `(#:import-path "github.com/syndtr/goleveldb/leveldb"
580 #:unpack-path "github.com/syndtr/goleveldb"
581 #:tests? #f)) ; XXX needs 'github.com/onsi/gomega' package
582 (synopsis "LevelDB key/value database")
583 (description "This is an implementation of the LevelDB key / value
584 database in Go.")
585 (home-page "https://github.com/syndtr/goleveldb")
586 (license bsd-2))))
587
588 (define-public go-github-com-thejerf-suture
589 (package
590 (name "go-github-com-thejerf-suture")
591 (version "3.0.2")
592 (source (origin
593 (method git-fetch)
594 (uri (git-reference
595 (url "https://github.com/thejerf/suture")
596 (commit (string-append "v" version))))
597 (file-name (git-file-name name version))
598 (sha256
599 (base32
600 "03bdrl78jfwk0kw40lj63ga9cxhgccgss8yi9lp5j0m0ml7921gh"))))
601 (build-system go-build-system)
602 (arguments
603 `(#:import-path "github.com/thejerf/suture"))
604 (synopsis "Supervisor trees for Go")
605 (description "Suture provides Erlang-ish supervisor trees for Go.
606 \"Supervisor trees\" -> \"sutree\" -> \"suture\" -> holds your code together
607 when it's trying to die.
608
609 It is intended to deal gracefully with the real failure cases that can occur
610 with supervision trees (such as burning all your CPU time endlessly restarting
611 dead services), while also making no unnecessary demands on the \"service\"
612 code, and providing hooks to perform adequate logging with in a production
613 environment")
614 (home-page "https://github.com/thejerf/suture")
615 (license expat)))
616
617 (define-public go-github-com-vitrun-qart
618 (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa")
619 (revision "0"))
620 (package
621 (name "go-github-com-vitrun-qart")
622 (version (git-version "0.0.0" revision commit))
623 (source (origin
624 (method git-fetch)
625 (uri (git-reference
626 (url "https://github.com/vitrun/qart")
627 (commit commit)))
628 (file-name (string-append "go-github-com-vitrun-qart-"
629 version "-checkout"))
630 (sha256
631 (base32
632 "1xk7qki703xmay9ghi3kq2bjf1iw9dz8wik55739d6i7sn77vvkc"))))
633 (build-system go-build-system)
634 (arguments
635 `(#:import-path "github.com/vitrun/qart"))
636 (synopsis "Create QR codes with an embedded image")
637 (description "This package provides a library for embedding
638 human-meaningful graphics in QR codes. However, instead of scribbling on
639 redundant pieces and relying on error correction to preserve the meaning,
640 @code{qart} engineers the encoded values to create the picture in a code with no
641 inherent errors.")
642 (home-page "https://github.com/vitrun/qart")
643 (license bsd-3))))
644
645 (define-public go-github-com-chmduquesne-rollinghash
646 (let ((commit "a60f8e7142b536ea61bb5d84014171189eeaaa81")
647 (revision "0"))
648 (package
649 (name "go-github-com-chmduquesne-rollinghash")
650 (version (git-version "4.0.0" revision commit))
651 (source
652 (origin
653 (method git-fetch)
654 (uri (git-reference
655 (url "https://github.com/chmduquesne/rollinghash.git")
656 (commit commit)))
657 (file-name (git-file-name name version))
658 (sha256
659 (base32
660 "0fpaqq4zb0wikgbhn7vwqqj1h865f5xy195vkhivsp922p7qwsjr"))))
661 (build-system go-build-system)
662 (arguments
663 '(#:import-path "github.com/chmduquesne/rollinghash/"))
664 (synopsis "Rolling hashes in Go")
665 (description "This package provides a Go implementation of several rolling
666 hashes.")
667 (home-page "https://github.com/chmduquesne/rollinghash")
668 (license expat))))
669
670 (define-public go-github-com-petermattis-goid
671 (let ((commit "3db12ebb2a599ba4a96bea1c17b61c2f78a40e02")
672 (revision "0"))
673 (package
674 (name "go-github-com-petermattis-goid")
675 (version (git-version "0.0.0" revision commit))
676 (source (origin
677 (method git-fetch)
678 (uri (git-reference
679 (url "https://github.com/petermattis/goid.git")
680 (commit commit)))
681 (file-name (git-file-name name version))
682 (sha256
683
684 (base32
685 "0z18a3mr72c52g7g94n08gxw0ksnaafbfwdl5p5jav2sffirb0kd"))))
686 (build-system go-build-system)
687 (arguments
688 '(#:import-path "github.com/petermattis/goid"))
689 (synopsis "Identify the running goroutine")
690 (description "This package offers a method of programmatically retrieving
691 the current goroutine's ID.")
692 (home-page "https://github.com/petermattis/goid")
693 (license asl2.0))))
694
695 (define-public go-github-com-kballard-go-shellquote
696 (let ((commit "cd60e84ee657ff3dc51de0b4f55dd299a3e136f2")
697 (revision "0"))
698 (package
699 (name "go-github-com-kballard-go-shellquote")
700 (version (git-version "0.0.0" revision commit))
701 (source (origin
702 (method git-fetch)
703 (uri (git-reference
704 (url "https://github.com/kballard/go-shellquote.git")
705 (commit commit)))
706 (file-name (git-file-name name version))
707 (sha256
708 (base32
709 "1xjpin4jq1zl84dcn96xhjmn9bsfyszf6g9aqyj2dc0xfi6c88y0"))))
710 (build-system go-build-system)
711 (arguments
712 '(#:import-path "github.com/kballard/go-shellquote"))
713 (synopsis "Shell-style string joins and splits")
714 (description "Shellquote provides utilities for joining/splitting strings
715 using sh's word-splitting rules.")
716 (home-page "https://github.com/kballard/go-shellquote")
717 (license expat))))
718
719 (define-public go-github-com-syncthing-notify
720 (let ((commit "69c7a957d3e261f9744f46b3dd4d608d8480ad90")
721 (revision "5"))
722 (package
723 (name "go-github-com-syncthing-notify")
724 (version (git-version "0.0.0" revision commit))
725 (source (origin
726 (method git-fetch)
727 (uri (git-reference
728 (url "https://github.com/syncthing/notify")
729 (commit commit)))
730 (file-name (git-file-name name version))
731 (sha256
732 (base32
733 "1mmdzyfnmjabyhbipl4bggw4w5nlxyyjp0d93qd824kj07kmsr1f"))))
734 (build-system go-build-system)
735 (arguments
736 '(#:import-path "github.com/syncthing/notify"))
737 (propagated-inputs
738 `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
739 (synopsis "File system event notification library")
740 (description "This package provides @code{notify}, a file system event
741 notification library in Go.")
742 (home-page "https://github.com/syncthing/notify")
743 (license expat))))
744
745 (define-public go-github-com-beorn7-perks-quantile
746 (let ((commit "4c0e84591b9aa9e6dcfdf3e020114cd81f89d5f9")
747 (revision "0"))
748 (package
749 (name "go-github-com-beorn7-perks-quantile")
750 (version (git-version "0.0.0" revision commit))
751 (source (origin
752 (method git-fetch)
753 (uri (git-reference
754 (url "https://github.com/beorn7/perks.git")
755 (commit commit)))
756 (file-name (git-file-name name version))
757 (sha256
758 (base32
759 "1hrybsql68xw57brzj805xx2mghydpdiysv3gbhr7f5wlxj2514y"))))
760 (build-system go-build-system)
761 (arguments
762 '(#:import-path "github.com/beorn7/perks/quantile"
763 #:unpack-path "github.com/beorn7/perks"))
764 (synopsis "Compute approximate quantiles over an unbounded data stream")
765 (description "Perks contains the Go package @code{quantile} that computes
766 approximate quantiles over an unbounded data stream within low memory and CPU
767 bounds.")
768 (home-page "https://github.com/beorn7/perks")
769 (license expat))))
770
771 (define-public go-github-com-golang-protobuf-proto
772 (package
773 (name "go-github-com-golang-protobuf-proto")
774 (version "1.3.1")
775 (source (origin
776 (method git-fetch)
777 (uri (git-reference
778 (url "https://github.com/golang/protobuf.git")
779 (commit (string-append "v" version))))
780 (file-name (git-file-name name version))
781 (sha256
782 (base32
783 "15am4s4646qy6iv0g3kkqq52rzykqjhm4bf08dk0fy2r58knpsyl"))))
784 (build-system go-build-system)
785 (arguments
786 '(#:import-path "github.com/golang/protobuf/proto"
787 #:unpack-path "github.com/golang/protobuf"
788 #:tests? #f ; requires unpackaged golang.org/x/sync/errgroup
789 ))
790 (synopsis "Go support for Protocol Buffers")
791 (description "This package provides Go support for the Protocol Buffers
792 data serialization format.")
793 (home-page "https://github.com/golang/protobuf")
794 (license bsd-3)))
795
796 (define-public go-github-com-prometheus-client-model
797 (let ((commit "fd36f4220a901265f90734c3183c5f0c91daa0b8")
798 (revision "1"))
799 (package
800 (name "go-github-com-prometheus-client-model")
801 (version (git-version "0.0.2" revision commit))
802 (source (origin
803 (method git-fetch)
804 (uri (git-reference
805 (url "https://github.com/prometheus/client_model.git")
806 (commit commit)))
807 (file-name (git-file-name name version))
808 (sha256
809 (base32
810 "1bs5d72k361llflgl94c22n0w53j30rsfh84smgk8mbjbcmjsaa5"))))
811 (build-system go-build-system)
812 (arguments
813 '(#:import-path "github.com/prometheus/client_model"
814 #:tests? #f
815 #:phases
816 (modify-phases %standard-phases
817 ;; Source-only package
818 (delete 'build))))
819 (propagated-inputs
820 `(("go-github-com-golang-protobuf-proto"
821 ,go-github-com-golang-protobuf-proto)))
822 (synopsis "Data model artifacts for Prometheus")
823 (description "This package provides data model artifacts for Prometheus.")
824 (home-page "https://github.com/prometheus/client_model")
825 (license asl2.0))))
826
827 (define-public go-github-com-matttproud-golang-protobuf-extensions-pbutil
828 (let ((commit "c12348ce28de40eed0136aa2b644d0ee0650e56c")
829 (revision "0"))
830 (package
831 (name "go-github-com-matttproud-golang-protobuf-extensions-pbutil")
832 (version (git-version "1.0.0" revision commit))
833 (source
834 (origin
835 (method git-fetch)
836 (uri
837 (git-reference
838 (url "https://github.com/matttproud/golang_protobuf_extensions.git")
839 (commit commit)))
840 (file-name (git-file-name name version))
841 (sha256
842 (base32
843 "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya"))))
844 (build-system go-build-system)
845 (arguments
846 '(#:import-path "github.com/matttproud/golang_protobuf_extensions/pbutil"
847 #:unpack-path "github.com/matttproud/golang_protobuf_extensions"))
848 (propagated-inputs
849 `(("go-github-com-golang-protobuf-proto"
850 ,go-github-com-golang-protobuf-proto)))
851 (synopsis "Streaming Protocol Buffers in Go")
852 (description "This package provides various Protocol Buffer
853 extensions for the Go language, namely support for record length-delimited
854 message streaming.")
855 (home-page "https://github.com/matttproud/golang_protobuf_extensions")
856 (license asl2.0))))
857
858 (define-public go-github-com-prometheus-common
859 (package
860 (name "go-github-com-prometheus-common")
861 (version "0.4.1")
862 (source (origin
863 (method git-fetch)
864 (uri (git-reference
865 (url "https://github.com/prometheus/common.git")
866 (commit (string-append "v" version))))
867 (file-name (git-file-name name version))
868 (sha256
869 (base32
870 "0sf4sjdckblz1hqdfvripk3zyp8xq89w7q75kbsyg4c078af896s"))))
871 (build-system go-build-system)
872 (arguments
873 '(#:import-path "github.com/prometheus/common"
874 #:tests? #f
875 #:phases
876 (modify-phases %standard-phases
877 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
878 (lambda* (#:key outputs #:allow-other-keys)
879 (map (lambda (file)
880 (make-file-writable file))
881 (find-files
882 (string-append (assoc-ref outputs "out")
883 "/src/github.com/prometheus/common/expfmt/testdata/")
884 ".*\\.gz$"))
885 #t))
886 ;; Source-only package
887 (delete 'build))))
888 (propagated-inputs
889 `(("go-github-com-golang-protobuf-proto"
890 ,go-github-com-golang-protobuf-proto)
891 ("go-github-com-matttproud-golang-protobuf-extensions-pbutil"
892 ,go-github-com-matttproud-golang-protobuf-extensions-pbutil)
893 ("go-github-com-prometheus-client-model"
894 ,go-github-com-prometheus-client-model)))
895 (synopsis "Prometheus metrics")
896 (description "This package provides tools for reading and writing
897 Prometheus metrics.")
898 (home-page "https://github.com/prometheus/common")
899 (license asl2.0)))
900
901 (define-public go-github-com-prometheus-procfs
902 (package
903 (name "go-github-com-prometheus-procfs")
904 (version "0.0.3")
905 (source (origin
906 (method git-fetch)
907 (uri (git-reference
908 (url "https://github.com/prometheus/procfs.git")
909 (commit (string-append "v" version))))
910 (file-name (git-file-name name version))
911 (sha256
912 (base32
913 "18c4m795fwng8f8qa395f3crvamlbk5y5afk8b5rzyisnmjq774y"))))
914 (build-system go-build-system)
915 (arguments
916 '(#:import-path "github.com/prometheus/procfs"
917 ;; The tests require Go modules, which are not yet supported in Guix's
918 ;; Go build system.
919 #:tests? #f))
920 (synopsis "Go library for reading @file{/proc}")
921 (description "The @code{procfs} Go package provides functions to retrieve
922 system, kernel, and process metrics from the @file{/proc} pseudo file system.")
923 (home-page "https://github.com/prometheus/procfs")
924 (license asl2.0)))
925
926 (define-public go-github-com-prometheus-client-golang
927 (package
928 (name "go-github-com-prometheus-client-golang")
929 (version "0.9.4")
930 (source (origin
931 (method git-fetch)
932 (uri (git-reference
933 (url "https://github.com/prometheus/client_golang.git")
934 (commit (string-append "v" version))))
935 (file-name (git-file-name name version))
936 (sha256
937 (base32
938 "0s134fj4i7k6pxdmxwkdi7amb1882yq33spv15hg3pkpbd3h311p"))))
939 (build-system go-build-system)
940 (arguments
941 '(#:tests? #f
942 #:import-path "github.com/prometheus/client_golang"
943 #:phases
944 (modify-phases %standard-phases
945 ;; Source-only package
946 (delete 'build))))
947 (propagated-inputs
948 `(("go-github-com-beorn7-perks-quantile"
949 ,go-github-com-beorn7-perks-quantile)
950 ("go-github-com-golang-protobuf-proto"
951 ,go-github-com-golang-protobuf-proto)
952 ("go-github-com-prometheus-client-model"
953 ,go-github-com-prometheus-client-model)
954 ("go-github-com-prometheus-common"
955 ,go-github-com-prometheus-common)
956 ("go-github-com-prometheus-procfs" ,go-github-com-prometheus-procfs)))
957 (synopsis "HTTP server and client tools for Prometheus")
958 (description "This package @code{promhttp} provides HTTP client and
959 server tools for Prometheus metrics.")
960 (home-page "https://github.com/prometheus/client_golang")
961 (license asl2.0)))
962
963 (define-public go-gopkg.in-asn1-ber.v1
964 (package
965 (name "go-gopkg.in-asn1-ber.v1")
966 (version "1.2")
967 (source (origin
968 (method git-fetch)
969 (uri (git-reference
970 (url "https://gopkg.in/asn1-ber.v1")
971 (commit (string-append "v" version))))
972 (file-name (git-file-name name version))
973 (sha256
974 (base32
975 "1y8bvzbxpw0lfnn7pbcdwzqj4l90qj6xf88dvv9pxd9yl5g6cskx"))))
976 (build-system go-build-system)
977 (arguments
978 '(#:import-path "gopkg.in/asn1-ber.v1"
979 ;; Tests don't pass "vet" on Go since 1.11. See
980 ;; https://github.com/go-asn1-ber/asn1-ber/issues/20.
981 #:phases
982 (modify-phases %standard-phases
983 (replace 'check
984 (lambda* (#:key import-path #:allow-other-keys)
985 (invoke "go" "test"
986 "-vet=off"
987 import-path))))))
988 (synopsis "ASN.1 BER encoding and decoding in Go")
989 (description "This package provides ASN.1 BER encoding and decoding in the
990 Go language.")
991 (home-page "https://gopkg.in/asn1-ber.v1")
992 (license expat)))
993
994 (define-public go-gopkg.in-ldap.v2
995 (package
996 (name "go-gopkg.in-ldap.v2")
997 (version "2.5.1")
998 (source (origin
999 (method git-fetch)
1000 (uri (git-reference
1001 (url "https://gopkg.in/ldap.v2")
1002 (commit (string-append "v" version))))
1003 (file-name (git-file-name name version))
1004 (sha256
1005 (base32
1006 "1wf81wy04nhkqs0dg5zkivr4sh37r83bxrfwjz9vr4jq6vmljr3h"))))
1007 (build-system go-build-system)
1008 (arguments
1009 '(#:import-path "gopkg.in/ldap.v2"
1010 #:tests? #f)) ; the test suite requires network access
1011 (propagated-inputs
1012 `(("go-gopkg.in-asn1-ber.v1" ,go-gopkg.in-asn1-ber.v1)))
1013 (synopsis "LDAP v3 functionality for Go")
1014 (description "This package provides basic LDAP v3 functionality in the Go
1015 language.")
1016 (home-page "https://gopkg.in/ldap.v2")
1017 (license expat)))
1018
1019 (define-public go-github-com-flynn-archive-go-shlex
1020 (let ((commit "3f9db97f856818214da2e1057f8ad84803971cff")
1021 (revision "0"))
1022 (package
1023 (name "go-github-com-flynn-archive-go-shlex")
1024 (version (git-version "0.0.0" revision commit))
1025 (source (origin
1026 (method git-fetch)
1027 (uri (git-reference
1028 (url "https://github.com/flynn-archive/go-shlex.git")
1029 (commit commit)))
1030 (file-name (git-file-name name version))
1031 (sha256
1032 (base32
1033 "1j743lysygkpa2s2gii2xr32j7bxgc15zv4113b0q9jhn676ysia"))))
1034 (build-system go-build-system)
1035 (arguments
1036 '(#:import-path "github.com/flynn-archive/go-shlex"))
1037 (synopsis "Go lexer")
1038 (description "Shlex is a simple lexer for go that supports shell-style
1039 quoting, commenting, and escaping.")
1040 (home-page "https://github.com/flynn-archive/go-shlex")
1041 (license asl2.0))))
1042
1043 (define-public go-github-com-audriusbutkevicius-pfilter
1044 (let ((commit "c55ef6137fc6f075801eac099cc2687ede0f101d")
1045 (revision "3"))
1046 (package
1047 (name "go-github-com-audriusbutkevicius-pfilter")
1048 (version (git-version "0.0.0" revision commit))
1049 (source
1050 (origin
1051 (method git-fetch)
1052 (uri (git-reference
1053 (url "https://github.com/AudriusButkevicius/pfilter.git")
1054 (commit commit)))
1055 (file-name (git-file-name name version))
1056 (sha256
1057 (base32
1058 "0xzhwyd0w21bhvzl5pinn22hp0y6h44rh3s2ppql69rafc6zd3c6"))))
1059 (build-system go-build-system)
1060 (arguments
1061 '(#:import-path "github.com/AudriusButkevicius/pfilter"))
1062 (synopsis "Filter packets into multiple virtual connections")
1063 (description "Pfilter is a Go package for filtering packets into multiple
1064 virtual connections from a single physical connection.")
1065 (home-page "https://github.com/AudriusButkevicius/pfilter")
1066 (license expat))))
1067
1068 (define-public go-github-com-ccding-go-stun
1069 (let ((commit "be486d185f3dfcb2dbf8429332da50a0da7f95a6")
1070 (revision "2"))
1071 (package
1072 (name "go-github-com-ccding-go-stun")
1073 (version (git-version "0.0.0" revision commit))
1074 (source
1075 (origin
1076 (method git-fetch)
1077 (uri (git-reference
1078 (url "https://github.com/ccding/go-stun.git")
1079 (commit commit)))
1080 (file-name (git-file-name name version))
1081 (sha256
1082 (base32
1083 "1gr0rw1c1y7wh6913lyn5k4ig023by27i36bly6am8dwgrgp34ww"))))
1084 (build-system go-build-system)
1085 (arguments
1086 '(#:import-path "github.com/ccding/go-stun"))
1087 (synopsis "STUN client implementation")
1088 (description "Go-stun is a go implementation of the STUN client (RFC 3489
1089 and RFC 5389).")
1090 (home-page "https://github.com/ccding/go-stun")
1091 (license asl2.0))))