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