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