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