X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/6deb73c493d93accaf2fae029747b4df2d80874d..6715e1c24f19a5e1eb39c9baae9eebf4238533a7:/gnu/packages/syncthing.scm diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 503da81c43..22dc8af7f3 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Petter -;;; Copyright © 2016, 2017 Leo Famulari +;;; Copyright © 2016, 2017, 2018 Leo Famulari ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,10 +19,141 @@ (define-module (gnu packages syncthing) #:use-module (guix build-system go) + #:use-module (guix build-system trivial) #:use-module (guix packages) + #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix licenses)) +(define-public syncthing + (package + (name "syncthing") + (version "0.14.45") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/syncthing/syncthing" + "/releases/download/v" version + "/syncthing-source-v" version ".tar.gz")) + (sha256 + (base32 + "0nv5g9ymykl4316l2g3mnac77y2rx9ps4j2kg3pymxlq6qms2dij")) + (modules '((guix build utils))) + ;; Delete bundled ("vendored") free software source code. + (snippet '(begin + (delete-file-recursively "vendor") + #t)))) + (build-system go-build-system) + ;; The primary Syncthing executable goes to "out", while the auxiliary + ;; server programs and utility tools go to "utils". This reduces the size + ;; of "out" by ~80 MiB. + (outputs '("out" "utils")) + (arguments + `(#:import-path "github.com/syncthing/syncthing" + #:unpack-path "github.com/syncthing" + ;; We don't need to install the source code for end-user applications. + #:install-source? #f + #:phases + (modify-phases %standard-phases + (add-before 'build 'increase-test-timeout + (lambda _ + (substitute* "src/github.com/syncthing/syncthing/build.go" + (("60s") "999s")) + #t)) + + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "src/github.com/syncthing/syncthing" + (zero? (system* "go" "run" "build.go" "-no-upgrade"))))) + + (replace 'check + (lambda _ + (with-directory-excursion "src/github.com/syncthing/syncthing" + (zero? (system* "go" "run" "build.go" "test"))))) + + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (utils (assoc-ref outputs "utils")) + (src "src/github.com/syncthing/syncthing/bin/")) + (install-file (string-append src "/syncthing") + (string-append out "/bin")) + (delete-file (string-append src "/syncthing")) + (copy-recursively "src/github.com/syncthing/syncthing/bin/" + (string-append utils "/bin")) + #t))) + + (add-after 'install 'install-docs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (utils (assoc-ref outputs "utils")) + (man "/share/man") + (man-section (string-append man "/man")) + (src "src/github.com/syncthing/syncthing/man/")) + ;; Install all the man pages to "out". + (for-each + (lambda (file) + (install-file file + (string-append out man-section + (string-take-right file 1)))) + (find-files src "\\.[1-9]")) + ;; Copy all the man pages to "utils" + (copy-recursively (string-append out man) + (string-append utils man)) + ;; Delete extraneous man pages from "out" and "utils", + ;; respectively. + (delete-file (string-append out man "/man1/stdiscosrv.1")) + (delete-file (string-append out man "/man1/strelaysrv.1")) + (delete-file (string-append utils man "/man1/syncthing.1")) + #t)))))) + ;; When updating Syncthing, check 'vendor/manifest' in the source + ;; distribution to ensure we are using the correct versions of these + ;; dependencies. + (inputs + `(("go-github-com-audriusbutkevicius-cli" + ,go-github-com-audriusbutkevicius-cli) + ("go-github-com-audriusbutkevicius-go-nat-pmp" + ,go-github-com-audriusbutkevicius-go-nat-pmp) + ("go-github-com-audriusbutkevicius-pfilter" + ,go-github-com-audriusbutkevicius-pfilter) + ("go-github-com-bkaradzic-go-lz4" ,go-github-com-bkaradzic-go-lz4) + ("go-github-com-calmh-du" ,go-github-com-calmh-du) + ("go-github-com-calmh-xdr" ,go-github-com-calmh-xdr) + ("go-github-com-prometheus-union" ,(go-github-com-prometheus-union)) + ("go-github-com-chmduquesne-rollinghash-adler32" + ,go-github-com-chmduquesne-rollinghash-adler32) + ("go-github-com-gobwas-glob" ,go-github-com-gobwas-glob) + ("go-github-com-gogo-protobuf-union" + ,(go-github-com-gogo-protobuf-union)) + ("go-github-com-golang-groupcache-lru" + ,go-github-com-golang-groupcache-lru) + ("go-github-com-jackpal-gateway" ,go-github-com-jackpal-gateway) + ("go-github-com-kardianos-osext" ,go-github-com-kardianos-osext) + ("go-github-com-kballard-go-shellquote" + ,go-github-com-kballard-go-shellquote) + ("go-github-com-lib-pq" ,go-github-com-lib-pq) + ("go-github-com-minio-sha256-simd" ,go-github-com-minio-sha256-simd) + ("go-github-com-oschwald-geoip2-golang" + ,go-github-com-oschwald-geoip2-golang) + ("go-github-com-pkg-errors" ,go-github-com-pkg-errors) + ("go-github-com-rcrowley-go-metrics" ,go-github-com-rcrowley-go-metrics) + ("go-github-com-sasha-s-go-deadlock" ,go-github-com-sasha-s-go-deadlock) + ("go-github-com-syndtr-goleveldb" ,go-github-com-syndtr-goleveldb) + ("go-github-com-thejerf-suture" ,go-github-com-thejerf-suture) + ("go-github-com-vitrun-qart" ,(go-github-com-vitrun-qart-union)) + ("go-golang-org-x-crypto" ,(go-golang-org-x-crypto-union)) + ("go-golang-org-x-net-union" ,(go-golang-org-x-net-union)) + ("go-golang-org-x-text" ,(go-golang-org-x-text-union)) + ("go-golang-org-x-time-rate" ,go-golang-org-x-time-rate) + ("go-github-com-zillode-notify" ,go-github-com-zillode-notify) + ;; For tests + ("go-github-com-d4l3k-messagediff" ,go-github-com-d4l3k-messagediff))) + (synopsis "Decentralized continuous file system synchronization") + (description "Syncthing is a peer-to-peer file synchronization tool that +supports a wide variety of computing platforms. It uses the Block Exchange +Protocol.") + (home-page "https://github.com/syncthing/syncthing") + (license mpl2.0))) + (define-public go-github-com-audriusbutkevicius-go-nat-pmp (let ((commit "452c97607362b2ab5a7839b8d1704f0396b640ca") (revision "0")) @@ -188,12 +319,37 @@ structs in the Go programming language.") (home-page "https://github.com/gobwas/glob") (license expat)))) +(define* (go-github-com-gogo-protobuf-union + #:optional (packages (list go-github-com-gogo-protobuf + go-github-com-gogo-protobuf-protoc-gen-gogo))) + (package + (name "go-github-com-gogo-protobuf-union") + (version (package-version go-github-com-gogo-protobuf)) + (source #f) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build union)) + #:builder (begin + (use-modules (ice-9 match) + (guix build union)) + (match %build-inputs + (((names . directories) ...) + (union-build (assoc-ref %outputs "out") + directories)))))) + (inputs (map (lambda (package) + (list (package-name package) package)) + packages)) + (synopsis "Union of Go protobuf libraries") + (description "This is a union of Go protobuf libraries") + (home-page (package-home-page go-github-com-gogo-protobuf)) + (license (package-license go-github-com-gogo-protobuf)))) + (define-public go-github-com-gogo-protobuf - (let ((commit "efccd33a0c20aa078705571d5ddbfa14c8395a63") - (revision "0")) + (let ((commit "160de10b2537169b5ae3e7e221d28269ef40d311") + (revision "2")) (package (name "go-github-com-gogo-protobuf") - (version (git-version "0.2" revision commit)) + (version (git-version "0.5" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -202,7 +358,7 @@ structs in the Go programming language.") (file-name (git-file-name name version)) (sha256 (base32 - "09kfa3aqmhh7p0rc6wd4fw5cjccidsk9vgcy13albv0g8vnbmmgw")))) + "0hxq28sgxym04rv0q40gpwkh4ni359q21hq3g78wwxwx4qfd4zwm")))) (build-system go-build-system) (arguments `(#:import-path "github.com/gogo/protobuf/proto" @@ -258,8 +414,8 @@ generation features. This code generation is used to achieve: (license bsd-3)))) (define-public go-github-com-golang-groupcache-lru - (let ((commit "72d04f9fcdec7d3821820cc4a6f150eae553639a") - (revision "0")) + (let ((commit "84a468cf14b4376def5d68c722b139b881c450a4") + (revision "1")) (package (name "go-github-com-golang-groupcache-lru") (version (git-version "0.0.0" revision commit)) @@ -271,7 +427,7 @@ generation features. This code generation is used to achieve: (file-name (git-file-name name version)) (sha256 (base32 - "1l3ryh7bq1f2mhr3sd3x1wav99pd27r8l3ydgqh375wn4x7v5qd6")))) + "1ky1r9qh54yi9zp2769qrjngzndgd8fn7mja2qfac285n06chmcn")))) (build-system go-build-system) (arguments `(#:import-path "github.com/golang/groupcache/lru" @@ -333,8 +489,8 @@ address of the default LAN gateway.") (license bsd-3)))) (define-public go-github-com-kardianos-osext - (let ((commit "9d302b58e975387d0b4d9be876622c86cefe64be") - (revision "0")) + (let ((commit "ae77be60afb1dcacde03767a8c37337fad28ac14") + (revision "1")) (package (name "go-github-com-kardianos-osext") (version (git-version "0.0.0" revision commit)) @@ -346,7 +502,7 @@ address of the default LAN gateway.") (file-name (git-file-name name version)) (sha256 (base32 - "0r6f727s16g4f66k8c2z1xh8ga1p53hg9g2v95pmhd1i60fhy47a")))) + "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz")))) (build-system go-build-system) (arguments `(#:import-path "github.com/kardianos/osext")) @@ -358,8 +514,8 @@ finding resources located relative to the executable file.") (license bsd-3)))) (define-public go-github-com-lib-pq - (let ((commit "2704adc878c21e1329f46f6e56a1c387d788ff94") - (revision "0")) + (let ((commit "83612a56d3dd153a94a629cd64925371c9adad78") + (revision "1")) (package (name "go-github-com-lib-pq") (version (git-version "0.0.0" revision commit)) @@ -371,7 +527,7 @@ finding resources located relative to the executable file.") (file-name (git-file-name name version)) (sha256 (base32 - "160fmvi7bczxw3i3h5s821hv029ph5ld8x3c36b4cz2sr30wp110")))) + "12334yigh284k5cdvb9pgxaq6n78205jcbp75ajz44vvfd4wi6qc")))) (build-system go-build-system) (arguments `(#:import-path "github.com/lib/pq" @@ -385,8 +541,8 @@ database/sql package.") (license expat)))) (define-public go-github-com-minio-sha256-simd - (let ((commit "6124d070eb4e7001c244b6ccc282620a5dce44a0") - (revision "0")) + (let ((commit "ad98a36ba0da87206e3378c556abbfeaeaa98668") + (revision "1")) (package (name "go-github-com-minio-sha256-simd") (version (git-version "0.0.0" revision commit)) @@ -398,7 +554,7 @@ database/sql package.") (file-name (git-file-name name version)) (sha256 (base32 - "1azrdp7x7vl9ngkxs890blspz0345xhadvssdlb0435hdqa0gkll")))) + "0yfnqn3kqdnlfm54yvc4fr5vpdmwdi2kw571nlkbpmy8ldhsqqfi")))) (build-system go-build-system) (arguments `(#:import-path "github.com/minio/sha256-simd")) @@ -410,40 +566,38 @@ architectures.") (license asl2.0)))) (define-public go-github-com-oschwald-geoip2-golang - (let ((commit "0fd242da7906550802871efe101abfdb1cc550a8") - (revision "0")) - (package - (name "go-github-com-oschwald-geoip2-golang") - (version (git-version "0.1.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/oschwald/geoip2-golang") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0kglnix0r5sjkk346ip30l7dwq1gv2g4wjy2cjmgjvb8x778hnww")))) - (build-system go-build-system) - (propagated-inputs - `(("go-github-com-oschwald-maxminddb-golang" - ,go-github-com-oschwald-maxminddb-golang) - ("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix))) - (arguments - `(#:import-path "github.com/oschwald/geoip2-golang" - #:tests? #f)) ; Requires some unpackaged software and test data - (synopsis "MaxMind GeoIP2 reader") - (description "This packages provides a library for reading MaxMind + (package + (name "go-github-com-oschwald-geoip2-golang") + (version "1.1.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/oschwald/geoip2-golang") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0v698bzs8lb59cqpsa9cf4sl8rdsvnnmaravhbfn6g6i511ppclr")))) + (build-system go-build-system) + (propagated-inputs + `(("go-github-com-oschwald-maxminddb-golang" + ,go-github-com-oschwald-maxminddb-golang) + ("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix))) + (arguments + `(#:import-path "github.com/oschwald/geoip2-golang" + #:tests? #f)) ; Requires some unpackaged software and test data + (synopsis "MaxMind GeoIP2 reader") + (description "This packages provides a library for reading MaxMind GeoLite2 and GeoIP2 databases in Go.") - (home-page "https://github.com/oschwald/geoip2-golang") - (license isc)))) + (home-page "https://github.com/oschwald/geoip2-golang") + (license isc))) (define-public go-github-com-oschwald-maxminddb-golang - (let ((commit "697da8075d2061aa8ed639346443f5d3e8c80b30") + (let ((commit "26fe5ace1c706491c2936119e1dc69c1a9c04d7f") (revision "0")) (package (name "go-github-com-oschwald-maxminddb-golang") - (version (git-version "0.2.0" revision commit)) + (version (git-version "1.2.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -452,7 +606,7 @@ GeoLite2 and GeoIP2 databases in Go.") (file-name (git-file-name name version)) (sha256 (base32 - "00kkxzlvra0kcbkl56wp0dp1yw3cmfjqqlwbqy7bq5r34s7iavq0")))) + "1i6d935f3cv9djpjvc2ibh8aps8jqvg454b9pkwg2h98al759ggk")))) (build-system go-build-system) (propagated-inputs `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix))) @@ -490,8 +644,8 @@ higher-level API for doing so.") (license expat)))) (define-public go-github-com-rcrowley-go-metrics - (let ((commit "1f30fe9094a513ce4c700b9a54458bbb0c96996c") - (revision "0")) + (let ((commit "e181e095bae94582363434144c61a9653aff6e50") + (revision "1")) (package (name "go-github-com-rcrowley-go-metrics") (version (git-version "0.0.0" revision commit)) @@ -503,7 +657,7 @@ higher-level API for doing so.") (file-name (git-file-name name version)) (sha256 (base32 - "1hvbiaq4b6dqgjz6jkkxglfh9gf71zin6qsg508sh0r0ixfavrzj")))) + "1pwkyw801hy7n94skzk6h177zqcil6ayrmb5gs3jdpsfayh8ia5w")))) (build-system go-build-system) (arguments `(#:import-path "github.com/rcrowley/go-metrics")) @@ -516,8 +670,8 @@ Metrics library.") (license bsd-2)))) (define-public go-github-com-sasha-s-go-deadlock - (let ((commit "341000892f3dd25f440e6231e8533eb3688ed7ec") - (revision "0")) + (let ((commit "03d40e5dbd5488667a13b3c2600b2f7c2886f02f") + (revision "1")) (package (name "go-github-com-sasha-s-go-deadlock") (version (git-version "0.1.0" revision commit)) @@ -529,7 +683,7 @@ Metrics library.") (file-name (git-file-name name version)) (sha256 (base32 - "1bcdyxwm5qpqynxahwaahbqi7ghgdajmg7b4276pdalkxkxkhsv8")))) + "13p7b7pakd9k1c2k0fs1hfim3c8mivz679977ai6zb01s4aw7gyg")))) (build-system go-build-system) (arguments `(#:import-path "github.com/sasha-s/go-deadlock")) @@ -542,8 +696,8 @@ run-time in Go.") (license asl2.0)))) (define-public go-github-com-syndtr-goleveldb - (let ((commit "3c5717caf1475fd25964109a0fc640bd150fce43") - (revision "0")) + (let ((commit "34011bf325bce385408353a30b101fe5e923eb6e") + (revision "2")) (package (name "go-github-com-syndtr-goleveldb") (version (git-version "0.0.0" revision commit)) @@ -555,7 +709,7 @@ run-time in Go.") (file-name (git-file-name name version)) (sha256 (base32 - "0wng25bw885ppiny9rz42kq0a7ddkym5zl0glb8rfk0m8dpvi1dd")))) + "097ja0vyj6p27zrxha9nhk09fj977xsvhmd3bk2hbyvnbw4znnhd")))) (build-system go-build-system) (propagated-inputs `(("go-github-com-golang-snappy" ,go-github-com-golang-snappy))) @@ -570,11 +724,11 @@ database in Go.") (license bsd-2)))) (define-public go-github-com-thejerf-suture - (let ((commit "0ac47afae95ad5bc5184ed346bc945168e883f5d") + (let ((commit "87e298c9891673c9ae76e10c2c9be589127e5f49") (revision "0")) (package (name "go-github-com-thejerf-suture") - (version (git-version "0.0.0" revision commit)) + (version (git-version "2.0.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -583,7 +737,7 @@ database in Go.") (file-name (git-file-name name version)) (sha256 (base32 - "0f860fkaibnnkmh4q6q9yn3r26sraaj8wx9irwm76cmsp48zcxfy")))) + "0srw0g94z6jplvlsjqsr6wf7885alnbb6h4fhvbg2i7q1ia5ldy2")))) (build-system go-build-system) (arguments `(#:import-path "github.com/thejerf/suture")) @@ -600,6 +754,32 @@ environment") (home-page "https://github.com/thejerf/suture") (license expat)))) +(define* (go-github-com-vitrun-qart-union + #:optional (packages (list go-github-com-vitrun-qart-coding + go-github-com-vitrun-qart-gf256 + go-github-com-vitrun-qart-qr))) + (package + (name "go-github-com-vitrun-qart") + (version (package-version go-github-com-vitrun-qart-qr)) + (source #f) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build union)) + #:builder (begin + (use-modules (ice-9 match) + (guix build union)) + (match %build-inputs + (((names . directories) ...) + (union-build (assoc-ref %outputs "out") + directories)))))) + (inputs (map (lambda (package) + (list (package-name package) package)) + packages)) + (synopsis "Union of qart libraries") + (description "This is a union of qart libraries.") + (home-page (package-home-page go-github-com-vitrun-qart-qr)) + (license (package-license go-github-com-vitrun-qart-qr)))) + (define-public go-github-com-vitrun-qart-coding (let ((commit "bf64b92db6b05651d6c25a3dabf2d543b360c0aa") (revision "0")) @@ -688,9 +868,46 @@ generation.") (home-page "https://github.com/vitrun/qart") (license bsd-3)))) +;; Go searches for library modules by looking in the GOPATH environment +;; variable. This variable is a list of paths. However, Go does not +;; keep searching on GOPATH if it tries and fails to import a module. +;; So, we use a union for packages sharing a namespace. +(define* (go-golang-org-x-crypto-union #:optional + (packages (list go-golang-org-x-crypto-blowfish + go-golang-org-x-crypto-bcrypt + go-golang-org-x-crypto-tea + go-golang-org-x-crypto-xtea + go-golang-org-x-crypto-pbkdf2 + go-golang-org-x-crypto-twofish + go-golang-org-x-crypto-cast5 + go-golang-org-x-crypto-salsa20))) + (package + (name "go-golang-org-x-crypto") + (version (package-version go-golang-org-x-crypto-bcrypt)) + (source #f) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build union)) + #:builder (begin + (use-modules (ice-9 match) + (guix build union)) + (match %build-inputs + (((names . directories) ...) + (union-build (assoc-ref %outputs "out") + directories)))))) + (inputs (map (lambda (package) + (list (package-name package) package)) + packages)) + (synopsis "Union of the Go x crypto libraries") + (description "A union of the Golang cryptographic libraries. A +union is required because `go build` assumes that all of the headers and +libraries are in the same directory.") + (home-page (package-home-page go-golang-org-x-crypto-bcrypt)) + (license (package-license go-golang-org-x-crypto-bcrypt)))) + (define-public go-golang-org-x-crypto-bcrypt - (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") - (revision "0")) + (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419") + (revision "1")) (package (name "go-golang-org-x-crypto-bcrypt") (version (git-version "0.0.0" revision commit)) @@ -703,7 +920,7 @@ generation.") version "-checkout")) (sha256 (base32 - "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4")))) + "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/crypto/bcrypt" @@ -726,8 +943,8 @@ password hashing function.") (license bsd-3)))) (define-public go-golang-org-x-crypto-blowfish - (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") - (revision "0")) + (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419") + (revision "1")) (package (name "go-golang-org-x-crypto-blowfish") (version (git-version "0.0.0" revision commit)) @@ -740,7 +957,7 @@ password hashing function.") version "-checkout")) (sha256 (base32 - "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4")))) + "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/crypto/blowfish" @@ -763,8 +980,8 @@ symmetric-key block cipher.") (license bsd-3)))) (define-public go-golang-org-x-crypto-pbkdf2 - (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") - (revision "0")) + (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419") + (revision "1")) (package (name "go-golang-org-x-crypto-pbkdf2") (version (git-version "0.0.0" revision commit)) @@ -777,7 +994,7 @@ symmetric-key block cipher.") version "-checkout")) (sha256 (base32 - "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4")))) + "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/crypto/pbkdf2" @@ -800,8 +1017,8 @@ derivation function.") (license bsd-3)))) (define-public go-golang-org-x-crypto-tea - (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") - (revision "0")) + (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419") + (revision "1")) (package (name "go-golang-org-x-crypto-tea") (version (git-version "0.0.0" revision commit)) @@ -814,7 +1031,7 @@ derivation function.") version "-checkout")) (sha256 (base32 - "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4")))) + "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/crypto/tea" @@ -837,8 +1054,8 @@ Algorithm (TEA) block cipher.") (license bsd-3)))) (define-public go-golang-org-x-crypto-salsa20 - (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") - (revision "0")) + (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419") + (revision "1")) (package (name "go-golang-org-x-crypto-salsa20") (version (git-version "0.0.0" revision commit)) @@ -851,7 +1068,7 @@ Algorithm (TEA) block cipher.") version "-checkout")) (sha256 (base32 - "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4")))) + "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/crypto/salsa20" @@ -874,8 +1091,8 @@ stream cipher.") (license bsd-3)))) (define-public go-golang-org-x-crypto-cast5 - (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") - (revision "0")) + (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419") + (revision "1")) (package (name "go-golang-org-x-crypto-cast5") (version (git-version "0.0.0" revision commit)) @@ -888,7 +1105,7 @@ stream cipher.") version "-checkout")) (sha256 (base32 - "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4")))) + "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/crypto/cast5" @@ -911,8 +1128,8 @@ symmetric-key block cipher.") (license bsd-3)))) (define-public go-golang-org-x-crypto-twofish - (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") - (revision "0")) + (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419") + (revision "1")) (package (name "go-golang-org-x-crypto-twofish") (version (git-version "0.0.0" revision commit)) @@ -925,7 +1142,7 @@ symmetric-key block cipher.") version "-checkout")) (sha256 (base32 - "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4")))) + "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/crypto/twofish" @@ -948,8 +1165,8 @@ symmetric-key block cipher.") (license bsd-3)))) (define-public go-golang-org-x-crypto-xtea - (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") - (revision "0")) + (let ((commit "95a4943f35d008beabde8c11e5075a1b714e6419") + (revision "1")) (package (name "go-golang-org-x-crypto-xtea") (version (git-version "0.0.0" revision commit)) @@ -962,7 +1179,7 @@ symmetric-key block cipher.") version "-checkout")) (sha256 (base32 - "0vxlfxr9y681yn2cfh6dbqmq35vvq4f45ay0mm31ffkny9cms0y4")))) + "0bkm0jx9mxmi1liabb9c04kf765n7d0062zdp3zmvzyamsq00lcx")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/crypto/xtea" @@ -984,9 +1201,38 @@ Tiny Encryption Algorithm (XTEA) block cipher.") (home-page "https://go.googlesource.com/crypto/") (license bsd-3)))) +(define* (go-golang-org-x-net-union #:optional + (packages (list go-golang-org-x-net-ipv4 + go-golang-org-x-net-bpf + go-golang-org-x-net-context + go-golang-org-x-net-ipv6 + go-golang-org-x-net-proxy + go-golang-org-x-net-internal-iana))) + (package + (name "go-golang-org-x-net") + (version (package-version go-golang-org-x-net-ipv4)) + (source #f) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build union)) + #:builder (begin + (use-modules (ice-9 match) + (guix build union)) + (match %build-inputs + (((names . directories) ...) + (union-build (assoc-ref %outputs "out") + directories)))))) + (inputs (map (lambda (package) + (list (package-name package) package)) + packages)) + (synopsis "Union of the Go net libraries") + (description "A union of the Golang net libraries.") + (home-page (package-home-page go-golang-org-x-net-ipv4)) + (license (package-license go-golang-org-x-net-ipv4)))) + (define-public go-golang-org-x-net-ipv4 - (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") - (revision "0")) + (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6") + (revision "1")) (package (name "go-golang-org-x-net-ipv4") (version (git-version "0.0.0" revision commit)) @@ -998,7 +1244,7 @@ Tiny Encryption Algorithm (XTEA) block cipher.") (file-name (git-file-name name version)) (sha256 (base32 - "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp")))) + "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/net/ipv4" @@ -1010,8 +1256,8 @@ socket options for the Internet Protocol version 4.") (license bsd-3)))) (define-public go-golang-org-x-net-bpf - (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") - (revision "0")) + (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6") + (revision "1")) (package (name "go-golang-org-x-net-bpf") (version (git-version "0.0.0" revision commit)) @@ -1024,7 +1270,7 @@ socket options for the Internet Protocol version 4.") version "-checkout")) (sha256 (base32 - "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp")))) + "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/net/bpf" @@ -1036,8 +1282,8 @@ Packet Filter (BPF) virtual machine.") (license bsd-3)))) (define-public go-golang-org-x-net-context - (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") - (revision "0")) + (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6") + (revision "1")) (package (name "go-golang-org-x-net-context") (version (git-version "0.0.0" revision commit)) @@ -1050,7 +1296,7 @@ Packet Filter (BPF) virtual machine.") version "-checkout")) (sha256 (base32 - "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp")))) + "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/net/context" @@ -1063,8 +1309,8 @@ request-scoped values across API boundaries and between processes.") (license bsd-3)))) (define-public go-golang-org-x-net-internal-iana - (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") - (revision "0")) + (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6") + (revision "1")) (package (name "go-golang-org-x-net-internal-iana") (version (git-version "0.0.0" revision commit)) @@ -1077,7 +1323,7 @@ request-scoped values across API boundaries and between processes.") version "-checkout")) (sha256 (base32 - "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp")))) + "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/net/internal/iana" @@ -1089,8 +1335,8 @@ number resources managed by the Internet Assigned Numbers Authority (IANA).") (license bsd-3)))) (define-public go-golang-org-x-net-ipv6 - (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") - (revision "0")) + (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6") + (revision "1")) (package (name "go-golang-org-x-net-ipv6") (version (git-version "0.0.0" revision commit)) @@ -1103,7 +1349,7 @@ number resources managed by the Internet Assigned Numbers Authority (IANA).") version "-checkout")) (sha256 (base32 - "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp")))) + "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/net/ipv6" @@ -1115,8 +1361,8 @@ IP-level socket options for the Internet Protocol version 6.") (license bsd-3)))) (define-public go-golang-org-x-net-proxy - (let ((commit "ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d") - (revision "0")) + (let ((commit "d866cfc389cec985d6fda2859936a575a55a3ab6") + (revision "1")) (package (name "go-golang-org-x-net-proxy") (version (git-version "0.0.0" revision commit)) @@ -1129,7 +1375,7 @@ IP-level socket options for the Internet Protocol version 6.") version "-checkout")) (sha256 (base32 - "1ifqw09pj9q23mza1d0im99yy3jp72dvq9dcx2bs1n1m11cjdjzp")))) + "10iahqcsiih5hgmqw8yfgv5b3fimfwl1skxg5062avcjjks59f03")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/net/proxy" @@ -1141,8 +1387,8 @@ for a variety of protocols to proxy network data.") (license bsd-3)))) (define-public go-golang-org-x-sys-unix - (let ((commit "f3918c30c5c2cb527c0b071a27c35120a6c0719a") - (revision "0")) + (let ((commit "83801418e1b59fb1880e363299581ee543af32ca") + (revision "1")) (package (name "go-golang-org-x-sys-unix") (version (git-version "0.0.0" revision commit)) @@ -1154,20 +1400,53 @@ for a variety of protocols to proxy network data.") (file-name (git-file-name name version)) (sha256 (base32 - "02967mw0nq7hp39bcf8rdbid4jgz2fn6hd1x03mmavvca03scxbh")))) + "0ilykaanvnzb27d42kmbr4i37hcn7hgqbx98z945gy63aa8dskji")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/sys/unix" - #:unpack-path "golang.org/x/sys")) + #:unpack-path "golang.org/x/sys" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-tests + (lambda _ + (pk (getcwd)) + (substitute* "src/golang.org/x/sys/unix/syscall_unix_test.go" + (("/usr/bin") "/tmp")) + #t))))) (synopsis "Go support for low-level system interaction") (description "This package provides @code{unix}, which offers Go support for low-level interaction with the operating system.") (home-page "https://go.googlesource.com/sys") (license bsd-3)))) +(define* (go-golang-org-x-text-union #:optional + (packages (list go-golang-org-x-text-transform + go-golang-org-x-text-unicode-norm))) + (package + (name "go-golang-org-x-text") + (version (package-version go-golang-org-x-text-transform)) + (source #f) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build union)) + #:builder (begin + (use-modules (ice-9 match) + (guix build union)) + (match %build-inputs + (((names . directories) ...) + (union-build (assoc-ref %outputs "out") + directories)))))) + (inputs (map (lambda (package) + (list (package-name package) package)) + packages)) + (synopsis "Union of the Go text libraries") + (description "A union of the Golang text libraries.") + (home-page (package-home-page go-golang-org-x-text-transform)) + (license (package-license go-golang-org-x-text-transform)))) + (define-public go-golang-org-x-text-transform - (let ((commit "f4b4367115ec2de254587813edaa901bc1c723a8") - (revision "0")) + (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3") + (revision "1")) (package (name "go-golang-org-x-text-transform") (version (git-version "0.0.0" revision commit)) @@ -1180,7 +1459,7 @@ for low-level interaction with the operating system.") version "-checkout")) (sha256 (base32 - "1a5m97y7sdxks02p4swg8ffp8bgr95aaf5fhfw511p7h3xg1dm0d")))) + "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/text/transform" @@ -1194,8 +1473,8 @@ between character sets.") (license bsd-3)))) (define-public go-golang-org-x-text-unicode-norm - (let ((commit "f4b4367115ec2de254587813edaa901bc1c723a8") - (revision "0")) + (let ((commit "e19ae1496984b1c655b8044a65c0300a3c878dd3") + (revision "1")) (package (name "go-golang-org-x-text-unicode-norm") (version (git-version "0.0.0" revision commit)) @@ -1208,7 +1487,7 @@ between character sets.") version "-checkout")) (sha256 (base32 - "1a5m97y7sdxks02p4swg8ffp8bgr95aaf5fhfw511p7h3xg1dm0d")))) + "1cvnnx8nwx5c7gr6ajs7sldhbqh52n7h6fsa3i21l2lhx6xrsh4w")))) (build-system go-build-system) (arguments `(#:import-path "golang.org/x/text/unicode/norm" @@ -1220,8 +1499,8 @@ functions for normalizing Unicode strings.") (license bsd-3)))) (define-public go-github-com-audriusbutkevicius-pfilter - (let ((commit "09b3cfdd04de89f0196caecb0b335d7149a6593a") - (revision "0")) + (let ((commit "9dca34a5b530bfc9843fa8aa2ff08ff9821032cb") + (revision "2")) (package (name "go-github-com-audriusbutkevicius-pfilter") (version (git-version "0.0.0" revision commit)) @@ -1234,7 +1513,7 @@ functions for normalizing Unicode strings.") (file-name (git-file-name name version)) (sha256 (base32 - "176g8dmi2i94bxpnpgvj3dv5y9hripi45kbrfvy2bk884hwbp1zq")))) + "0i4qbnwba49db27fb1y792gcvhb0m744i9q4zgwjbypqmy3bj2a5")))) (build-system go-build-system) (arguments '(#:import-path "github.com/AudriusButkevicius/pfilter")) @@ -1244,6 +1523,83 @@ virtual connections from a single physical connection.") (home-page "https://github.com/AudriusButkevicius/pfilter") (license expat)))) +(define-public go-github-com-chmduquesne-rollinghash-adler32 + (let ((commit "3dc7875a1f890f9bcf0619adb5571fc6f7d516bb") + (revision "1")) + (package + (name "go-github-com-chmduquesne-rollinghash-adler32") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/chmduquesne/rollinghash.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0frl021qdqcdyk9fccw6x1v2byvh0hls4rsrdjih5jgqpc18kx6y")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/chmduquesne/rollinghash/adler32" + #:unpack-path "github.com/chmduquesne/rollinghash")) + (synopsis "Adler-32 rolling hash in Go") + (description "This package provides a Go implementation of the Adler-32 +rolling hash.") + (home-page "https://github.com/chmduquesne/rollinghash") + (license expat)))) + +(define-public go-github-com-pkg-errors + (let ((commit "e881fd58d78e04cf6d0de1217f8707c8cc2249bc") + (revision "1")) + (package + (name "go-github-com-pkg-errors") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pkg/errors.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0vfhj598jp6dzy4pbyjdrqxzb5kppw8ggvfh78g80nz11r34xnzs")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/pkg/errors")) + (synopsis "Go error handling primitives") + (description "This packages provides @code{error}, which offers simple +error handling primitives in Go.") + (home-page "https://github.com/pkg/errors") + (license bsd-2)))) + +(define-public go-golang-org-x-time-rate + (let ((commit "6dc17368e09b0e8634d71cac8168d853e869a0c7") + (revision "1")) + (package + (name "go-golang-org-x-time-rate") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://go.googlesource.com/time") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1fx4cf5fpdz00g3c7vxzy92hdcg0vh4yqw00qp5s52j72qixynbk")))) + (build-system go-build-system) + (arguments + `(#:import-path "golang.org/x/time/rate" + #:unpack-path "golang.org/x/time")) + (propagated-inputs + `(("go-golang-org-x-net-context" ,go-golang-org-x-net-context))) + (synopsis "Rate limiting in Go") + (description "This package provides @{rate}, which implements rate +limiting in Go.") + (home-page "https://godoc.org/golang.org/x/time/rate") + (license bsd-3)))) + (define-public go-github-com-petermattis-goid (let ((commit "3db12ebb2a599ba4a96bea1c17b61c2f78a40e02") (revision "0")) @@ -1268,3 +1624,355 @@ virtual connections from a single physical connection.") the current goroutine's ID.") (home-page "https://github.com/petermattis/goid") (license asl2.0)))) + +(define-public go-github-com-audriusbutkevicius-cli + (let ((commit "7f561c78b5a4aad858d9fd550c92b5da6d55efbb") + (revision "0")) + (package + (name "go-github-com-audriusbutkevicius-cli") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/AudriusButkevicius/cli.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0bg26pfg25vr16jmczig2m493mja2nxjxyswz3hha7avxw20rpi5")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/AudriusButkevicius/cli")) + (synopsis "Library for building command-line interfaces in Go") + (description "This package provides a library for building command-line +interfaces in Go.") + (home-page "https://github.com/AudriusButkevicius/cli") + (license expat)))) + +(define-public go-github-com-kballard-go-shellquote + (let ((commit "cd60e84ee657ff3dc51de0b4f55dd299a3e136f2") + (revision "0")) + (package + (name "go-github-com-kballard-go-shellquote") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kballard/go-shellquote.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1xjpin4jq1zl84dcn96xhjmn9bsfyszf6g9aqyj2dc0xfi6c88y0")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/kballard/go-shellquote")) + (synopsis "Shell-style string joins and splits") + (description "Shellquote provides utilities for joining/splitting strings +using sh's word-splitting rules.") + (home-page "https://github.com/kballard/go-shellquote") + (license expat)))) + +(define-public go-github-com-zillode-notify + (let ((commit "a8abcfb1ce88ee8d79a300ed65d94b8fb616ddb3") + (revision "2")) + (package + (name "go-github-com-zillode-notify") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/zillode/notify") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "031pmbvm0xj4f4fak7im0ywmyn3hns538zlbdj4f23jj69zqdy7k")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/zillode/notify")) + (propagated-inputs + `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix))) + (synopsis "File system event notification library") + (description "This package provides @code{notify}, a file system event +notification library in Go.") + (home-page "https://github.com/zillode/notify") + (license expat)))) + +(define-public go-github-com-beorn7-perks-quantile + (let ((commit "4c0e84591b9aa9e6dcfdf3e020114cd81f89d5f9") + (revision "0")) + (package + (name "go-github-com-beorn7-perks-quantile") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/beorn7/perks.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1hrybsql68xw57brzj805xx2mghydpdiysv3gbhr7f5wlxj2514y")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/beorn7/perks/quantile" + #:unpack-path "github.com/beorn7/perks")) + (synopsis "Compute approximate quantiles over an unbounded data stream") + (description "Perks contains the Go package @code{quantile} that computes +approximate quantiles over an unbounded data stream within low memory and CPU +bounds.") + (home-page "https://github.com/beorn7/perks") + (license expat)))) + +(define-public go-github-com-golang-protobuf-proto + (let ((commit "1e59b77b52bf8e4b449a57e6f79f21226d571845") + (revision "0")) + (package + (name "go-github-com-golang-protobuf-proto") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/golang/protobuf.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "19bkh81wnp6njg3931wky6hsnnl2d1ig20vfjxpv450sd3k6yys8")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/golang/protobuf/proto" + #:unpack-path "github.com/golang/protobuf" + #:tests? #f ; requires unpackaged golang.org/x/sync/errgroup + )) + (synopsis "Go support for Protocol Buffers") + (description "This package provides Go support for the Protocol Buffers +data serialization format.") + (home-page "https://github.com/golang/protobuf") + (license bsd-3)))) + +(define-public go-github-com-prometheus-client-model-go + (let ((commit "99fa1f4be8e564e8a6b613da7fa6f46c9edafc6c") + (revision "0")) + (package + (name "go-github-com-prometheus-client-model-go") + (version (git-version "0.0.2" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/prometheus/client_model.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "19y4ywsivhpxj7ikf2j0gm9k3cmyw37qcbfi78n526jxcc7kw998")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/prometheus/client_model/go" + #:unpack-path "github.com/prometheus/client_model")) + (propagated-inputs + `(("go-github-com-golang-protobuf-proto" + ,go-github-com-golang-protobuf-proto))) + (synopsis "Data model artifacts for Prometheus") + (description "This package provides data model artifacts for Prometheus.") + (home-page "https://github.com/prometheus/client_model") + (license asl2.0)))) + +(define-public go-github-com-matttproud-golang-protobuf-extensions-pbutil + (let ((commit "c12348ce28de40eed0136aa2b644d0ee0650e56c") + (revision "0")) + (package + (name "go-github-com-matttproud-golang-protobuf-extensions-pbutil") + (version (git-version "1.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/matttproud/golang_protobuf_extensions.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/matttproud/golang_protobuf_extensions/pbutil" + #:unpack-path "github.com/matttproud/golang_protobuf_extensions")) + (propagated-inputs + `(("go-github-com-golang-protobuf-proto" + ,go-github-com-golang-protobuf-proto))) + (synopsis "Streaming Protocol Buffers in Go") + (description "This package provides various Protocol Buffer +extensions for the Go language, namely support for record length-delimited +message streaming.") + (home-page "https://github.com/matttproud/golang_protobuf_extensions") + (license asl2.0)))) + +(define-public go-github-com-prometheus-common-expfmt + (let ((commit "2e54d0b93cba2fd133edc32211dcc32c06ef72ca") + (revision "0")) + (package + (name "go-github-com-prometheus-common-expfmt") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/prometheus/common.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "14kn5w7imcxxlfdqxl21fsnlf1ms7200g3ldy29hwamldv8qlm7j")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/prometheus/common/expfmt" + #:unpack-path "github.com/prometheus/common" + #:phases + (modify-phases %standard-phases + (add-before 'reset-gzip-timestamps 'make-gzip-archive-writable + (lambda* (#:key outputs #:allow-other-keys) + (map (lambda (file) + (make-file-writable file)) + (find-files + (string-append (assoc-ref outputs "out") + "/src/github.com/prometheus/common/expfmt/testdata/") + ".*\\.gz$")) + #t))))) + (propagated-inputs + `(("go-github-com-golang-protobuf-proto" + ,go-github-com-golang-protobuf-proto) + ("go-github-com-matttproud-golang-protobuf-extensions-pbutil" + ,go-github-com-matttproud-golang-protobuf-extensions-pbutil) + ("go-github-com-prometheus-client-model-go" + ,go-github-com-prometheus-client-model-go))) + (synopsis "Prometheus metrics") + (description "This package provides tools for reading and writing +Prometheus metrics.") + (home-page "https://github.com/prometheus/common") + (license asl2.0)))) + +(define-public go-github-com-prometheus-procfs + (let ((commit "b15cd069a83443be3154b719d0cc9fe8117f09fb") + (revision "0")) + (package + (name "go-github-com-prometheus-procfs") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/prometheus/procfs.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1cr45wg2m40bj2za8f32mq09rjlcnk5kfam0h0hr8wcb015k4wxj")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/prometheus/procfs")) + (synopsis "Go library for reading @file{/proc}") + (description "The @code{procfs} Go package provides functions to retrieve +system, kernel, and process metrics from the @file{/proc} pseudo file system.") + (home-page "https://github.com/prometheus/procfs") + (license asl2.0)))) + +(define-public go-github-com-client-golang-prometheus-promhttp + (let ((commit "180b8fdc22b4ea7750bcb43c925277654a1ea2f3") + (revision "0")) + (package + (name "go-github-com-client-golang-prometheus-promhttp") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/prometheus/client_golang.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1kkfx1j9ka18ydsmdi2cdy3hs39c22b39mbc4laykmj2x93lmbdp")))) + (build-system go-build-system) + (arguments + '(#:tests? #f ; The tests require internet access + #:import-path "github.com/prometheus/client_golang/prometheus/promhttp" + #:unpack-path "github.com/prometheus/client_golang")) + (propagated-inputs + `(("go-github-com-beorn7-perks-quantile" + ,go-github-com-beorn7-perks-quantile) + ("go-github-com-golang-protobuf-proto" + ,go-github-com-golang-protobuf-proto) + ("go-github-com-prometheus-client-model-go" + ,go-github-com-prometheus-client-model-go) + ("go-github-com-prometheus-common-expfmt" + ,go-github-com-prometheus-common-expfmt) + ("go-github-com-prometheus-procfs" ,go-github-com-prometheus-procfs))) + (synopsis "HTTP server and client tools for Prometheus") + (description "This package @code{promhttp} provides HTTP client and +server tools for Prometheus metrics.") + (home-page "https://github.com/prometheus/client_golang") + (license asl2.0)))) + +(define-public go-github-com-client-golang-prometheus + (let ((commit "180b8fdc22b4ea7750bcb43c925277654a1ea2f3") + (revision "0")) + (package + (name "go-github-com-prometheus-client-golang-prometheus") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/prometheus/client_golang.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1kkfx1j9ka18ydsmdi2cdy3hs39c22b39mbc4laykmj2x93lmbdp")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/prometheus/client_golang/prometheus" + #:unpack-path "github.com/prometheus/client_golang")) + (propagated-inputs + `(("go-github-com-beorn7-perks-quantile" + ,go-github-com-beorn7-perks-quantile) + ("go-github-com-golang-protobuf-proto" + ,go-github-com-golang-protobuf-proto) + ("go-github-com-prometheus-client-model-go" + ,go-github-com-prometheus-client-model-go) + ("go-github-com-prometheus-common-expfmt" + ,go-github-com-prometheus-common-expfmt) + ("go-github-com-prometheus-procfs" ,go-github-com-prometheus-procfs) + ("go-github-com-client-golang-prometheus-promhttp" + ,go-github-com-client-golang-prometheus-promhttp))) + (synopsis "Prometheus instrumentation library for Go applications") + (description "This package provides the Go client library for the +Prometheus monitoring and alerting system. It has two separate parts, one for +instrumenting application code, and one for creating clients that talk to the +Prometheus HTTP API.") + (home-page "https://github.com/prometheus/client_golang") + (license asl2.0)))) + +(define* (go-github-com-prometheus-union + #:optional (packages (list go-github-com-client-golang-prometheus + go-github-com-client-golang-prometheus-promhttp))) + (package + (name "go-github-com-prometheus-union") + (version (package-version go-github-com-client-golang-prometheus)) + (source #f) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build union)) + #:builder (begin + (use-modules (ice-9 match) + (guix build union)) + (match %build-inputs + (((names . directories) ...) + (union-build (assoc-ref %outputs "out") + directories)))))) + (inputs (map (lambda (package) + (list (package-name package) package)) + packages)) + (synopsis "Union of Go Prometheus libraries") + (description "This is a union of Go Prometheus libraries") + (home-page (package-home-page go-github-com-client-golang-prometheus)) + (license (package-license go-github-com-client-golang-prometheus))))