1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2016 Petter <petter@mykolab.ch>
3 ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
5 ;;; This file is part of GNU Guix.
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.
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.
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/>.
20 (define-module (gnu packages syncthing)
21 #:use-module (guix build-system go)
22 #:use-module (guix build-system trivial)
23 #:use-module (guix packages)
24 #:use-module (guix download)
25 #:use-module (guix git-download)
26 #:use-module (guix licenses))
28 (define-public syncthing
34 (uri (string-append "https://github.com/syncthing/syncthing"
35 "/releases/download/v" version
36 "/syncthing-source-v" version ".tar.gz"))
39 "0qqcn8j2hng4jl6ndbrjmbiwbl2f305qx5yw7swbvj7s3l7k756i"))))
40 (build-system go-build-system)
41 ;; The primary Syncthing executable goes to "out", while the auxiliary
42 ;; server programs and utility tools go to "utils". This reduces the size
43 ;; of "out" by ~80 MiB.
44 (outputs '("out" "utils"))
46 `(#:import-path "github.com/syncthing/syncthing"
47 #:unpack-path "github.com/syncthing"
48 ;; We don't need to install the source code for end-user applications.
51 (modify-phases %standard-phases
52 (add-after 'unpack 'delete-bundled-source-code
54 ;; Keep the bundled cznic libraries. There are some "internal"
55 ;; cznic libraries that complicate the use of non-bundled copies.
56 (rename-file "src/github.com/syncthing/syncthing/vendor/github.com/cznic"
58 (delete-file-recursively "src/github.com/syncthing/syncthing/vendor")
59 (mkdir-p "src/github.com/syncthing/syncthing/vendor/github.com/")
61 "src/github.com/syncthing/syncthing/vendor/github.com/cznic")
64 (add-before 'build 'increase-test-timeout
66 (substitute* "src/github.com/syncthing/syncthing/build.go"
71 (lambda* (#:key inputs #:allow-other-keys)
72 (with-directory-excursion "src/github.com/syncthing/syncthing"
73 (zero? (system* "go" "run" "build.go" "-no-upgrade")))))
77 (with-directory-excursion "src/github.com/syncthing/syncthing"
78 (zero? (system* "go" "run" "build.go" "test")))))
81 (lambda* (#:key outputs #:allow-other-keys)
82 (let ((out (assoc-ref outputs "out"))
83 (utils (assoc-ref outputs "utils"))
84 (src "src/github.com/syncthing/syncthing/bin/"))
85 (install-file (string-append src "/syncthing")
86 (string-append out "/bin"))
87 (delete-file (string-append src "/syncthing"))
88 (copy-recursively "src/github.com/syncthing/syncthing/bin/"
89 (string-append utils "/bin"))
92 (add-after 'install 'install-docs
93 (lambda* (#:key outputs #:allow-other-keys)
94 (let* ((out (assoc-ref outputs "out"))
95 (utils (assoc-ref outputs "utils"))
97 (man-section (string-append man "/man"))
98 (src "src/github.com/syncthing/syncthing/man/"))
99 ;; Install all the man pages to "out".
103 (string-append out man-section
104 (string-take-right file 1))))
105 (find-files src "\\.[1-9]"))
106 ;; Copy all the man pages to "utils"
107 (copy-recursively (string-append out man)
108 (string-append utils man))
109 ;; Delete extraneous man pages from "out" and "utils",
111 (delete-file (string-append out man "/man1/stdiscosrv.1"))
112 (delete-file (string-append out man "/man1/strelaysrv.1"))
113 (delete-file (string-append utils man "/man1/syncthing.1"))
115 ;; When updating Syncthing, check 'vendor/manifest' in the source
116 ;; distribution to ensure we are using the correct versions of these
119 `(("go-github-com-audriusbutkevicius-cli"
120 ,go-github-com-audriusbutkevicius-cli)
121 ("go-github-com-audriusbutkevicius-kcp-go"
122 ,go-github-com-audriusbutkevicius-kcp-go)
123 ("go-github-com-audriusbutkevicius-go-nat-pmp"
124 ,go-github-com-audriusbutkevicius-go-nat-pmp)
125 ("go-github-com-audriusbutkevicius-pfilter"
126 ,go-github-com-audriusbutkevicius-pfilter)
127 ("go-github-com-bkaradzic-go-lz4" ,go-github-com-bkaradzic-go-lz4)
128 ("go-github-com-calmh-du" ,go-github-com-calmh-du)
129 ("go-github-com-calmh-xdr" ,go-github-com-calmh-xdr)
130 ("go-github-com-ccding-go-stun"
131 ,go-github-com-ccding-go-stun)
132 ("go-github-com-chmduquesne-rollinghash-adler32"
133 ,go-github-com-chmduquesne-rollinghash-adler32)
134 ; ("go-github-com-cznic-ql" ,go-github-com-cznic-ql) ; bundled
136 ("go-github-com-edsrzf-mmap-go" ,go-github-com-edsrzf-mmap-go)
137 ("go-github-com-gobwas-glob" ,go-github-com-gobwas-glob)
138 ("go-github-com-gogo-protobuf-union"
139 ,(go-github-com-gogo-protobuf-union))
140 ("go-github-com-golang-groupcache-lru"
141 ,go-github-com-golang-groupcache-lru)
142 ("go-github-com-jackpal-gateway" ,go-github-com-jackpal-gateway)
143 ("go-github-com-kardianos-osext" ,go-github-com-kardianos-osext)
144 ("go-github-com-kballard-go-shellquote"
145 ,go-github-com-kballard-go-shellquote)
146 ("go-github-com-lib-pq" ,go-github-com-lib-pq)
147 ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd)
148 ("go-github-com-oschwald-geoip2-golang"
149 ,go-github-com-oschwald-geoip2-golang)
150 ("go-github-com-rcrowley-go-metrics" ,go-github-com-rcrowley-go-metrics)
151 ("go-github-com-sasha-s-go-deadlock" ,go-github-com-sasha-s-go-deadlock)
152 ("go-github-com-syndtr-goleveldb" ,go-github-com-syndtr-goleveldb)
153 ("go-github-com-thejerf-suture" ,go-github-com-thejerf-suture)
154 ("go-github-com-vitrun-qart" ,(go-github-com-vitrun-qart-union))
155 ("go-github-com-xtaci-smux" ,go-github-com-xtaci-smux)
156 ("go-golang-org-x-crypto" ,(go-golang-org-x-crypto-union))
157 ("go-golang-org-x-net-union" ,(go-golang-org-x-net-union))
158 ("go-golang-org-x-text" ,(go-golang-org-x-text-union))
159 ("go-golang-org-x-time-rate" ,go-golang-org-x-time-rate)
160 ("go-github-com-d4l3k-messagediff"
161 ,go-github-com-d4l3k-messagediff)
162 ("go-github-com-zillode-notify" ,go-github-com-zillode-notify)))
163 (synopsis "Decentralized continuous filesystem synchronization")
164 (description "Syncthing is a peer-to-peer file synchronization tool that
165 supports a wide variety of computing platforms. It uses the Block Exchange
167 (home-page "https://github.com/syncthing/syncthing")
170 (define-public go-github-com-audriusbutkevicius-go-nat-pmp
171 (let ((commit "452c97607362b2ab5a7839b8d1704f0396b640ca")
174 (name "go-github-com-audriusbutkevicius-go-nat-pmp")
175 (version (git-version "0.0.0" revision commit))
179 (url "https://github.com/AudriusButkevicius/go-nat-pmp")
181 (file-name (git-file-name name version))
183 (base32 "1accmpl1llk16a19nlyy991fqrgfay6l53gb64hgmdfmqljdvbk7"))))
184 (build-system go-build-system)
186 `(#:import-path "github.com/AudriusButkevicius/go-nat-pmp"))
187 (synopsis "Port mapping and discovery of external IP address")
188 (description "This packages provides a Go client for the NAT-PMP internet
189 protocol for port mapping and discovering the external IP address of a
191 (home-page "https://github.com/AudriusButkevicius/go-nat-pmp")
194 (define-public go-github-com-bkaradzic-go-lz4
195 (let ((commit "7224d8d8f27ef618c0a95f1ae69dbb0488abc33a")
198 (name "go-github-com-bkaradzic-go-lz4")
199 (version (git-version "0.0.0" revision commit))
203 (url "https://github.com/bkaradzic/go-lz4")
205 (file-name (git-file-name name version))
208 "10lmya17vdqg2pvqni0p73iahni48s1v11ya9a0hcz4jh5vw4dkb"))))
209 (build-system go-build-system)
211 `(#:import-path "github.com/bkaradzic/go-lz4"))
212 (synopsis "LZ4 compression algorithm")
213 (description "This package provides @code{go-lz4}, a Go implementation of
214 the LZ4 compression algorithm.")
215 (home-page "https://github.com/bkaradzic/go-lz4")
218 (define-public go-github-com-calmh-du
220 (name "go-github-com-calmh-du")
225 (url "https://github.com/calmh/du")
226 (commit (string-append "v" version))))
227 (file-name (git-file-name name version))
230 "0qb3a6y3p9nkyn3s66k6zcm16y8n8578qh23ddj14cxf2scrr2n2"))))
231 (build-system go-build-system)
233 `(#:import-path "github.com/calmh/du"))
234 (synopsis "Get total and available disk space of a given volume")
235 (description "This is a Go implementation of `du`. It provides disk usage
236 information, such as how much storage space is available, free, and used.")
237 (home-page "https://github.com/calmh/du")
238 (license public-domain)))
240 (define-public go-github-com-calmh-xdr
241 (let ((commit "08e072f9cb164f943a92eb59f90f3abc64ac6e8f")
244 (name "go-github-com-calmh-xdr")
245 (version (git-version "2.0.1" revision commit))
249 (url "https://github.com/calmh/xdr")
251 (file-name (git-file-name name version))
254 "072wqdncz3nd4a3zkhvzzx1y3in1lm29wfvl0d8wrnqs5pyqh0mh"))))
255 (build-system go-build-system)
257 `(#:import-path "github.com/calmh/xdr"))
258 (synopsis "XDR marshalling and unmarshalling")
259 (description "XDR is an External Data Representation (XDR)
260 marshalling and unmarshalling library in Go. It uses code generation and not
262 (home-page "https://github.com/calmh/xdr")
265 (define-public go-github-com-d4l3k-messagediff
266 (let ((commit "29f32d820d112dbd66e58492a6ffb7cc3106312b")
269 (name "go-github-com-d4l3k-messagediff")
270 (version (git-version "1.1.0" revision commit))
274 (url "https://github.com/d4l3k/messagediff")
276 (file-name (git-file-name name version))
279 "104hl8x57ciaz7mzafg1vp9qggxcyfm8hsv9bmlihbz9ml3nyr8v"))))
280 (build-system go-build-system)
282 `(#:import-path "github.com/d4l3k/messagediff"))
283 (synopsis "Diff arbitrary Go structs")
284 (description "Messagediff is a library for calculating diffs of arbitrary
285 structs in the Go programming language.")
286 (home-page "https://github.com/d4l3k/messagediff")
289 (define-public go-github-com-edsrzf-mmap-go
290 (let ((commit "0bce6a6887123b67a60366d2c9fe2dfb74289d2e")
293 (name "go-github-com-edsrzf-mmap-go")
294 (version (git-version "0.0.0" revision commit))
298 (url "https://github.com/edsrzf/mmap-go")
300 (file-name (git-file-name name version))
303 "1am4m2k451bksnbiqj6lxknk4lsgmrhv0q3ajqac818vj0cpfgs9"))))
304 (build-system go-build-system)
306 `(#:import-path "github.com/edsrzf/mmap-go"))
307 (synopsis "Go implementation of mmap")
308 (description "This packages provides a Go implementation of mmap.")
309 (home-page "https://github.com/edsrzf/mmap-go")
312 (define-public go-github-com-gobwas-glob
313 (let ((commit "51eb1ee00b6d931c66d229ceeb7c31b985563420")
316 (name "go-github-com-gobwas-glob")
317 (version (git-version "0.0.0" revision commit))
321 (url "https://github.com/gobwas/glob")
323 (file-name (git-file-name name version))
326 "090wzpwsjana1qas8ipwh1pj959gvc4b7vwybzi01f3bmd79jwlp"))))
327 (build-system go-build-system)
329 `(#:import-path "github.com/gobwas/glob"))
330 (synopsis "Go globbing library")
331 (description "This packages provides a Go implementation of globs.")
332 (home-page "https://github.com/gobwas/glob")
335 (define* (go-github-com-gogo-protobuf-union
336 #:optional (packages (list go-github-com-gogo-protobuf
337 go-github-com-gogo-protobuf-protoc-gen-gogo)))
339 (name "go-github-com-gogo-protobuf-union")
340 (version (package-version go-github-com-gogo-protobuf))
342 (build-system trivial-build-system)
344 '(#:modules ((guix build union))
346 (use-modules (ice-9 match)
349 (((names . directories) ...)
350 (union-build (assoc-ref %outputs "out")
352 (inputs (map (lambda (package)
353 (list (package-name package) package))
355 (synopsis "Union of Go protobuf libraries")
356 (description "This is a union of Go protobuf libraries")
357 (home-page (package-home-page go-github-com-gogo-protobuf))
358 (license (package-license go-github-com-gogo-protobuf))))
360 (define-public go-github-com-gogo-protobuf
361 (let ((commit "efccd33a0c20aa078705571d5ddbfa14c8395a63")
364 (name "go-github-com-gogo-protobuf")
365 (version (git-version "0.2" revision commit))
369 (url "https://github.com/gogo/protobuf")
371 (file-name (git-file-name name version))
374 "09kfa3aqmhh7p0rc6wd4fw5cjccidsk9vgcy13albv0g8vnbmmgw"))))
375 (build-system go-build-system)
377 `(#:import-path "github.com/gogo/protobuf/proto"
378 #:unpack-path "github.com/gogo/protobuf"))
380 `(("go-github-com-gogo-protobuf-protoc-gen-gogo"
381 ,go-github-com-gogo-protobuf-protoc-gen-gogo)))
382 (synopsis "Protocol Buffers for Go with Gadgets")
383 (description "Gogoprotobuf is a fork of golang/protobuf with extra code
384 generation features. This code generation is used to achieve:
386 @item fast marshalling and unmarshalling
387 @item more canonical Go structures
388 @item goprotobuf compatibility
389 @item less typing by optionally generating extra helper code
390 @item peace of mind by optionally generating test and benchmark code
391 @item other serialization formats
393 (home-page "https://github.com/gogo/protobuf")
396 (define-public go-github-com-gogo-protobuf-protoc-gen-gogo
397 (let ((commit "efccd33a0c20aa078705571d5ddbfa14c8395a63")
400 (name "go-github-com-gogo-protobuf-protoc-gen-gogo")
401 (version (git-version "0.2" revision commit))
405 (url "https://github.com/gogo/protobuf")
407 (file-name (git-file-name name version))
410 "09kfa3aqmhh7p0rc6wd4fw5cjccidsk9vgcy13albv0g8vnbmmgw"))))
411 (build-system go-build-system)
413 `(#:import-path "github.com/gogo/protobuf/protoc-gen-gogo"
414 #:unpack-path "github.com/gogo/protobuf"))
415 (synopsis "Protocol Buffers for Go with Gadgets")
416 (description "Gogoprotobuf is a fork of golang/protobuf with extra code
417 generation features. This code generation is used to achieve:
419 @item fast marshalling and unmarshalling
420 @item more canonical Go structures
421 @item goprotobuf compatibility
422 @item less typing by optionally generating extra helper code
423 @item peace of mind by optionally generating test and benchmark code
424 @item other serialization formats
426 (home-page "https://github.com/gogo/protobuf")
429 (define-public go-github-com-golang-groupcache-lru
430 (let ((commit "72d04f9fcdec7d3821820cc4a6f150eae553639a")
433 (name "go-github-com-golang-groupcache-lru")
434 (version (git-version "0.0.0" revision commit))
438 (url "https://github.com/golang/groupcache")
440 (file-name (git-file-name name version))
443 "1l3ryh7bq1f2mhr3sd3x1wav99pd27r8l3ydgqh375wn4x7v5qd6"))))
444 (build-system go-build-system)
446 `(#:import-path "github.com/golang/groupcache/lru"
447 #:unpack-path "github.com/golang/groupcache"))
448 (synopsis "Groupcache is a caching and cache-filling library")
449 (description "Groupcache is a caching and cache-filling library, intended
450 as a replacement for memcached in many cases. It provides a data loading
451 mechanism with caching and de-duplication that works across a set of peer
453 (home-page "https://github.com/golang/groupcache")
456 (define-public go-github-com-golang-snappy
457 (let ((commit "553a641470496b2327abcac10b36396bd98e45c9")
460 (name "go-github-com-golang-snappy")
461 (version (git-version "0.0.0" revision commit))
465 (url "https://github.com/golang/snappy")
467 (file-name (git-file-name name version))
470 "0kssxnih1l722hx9219c7javganjqkqhvl3i0hp0hif6xm6chvqk"))))
471 (build-system go-build-system)
473 `(#:import-path "github.com/golang/snappy"))
474 (synopsis "Snappy compression format in the Go programming language")
475 (description "This package provides a Go implementation of the Snappy
476 compression format.")
477 (home-page "https://github.com/golang/snappy")
480 (define-public go-github-com-jackpal-gateway
481 (let ((commit "5795ac81146e01d3fab7bcf21c043c3d6a32b006")
484 (name "go-github-com-jackpal-gateway")
485 (version (git-version "0.0.0" revision commit))
489 (url "https://github.com/jackpal/gateway")
491 (file-name (git-file-name name version))
494 "0fkwkwmhfadwk3cha8616bhqxfkr9gjjnynhhxyldlphixgs3f25"))))
495 (build-system go-build-system)
497 `(#:import-path "github.com/jackpal/gateway"))
498 (synopsis "Discover the address of a LAN gateway")
499 (description "@code{gateway} is a Go library for discovering the IP
500 address of the default LAN gateway.")
501 (home-page "https://github.com/jackpal/gateway")
504 (define-public go-github-com-kardianos-osext
505 (let ((commit "9d302b58e975387d0b4d9be876622c86cefe64be")
508 (name "go-github-com-kardianos-osext")
509 (version (git-version "0.0.0" revision commit))
513 (url "https://github.com/kardianos/osext")
515 (file-name (git-file-name name version))
518 "0r6f727s16g4f66k8c2z1xh8ga1p53hg9g2v95pmhd1i60fhy47a"))))
519 (build-system go-build-system)
521 `(#:import-path "github.com/kardianos/osext"))
522 (synopsis "Find the running executable")
523 (description "Osext provides a method for finding the current executable
524 file that is running. This can be used for upgrading the current executable or
525 finding resources located relative to the executable file.")
526 (home-page "https://github.com/kardianos/osext")
529 (define-public go-github-com-lib-pq
530 (let ((commit "2704adc878c21e1329f46f6e56a1c387d788ff94")
533 (name "go-github-com-lib-pq")
534 (version (git-version "0.0.0" revision commit))
538 (url "https://github.com/lib/pq")
540 (file-name (git-file-name name version))
543 "160fmvi7bczxw3i3h5s821hv029ph5ld8x3c36b4cz2sr30wp110"))))
544 (build-system go-build-system)
546 `(#:import-path "github.com/lib/pq"
547 ;; The tests seem to fail without access to the network or a running
548 ;; Postgres instance.
550 (synopsis "Golang Postgres driver for Go's database/sql")
551 (description "This packages provides a pure Go Postgres driver for Go's
552 database/sql package.")
553 (home-page "https://github.com/lib/pq")
556 (define-public go-github-com-minio-sha256-simd
557 (let ((commit "6124d070eb4e7001c244b6ccc282620a5dce44a0")
560 (name "go-github-com-minio-sha256-simd")
561 (version (git-version "0.0.0" revision commit))
565 (url "https://github.com/minio/sha256-simd")
567 (file-name (git-file-name name version))
570 "1azrdp7x7vl9ngkxs890blspz0345xhadvssdlb0435hdqa0gkll"))))
571 (build-system go-build-system)
573 `(#:import-path "github.com/minio/sha256-simd"))
574 (synopsis "Hardware-accelerated SHA256 in Go using SIMD")
575 (description "This packages provides a pure Go implementation of SHA256
576 using SIMD (Single instruction, multiple data) instructions for Intel and ARM
578 (home-page "https://github.com/minio/sha256-simd")
581 (define-public go-github-com-oschwald-geoip2-golang
582 (let ((commit "0fd242da7906550802871efe101abfdb1cc550a8")
585 (name "go-github-com-oschwald-geoip2-golang")
586 (version (git-version "0.1.0" revision commit))
590 (url "https://github.com/oschwald/geoip2-golang")
592 (file-name (git-file-name name version))
595 "0kglnix0r5sjkk346ip30l7dwq1gv2g4wjy2cjmgjvb8x778hnww"))))
596 (build-system go-build-system)
598 `(("go-github-com-oschwald-maxminddb-golang"
599 ,go-github-com-oschwald-maxminddb-golang)
600 ("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
602 `(#:import-path "github.com/oschwald/geoip2-golang"
603 #:tests? #f)) ; Requires some unpackaged software and test data
604 (synopsis "MaxMind GeoIP2 reader")
605 (description "This packages provides a library for reading MaxMind
606 GeoLite2 and GeoIP2 databases in Go.")
607 (home-page "https://github.com/oschwald/geoip2-golang")
610 (define-public go-github-com-oschwald-maxminddb-golang
611 (let ((commit "697da8075d2061aa8ed639346443f5d3e8c80b30")
614 (name "go-github-com-oschwald-maxminddb-golang")
615 (version (git-version "0.2.0" revision commit))
619 (url "https://github.com/oschwald/maxminddb-golang")
621 (file-name (git-file-name name version))
624 "00kkxzlvra0kcbkl56wp0dp1yw3cmfjqqlwbqy7bq5r34s7iavq0"))))
625 (build-system go-build-system)
627 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
629 `(#:import-path "github.com/oschwald/maxminddb-golang"
630 #:tests? #f)) ; Requires some unpackaged software and test data
631 (synopsis "MaxMind DB Reader for Go")
632 (description "This is a Go reader for the MaxMind DB format. Although
633 this can be used to read GeoLite2 and GeoIP2 databases, @code{geoip2} provides a
634 higher-level API for doing so.")
635 (home-page "https://github.com/oschwald/maxminddb-golang")
638 (define-public go-github-com-stathat-go
639 (let ((commit "74669b9f388d9d788c97399a0824adbfee78400e")
642 (name "go-github-com-stathat-go")
643 (version (git-version "0.0.0" revision commit))
647 (url "https://github.com/stathat/go")
649 (file-name (git-file-name name version))
652 "1zzlsl24dyr202qkr2pay22m6d0gb7ssms77wgdx0r0clgm7dihw"))))
653 (build-system go-build-system)
655 `(#:import-path "github.com/stathat/go"))
656 (synopsis "Post statistics to StatHat")
657 (description "This is a Go package for posting to a StatHat account.")
658 (home-page "https://github.com/stathat/go")
661 (define-public go-github-com-rcrowley-go-metrics
662 (let ((commit "1f30fe9094a513ce4c700b9a54458bbb0c96996c")
665 (name "go-github-com-rcrowley-go-metrics")
666 (version (git-version "0.0.0" revision commit))
670 (url "https://github.com/rcrowley/go-metrics")
672 (file-name (git-file-name name version))
675 "1hvbiaq4b6dqgjz6jkkxglfh9gf71zin6qsg508sh0r0ixfavrzj"))))
676 (build-system go-build-system)
678 `(#:import-path "github.com/rcrowley/go-metrics"))
680 `(("go-github-com-stathat-go" ,go-github-com-stathat-go)))
681 (synopsis "Go port of Coda Hale's Metrics library")
682 (description "This package provides a Go implementation of Coda Hale's
684 (home-page "https://github.com/rcrowley/go-metrics")
687 (define-public go-github-com-sasha-s-go-deadlock
688 (let ((commit "341000892f3dd25f440e6231e8533eb3688ed7ec")
691 (name "go-github-com-sasha-s-go-deadlock")
692 (version (git-version "0.1.0" revision commit))
696 (url "https://github.com/sasha-s/go-deadlock")
698 (file-name (git-file-name name version))
701 "1bcdyxwm5qpqynxahwaahbqi7ghgdajmg7b4276pdalkxkxkhsv8"))))
702 (build-system go-build-system)
704 `(#:import-path "github.com/sasha-s/go-deadlock"))
706 `(("go-github-com-petermattis-goid" ,go-github-com-petermattis-goid)))
707 (synopsis "Deadlock detection in go")
708 (description "This package provides tools for detecting deadlocks at
710 (home-page "https://github.com/sasha-s/go-deadlock")
713 (define-public go-github-com-syndtr-goleveldb
714 (let ((commit "549b6d6b1c0419617182954dd77770f2e2685ed5")
717 (name "go-github-com-syndtr-goleveldb")
718 (version (git-version "0.0.0" revision commit))
722 (url "https://github.com/syndtr/goleveldb")
724 (file-name (git-file-name name version))
727 "1hs8bsxyjfq9d7000i1jk8bq7p2ab8snz23air13aw5ra2ri36bq"))))
728 (build-system go-build-system)
730 `(("go-github-com-golang-snappy" ,go-github-com-golang-snappy)))
732 `(#:import-path "github.com/syndtr/goleveldb/leveldb"
733 #:unpack-path "github.com/syndtr/goleveldb"
734 #:tests? #f)) ; XXX needs 'github.com/onsi/gomega' package
735 (synopsis "LevelDB key/value database")
736 (description "This is an implementation of the LevelDB key / value
738 (home-page "https://github.com/syndtr/goleveldb")
741 (define-public go-github-com-thejerf-suture
742 (let ((commit "0ac47afae95ad5bc5184ed346bc945168e883f5d")
745 (name "go-github-com-thejerf-suture")
746 (version (git-version "0.0.0" revision commit))
750 (url "https://github.com/thejerf/suture")
752 (file-name (git-file-name name version))
755 "0f860fkaibnnkmh4q6q9yn3r26sraaj8wx9irwm76cmsp48zcxfy"))))
756 (build-system go-build-system)
758 `(#:import-path "github.com/thejerf/suture"))
759 (synopsis "Supervisor trees for Go")
760 (description "Suture provides Erlang-ish supervisor trees for Go.
761 \"Supervisor trees\" -> \"sutree\" -> \"suture\" -> holds your code together
762 when it's trying to die.
764 It is intended to deal gracefully with the real failure cases that can occur
765 with supervision trees (such as burning all your CPU time endlessly restarting
766 dead services), while also making no unnecessary demands on the \"service\"
767 code, and providing hooks to perform adequate logging with in a production
769 (home-page "https://github.com/thejerf/suture")
772 (define* (go-github-com-vitrun-qart-union
773 #:optional (packages (list go-github-com-vitrun-qart-coding
774 go-github-com-vitrun-qart-gf256
775 go-github-com-vitrun-qart-qr)))
777 (name "go-github-com-vitrun-qart")
778 (version (package-version go-github-com-vitrun-qart-qr))
780 (build-system trivial-build-system)
782 '(#:modules ((guix build union))
784 (use-modules (ice-9 match)
787 (((names . directories) ...)
788 (union-build (assoc-ref %outputs "out")
790 (inputs (map (lambda (package)
791 (list (package-name package) package))
793 (synopsis "Union of qart libraries")
794 (description "This is a union of qart libraries.")
795 (home-page (package-home-page go-github-com-vitrun-qart-qr))
796 (license (package-license go-github-com-vitrun-qart-qr))))
798 (define-public go-github-com-vitrun-qart-coding
799 (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa")
802 (name "go-github-com-vitrun-qart-coding")
803 (version (git-version "0.0.0" revision commit))
807 (url "https://github.com/vitrun/qart")
809 (file-name (string-append "go-github-com-vitrun-qart-"
810 version "-checkout"))
813 "1xk7qki703xmay9ghi3kq2bjf1iw9dz8wik55739d6i7sn77vvkc"))))
814 (build-system go-build-system)
816 `(#:import-path "github.com/vitrun/qart/coding"
817 #:unpack-path "github.com/vitrun/qart"))
818 (synopsis "Low-level QR coding library")
819 (description "This package provides a library for embedding
820 human-meaningful graphics in QR codes. However, instead of scribbling on
821 redundant pieces and relying on error correction to preserve the meaning,
822 @code{qart} engineers the encoded values to create the picture in a code with no
823 inherent errors. This @code{qart} component, @code{coding}, implements
824 low-level QR coding details.")
825 (home-page "https://github.com/vitrun/qart/")
828 (define-public go-github-com-vitrun-qart-gf256
829 (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa")
832 (name "go-github-com-vitrun-qart-gf256")
833 (version (git-version "0.0.0" revision commit))
837 (url "https://github.com/vitrun/qart")
839 (file-name (string-append "go-github-com-vitrun-qart-"
840 version "-checkout"))
843 "1xk7qki703xmay9ghi3kq2bjf1iw9dz8wik55739d6i7sn77vvkc"))))
844 (build-system go-build-system)
846 `(#:import-path "github.com/vitrun/qart/gf256"
847 #:unpack-path "github.com/vitrun/qart"))
848 (synopsis "Qart library for Galois Field GF(256) math")
849 (description "This package, a component of @code{qart}, provides @code{gf256},
850 implements arithmetic over the Galois Field GF(256).")
851 (home-page "https://github.com/vitrun/qart")
854 (define-public go-github-com-vitrun-qart-qr
855 (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa")
858 (name "go-github-com-vitrun-qart-qr")
859 (version (git-version "0.0.0" revision commit))
863 (url "https://github.com/vitrun/qart")
865 (file-name (string-append "go-github-com-vitrun-qart-"
866 version "-checkout"))
869 "1xk7qki703xmay9ghi3kq2bjf1iw9dz8wik55739d6i7sn77vvkc"))))
870 (build-system go-build-system)
872 `(#:import-path "github.com/vitrun/qart/qr"
873 #:unpack-path "github.com/vitrun/qart"))
874 (synopsis "Qart component for generating QR codes")
875 (description "This package, a component of @code{qart}, provides
876 @code{qr}, for QR code generation.")
877 (description "This package provides a library for embedding
878 human-meaningful graphics in QR codes. However, instead of scribbling on
879 redundant pieces and relying on error correction to preserve the meaning,
880 @code{qart} engineers the encoded values to create the picture in a code with no
881 inherent errors. This @code{qart} component, @code{qr}, provides QR code
883 (home-page "https://github.com/vitrun/qart")
886 ;; Go searches for library modules by looking in the GOPATH environment
887 ;; variable. This variable is a list of paths. However, Go does not
888 ;; keep searching on GOPATH if it tries and fails to import a module.
889 ;; So, we use a union for packages sharing a namespace.
890 (define* (go-golang-org-x-crypto-union #:optional
891 (packages (list go-golang-org-x-crypto-blowfish
892 go-golang-org-x-crypto-bcrypt
893 go-golang-org-x-crypto-tea
894 go-golang-org-x-crypto-xtea
895 go-golang-org-x-crypto-pbkdf2
896 go-golang-org-x-crypto-twofish
897 go-golang-org-x-crypto-cast5
898 go-golang-org-x-crypto-salsa20)))
900 (name "go-golang-org-x-crypto")
901 (version (package-version go-golang-org-x-crypto-bcrypt))
903 (build-system trivial-build-system)
905 '(#:modules ((guix build union))
907 (use-modules (ice-9 match)
910 (((names . directories) ...)
911 (union-build (assoc-ref %outputs "out")
913 (inputs (map (lambda (package)
914 (list (package-name package) package))
916 (synopsis "Union of the Go x crypto libraries")
917 (description "A union of the Golang cryptographic libraries. A
918 union is required because `go build` assumes that all of the headers and
919 libraries are in the same directory.")
920 (home-page (package-home-page go-golang-org-x-crypto-bcrypt))
921 (license (package-license go-golang-org-x-crypto-bcrypt))))
923 (define-public go-golang-org-x-crypto-bcrypt
924 (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
927 (name "go-golang-org-x-crypto-bcrypt")
928 (version (git-version "0.0.0" revision commit))
932 (url "https://go.googlesource.com/crypto")
934 (file-name (string-append "go.googlesource.com-crypto-"
935 version "-checkout"))
938 "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))))
939 (build-system go-build-system)
941 `(#:import-path "golang.org/x/crypto/bcrypt"
942 #:unpack-path "golang.org/x/crypto"
944 (modify-phases %standard-phases
945 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
946 (lambda* (#:key outputs #:allow-other-keys)
948 (make-file-writable file))
950 (string-append (assoc-ref outputs "out")
951 "/src/golang.org/x/crypto/ed25519/testdata")
954 (synopsis "Bcrypt in Go")
955 (description "This package provides a Go implementation of the bcrypt
956 password hashing function.")
957 (home-page "https://go.googlesource.com/crypto/")
960 (define-public go-golang-org-x-crypto-blowfish
961 (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
964 (name "go-golang-org-x-crypto-blowfish")
965 (version (git-version "0.0.0" revision commit))
969 (url "https://go.googlesource.com/crypto")
971 (file-name (string-append "go.googlesource.com-crypto-"
972 version "-checkout"))
975 "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))))
976 (build-system go-build-system)
978 `(#:import-path "golang.org/x/crypto/blowfish"
979 #:unpack-path "golang.org/x/crypto"
981 (modify-phases %standard-phases
982 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
983 (lambda* (#:key outputs #:allow-other-keys)
985 (make-file-writable file))
987 (string-append (assoc-ref outputs "out")
988 "/src/golang.org/x/crypto/ed25519/testdata")
991 (synopsis "Blowfish in Go")
992 (description "This package provides a Go implementation of the Blowfish
993 symmetric-key block cipher.")
994 (home-page "https://go.googlesource.com/crypto/")
997 (define-public go-golang-org-x-crypto-pbkdf2
998 (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
1001 (name "go-golang-org-x-crypto-pbkdf2")
1002 (version (git-version "0.0.0" revision commit))
1006 (url "https://go.googlesource.com/crypto")
1008 (file-name (string-append "go.googlesource.com-crypto-"
1009 version "-checkout"))
1012 "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))))
1013 (build-system go-build-system)
1015 `(#:import-path "golang.org/x/crypto/pbkdf2"
1016 #:unpack-path "golang.org/x/crypto"
1018 (modify-phases %standard-phases
1019 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1020 (lambda* (#:key outputs #:allow-other-keys)
1022 (make-file-writable file))
1024 (string-append (assoc-ref outputs "out")
1025 "/src/golang.org/x/crypto/ed25519/testdata")
1028 (synopsis "PBKDF2 in Go")
1029 (description "This package provides a Go implementation of the PBKDF2 key
1030 derivation function.")
1031 (home-page "https://go.googlesource.com/crypto/")
1034 (define-public go-golang-org-x-crypto-tea
1035 (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
1038 (name "go-golang-org-x-crypto-tea")
1039 (version (git-version "0.0.0" revision commit))
1043 (url "https://go.googlesource.com/crypto")
1045 (file-name (string-append "go.googlesource.com-crypto-"
1046 version "-checkout"))
1049 "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))))
1050 (build-system go-build-system)
1052 `(#:import-path "golang.org/x/crypto/tea"
1053 #:unpack-path "golang.org/x/crypto"
1055 (modify-phases %standard-phases
1056 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1057 (lambda* (#:key outputs #:allow-other-keys)
1059 (make-file-writable file))
1061 (string-append (assoc-ref outputs "out")
1062 "/src/golang.org/x/crypto/ed25519/testdata")
1065 (synopsis "Tiny Encryption Algorithm (TEA) in Go")
1066 (description "This packages a Go implementation of the Tiny Encryption
1067 Algorithm (TEA) block cipher.")
1068 (home-page "https://go.googlesource.com/crypto/")
1071 (define-public go-golang-org-x-crypto-salsa20
1072 (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
1075 (name "go-golang-org-x-crypto-salsa20")
1076 (version (git-version "0.0.0" revision commit))
1080 (url "https://go.googlesource.com/crypto")
1082 (file-name (string-append "go.googlesource.com-crypto-"
1083 version "-checkout"))
1086 "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))))
1087 (build-system go-build-system)
1089 `(#:import-path "golang.org/x/crypto/salsa20"
1090 #:unpack-path "golang.org/x/crypto"
1092 (modify-phases %standard-phases
1093 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1094 (lambda* (#:key outputs #:allow-other-keys)
1096 (make-file-writable file))
1098 (string-append (assoc-ref outputs "out")
1099 "/src/golang.org/x/crypto/ed25519/testdata")
1102 (synopsis "Salsa20 in Go")
1103 (description "This packages provides a Go implementation of the Salsa20
1105 (home-page "https://go.googlesource.com/crypto/")
1108 (define-public go-golang-org-x-crypto-cast5
1109 (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
1112 (name "go-golang-org-x-crypto-cast5")
1113 (version (git-version "0.0.0" revision commit))
1117 (url "https://go.googlesource.com/crypto")
1119 (file-name (string-append "go.googlesource.com-crypto-"
1120 version "-checkout"))
1123 "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))))
1124 (build-system go-build-system)
1126 `(#:import-path "golang.org/x/crypto/cast5"
1127 #:unpack-path "golang.org/x/crypto"
1129 (modify-phases %standard-phases
1130 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1131 (lambda* (#:key outputs #:allow-other-keys)
1133 (make-file-writable file))
1135 (string-append (assoc-ref outputs "out")
1136 "/src/golang.org/x/crypto/ed25519/testdata")
1139 (synopsis "Cast5 in Go")
1140 (description "This packages provides a Go implementation of the Cast5
1141 symmetric-key block cipher.")
1142 (home-page "https://go.googlesource.com/crypto/")
1145 (define-public go-golang-org-x-crypto-twofish
1146 (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
1149 (name "go-golang-org-x-crypto-twofish")
1150 (version (git-version "0.0.0" revision commit))
1154 (url "https://go.googlesource.com/crypto")
1156 (file-name (string-append "go.googlesource.com-crypto-"
1157 version "-checkout"))
1160 "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))))
1161 (build-system go-build-system)
1163 `(#:import-path "golang.org/x/crypto/twofish"
1164 #:unpack-path "golang.org/x/crypto"
1166 (modify-phases %standard-phases
1167 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1168 (lambda* (#:key outputs #:allow-other-keys)
1170 (make-file-writable file))
1172 (string-append (assoc-ref outputs "out")
1173 "/src/golang.org/x/crypto/ed25519/testdata")
1176 (synopsis "Twofish in Go")
1177 (description "This packages provides a Go implementation of the Twofish
1178 symmetric-key block cipher.")
1179 (home-page "https://go.googlesource.com/crypto/")
1182 (define-public go-golang-org-x-crypto-xtea
1183 (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
1186 (name "go-golang-org-x-crypto-xtea")
1187 (version (git-version "0.0.0" revision commit))
1191 (url "https://go.googlesource.com/crypto")
1193 (file-name (string-append "go.googlesource.com-crypto-"
1194 version "-checkout"))
1197 "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4"))))
1198 (build-system go-build-system)
1200 `(#:import-path "golang.org/x/crypto/xtea"
1201 #:unpack-path "golang.org/x/crypto"
1203 (modify-phases %standard-phases
1204 (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
1205 (lambda* (#:key outputs #:allow-other-keys)
1207 (make-file-writable file))
1209 (string-append (assoc-ref outputs "out")
1210 "/src/golang.org/x/crypto/ed25519/testdata")
1213 (synopsis "eXtended Tiny Encryption Algorithm (XTEA) in Go")
1214 (description "This package provides a Go implementation of the eXtended
1215 Tiny Encryption Algorithm (XTEA) block cipher.")
1216 (home-page "https://go.googlesource.com/crypto/")
1219 (define* (go-golang-org-x-net-union #:optional
1220 (packages (list go-golang-org-x-net-ipv4
1221 go-golang-org-x-net-bpf
1222 go-golang-org-x-net-context
1223 go-golang-org-x-net-ipv6
1224 go-golang-org-x-net-proxy
1225 go-golang-org-x-net-internal-iana)))
1227 (name "go-golang-org-x-net")
1228 (version (package-version go-golang-org-x-net-ipv4))
1230 (build-system trivial-build-system)
1232 '(#:modules ((guix build union))
1234 (use-modules (ice-9 match)
1236 (match %build-inputs
1237 (((names . directories) ...)
1238 (union-build (assoc-ref %outputs "out")
1240 (inputs (map (lambda (package)
1241 (list (package-name package) package))
1243 (synopsis "Union of the Go net libraries")
1244 (description "A union of the Golang net libraries.")
1245 (home-page (package-home-page go-golang-org-x-net-ipv4))
1246 (license (package-license go-golang-org-x-net-ipv4))))
1248 (define-public go-golang-org-x-net-ipv4
1249 (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d")
1252 (name "go-golang-org-x-net-ipv4")
1253 (version (git-version "0.0.0" revision commit))
1257 (url "https://go.googlesource.com/net")
1259 (file-name (git-file-name name version))
1262 "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp"))))
1263 (build-system go-build-system)
1265 `(#:import-path "golang.org/x/net/ipv4"
1266 #:unpack-path "golang.org/x/net"))
1267 (synopsis "Go IPv4 support")
1268 (description "This package provides @code{ipv4}, which implements IP-level
1269 socket options for the Internet Protocol version 4.")
1270 (home-page "https://go.googlesource.com/net")
1273 (define-public go-golang-org-x-net-bpf
1274 (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d")
1277 (name "go-golang-org-x-net-bpf")
1278 (version (git-version "0.0.0" revision commit))
1282 (url "https://go.googlesource.com/net")
1284 (file-name (string-append "go.googlesource.com-net-"
1285 version "-checkout"))
1288 "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp"))))
1289 (build-system go-build-system)
1291 `(#:import-path "golang.org/x/net/bpf"
1292 #:unpack-path "golang.org/x/net"))
1293 (synopsis "Berkeley Packet Filters (BPF) in Go")
1294 (description "This packages provides a Go implementation of the Berkeley
1295 Packet Filter (BPF) virtual machine.")
1296 (home-page "https://go.googlesource.com/net/")
1299 (define-public go-golang-org-x-net-context
1300 (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d")
1303 (name "go-golang-org-x-net-context")
1304 (version (git-version "0.0.0" revision commit))
1308 (url "https://go.googlesource.com/net")
1310 (file-name (string-append "go.googlesource.com-net-"
1311 version "-checkout"))
1314 "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp"))))
1315 (build-system go-build-system)
1317 `(#:import-path "golang.org/x/net/context"
1318 #:unpack-path "golang.org/x/net"))
1319 (synopsis "Golang Context type")
1320 (description "This packages provides @code{context}, which defines the
1321 Context type, which carries deadlines, cancelation signals, and other
1322 request-scoped values across API boundaries and between processes.")
1323 (home-page "https://go.googlesource.com/net/")
1326 (define-public go-golang-org-x-net-internal-iana
1327 (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d")
1330 (name "go-golang-org-x-net-internal-iana")
1331 (version (git-version "0.0.0" revision commit))
1335 (url "https://go.googlesource.com/net")
1337 (file-name (string-append "go.googlesource.com-net-"
1338 version "-checkout"))
1341 "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp"))))
1342 (build-system go-build-system)
1344 `(#:import-path "golang.org/x/net/internal/iana"
1345 #:unpack-path "golang.org/x/net"))
1346 (synopsis "Go support for assigned numbers (IANA)")
1347 (description "This packages provides @code{iana}, which provides protocol
1348 number resources managed by the Internet Assigned Numbers Authority (IANA).")
1349 (home-page "https://go.googlesource.com/net/")
1352 (define-public go-golang-org-x-net-ipv6
1353 (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d")
1356 (name "go-golang-org-x-net-ipv6")
1357 (version (git-version "0.0.0" revision commit))
1361 (url "https://go.googlesource.com/net")
1363 (file-name (string-append "go.googlesource.com-net-"
1364 version "-checkout"))
1367 "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp"))))
1368 (build-system go-build-system)
1370 `(#:import-path "golang.org/x/net/ipv6"
1371 #:unpack-path "golang.org/x/net"))
1372 (synopsis "Go IPv6 support")
1373 (description "This packages provides @code{ipv6}, which implements
1374 IP-level socket options for the Internet Protocol version 6.")
1375 (home-page "https://go.googlesource.com/net")
1378 (define-public go-golang-org-x-net-proxy
1379 (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d")
1382 (name "go-golang-org-x-net-proxy")
1383 (version (git-version "0.0.0" revision commit))
1387 (url "https://go.googlesource.com/net")
1389 (file-name (string-append "go.googlesource.com-net-"
1390 version "-checkout"))
1393 "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp"))))
1394 (build-system go-build-system)
1396 `(#:import-path "golang.org/x/net/proxy"
1397 #:unpack-path "golang.org/x/net/"))
1398 (synopsis "Go support for network proxies")
1399 (description "This packages provides @code{proxy}, which provides support
1400 for a variety of protocols to proxy network data.")
1401 (home-page "https://go.googlesource.com/net")
1404 (define-public go-golang-org-x-sys-unix
1405 (let ((commit "f3918c30c5c2cb527c0b071a27c35120a6c0719a")
1408 (name "go-golang-org-x-sys-unix")
1409 (version (git-version "0.0.0" revision commit))
1413 (url "https://go.googlesource.com/sys")
1415 (file-name (git-file-name name version))
1418 "02967mw0nq7hp39bcf8rdbid4jgz2fn6hd1x03mmavvca03scxbh"))))
1419 (build-system go-build-system)
1421 `(#:import-path "golang.org/x/sys/unix"
1422 #:unpack-path "golang.org/x/sys"))
1423 (synopsis "Go support for low-level system interaction")
1424 (description "This package provides @code{unix}, which offers Go support
1425 for low-level interaction with the operating system.")
1426 (home-page "https://go.googlesource.com/sys")
1429 (define* (go-golang-org-x-text-union #:optional
1430 (packages (list go-golang-org-x-text-transform
1431 go-golang-org-x-text-unicode-norm)))
1433 (name "go-golang-org-x-text")
1434 (version (package-version go-golang-org-x-text-transform))
1436 (build-system trivial-build-system)
1438 '(#:modules ((guix build union))
1440 (use-modules (ice-9 match)
1442 (match %build-inputs
1443 (((names . directories) ...)
1444 (union-build (assoc-ref %outputs "out")
1446 (inputs (map (lambda (package)
1447 (list (package-name package) package))
1449 (synopsis "Union of the Go text libraries")
1450 (description "A union of the Golang text libraries.")
1451 (home-page (package-home-page go-golang-org-x-text-transform))
1452 (license (package-license go-golang-org-x-text-transform))))
1454 (define-public go-golang-org-x-text-transform
1455 (let ((commit "f4b4367115ec2de254587813edaa901bc1c723a8")
1458 (name "go-golang-org-x-text-transform")
1459 (version (git-version "0.0.0" revision commit))
1463 (url "https://go.googlesource.com/text")
1465 (file-name (string-append "go.googlesource.com-text-"
1466 version "-checkout"))
1469 "1a5m97y7sdxks02p4swg8ffp8bgr95aaf5fhfw511p7h3xg1dm0d"))))
1470 (build-system go-build-system)
1472 `(#:import-path "golang.org/x/text/transform"
1473 #:unpack-path "golang.org/x/text"))
1474 (synopsis "Go text transformation")
1475 (description "This package provides @code{transform}, which provides
1476 reader and writer wrappers that transform the bytes passing through. Example
1477 transformations provided by other packages include normalization and conversion
1478 between character sets.")
1479 (home-page "https://go.googlesource.com/text")
1482 (define-public go-golang-org-x-text-unicode-norm
1483 (let ((commit "f4b4367115ec2de254587813edaa901bc1c723a8")
1486 (name "go-golang-org-x-text-unicode-norm")
1487 (version (git-version "0.0.0" revision commit))
1491 (url "https://go.googlesource.com/text")
1493 (file-name (string-append "go.googlesource.com-text-"
1494 version "-checkout"))
1497 "1a5m97y7sdxks02p4swg8ffp8bgr95aaf5fhfw511p7h3xg1dm0d"))))
1498 (build-system go-build-system)
1500 `(#:import-path "golang.org/x/text/unicode/norm"
1501 #:unpack-path "golang.org/x/text"))
1502 (synopsis "Unicode normalization in Go")
1503 (description "This package provides @code{norm}, which contains types and
1504 functions for normalizing Unicode strings.")
1505 (home-page "https://go.googlesource.com/text")
1508 (define-public go-github-com-audriusbutkevicius-pfilter
1509 (let ((commit "9dca34a5b530bfc9843fa8aa2ff08ff9821032cb")
1512 (name "go-github-com-audriusbutkevicius-pfilter")
1513 (version (git-version "0.0.0" revision commit))
1518 (url "https://github.com/AudriusButkevicius/pfilter.git")
1520 (file-name (git-file-name name version))
1523 "0i4qbnwba49db27fb1y792gcvhb0m744i9q4zgwjbypqmy3bj2a5"))))
1524 (build-system go-build-system)
1526 '(#:import-path "github.com/AudriusButkevicius/pfilter"))
1527 (synopsis "Filter packets into mulitple virtual connections")
1528 (description "Pfilter is a Go package for filtering packets into multiple
1529 virtual connections from a single physical connection.")
1530 (home-page "https://github.com/AudriusButkevicius/pfilter")
1533 (define-public go-github-com-ccding-go-stun
1534 (let ((commit "d9bbe8f8fa7bf7ed03e6cfc6a2796bb36139e1f4")
1537 (name "go-github-com-ccding-go-stun")
1538 (version (git-version "0.0.0" revision commit))
1543 (url "https://github.com/ccding/go-stun.git")
1545 (file-name (git-file-name name version))
1548 "04a4q69cmw6snlx54wikyj1y6gk94qzm9xv9als17inmj8z60xv7"))))
1549 (build-system go-build-system)
1551 '(#:import-path "github.com/ccding/go-stun"))
1552 (synopsis "STUN client implementation")
1553 (description "Go-stun is a go implementation of the STUN client (RFC 3489
1555 (home-page "https://github.com/ccding/go-stun")
1558 (define-public go-github-com-chmduquesne-rollinghash-adler32
1559 (let ((commit "043b8fdecc9816f0011a056f6d92f9a091ab63dd")
1562 (name "go-github-com-chmduquesne-rollinghash-adler32")
1563 (version (git-version "0.0.0" revision commit))
1568 (url "https://github.com/chmduquesne/rollinghash.git")
1570 (file-name (git-file-name name version))
1573 "0pc87laxgydqv03bdirfv32y9k0bdk2cwjxn28yh42nvay9p6y0k"))))
1574 (build-system go-build-system)
1576 '(#:import-path "github.com/chmduquesne/rollinghash/adler32"
1577 #:unpack-path "github.com/chmduquesne/rollinghash"))
1578 (synopsis "Adler-32 rolling hash in Go")
1579 (description "This package provides a Go implementation of the Adler-32
1581 (home-page "https://github.com/chmduquesne/rollinghash")
1584 (define-public go-github-com-audriusbutkevicius-kcp-go
1585 (let ((commit "8ae5f528469c6ab76110f41eb7a51341b7efb946")
1588 (name "go-github-com-audriusbutkevicius-kcp-go")
1589 (version (git-version "0.0.0" revision commit))
1594 (url "https://github.com/AudriusButkevicius/kcp-go")
1596 (file-name (git-file-name name version))
1599 "1bhg7bfc0r4a7i516xasq3i5ln15lsalm7i53b4nchba6db7mq14"))))
1600 (build-system go-build-system)
1602 `(("go-golang-org-x-net-ipv4" ,go-golang-org-x-net-ipv4)
1603 ("go-github-com-templexxx-reedsolomon"
1604 ,go-github-com-templexxx-reedsolomon)
1605 ("go-github-com-tjfoc-gmsm-sm4" ,go-github-com-tjfoc-gmsm-sm4)
1606 ("go-github-com-pkg-errors" ,go-github-com-pkg-errors)
1607 ("go-golang-org-x-crypto" ,(go-golang-org-x-crypto-union))
1608 ("go-github-com-templexxx-xor" ,go-github-com-templexxx-xor)))
1610 '(#:import-path "github.com/AudriusButkevicius/kcp-go"
1611 ;; 'TestListenerClose' is known to fail. It seems that the test suite
1612 ;; is not being used upstream:
1613 ;; https://github.com/AudriusButkevicius/kcp-go/pull/1
1615 (synopsis "Reliable UDP connections in Go")
1616 (description "This package provides @code{kcp-go}, a reliable UDP library
1617 written in Go. It offers fast, ordered and error-checked delivery of streams
1619 (home-page "https://github.com/xtaci/kcp-go")
1622 (define-public go-github-com-templexxx-xor
1623 (let ((commit "42f9c041c330b560afb991153bf183c25444bcdc")
1626 (name "go-github-com-templexxx-xor")
1627 (version (git-version "0.0.0" revision commit))
1632 (url "https://github.com/templexxx/xor.git")
1634 (file-name (git-file-name name version))
1637 "0ixzk64nyyzas4lyqxdih824xg5f5vph18vyiibmnflwd61m0i78"))))
1638 (build-system go-build-system)
1640 '(#:import-path "github.com/templexxx/xor"))
1641 (synopsis "XOR in Go")
1642 (description "This packages provides a Go implementation of XOR.")
1643 (home-page "https://github.com/templexxx/xor")
1646 (define-public go-github-com-xtaci-smux
1647 (let ((commit "0f6b9aaecaaf354357adc7def9239011ad276776")
1650 (name "go-github-com-xtaci-smux")
1651 (version (git-version "0.0.0" revision commit))
1656 (url "https://github.com/xtaci/smux.git")
1658 (file-name (git-file-name name version))
1661 "0wx9j0id2f5iqvyalhm4i80fr9k25klr7qqj8sd9acwp5vfl5fas"))))
1662 (build-system go-build-system)
1664 `(("go-github-com-pkg-errors" ,go-github-com-pkg-errors)))
1666 '(#:import-path "github.com/xtaci/smux"))
1667 (synopsis "Network multiplexing in Go")
1668 (description "Smux ( Simple MUltipleXing) is a multiplexing library for
1669 Golang. It relies on an underlying connection to provide reliability and
1670 ordering, such as TCP or KCP, and provides stream-oriented multiplexing.")
1671 (home-page "https://github.com/xtaci/smux")
1674 (define-public go-github-com-pkg-errors
1675 (let ((commit "ff09b135c25aae272398c51a07235b90a75aa4f0")
1678 (name "go-github-com-pkg-errors")
1679 (version (git-version "0.0.0" revision commit))
1683 (url "https://github.com/pkg/errors.git")
1685 (file-name (git-file-name name version))
1688 "0pwl6v3hmc22zp32gkyqykl4kg69xk1mlp0vmhgd1f44difd5fvz"))))
1689 (build-system go-build-system)
1691 `(#:import-path "github.com/pkg/errors"))
1692 (synopsis "Go error handling primitives")
1693 (description "This packages provides @code{error}, which offers simple
1694 error handling primitives in Go.")
1695 (home-page "https://github.com/pkg/errors")
1698 (define-public go-golang-org-x-time-rate
1699 (let ((commit "f51c12702a4d776e4c1fa9b0fabab841babae631")
1702 (name "go-golang-org-x-time-rate")
1703 (version (git-version "0.0.0" revision commit))
1707 (url "https://go.googlesource.com/time")
1709 (file-name (git-file-name name version))
1712 "07wc6g2fvafkr6djsscm0jpbpl4135khhb6kpyx1953hi5d1jvyy"))))
1713 (build-system go-build-system)
1715 `(#:import-path "golang.org/x/time/rate"
1716 #:unpack-path "golang.org/x/time"))
1718 `(("go-golang-org-x-net-context" ,go-golang-org-x-net-context)))
1719 (synopsis "Rate limiting in Go")
1720 (description "This package provides @{rate}, which implements rate
1722 (home-page "https://godoc.org/golang.org/x/time/rate")
1725 (define-public go-github-com-petermattis-goid
1726 (let ((commit "3db12ebb2a599ba4a96bea1c17b61c2f78a40e02")
1729 (name "go-github-com-petermattis-goid")
1730 (version (git-version "0.0.0" revision commit))
1734 (url "https://github.com/petermattis/goid.git")
1736 (file-name (git-file-name name version))
1740 "0z18a3mr72c52g7g94n08gxw0ksnaafbfwdl5p5jav2sffirb0kd"))))
1741 (build-system go-build-system)
1743 '(#:import-path "github.com/petermattis/goid"))
1744 (synopsis "Identify the running goroutine")
1745 (description "This package offers a method of programatically retrieving
1746 the current goroutine's ID.")
1747 (home-page "https://github.com/petermattis/goid")
1750 (define-public go-github-com-audriusbutkevicius-cli
1751 (let ((commit "7f561c78b5a4aad858d9fd550c92b5da6d55efbb")
1754 (name "go-github-com-audriusbutkevicius-cli")
1755 (version (git-version "0.0.0" revision commit))
1759 (url "https://github.com/AudriusButkevicius/cli.git")
1761 (file-name (git-file-name name version))
1764 "0bg26pfg25vr16jmczig2m493mja2nxjxyswz3hha7avxw20rpi5"))))
1765 (build-system go-build-system)
1767 '(#:import-path "github.com/AudriusButkevicius/cli"))
1768 (synopsis "Library for building command-line interfaces in Go")
1769 (description "This package provides a library for building command-line
1771 (home-page "https://github.com/AudriusButkevicius/cli")
1774 (define-public go-github-com-kballard-go-shellquote
1775 (let ((commit "cd60e84ee657ff3dc51de0b4f55dd299a3e136f2")
1778 (name "go-github-com-kballard-go-shellquote")
1779 (version (git-version "0.0.0" revision commit))
1783 (url "https://github.com/kballard/go-shellquote.git")
1785 (file-name (git-file-name name version))
1788 "1xjpin4jq1zl84dcn96xhjmn9bsfyszf6g9aqyj2dc0xfi6c88y0"))))
1789 (build-system go-build-system)
1791 '(#:import-path "github.com/kballard/go-shellquote"))
1792 (synopsis "Shell-style string joins and splits")
1793 (description "Shellquote provides utilities for joining/splitting strings
1794 using sh's word-splitting rules.")
1795 (home-page "https://github.com/kballard/go-shellquote")
1798 (define-public go-github-com-templexxx-reedsolomon
1800 (name "go-github-com-templexxx-reedsolomon")
1805 (url "https://github.com/templexxx/reedsolomon.git")
1809 "05yfi6dq2mwaw6jf9vq2qhpw8vb9y94b3zi6mpfcpma262rxdkg4"))))
1810 (build-system go-build-system)
1812 '(#:import-path "github.com/templexxx/reedsolomon"))
1814 `(("go-github-com-templexxx-cpufeat"
1815 ,go-github-com-templexxx-cpufeat)))
1816 (synopsis "Reed-Solomon Erasure Coding in Go")
1817 (description "This package provides and implemenation of Reed-Solomon
1818 Erasure Coding in Go.")
1819 (home-page "https://github.com/templexxx/reedsolomon")
1822 (define-public go-github-com-templexxx-cpufeat
1823 (let ((commit "3794dfbfb04749f896b521032f69383f24c3687e")
1826 (name "go-github-com-templexxx-cpufeat")
1827 (version (git-version "0.0.0" revision commit))
1831 (url "https://github.com/templexxx/cpufeat.git")
1833 (file-name (git-file-name name version))
1836 "0b9f5p6nsiv907rz5d66qzgxnsz4k68r2f45vxi2hwdbnkjfxz8j"))))
1837 (build-system go-build-system)
1839 '(#:import-path "github.com/templexxx/cpufeat"))
1840 (synopsis "CPU feature identification for Go")
1841 (description "This package provides @code{cpu}, which implements
1842 processor feature detection used by the Go standard libary.")
1843 (home-page "https://github.com/templexxx/cpufeat")
1846 (define-public go-github-com-tjfoc-gmsm-sm4
1847 (let ((commit "0f4904804c0f24f1784e10195a4144fcffa86a85")
1850 (name "go-github-com-tjfoc-gmsm-sm4")
1851 (version (git-version "0.0.0" revision commit))
1855 (url "https://github.com/tjfoc/gmsm")
1857 (file-name (git-file-name name version))
1860 "1k56gx2ky0c5kf4icafd7zr809lliqzx2mn88lb6d52ljfpf77q5"))))
1861 (build-system go-build-system)
1863 '(#:import-path "github.com/tjfoc/gmsm/sm4"
1864 #:unpack-path "github.com/tjfoc/gmsm"))
1865 (synopsis "SM4 block cipher")
1866 (description "This package provides a Go implementation of SM4, a block
1867 cipher used in the Chinese National Standard for Wireless LAN WAPI (Wired
1868 Authentication and Privacy Infrastructure).")
1869 (home-page "https://github.com/tjfoc/gmsm")
1872 (define-public go-github-com-zillode-notify
1873 (let ((commit "54e3093eb7377fd139c4605f475cc78e83610b9d")
1876 (name "go-github-com-zillode-notify")
1877 (version (git-version "0.0.0" revision commit))
1881 (url "https://github.com/zillode/notify")
1883 (file-name (git-file-name name version))
1886 "0xmj0bh15hqbzq5qsbi2nb2lihl1pqdh1vwalwmxywnda3w68xj6"))))
1887 (build-system go-build-system)
1889 '(#:import-path "github.com/zillode/notify"))
1891 `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
1892 (synopsis "Filesystem event notification library")
1893 (description "This package provides @code{notify}, a filesystem event
1894 notification library in Go.")
1895 (home-page "https://github.com/zillode/notify")