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