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