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