gnu: Syncthing: Update to 0.14.51.
[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 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 "0.14.51")
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 "17phn8l2afhgzh0q9ambi28awj2m905sr1bicq2wc7ghypk5vgqh"))
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 (arguments
53 `(#:import-path "github.com/syncthing/syncthing"
54 #:unpack-path "github.com/syncthing"
55 ;; We don't need to install the source code for end-user applications.
56 #:install-source? #f
57 #:phases
58 (modify-phases %standard-phases
59 (add-before 'build 'increase-test-timeout
60 (lambda _
61 (substitute* "src/github.com/syncthing/syncthing/build.go"
62 (("120s") "999s"))
63 #t))
64
65 (replace 'build
66 (lambda* (#:key inputs #:allow-other-keys)
67 (with-directory-excursion "src/github.com/syncthing/syncthing"
68 (invoke "go" "run" "build.go" "-no-upgrade"))))
69
70 (replace 'check
71 (lambda _
72 (with-directory-excursion "src/github.com/syncthing/syncthing"
73 (invoke "go" "run" "build.go" "test"))))
74
75 (replace 'install
76 (lambda* (#:key outputs #:allow-other-keys)
77 (let ((out (assoc-ref outputs "out"))
78 (utils (assoc-ref outputs "utils"))
79 (src "src/github.com/syncthing/syncthing/bin/"))
80 (install-file (string-append src "/syncthing")
81 (string-append out "/bin"))
82 (delete-file (string-append src "/syncthing"))
83 (copy-recursively "src/github.com/syncthing/syncthing/bin/"
84 (string-append utils "/bin"))
85 #t)))
86
87 (add-after 'install 'install-docs
88 (lambda* (#:key outputs #:allow-other-keys)
89 (let* ((out (assoc-ref outputs "out"))
90 (utils (assoc-ref outputs "utils"))
91 (man "/share/man")
92 (man-section (string-append man "/man"))
93 (src "src/github.com/syncthing/syncthing/man/"))
94 ;; Install all the man pages to "out".
95 (for-each
96 (lambda (file)
97 (install-file file
98 (string-append out man-section
99 (string-take-right file 1))))
100 (find-files src "\\.[1-9]"))
101 ;; Copy all the man pages to "utils"
102 (copy-recursively (string-append out man)
103 (string-append utils man))
104 ;; Delete extraneous man pages from "out" and "utils",
105 ;; respectively.
106 (delete-file (string-append out man "/man1/stdiscosrv.1"))
107 (delete-file (string-append out man "/man1/strelaysrv.1"))
108 (delete-file (string-append utils man "/man1/syncthing.1"))
109 #t))))))
110 ;; When updating Syncthing, check 'vendor/manifest' in the source
111 ;; distribution to ensure we are using the correct versions of these
112 ;; dependencies.
113 (inputs
114 `(("go-github-com-audriusbutkevicius-cli"
115 ,go-github-com-audriusbutkevicius-cli)
116 ("go-github-com-audriusbutkevicius-go-nat-pmp"
117 ,go-github-com-audriusbutkevicius-go-nat-pmp)
118 ("go-github-com-audriusbutkevicius-pfilter"
119 ,go-github-com-audriusbutkevicius-pfilter)
120 ("go-github-com-bkaradzic-go-lz4" ,go-github-com-bkaradzic-go-lz4)
121 ("go-github-com-calmh-du" ,go-github-com-calmh-du)
122 ("go-github-com-calmh-xdr" ,go-github-com-calmh-xdr)
123 ("go-github-com-prometheus-union" ,(go-github-com-prometheus-union))
124 ("go-github-com-chmduquesne-rollinghash-adler32"
125 ,go-github-com-chmduquesne-rollinghash-adler32)
126 ("go-github-com-gobwas-glob" ,go-github-com-gobwas-glob)
127 ("go-github-com-gogo-protobuf-union"
128 ,(go-github-com-gogo-protobuf-union))
129 ("go-github-com-golang-groupcache-lru"
130 ,go-github-com-golang-groupcache-lru)
131 ("go-github-com-jackpal-gateway" ,go-github-com-jackpal-gateway)
132 ("go-github-com-kballard-go-shellquote"
133 ,go-github-com-kballard-go-shellquote)
134 ("go-github-com-lib-pq" ,go-github-com-lib-pq)
135 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
136 ("go-github-com-oschwald-geoip2-golang"
137 ,go-github-com-oschwald-geoip2-golang)
138 ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
139 ("go-github-com-rcrowley-go-metrics" ,go-github-com-rcrowley-go-metrics)
140 ("go-github-com-sasha-s-go-deadlock" ,go-github-com-sasha-s-go-deadlock)
141 ("go-github-com-syncthing-notify" ,go-github-com-syncthing-notify)
142 ("go-github-com-syndtr-goleveldb" ,go-github-com-syndtr-goleveldb)
143 ("go-github-com-thejerf-suture" ,go-github-com-thejerf-suture)
144 ("go-github-com-vitrun-qart" ,(go-github-com-vitrun-qart-union))
145 ("go-golang-org-x-crypto" ,(go-golang-org-x-crypto-union))
146 ("go-golang-org-x-net-union" ,(go-golang-org-x-net-union))
147 ("go-golang-org-x-text" ,(go-golang-org-x-text-union))
148 ("go-golang-org-x-time-rate" ,go-golang-org-x-time-rate)
149 ("go-gopkg.in-ldap.v2" ,go-gopkg.in-ldap.v2)
150 ;; For tests
151 ("go-github-com-d4l3k-messagediff" ,go-github-com-d4l3k-messagediff)))
152 (synopsis "Decentralized continuous file system synchronization")
153 (description "Syncthing is a peer-to-peer file synchronization tool that
154 supports a wide variety of computing platforms. It uses the Block Exchange
155 Protocol.")
156 (home-page "https://github.com/syncthing/syncthing")
157 (license mpl2.0)))
158
159 (define-public go-github-com-audriusbutkevicius-go-nat-pmp
160 (let ((commit "452c97607362b2ab5a7839b8d1704f0396b640ca")
161 (revision "0"))
162 (package
163 (name "go-github-com-audriusbutkevicius-go-nat-pmp")
164 (version (git-version "0.0.0" revision commit))
165 (source (origin
166 (method git-fetch)
167 (uri (git-reference
168 (url "https://github.com/AudriusButkevicius/go-nat-pmp")
169 (commit commit)))
170 (file-name (git-file-name name version))
171 (sha256
172 (base32 "1accmpl1llk16a19nlyy991fqrgfay6l53gb64hgmdfmqljdvbk7"))))
173 (build-system go-build-system)
174 (arguments
175 `(#:import-path "github.com/AudriusButkevicius/go-nat-pmp"))
176 (synopsis "Port mapping and discovery of external IP address")
177 (description "This packages provides a Go client for the NAT-PMP internet
178 protocol for port mapping and discovering the external IP address of a
179 firewall.")
180 (home-page "https://github.com/AudriusButkevicius/go-nat-pmp")
181 (license asl2.0))))
182
183 (define-public go-github-com-bkaradzic-go-lz4
184 (let ((commit "7224d8d8f27ef618c0a95f1ae69dbb0488abc33a")
185 (revision "0"))
186 (package
187 (name "go-github-com-bkaradzic-go-lz4")
188 (version (git-version "0.0.0" revision commit))
189 (source (origin
190 (method git-fetch)
191 (uri (git-reference
192 (url "https://github.com/bkaradzic/go-lz4")
193 (commit commit)))
194 (file-name (git-file-name name version))
195 (sha256
196 (base32
197 "10lmya17vdqg2pvqni0p73iahni48s1v11ya9a0hcz4jh5vw4dkb"))))
198 (build-system go-build-system)
199 (arguments
200 `(#:import-path "github.com/bkaradzic/go-lz4"))
201 (synopsis "LZ4 compression algorithm")
202 (description "This package provides @code{go-lz4}, a Go implementation of
203 the LZ4 compression algorithm.")
204 (home-page "https://github.com/bkaradzic/go-lz4")
205 (license bsd-2))))
206
207 (define-public go-github-com-calmh-du
208 (package
209 (name "go-github-com-calmh-du")
210 (version "1.0.1")
211 (source (origin
212 (method git-fetch)
213 (uri (git-reference
214 (url "https://github.com/calmh/du")
215 (commit (string-append "v" version))))
216 (file-name (git-file-name name version))
217 (sha256
218 (base32
219 "0qb3a6y3p9nkyn3s66k6zcm16y8n8578qh23ddj14cxf2scrr2n2"))))
220 (build-system go-build-system)
221 (arguments
222 `(#:import-path "github.com/calmh/du"))
223 (synopsis "Get total and available disk space of a given volume")
224 (description "This is a Go implementation of `du`. It provides disk usage
225 information, such as how much storage space is available, free, and used.")
226 (home-page "https://github.com/calmh/du")
227 (license public-domain)))
228
229 (define-public go-github-com-calmh-xdr
230 (let ((commit "08e072f9cb164f943a92eb59f90f3abc64ac6e8f")
231 (revision "0"))
232 (package
233 (name "go-github-com-calmh-xdr")
234 (version (git-version "2.0.1" revision commit))
235 (source (origin
236 (method git-fetch)
237 (uri (git-reference
238 (url "https://github.com/calmh/xdr")
239 (commit commit)))
240 (file-name (git-file-name name version))
241 (sha256
242 (base32
243 "072wqdncz3nd4a3zkhvzzx1y3in1lm29wfvl0d8wrnqs5pyqh0mh"))))
244 (build-system go-build-system)
245 (arguments
246 `(#:import-path "github.com/calmh/xdr"))
247 (synopsis "XDR marshalling and unmarshalling")
248 (description "XDR is an External Data Representation (XDR)
249 marshalling and unmarshalling library in Go. It uses code generation and not
250 reflection.")
251 (home-page "https://github.com/calmh/xdr")
252 (license expat))))
253
254 (define-public go-github-com-d4l3k-messagediff
255 (let ((commit "29f32d820d112dbd66e58492a6ffb7cc3106312b")
256 (revision "0"))
257 (package
258 (name "go-github-com-d4l3k-messagediff")
259 (version (git-version "1.1.0" revision commit))
260 (source (origin
261 (method git-fetch)
262 (uri (git-reference
263 (url "https://github.com/d4l3k/messagediff")
264 (commit commit)))
265 (file-name (git-file-name name version))
266 (sha256
267 (base32
268 "104hl8x57ciaz7mzafg1vp9qggxcyfm8hsv9bmlihbz9ml3nyr8v"))))
269 (build-system go-build-system)
270 (arguments
271 `(#:import-path "github.com/d4l3k/messagediff"))
272 (synopsis "Diff arbitrary Go structs")
273 (description "Messagediff is a library for calculating diffs of arbitrary
274 structs in the Go programming language.")
275 (home-page "https://github.com/d4l3k/messagediff")
276 (license expat))))
277
278 (define-public go-github-com-gobwas-glob
279 (let ((commit "51eb1ee00b6d931c66d229ceeb7c31b985563420")
280 (revision "0"))
281 (package
282 (name "go-github-com-gobwas-glob")
283 (version (git-version "0.0.0" revision commit))
284 (source (origin
285 (method git-fetch)
286 (uri (git-reference
287 (url "https://github.com/gobwas/glob")
288 (commit commit)))
289 (file-name (git-file-name name version))
290 (sha256
291 (base32
292 "090wzpwsjana1qas8ipwh1pj959gvc4b7vwybzi01f3bmd79jwlp"))))
293 (build-system go-build-system)
294 (arguments
295 `(#:import-path "github.com/gobwas/glob"))
296 (synopsis "Go globbing library")
297 (description "This packages provides a Go implementation of globs.")
298 (home-page "https://github.com/gobwas/glob")
299 (license expat))))
300
301 (define* (go-github-com-gogo-protobuf-union
302 #:optional (packages (list go-github-com-gogo-protobuf
303 go-github-com-gogo-protobuf-protoc-gen-gogo)))
304 (package
305 (name "go-github-com-gogo-protobuf-union")
306 (version (package-version go-github-com-gogo-protobuf))
307 (source #f)
308 (build-system trivial-build-system)
309 (arguments
310 '(#:modules ((guix build union))
311 #:builder (begin
312 (use-modules (ice-9 match)
313 (guix build union))
314 (match %build-inputs
315 (((names . directories) ...)
316 (union-build (assoc-ref %outputs "out")
317 directories)
318 #t)))))
319 (inputs (map (lambda (package)
320 (list (package-name package) package))
321 packages))
322 (synopsis "Union of Go protobuf libraries")
323 (description "This is a union of Go protobuf libraries")
324 (home-page (package-home-page go-github-com-gogo-protobuf))
325 (license (package-license go-github-com-gogo-protobuf))))
326
327 (define-public go-github-com-gogo-protobuf
328 (let ((commit "160de10b2537169b5ae3e7e221d28269ef40d311")
329 (revision "2"))
330 (package
331 (name "go-github-com-gogo-protobuf")
332 (version (git-version "0.5" revision commit))
333 (source (origin
334 (method git-fetch)
335 (uri (git-reference
336 (url "https://github.com/gogo/protobuf")
337 (commit commit)))
338 (file-name (git-file-name name version))
339 (sha256
340 (base32
341 "0hxq28sgxym04rv0q40gpwkh4ni359q21hq3g78wwxwx4qfd4zwm"))))
342 (build-system go-build-system)
343 (arguments
344 `(#:import-path "github.com/gogo/protobuf/proto"
345 #:unpack-path "github.com/gogo/protobuf"))
346 (propagated-inputs
347 `(("go-github-com-gogo-protobuf-protoc-gen-gogo"
348 ,go-github-com-gogo-protobuf-protoc-gen-gogo)))
349 (synopsis "Protocol Buffers for Go with Gadgets")
350 (description "Gogoprotobuf is a fork of golang/protobuf with extra code
351 generation features. This code generation is used to achieve:
352 @itemize
353 @item fast marshalling and unmarshalling
354 @item more canonical Go structures
355 @item goprotobuf compatibility
356 @item less typing by optionally generating extra helper code
357 @item peace of mind by optionally generating test and benchmark code
358 @item other serialization formats
359 @end itemize")
360 (home-page "https://github.com/gogo/protobuf")
361 (license bsd-3))))
362
363 (define-public go-github-com-gogo-protobuf-protoc-gen-gogo
364 (let ((commit "efccd33a0c20aa078705571d5ddbfa14c8395a63")
365 (revision "0"))
366 (package
367 (name "go-github-com-gogo-protobuf-protoc-gen-gogo")
368 (version (git-version "0.2" revision commit))
369 (source (origin
370 (method git-fetch)
371 (uri (git-reference
372 (url "https://github.com/gogo/protobuf")
373 (commit commit)))
374 (file-name (git-file-name name version))
375 (sha256
376 (base32
377 "09kfa3aqmhh7p0rc6wd4fw5cjccidsk9vgcy13albv0g8vnbmmgw"))))
378 (build-system go-build-system)
379 (arguments
380 `(#:import-path "github.com/gogo/protobuf/protoc-gen-gogo"
381 #:unpack-path "github.com/gogo/protobuf"))
382 (synopsis "Protocol Buffers for Go with Gadgets")
383 (description "Gogoprotobuf is a fork of golang/protobuf with extra code
384 generation features. This code generation is used to achieve:
385 @itemize
386 @item fast marshalling and unmarshalling
387 @item more canonical Go structures
388 @item goprotobuf compatibility
389 @item less typing by optionally generating extra helper code
390 @item peace of mind by optionally generating test and benchmark code
391 @item other serialization formats
392 @end itemize")
393 (home-page "https://github.com/gogo/protobuf")
394 (license bsd-3))))
395
396 (define-public go-github-com-golang-groupcache-lru
397 (let ((commit "84a468cf14b4376def5d68c722b139b881c450a4")
398 (revision "1"))
399 (package
400 (name "go-github-com-golang-groupcache-lru")
401 (version (git-version "0.0.0" revision commit))
402 (source (origin
403 (method git-fetch)
404 (uri (git-reference
405 (url "https://github.com/golang/groupcache")
406 (commit commit)))
407 (file-name (git-file-name name version))
408 (sha256
409 (base32
410 "1ky1r9qh54yi9zp2769qrjngzndgd8fn7mja2qfac285n06chmcn"))))
411 (build-system go-build-system)
412 (arguments
413 `(#:import-path "github.com/golang/groupcache/lru"
414 #:unpack-path "github.com/golang/groupcache"))
415 (synopsis "Groupcache is a caching and cache-filling library")
416 (description "Groupcache is a caching and cache-filling library, intended
417 as a replacement for memcached in many cases. It provides a data loading
418 mechanism with caching and de-duplication that works across a set of peer
419 processes.")
420 (home-page "https://github.com/golang/groupcache")
421 (license asl2.0))))
422
423 (define-public go-github-com-golang-snappy
424 (let ((commit "553a641470496b2327abcac10b36396bd98e45c9")
425 (revision "0"))
426 (package
427 (name "go-github-com-golang-snappy")
428 (version (git-version "0.0.0" revision commit))
429 (source (origin
430 (method git-fetch)
431 (uri (git-reference
432 (url "https://github.com/golang/snappy")
433 (commit commit)))
434 (file-name (git-file-name name version))
435 (sha256
436 (base32
437 "0kssxnih1l722hx9219c7javganjqkqhvl3i0hp0hif6xm6chvqk"))))
438 (build-system go-build-system)
439 (arguments
440 `(#:import-path "github.com/golang/snappy"))
441 (synopsis "Snappy compression format in the Go programming language")
442 (description "This package provides a Go implementation of the Snappy
443 compression format.")
444 (home-page "https://github.com/golang/snappy")
445 (license bsd-3))))
446
447 (define-public go-github-com-jackpal-gateway
448 (let ((commit "5795ac81146e01d3fab7bcf21c043c3d6a32b006")
449 (revision "0"))
450 (package
451 (name "go-github-com-jackpal-gateway")
452 (version (git-version "0.0.0" revision commit))
453 (source (origin
454 (method git-fetch)
455 (uri (git-reference
456 (url "https://github.com/jackpal/gateway")
457 (commit commit)))
458 (file-name (git-file-name name version))
459 (sha256
460 (base32
461 "0fkwkwmhfadwk3cha8616bhqxfkr9gjjnynhhxyldlphixgs3f25"))))
462 (build-system go-build-system)
463 (arguments
464 `(#:import-path "github.com/jackpal/gateway"))
465 (synopsis "Discover the address of a LAN gateway")
466 (description "@code{gateway} is a Go library for discovering the IP
467 address of the default LAN gateway.")
468 (home-page "https://github.com/jackpal/gateway")
469 (license bsd-3))))
470
471 (define-public go-github-com-lib-pq
472 (let ((commit "83612a56d3dd153a94a629cd64925371c9adad78")
473 (revision "1"))
474 (package
475 (name "go-github-com-lib-pq")
476 (version (git-version "0.0.0" revision commit))
477 (source (origin
478 (method git-fetch)
479 (uri (git-reference
480 (url "https://github.com/lib/pq")
481 (commit commit)))
482 (file-name (git-file-name name version))
483 (sha256
484 (base32
485 "12334yigh284k5cdvb9pgxaq6n78205jcbp75ajz44vvfd4wi6qc"))))
486 (build-system go-build-system)
487 (arguments
488 `(#:import-path "github.com/lib/pq"
489 ;; The tests seem to fail without access to the network or a running
490 ;; Postgres instance.
491 #:tests? #f))
492 (synopsis "Golang Postgres driver for Go's database/sql")
493 (description "This packages provides a pure Go Postgres driver for Go's
494 database/sql package.")
495 (home-page "https://github.com/lib/pq")
496 (license expat))))
497
498 (define-public go-github-com-minio-sha256-simd
499 (let ((commit "ad98a36ba0da87206e3378c556abbfeaeaa98668")
500 (revision "1"))
501 (package
502 (name "go-github-com-minio-sha256-simd")
503 (version (git-version "0.0.0" revision commit))
504 (source (origin
505 (method git-fetch)
506 (uri (git-reference
507 (url "https://github.com/minio/sha256-simd")
508 (commit commit)))
509 (file-name (git-file-name name version))
510 (sha256
511 (base32
512 "0yfnqn3kqdnlfm54yvc4fr5vpdmwdi2kw571nlkbpmy8ldhsqqfi"))))
513 (build-system go-build-system)
514 (arguments
515 `(#:import-path "github.com/minio/sha256-simd"))
516 (synopsis "Hardware-accelerated SHA256 in Go using SIMD")
517 (description "This packages provides a pure Go implementation of SHA256
518 using SIMD (Single instruction, multiple data) instructions for Intel and ARM
519 architectures.")
520 (home-page "https://github.com/minio/sha256-simd")
521 (license asl2.0))))
522
523 (define-public go-github-com-oschwald-geoip2-golang
524 (package
525 (name "go-github-com-oschwald-geoip2-golang")
526 (version "1.1.0")
527 (source (origin
528 (method git-fetch)
529 (uri (git-reference
530 (url "https://github.com/oschwald/geoip2-golang")
531 (commit (string-append "v" version))))
532 (file-name (git-file-name name version))
533 (sha256
534 (base32
535 "0v698bzs8lb59cqpsa9cf4sl8rdsvnnmaravhbfn6g6i511ppclr"))))
536 (build-system go-build-system)
537 (propagated-inputs
538 `(("go-github-com-oschwald-maxminddb-golang"
539 ,go-github-com-oschwald-maxminddb-golang)
540 ("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
541 (arguments
542 `(#:import-path "github.com/oschwald/geoip2-golang"
543 #:tests? #f)) ; Requires some unpackaged software and test data
544 (synopsis "MaxMind GeoIP2 reader")
545 (description "This packages provides a library for reading MaxMind
546 GeoLite2 and GeoIP2 databases in Go.")
547 (home-page "https://github.com/oschwald/geoip2-golang")
548 (license isc)))
549
550 (define-public go-github-com-oschwald-maxminddb-golang
551 (let ((commit "26fe5ace1c706491c2936119e1dc69c1a9c04d7f")
552 (revision "0"))
553 (package
554 (name "go-github-com-oschwald-maxminddb-golang")
555 (version (git-version "1.2.0" revision commit))
556 (source (origin
557 (method git-fetch)
558 (uri (git-reference
559 (url "https://github.com/oschwald/maxminddb-golang")
560 (commit commit)))
561 (file-name (git-file-name name version))
562 (sha256
563 (base32
564 "1i6d935f3cv9djpjvc2ibh8aps8jqvg454b9pkwg2h98al759ggk"))))
565 (build-system go-build-system)
566 (propagated-inputs
567 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
568 (arguments
569 `(#:import-path "github.com/oschwald/maxminddb-golang"
570 #:tests? #f)) ; Requires some unpackaged software and test data
571 (synopsis "MaxMind DB Reader for Go")
572 (description "This is a Go reader for the MaxMind DB format. Although
573 this can be used to read GeoLite2 and GeoIP2 databases, @code{geoip2} provides a
574 higher-level API for doing so.")
575 (home-page "https://github.com/oschwald/maxminddb-golang")
576 (license isc))))
577
578 (define-public go-github-com-stathat-go
579 (let ((commit "74669b9f388d9d788c97399a0824adbfee78400e")
580 (revision "0"))
581 (package
582 (name "go-github-com-stathat-go")
583 (version (git-version "0.0.0" revision commit))
584 (source (origin
585 (method git-fetch)
586 (uri (git-reference
587 (url "https://github.com/stathat/go")
588 (commit commit)))
589 (file-name (git-file-name name version))
590 (sha256
591 (base32
592 "1zzlsl24dyr202qkr2pay22m6d0gb7ssms77wgdx0r0clgm7dihw"))))
593 (build-system go-build-system)
594 (arguments
595 `(#:import-path "github.com/stathat/go"))
596 (synopsis "Post statistics to StatHat")
597 (description "This is a Go package for posting to a StatHat account.")
598 (home-page "https://github.com/stathat/go")
599 (license expat))))
600
601 (define-public go-github-com-rcrowley-go-metrics
602 (let ((commit "e181e095bae94582363434144c61a9653aff6e50")
603 (revision "1"))
604 (package
605 (name "go-github-com-rcrowley-go-metrics")
606 (version (git-version "0.0.0" revision commit))
607 (source (origin
608 (method git-fetch)
609 (uri (git-reference
610 (url "https://github.com/rcrowley/go-metrics")
611 (commit commit)))
612 (file-name (git-file-name name version))
613 (sha256
614 (base32
615 "1pwkyw801hy7n94skzk6h177zqcil6ayrmb5gs3jdpsfayh8ia5w"))))
616 (build-system go-build-system)
617 (arguments
618 `(#:import-path "github.com/rcrowley/go-metrics"))
619 (propagated-inputs
620 `(("go-github-com-stathat-go" ,go-github-com-stathat-go)))
621 (synopsis "Go port of Coda Hale's Metrics library")
622 (description "This package provides a Go implementation of Coda Hale's
623 Metrics library.")
624 (home-page "https://github.com/rcrowley/go-metrics")
625 (license bsd-2))))
626
627 (define-public go-github-com-sasha-s-go-deadlock
628 (let ((commit "03d40e5dbd5488667a13b3c2600b2f7c2886f02f")
629 (revision "1"))
630 (package
631 (name "go-github-com-sasha-s-go-deadlock")
632 (version (git-version "0.1.0" revision commit))
633 (source (origin
634 (method git-fetch)
635 (uri (git-reference
636 (url "https://github.com/sasha-s/go-deadlock")
637 (commit commit)))
638 (file-name (git-file-name name version))
639 (sha256
640 (base32
641 "13p7b7pakd9k1c2k0fs1hfim3c8mivz679977ai6zb01s4aw7gyg"))))
642 (build-system go-build-system)
643 (arguments
644 `(#:import-path "github.com/sasha-s/go-deadlock"))
645 (propagated-inputs
646 `(("go-github-com-petermattis-goid" ,go-github-com-petermattis-goid)))
647 (synopsis "Deadlock detection in go")
648 (description "This package provides tools for detecting deadlocks at
649 run-time in Go.")
650 (home-page "https://github.com/sasha-s/go-deadlock")
651 (license asl2.0))))
652
653 (define-public go-github-com-syndtr-goleveldb
654 (let ((commit "34011bf325bce385408353a30b101fe5e923eb6e")
655 (revision "2"))
656 (package
657 (name "go-github-com-syndtr-goleveldb")
658 (version (git-version "0.0.0" revision commit))
659 (source (origin
660 (method git-fetch)
661 (uri (git-reference
662 (url "https://github.com/syndtr/goleveldb")
663 (commit commit)))
664 (file-name (git-file-name name version))
665 (sha256
666 (base32
667 "097ja0vyj6p27zrxha9nhk09fj977xsvhmd3bk2hbyvnbw4znnhd"))))
668 (build-system go-build-system)
669 (propagated-inputs
670 `(("go-github-com-golang-snappy" ,go-github-com-golang-snappy)))
671 (arguments
672 `(#:import-path "github.com/syndtr/goleveldb/leveldb"
673 #:unpack-path "github.com/syndtr/goleveldb"
674 #:tests? #f)) ; XXX needs 'github.com/onsi/gomega' package
675 (synopsis "LevelDB key/value database")
676 (description "This is an implementation of the LevelDB key / value
677 database in Go.")
678 (home-page "https://github.com/syndtr/goleveldb")
679 (license bsd-2))))
680
681 (define-public go-github-com-thejerf-suture
682 (let ((commit "bf6ee6a0b047ebbe9ae07d847f750dd18c6a9276")
683 (revision "0"))
684 (package
685 (name "go-github-com-thejerf-suture")
686 (version (git-version "3.0.0" revision commit))
687 (source (origin
688 (method git-fetch)
689 (uri (git-reference
690 (url "https://github.com/thejerf/suture")
691 (commit commit)))
692 (file-name (git-file-name name version))
693 (sha256
694 (base32
695 "0rzx9k408vaglwnnpgpcs6y7ff7p65915nbg33rvbaz13hxwkz3y"))))
696 (build-system go-build-system)
697 (arguments
698 `(#:import-path "github.com/thejerf/suture"))
699 (synopsis "Supervisor trees for Go")
700 (description "Suture provides Erlang-ish supervisor trees for Go.
701 \"Supervisor trees\" -> \"sutree\" -> \"suture\" -> holds your code together
702 when it's trying to die.
703
704 It is intended to deal gracefully with the real failure cases that can occur
705 with supervision trees (such as burning all your CPU time endlessly restarting
706 dead services), while also making no unnecessary demands on the \"service\"
707 code, and providing hooks to perform adequate logging with in a production
708 environment")
709 (home-page "https://github.com/thejerf/suture")
710 (license expat))))
711
712 (define* (go-github-com-vitrun-qart-union
713 #:optional (packages (list go-github-com-vitrun-qart-coding
714 go-github-com-vitrun-qart-gf256
715 go-github-com-vitrun-qart-qr)))
716 (package
717 (name "go-github-com-vitrun-qart")
718 (version (package-version go-github-com-vitrun-qart-qr))
719 (source #f)
720 (build-system trivial-build-system)
721 (arguments
722 '(#:modules ((guix build union))
723 #:builder (begin
724 (use-modules (ice-9 match)
725 (guix build union))
726 (match %build-inputs
727 (((names . directories) ...)
728 (union-build (assoc-ref %outputs "out")
729 directories)
730 #t)))))
731 (inputs (map (lambda (package)
732 (list (package-name package) package))
733 packages))
734 (synopsis "Union of qart libraries")
735 (description "This is a union of qart libraries.")
736 (home-page (package-home-page go-github-com-vitrun-qart-qr))
737 (license (package-license go-github-com-vitrun-qart-qr))))
738
739 (define-public go-github-com-vitrun-qart-coding
740 (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa")
741 (revision "0"))
742 (package
743 (name "go-github-com-vitrun-qart-coding")
744 (version (git-version "0.0.0" revision commit))
745 (source (origin
746 (method git-fetch)
747 (uri (git-reference
748 (url "https://github.com/vitrun/qart")
749 (commit commit)))
750 (file-name (string-append "go-github-com-vitrun-qart-"
751 version "-checkout"))
752 (sha256
753 (base32
754 "1xk7qki703xmay9ghi3kq2bjf1iw9dz8wik55739d6i7sn77vvkc"))))
755 (build-system go-build-system)
756 (arguments
757 `(#:import-path "github.com/vitrun/qart/coding"
758 #:unpack-path "github.com/vitrun/qart"))
759 (synopsis "Low-level QR coding library")
760 (description "This package provides a library for embedding
761 human-meaningful graphics in QR codes. However, instead of scribbling on
762 redundant pieces and relying on error correction to preserve the meaning,
763 @code{qart} engineers the encoded values to create the picture in a code with no
764 inherent errors. This @code{qart} component, @code{coding}, implements
765 low-level QR coding details.")
766 (home-page "https://github.com/vitrun/qart/")
767 (license bsd-3))))
768
769 (define-public go-github-com-vitrun-qart-gf256
770 (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa")
771 (revision "0"))
772 (package
773 (name "go-github-com-vitrun-qart-gf256")
774 (version (git-version "0.0.0" revision commit))
775 (source (origin
776 (method git-fetch)
777 (uri (git-reference
778 (url "https://github.com/vitrun/qart")
779 (commit commit)))
780 (file-name (string-append "go-github-com-vitrun-qart-"
781 version "-checkout"))
782 (sha256
783 (base32
784 "1xk7qki703xmay9ghi3kq2bjf1iw9dz8wik55739d6i7sn77vvkc"))))
785 (build-system go-build-system)
786 (arguments
787 `(#:import-path "github.com/vitrun/qart/gf256"
788 #:unpack-path "github.com/vitrun/qart"))
789 (synopsis "Qart library for Galois Field GF(256) math")
790 (description "This package, a component of @code{qart}, provides @code{gf256},
791 implements arithmetic over the Galois Field GF(256).")
792 (home-page "https://github.com/vitrun/qart")
793 (license bsd-3))))
794
795 (define-public go-github-com-vitrun-qart-qr
796 (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa")
797 (revision "0"))
798 (package
799 (name "go-github-com-vitrun-qart-qr")
800 (version (git-version "0.0.0" revision commit))
801 (source (origin
802 (method git-fetch)
803 (uri (git-reference
804 (url "https://github.com/vitrun/qart")
805 (commit commit)))
806 (file-name (string-append "go-github-com-vitrun-qart-"
807 version "-checkout"))
808 (sha256
809 (base32
810 "1xk7qki703xmay9ghi3kq2bjf1iw9dz8wik55739d6i7sn77vvkc"))))
811 (build-system go-build-system)
812 (arguments
813 `(#:import-path "github.com/vitrun/qart/qr"
814 #:unpack-path "github.com/vitrun/qart"))
815 (synopsis "Qart component for generating QR codes")
816 (description "This package provides a library for embedding
817 human-meaningful graphics in QR codes. However, instead of scribbling on
818 redundant pieces and relying on error correction to preserve the meaning,
819 @code{qart} engineers the encoded values to create the picture in a code with no
820 inherent errors. This @code{qart} component, @code{qr}, provides QR code
821 generation.")
822 (home-page "https://github.com/vitrun/qart")
823 (license bsd-3))))
824
825 ;; Go searches for library modules by looking in the GOPATH environment
826 ;; variable. This variable is a list of paths. However, Go does not
827 ;; keep searching on GOPATH if it tries and fails to import a module.
828 ;; So, we use a union for packages sharing a namespace.
829 (define* (go-golang-org-x-crypto-union #:optional
830 (packages (list go-golang-org-x-crypto-blowfish
831 go-golang-org-x-crypto-bcrypt
832 go-golang-org-x-crypto-tea
833 go-golang-org-x-crypto-xtea
834 go-golang-org-x-crypto-pbkdf2
835 go-golang-org-x-crypto-twofish
836 go-golang-org-x-crypto-cast5
837 go-golang-org-x-crypto-salsa20)))
838 (package
839 (name "go-golang-org-x-crypto")
840 (version (package-version go-golang-org-x-crypto-bcrypt))
841 (source #f)
842 (build-system trivial-build-system)
843 (arguments
844 '(#:modules ((guix build union))
845 #:builder (begin
846 (use-modules (ice-9 match)
847 (guix build union))
848 (match %build-inputs
849 (((names . directories) ...)
850 (union-build (assoc-ref %outputs "out")
851 directories)
852 #t)))))
853 (inputs (map (lambda (package)
854 (list (package-name package) package))
855 packages))
856 (synopsis "Union of the Go x crypto libraries")
857 (description "A union of the Golang cryptographic libraries. A
858 union is required because `go build` assumes that all of the headers and
859 libraries are in the same directory.")
860 (home-page (package-home-page go-golang-org-x-crypto-bcrypt))
861 (license (package-license go-golang-org-x-crypto-bcrypt))))
862
863 (define* (go-golang-org-x-net-union #:optional
864 (packages (list go-golang-org-x-net-ipv4
865 go-golang-org-x-net-bpf
866 go-golang-org-x-net-ipv6
867 go-golang-org-x-net-proxy
868 go-golang-org-x-net-internal-iana)))
869 (package
870 (name "go-golang-org-x-net")
871 (version (package-version go-golang-org-x-net-ipv4))
872 (source #f)
873 (build-system trivial-build-system)
874 (arguments
875 '(#:modules ((guix build union))
876 #:builder (begin
877 (use-modules (ice-9 match)
878 (guix build union))
879 (match %build-inputs
880 (((names . directories) ...)
881 (union-build (assoc-ref %outputs "out")
882 directories)
883 #t)))))
884 (inputs (map (lambda (package)
885 (list (package-name package) package))
886 packages))
887 (synopsis "Union of the Go net libraries")
888 (description "A union of the Golang net libraries.")
889 (home-page (package-home-page go-golang-org-x-net-ipv4))
890 (license (package-license go-golang-org-x-net-ipv4))))
891
892 (define* (go-golang-org-x-text-union #:optional
893 (packages (list go-golang-org-x-text-transform
894 go-golang-org-x-text-unicode-norm)))
895 (package
896 (name "go-golang-org-x-text")
897 (version (package-version go-golang-org-x-text-transform))
898 (source #f)
899 (build-system trivial-build-system)
900 (arguments
901 '(#:modules ((guix build union))
902 #:builder (begin
903 (use-modules (ice-9 match)
904 (guix build union))
905 (match %build-inputs
906 (((names . directories) ...)
907 (union-build (assoc-ref %outputs "out")
908 directories)
909 #t)))))
910 (inputs (map (lambda (package)
911 (list (package-name package) package))
912 packages))
913 (synopsis "Union of the Go text libraries")
914 (description "A union of the Golang text libraries.")
915 (home-page (package-home-page go-golang-org-x-text-transform))
916 (license (package-license go-golang-org-x-text-transform))))
917
918 (define-public go-github-com-audriusbutkevicius-pfilter
919 (let ((commit "9dca34a5b530bfc9843fa8aa2ff08ff9821032cb")
920 (revision "2"))
921 (package
922 (name "go-github-com-audriusbutkevicius-pfilter")
923 (version (git-version "0.0.0" revision commit))
924 (source
925 (origin
926 (method git-fetch)
927 (uri (git-reference
928 (url "https://github.com/AudriusButkevicius/pfilter.git")
929 (commit commit)))
930 (file-name (git-file-name name version))
931 (sha256
932 (base32
933 "0i4qbnwba49db27fb1y792gcvhb0m744i9q4zgwjbypqmy3bj2a5"))))
934 (build-system go-build-system)
935 (arguments
936 '(#:import-path "github.com/AudriusButkevicius/pfilter"))
937 (synopsis "Filter packets into mulitple virtual connections")
938 (description "Pfilter is a Go package for filtering packets into multiple
939 virtual connections from a single physical connection.")
940 (home-page "https://github.com/AudriusButkevicius/pfilter")
941 (license expat))))
942
943 (define-public go-github-com-chmduquesne-rollinghash-adler32
944 (let ((commit "abb8cbaf9915e48ee20cae94bcd94221b61707a2")
945 (revision "2"))
946 (package
947 (name "go-github-com-chmduquesne-rollinghash-adler32")
948 (version (git-version "0.0.0" revision commit))
949 (source
950 (origin
951 (method git-fetch)
952 (uri (git-reference
953 (url "https://github.com/chmduquesne/rollinghash.git")
954 (commit commit)))
955 (file-name (git-file-name name version))
956 (sha256
957 (base32
958 "0ylqb9r60q77qw0d6g9cg4yzadxzwcw74lfd25cw9yglyq0wgd3l"))))
959 (build-system go-build-system)
960 (arguments
961 '(#:import-path "github.com/chmduquesne/rollinghash/adler32"
962 #:unpack-path "github.com/chmduquesne/rollinghash"))
963 (synopsis "Adler-32 rolling hash in Go")
964 (description "This package provides a Go implementation of the Adler-32
965 rolling hash.")
966 (home-page "https://github.com/chmduquesne/rollinghash")
967 (license expat))))
968
969 (define-public go-github-com-pkg-errors
970 (let ((commit "e881fd58d78e04cf6d0de1217f8707c8cc2249bc")
971 (revision "1"))
972 (package
973 (name "go-github-com-pkg-errors")
974 (version (git-version "0.0.0" revision commit))
975 (source (origin
976 (method git-fetch)
977 (uri (git-reference
978 (url "https://github.com/pkg/errors.git")
979 (commit commit)))
980 (file-name (git-file-name name version))
981 (sha256
982 (base32
983 "0vfhj598jp6dzy4pbyjdrqxzb5kppw8ggvfh78g80nz11r34xnzs"))))
984 (build-system go-build-system)
985 (arguments
986 `(#:import-path "github.com/pkg/errors"))
987 (synopsis "Go error handling primitives")
988 (description "This packages provides @code{error}, which offers simple
989 error handling primitives in Go.")
990 (home-page "https://github.com/pkg/errors")
991 (license bsd-2))))
992
993 (define-public go-github-com-petermattis-goid
994 (let ((commit "3db12ebb2a599ba4a96bea1c17b61c2f78a40e02")
995 (revision "0"))
996 (package
997 (name "go-github-com-petermattis-goid")
998 (version (git-version "0.0.0" revision commit))
999 (source (origin
1000 (method git-fetch)
1001 (uri (git-reference
1002 (url "https://github.com/petermattis/goid.git")
1003 (commit commit)))
1004 (file-name (git-file-name name version))
1005 (sha256
1006
1007 (base32
1008 "0z18a3mr72c52g7g94n08gxw0ksnaafbfwdl5p5jav2sffirb0kd"))))
1009 (build-system go-build-system)
1010 (arguments
1011 '(#:import-path "github.com/petermattis/goid"))
1012 (synopsis "Identify the running goroutine")
1013 (description "This package offers a method of programatically retrieving
1014 the current goroutine's ID.")
1015 (home-page "https://github.com/petermattis/goid")
1016 (license asl2.0))))
1017
1018 (define-public go-github-com-audriusbutkevicius-cli
1019 (let ((commit "7f561c78b5a4aad858d9fd550c92b5da6d55efbb")
1020 (revision "0"))
1021 (package
1022 (name "go-github-com-audriusbutkevicius-cli")
1023 (version (git-version "0.0.0" revision commit))
1024 (source (origin
1025 (method git-fetch)
1026 (uri (git-reference
1027 (url "https://github.com/AudriusButkevicius/cli.git")
1028 (commit commit)))
1029 (file-name (git-file-name name version))
1030 (sha256
1031 (base32
1032 "0bg26pfg25vr16jmczig2m493mja2nxjxyswz3hha7avxw20rpi5"))))
1033 (build-system go-build-system)
1034 (arguments
1035 '(#:import-path "github.com/AudriusButkevicius/cli"))
1036 (synopsis "Library for building command-line interfaces in Go")
1037 (description "This package provides a library for building command-line
1038 interfaces in Go.")
1039 (home-page "https://github.com/AudriusButkevicius/cli")
1040 (license expat))))
1041
1042 (define-public go-github-com-kballard-go-shellquote
1043 (let ((commit "cd60e84ee657ff3dc51de0b4f55dd299a3e136f2")
1044 (revision "0"))
1045 (package
1046 (name "go-github-com-kballard-go-shellquote")
1047 (version (git-version "0.0.0" revision commit))
1048 (source (origin
1049 (method git-fetch)
1050 (uri (git-reference
1051 (url "https://github.com/kballard/go-shellquote.git")
1052 (commit commit)))
1053 (file-name (git-file-name name version))
1054 (sha256
1055 (base32
1056 "1xjpin4jq1zl84dcn96xhjmn9bsfyszf6g9aqyj2dc0xfi6c88y0"))))
1057 (build-system go-build-system)
1058 (arguments
1059 '(#:import-path "github.com/kballard/go-shellquote"))
1060 (synopsis "Shell-style string joins and splits")
1061 (description "Shellquote provides utilities for joining/splitting strings
1062 using sh's word-splitting rules.")
1063 (home-page "https://github.com/kballard/go-shellquote")
1064 (license expat))))
1065
1066 (define-public go-github-com-syncthing-notify
1067 (let ((commit "b76b45868a77e7800dd06cce61101af9c4274bcc")
1068 (revision "2"))
1069 (package
1070 (name "go-github-com-syncthing-notify")
1071 (version (git-version "0.0.0" revision commit))
1072 (source (origin
1073 (method git-fetch)
1074 (uri (git-reference
1075 (url "https://github.com/syncthing/notify")
1076 (commit commit)))
1077 (file-name (git-file-name name version))
1078 (sha256
1079 (base32
1080 "1xxkzaxygxxr51i2kdxsdaqb5i95hqpkw4kcr75wmsp914slw2q9"))))
1081 (build-system go-build-system)
1082 (arguments
1083 '(#:import-path "github.com/syncthing/notify"))
1084 (propagated-inputs
1085 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
1086 (synopsis "File system event notification library")
1087 (description "This package provides @code{notify}, a file system event
1088 notification library in Go.")
1089 (home-page "https://github.com/syncthing/notify")
1090 (license expat))))
1091
1092 (define-public go-github-com-beorn7-perks-quantile
1093 (let ((commit "4c0e84591b9aa9e6dcfdf3e020114cd81f89d5f9")
1094 (revision "0"))
1095 (package
1096 (name "go-github-com-beorn7-perks-quantile")
1097 (version (git-version "0.0.0" revision commit))
1098 (source (origin
1099 (method git-fetch)
1100 (uri (git-reference
1101 (url "https://github.com/beorn7/perks.git")
1102 (commit commit)))
1103 (file-name (git-file-name name version))
1104 (sha256
1105 (base32
1106 "1hrybsql68xw57brzj805xx2mghydpdiysv3gbhr7f5wlxj2514y"))))
1107 (build-system go-build-system)
1108 (arguments
1109 '(#:import-path "github.com/beorn7/perks/quantile"
1110 #:unpack-path "github.com/beorn7/perks"))
1111 (synopsis "Compute approximate quantiles over an unbounded data stream")
1112 (description "Perks contains the Go package @code{quantile} that computes
1113 approximate quantiles over an unbounded data stream within low memory and CPU
1114 bounds.")
1115 (home-page "https://github.com/beorn7/perks")
1116 (license expat))))
1117
1118 (define-public go-github-com-golang-protobuf-proto
1119 (let ((commit "1e59b77b52bf8e4b449a57e6f79f21226d571845")
1120 (revision "0"))
1121 (package
1122 (name "go-github-com-golang-protobuf-proto")
1123 (version (git-version "0.0.0" revision commit))
1124 (source (origin
1125 (method git-fetch)
1126 (uri (git-reference
1127 (url "https://github.com/golang/protobuf.git")
1128 (commit commit)))
1129 (file-name (git-file-name name version))
1130 (sha256
1131 (base32
1132 "19bkh81wnp6njg3931wky6hsnnl2d1ig20vfjxpv450sd3k6yys8"))))
1133 (build-system go-build-system)
1134 (arguments
1135 '(#:import-path "github.com/golang/protobuf/proto"
1136 #:unpack-path "github.com/golang/protobuf"
1137 #:tests? #f ; requires unpackaged golang.org/x/sync/errgroup
1138 ))
1139 (synopsis "Go support for Protocol Buffers")
1140 (description "This package provides Go support for the Protocol Buffers
1141 data serialization format.")
1142 (home-page "https://github.com/golang/protobuf")
1143 (license bsd-3))))
1144
1145 (define-public go-github-com-prometheus-client-model-go
1146 (let ((commit "99fa1f4be8e564e8a6b613da7fa6f46c9edafc6c")
1147 (revision "0"))
1148 (package
1149 (name "go-github-com-prometheus-client-model-go")
1150 (version (git-version "0.0.2" revision commit))
1151 (source (origin
1152 (method git-fetch)
1153 (uri (git-reference
1154 (url "https://github.com/prometheus/client_model.git")
1155 (commit commit)))
1156 (file-name (git-file-name name version))
1157 (sha256
1158 (base32
1159 "19y4ywsivhpxj7ikf2j0gm9k3cmyw37qcbfi78n526jxcc7kw998"))))
1160 (build-system go-build-system)
1161 (arguments
1162 '(#:import-path "github.com/prometheus/client_model/go"
1163 #:unpack-path "github.com/prometheus/client_model"))
1164 (propagated-inputs
1165 `(("go-github-com-golang-protobuf-proto"
1166 ,go-github-com-golang-protobuf-proto)))
1167 (synopsis "Data model artifacts for Prometheus")
1168 (description "This package provides data model artifacts for Prometheus.")
1169 (home-page "https://github.com/prometheus/client_model")
1170 (license asl2.0))))
1171
1172 (define-public go-github-com-matttproud-golang-protobuf-extensions-pbutil
1173 (let ((commit "c12348ce28de40eed0136aa2b644d0ee0650e56c")
1174 (revision "0"))
1175 (package
1176 (name "go-github-com-matttproud-golang-protobuf-extensions-pbutil")
1177 (version (git-version "1.0.0" revision commit))
1178 (source
1179 (origin
1180 (method git-fetch)
1181 (uri
1182 (git-reference
1183 (url "https://github.com/matttproud/golang_protobuf_extensions.git")
1184 (commit commit)))
1185 (file-name (git-file-name name version))
1186 (sha256
1187 (base32
1188 "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya"))))
1189 (build-system go-build-system)
1190 (arguments
1191 '(#:import-path "github.com/matttproud/golang_protobuf_extensions/pbutil"
1192 #:unpack-path "github.com/matttproud/golang_protobuf_extensions"))
1193 (propagated-inputs
1194 `(("go-github-com-golang-protobuf-proto"
1195 ,go-github-com-golang-protobuf-proto)))
1196 (synopsis "Streaming Protocol Buffers in Go")
1197 (description "This package provides various Protocol Buffer
1198 extensions for the Go language, namely support for record length-delimited
1199 message streaming.")
1200 (home-page "https://github.com/matttproud/golang_protobuf_extensions")
1201 (license asl2.0))))
1202
1203 (define-public go-github-com-prometheus-common-expfmt
1204 (let ((commit "2e54d0b93cba2fd133edc32211dcc32c06ef72ca")
1205 (revision "0"))
1206 (package
1207 (name "go-github-com-prometheus-common-expfmt")
1208 (version (git-version "0.0.0" revision commit))
1209 (source (origin
1210 (method git-fetch)
1211 (uri (git-reference
1212 (url "https://github.com/prometheus/common.git")
1213 (commit commit)))
1214 (file-name (git-file-name name version))
1215 (sha256
1216 (base32
1217 "14kn5w7imcxxlfdqxl21fsnlf1ms7200g3ldy29hwamldv8qlm7j"))))
1218 (build-system go-build-system)
1219 (arguments
1220 '(#:import-path "github.com/prometheus/common/expfmt"
1221 #:unpack-path "github.com/prometheus/common"
1222 #:phases
1223 (modify-phases %standard-phases
1224 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1225 (lambda* (#:key outputs #:allow-other-keys)
1226 (map (lambda (file)
1227 (make-file-writable file))
1228 (find-files
1229 (string-append (assoc-ref outputs "out")
1230 "/src/github.com/prometheus/common/expfmt/testdata/")
1231 ".*\\.gz$"))
1232 #t)))))
1233 (propagated-inputs
1234 `(("go-github-com-golang-protobuf-proto"
1235 ,go-github-com-golang-protobuf-proto)
1236 ("go-github-com-matttproud-golang-protobuf-extensions-pbutil"
1237 ,go-github-com-matttproud-golang-protobuf-extensions-pbutil)
1238 ("go-github-com-prometheus-client-model-go"
1239 ,go-github-com-prometheus-client-model-go)))
1240 (synopsis "Prometheus metrics")
1241 (description "This package provides tools for reading and writing
1242 Prometheus metrics.")
1243 (home-page "https://github.com/prometheus/common")
1244 (license asl2.0))))
1245
1246 (define-public go-github-com-prometheus-procfs
1247 (let ((commit "b15cd069a83443be3154b719d0cc9fe8117f09fb")
1248 (revision "0"))
1249 (package
1250 (name "go-github-com-prometheus-procfs")
1251 (version (git-version "0.0.0" revision commit))
1252 (source (origin
1253 (method git-fetch)
1254 (uri (git-reference
1255 (url "https://github.com/prometheus/procfs.git")
1256 (commit commit)))
1257 (file-name (git-file-name name version))
1258 (sha256
1259 (base32
1260 "1cr45wg2m40bj2za8f32mq09rjlcnk5kfam0h0hr8wcb015k4wxj"))))
1261 (build-system go-build-system)
1262 (arguments
1263 '(#:import-path "github.com/prometheus/procfs"))
1264 (synopsis "Go library for reading @file{/proc}")
1265 (description "The @code{procfs} Go package provides functions to retrieve
1266 system, kernel, and process metrics from the @file{/proc} pseudo file system.")
1267 (home-page "https://github.com/prometheus/procfs")
1268 (license asl2.0))))
1269
1270 (define-public go-github-com-client-golang-prometheus-promhttp
1271 (let ((commit "180b8fdc22b4ea7750bcb43c925277654a1ea2f3")
1272 (revision "0"))
1273 (package
1274 (name "go-github-com-client-golang-prometheus-promhttp")
1275 (version (git-version "0.0.0" revision commit))
1276 (source (origin
1277 (method git-fetch)
1278 (uri (git-reference
1279 (url "https://github.com/prometheus/client_golang.git")
1280 (commit commit)))
1281 (file-name (git-file-name name version))
1282 (sha256
1283 (base32
1284 "1kkfx1j9ka18ydsmdi2cdy3hs39c22b39mbc4laykmj2x93lmbdp"))))
1285 (build-system go-build-system)
1286 (arguments
1287 '(#:tests? #f ; The tests require internet access
1288 #:import-path "github.com/prometheus/client_golang/prometheus/promhttp"
1289 #:unpack-path "github.com/prometheus/client_golang"))
1290 (propagated-inputs
1291 `(("go-github-com-beorn7-perks-quantile"
1292 ,go-github-com-beorn7-perks-quantile)
1293 ("go-github-com-golang-protobuf-proto"
1294 ,go-github-com-golang-protobuf-proto)
1295 ("go-github-com-prometheus-client-model-go"
1296 ,go-github-com-prometheus-client-model-go)
1297 ("go-github-com-prometheus-common-expfmt"
1298 ,go-github-com-prometheus-common-expfmt)
1299 ("go-github-com-prometheus-procfs" ,go-github-com-prometheus-procfs)))
1300 (synopsis "HTTP server and client tools for Prometheus")
1301 (description "This package @code{promhttp} provides HTTP client and
1302 server tools for Prometheus metrics.")
1303 (home-page "https://github.com/prometheus/client_golang")
1304 (license asl2.0))))
1305
1306 (define-public go-github-com-client-golang-prometheus
1307 (let ((commit "180b8fdc22b4ea7750bcb43c925277654a1ea2f3")
1308 (revision "0"))
1309 (package
1310 (name "go-github-com-prometheus-client-golang-prometheus")
1311 (version (git-version "0.0.0" revision commit))
1312 (source (origin
1313 (method git-fetch)
1314 (uri (git-reference
1315 (url "https://github.com/prometheus/client_golang.git")
1316 (commit commit)))
1317 (file-name (git-file-name name version))
1318 (sha256
1319 (base32
1320 "1kkfx1j9ka18ydsmdi2cdy3hs39c22b39mbc4laykmj2x93lmbdp"))))
1321 (build-system go-build-system)
1322 (arguments
1323 '(#:import-path "github.com/prometheus/client_golang/prometheus"
1324 #:unpack-path "github.com/prometheus/client_golang"))
1325 (propagated-inputs
1326 `(("go-github-com-beorn7-perks-quantile"
1327 ,go-github-com-beorn7-perks-quantile)
1328 ("go-github-com-golang-protobuf-proto"
1329 ,go-github-com-golang-protobuf-proto)
1330 ("go-github-com-prometheus-client-model-go"
1331 ,go-github-com-prometheus-client-model-go)
1332 ("go-github-com-prometheus-common-expfmt"
1333 ,go-github-com-prometheus-common-expfmt)
1334 ("go-github-com-prometheus-procfs" ,go-github-com-prometheus-procfs)
1335 ("go-github-com-client-golang-prometheus-promhttp"
1336 ,go-github-com-client-golang-prometheus-promhttp)))
1337 (synopsis "Prometheus instrumentation library for Go applications")
1338 (description "This package provides the Go client library for the
1339 Prometheus monitoring and alerting system. It has two separate parts, one for
1340 instrumenting application code, and one for creating clients that talk to the
1341 Prometheus HTTP API.")
1342 (home-page "https://github.com/prometheus/client_golang")
1343 (license asl2.0))))
1344
1345 (define* (go-github-com-prometheus-union
1346 #:optional (packages (list go-github-com-client-golang-prometheus
1347 go-github-com-client-golang-prometheus-promhttp)))
1348 (package
1349 (name "go-github-com-prometheus-union")
1350 (version (package-version go-github-com-client-golang-prometheus))
1351 (source #f)
1352 (build-system trivial-build-system)
1353 (arguments
1354 '(#:modules ((guix build union))
1355 #:builder (begin
1356 (use-modules (ice-9 match)
1357 (guix build union))
1358 (match %build-inputs
1359 (((names . directories) ...)
1360 (union-build (assoc-ref %outputs "out")
1361 directories)
1362 #t)))))
1363 (inputs (map (lambda (package)
1364 (list (package-name package) package))
1365 packages))
1366 (synopsis "Union of Go Prometheus libraries")
1367 (description "This is a union of Go Prometheus libraries")
1368 (home-page (package-home-page go-github-com-client-golang-prometheus))
1369 (license (package-license go-github-com-client-golang-prometheus))))
1370
1371 (define-public go-gopkg.in-asn1-ber.v1
1372 (package
1373 (name "go-gopkg.in-asn1-ber.v1")
1374 (version "1.2")
1375 (source (origin
1376 (method git-fetch)
1377 (uri (git-reference
1378 (url "https://gopkg.in/asn1-ber.v1")
1379 (commit (string-append "v" version))))
1380 (file-name (git-file-name name version))
1381 (sha256
1382 (base32
1383 "1y8bvzbxpw0lfnn7pbcdwzqj4l90qj6xf88dvv9pxd9yl5g6cskx"))))
1384 (build-system go-build-system)
1385 (arguments
1386 '(#:import-path "gopkg.in/asn1-ber.v1"))
1387 (synopsis "ASN.1 BER encoding and decoding in Go")
1388 (description "This package provides ASN.1 BER encoding and decoding in the
1389 Go language.")
1390 (home-page "https://gopkg.in/asn1-ber.v1")
1391 (license expat)))
1392
1393 (define-public go-gopkg.in-ldap.v2
1394 (package
1395 (name "go-gopkg.in-ldap.v2")
1396 (version "2.5.1")
1397 (source (origin
1398 (method git-fetch)
1399 (uri (git-reference
1400 (url "https://gopkg.in/ldap.v2")
1401 (commit (string-append "v" version))))
1402 (file-name (git-file-name name version))
1403 (sha256
1404 (base32
1405 "1wf81wy04nhkqs0dg5zkivr4sh37r83bxrfwjz9vr4jq6vmljr3h"))))
1406 (build-system go-build-system)
1407 (arguments
1408 '(#:import-path "gopkg.in/ldap.v2"
1409 #:tests? #f)) ; the test suite requires network access
1410 (propagated-inputs
1411 `(("go-gopkg.in-asn1-ber.v1" ,go-gopkg.in-asn1-ber.v1)))
1412 (synopsis "LDAP v3 functionality for Go")
1413 (description "This package provides basic LDAP v3 functionality in the Go
1414 language.")
1415 (home-page "https://gopkg.in/ldap.v2")
1416 (license expat)))