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