gnu: Add texlive-ae.
[jackhill/guix/guix.git] / gnu / packages / syncthing.scm
index 708eae9..cd3dd0d 100644 (file)
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Petter <petter@mykolab.ch>
-;;; Copyright © 2016, 2017, 2018 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016, 2017, 2018, 2019 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,7 +30,7 @@
 (define-public syncthing
   (package
     (name "syncthing")
-    (version "1.1.0")
+    (version "1.1.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/syncthing/syncthing"
                                   "/syncthing-source-v" version ".tar.gz"))
               (sha256
                (base32
-                "1iks1a3149gj89yqmqa5iry2ik2sj9sjhlhc6nfh7xq4swqgsrb5"))
-              ;; Since the update to Go 1.11, Go programs have been keeping
-              ;; spurious references to all their dependencies:
-              ;; <https://bugs.gnu.org/33620>.
-              ;; For Syncthing, this increases the size of the 'out' closure
-              ;; from 87.6 MiB to 253.5 MiB.  So, we use the bundled
-              ;; dependencies until the bug is resolved.
-;              (modules '((guix build utils)))
-;              ;; Delete bundled ("vendored") free software source code.
-;              (snippet '(begin
-;                          (delete-file-recursively "vendor")
-;                          #t))
-              ))
+                "0pkb9vdb10lnlk6sgg6hxgkdjnvxx90cfdf8vgrc5sljzm5qhr6l"))
+              (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"))
+    ;; When updating Syncthing, check 'go.mod' in the source distribution to
+    ;; ensure we are using the correct versions of these dependencies.
+    (inputs
+     `(("go-github-com-audriusbutkevicius-go-nat-pmp"
+        ,go-github-com-audriusbutkevicius-go-nat-pmp)
+       ("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-chmduquesne-rollinghash"
+        ,go-github-com-chmduquesne-rollinghash)
+       ("go-github-com-gobwas-glob" ,go-github-com-gobwas-glob)
+       ("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-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-syncthing-notify" ,go-github-com-syncthing-notify)
+       ("go-github-com-syndtr-goleveldb" ,go-github-com-syndtr-goleveldb)
+       ("go-github-com-thejerf-suture" ,go-github-com-thejerf-suture)
+       ("go-golang-org-x-time-rate" ,go-golang-org-x-time-rate)
+       ("go-gopkg.in-ldap.v2" ,go-gopkg.in-ldap.v2)
+       ("go-github-com-gogo-protobuf" ,go-github-com-gogo-protobuf)
+       ("go-github-com-gogo-protobuf-gogoproto"
+        ,go-github-com-gogo-protobuf-gogoproto)
+       ("go-github-com-gogo-protobuf-protoc-gen-gogo"
+        ,go-github-com-gogo-protobuf-protoc-gen-gogo)
+       ("go-github-com-prometheus-client-golang-prometheus"
+        ,go-github-com-prometheus-client-golang-prometheus)
+       ("go-golang-org-x-net-bpf" ,go-golang-org-x-net-bpf)
+       ("go-golang-org-x-net-internal-iana" ,go-golang-org-x-net-internal-iana)
+       ("go-golang-org-x-net-internal-socket"
+        ,go-golang-org-x-net-internal-socket)
+       ("go-golang-org-x-net-internal-socks"
+        ,go-golang-org-x-net-internal-socks)
+       ("go-golang-org-x-net-ipv4" ,go-golang-org-x-net-ipv4)
+       ("go-golang-org-x-net-ipv6" ,go-golang-org-x-net-ipv6)
+       ("go-golang-org-x-net-proxy" ,go-golang-org-x-net-proxy)
+       ("go-golang-org-x-text-unicode-norm" ,go-golang-org-x-text-unicode-norm)
+       ("go-golang-org-x-text-transform" ,go-golang-org-x-text-transform)
+       ("go-github-com-audriusbutkevicius-recli"
+        ,go-github-com-audriusbutkevicius-recli)
+       ("go-github-com-urfave-cli" ,go-github-com-urfave-cli)
+       ("go-github-com-vitrun-qart-qr" ,go-github-com-vitrun-qart-qr)
+       ("go-github-com-vitrun-qart-coding" ,go-github-com-vitrun-qart-coding)
+       ("go-github-com-vitrun-qart-gf256" ,go-github-com-vitrun-qart-gf256)
+       ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
+       ("go-golang-org-x-crypto-bcrypt" ,go-golang-org-x-crypto-bcrypt)
+       ("go-golang-org-x-crypto-blowfish" ,go-golang-org-x-crypto-blowfish)
+       ("go-github-com-flynn-archive-go-shlex"
+        ,go-github-com-flynn-archive-go-shlex)
+
+       ;; For tests
+       ("go-github-com-d4l3k-messagediff" ,go-github-com-d4l3k-messagediff)))
+
     (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
@@ -139,7 +192,7 @@ Protocol.")
       (arguments
        `(#:import-path "github.com/AudriusButkevicius/go-nat-pmp"))
       (synopsis "Port mapping and discovery of external IP address")
-      (description "This packages provides a Go client for the NAT-PMP internet
+      (description "This package provides a Go client for the NAT-PMP internet
 protocol for port mapping and discovering the external IP address of a
 firewall.")
       (home-page "https://github.com/AudriusButkevicius/go-nat-pmp")
@@ -282,7 +335,7 @@ structs in the Go programming language.")
       (arguments
         `(#:import-path "github.com/gobwas/glob"))
       (synopsis "Go globbing library")
-      (description "This packages provides a Go implementation of globs.")
+      (description "This package provides a Go implementation of globs.")
       (home-page "https://github.com/gobwas/glob")
       (license expat))))
 
@@ -365,7 +418,7 @@ address of the default LAN gateway.")
 (define-public go-github-com-lib-pq
   (package
     (name "go-github-com-lib-pq")
-    (version "1.0.0")
+    (version "1.1.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -374,7 +427,7 @@ address of the default LAN gateway.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1zqnnyczaf00xi6xh53vq758v5bdlf0iz7kf22l02cal4i6px47i"))))
+                "0g64wlg1l1ybq4x44idksl4pgm055s58jxc6r6x4qhqm5q76h0km"))))
     (build-system go-build-system)
     (arguments
      `(#:import-path "github.com/lib/pq"
@@ -382,7 +435,7 @@ address of the default LAN gateway.")
        ;; Postgres instance.
        #:tests? #f))
     (synopsis "Golang Postgres driver for Go's database/sql")
-    (description "This packages provides a pure Go Postgres driver for Go's
+    (description "This package provides a pure Go Postgres driver for Go's
 database/sql package.")
     (home-page "https://github.com/lib/pq")
     (license expat)))
@@ -390,7 +443,7 @@ database/sql package.")
 (define-public go-github-com-oschwald-geoip2-golang
   (package
     (name "go-github-com-oschwald-geoip2-golang")
-    (version "1.1.0")
+    (version "1.3.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -399,7 +452,7 @@ database/sql package.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0v698bzs8lb59cqpsa9cf4sl8rdsvnnmaravhbfn6g6i511ppclr"))))
+                "0jivzl15jb8n16rm1b2w97kf7vna5dd3kcz865wfi233qay075j2"))))
     (build-system go-build-system)
     (propagated-inputs
      `(("go-github-com-oschwald-maxminddb-golang"
@@ -409,7 +462,7 @@ database/sql package.")
      `(#: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
+    (description "This package provides a library for reading MaxMind
 GeoLite2 and GeoIP2 databases in Go.")
     (home-page "https://github.com/oschwald/geoip2-golang")
     (license isc)))
@@ -658,36 +711,14 @@ generation.")
       (home-page "https://github.com/vitrun/qart")
       (license bsd-3))))
 
-(define-public go-github-com-audriusbutkevicius-pfilter
-  (let ((commit "9dca34a5b530bfc9843fa8aa2ff08ff9821032cb")
-        (revision "2"))
-    (package
-      (name "go-github-com-audriusbutkevicius-pfilter")
-      (version (git-version "0.0.0" revision commit))
-      (source
-        (origin
-          (method git-fetch)
-          (uri (git-reference
-                 (url "https://github.com/AudriusButkevicius/pfilter.git")
-                 (commit commit)))
-          (file-name (git-file-name name version))
-          (sha256
-           (base32
-            "0i4qbnwba49db27fb1y792gcvhb0m744i9q4zgwjbypqmy3bj2a5"))))
-      (build-system go-build-system)
-      (arguments
-       '(#:import-path "github.com/AudriusButkevicius/pfilter"))
-      (synopsis "Filter packets into mulitple virtual connections")
-      (description "Pfilter is a Go package for filtering packets into multiple
-virtual connections from a single physical connection.")
-      (home-page "https://github.com/AudriusButkevicius/pfilter")
-      (license expat))))
-
-(define-public go-github-com-chmduquesne-rollinghash-adler32
+;; XXX Syncthing actually imports 'github.com/chmduquesne/rollinghash/adler32'.
+;; Normally we'd package this module indpendenctly but the adler32 module itself
+;; imports 'github.com/chmduquesne/rollinghash/', so this is the easy way out.
+(define-public go-github-com-chmduquesne-rollinghash
   (let ((commit "a60f8e7142b536ea61bb5d84014171189eeaaa81")
         (revision "0"))
     (package
-      (name "go-github-com-chmduquesne-rollinghash-adler32")
+      (name "go-github-com-chmduquesne-rollinghash")
       (version (git-version "4.0.0" revision commit))
       (source
         (origin
@@ -701,11 +732,10 @@ virtual connections from a single physical connection.")
             "0fpaqq4zb0wikgbhn7vwqqj1h865f5xy195vkhivsp922p7qwsjr"))))
       (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.")
+       '(#:import-path "github.com/chmduquesne/rollinghash/"))
+      (synopsis "Rolling hashes in Go")
+      (description "This package provides a Go implementation of several rolling
+hashes.")
       (home-page "https://github.com/chmduquesne/rollinghash")
       (license expat))))
 
@@ -726,7 +756,7 @@ rolling hash.")
     (arguments
      `(#:import-path "github.com/pkg/errors"))
     (synopsis "Go error handling primitives")
-    (description "This packages provides @code{error}, which offers simple
+    (description "This package provides @code{error}, which offers simple
 error handling primitives in Go.")
     (home-page "https://github.com/pkg/errors")
     (license bsd-2)))
@@ -751,44 +781,11 @@ error handling primitives in Go.")
       (arguments
        '(#:import-path "github.com/petermattis/goid"))
       (synopsis "Identify the running goroutine")
-      (description "This package offers a method of programatically retrieving
+      (description "This package offers a method of programmatically retrieving
 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"
-         ;; Tests don't pass "vet" on go-1.11.  See
-         ;; https://github.com/AudriusButkevicius/cli/pull/1.
-         #:phases
-         (modify-phases %standard-phases
-           (replace 'check
-             (lambda* (#:key import-path #:allow-other-keys)
-               (invoke "go" "test"
-                       "-vet=off"
-                       import-path))))))
-      (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"))
@@ -1050,20 +1047,18 @@ system, kernel, and process metrics from the @file{/proc} pseudo file system.")
       (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))
+      (version "0.9.2")
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
                        (url "https://github.com/prometheus/client_golang.git")
-                       (commit commit)))
+                       (commit (string-append "v" version))))
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1kkfx1j9ka18ydsmdi2cdy3hs39c22b39mbc4laykmj2x93lmbdp"))))
+                  "02b4yg6rfag0m3j0i39sillcm5xczwv8h133vn12yr8qw04cnigs"))))
       (build-system go-build-system)
       (arguments
        '(#:tests? #f ; The tests require internet access
@@ -1074,8 +1069,12 @@ system, kernel, and process metrics from the @file{/proc} pseudo file system.")
           ,go-github-com-beorn7-perks-quantile)
          ("go-github-com-golang-protobuf-proto"
           ,go-github-com-golang-protobuf-proto)
+         ("go-github-com-prometheus-common-model"
+          ,go-github-com-prometheus-common-model)
          ("go-github-com-prometheus-client-model-go"
           ,go-github-com-prometheus-client-model-go)
+         ("go-github-com-prometheus-common-internal-bitbucket-org-ww-goautoneg"
+          ,go-github-com-prometheus-common-internal-bitbucket-org-ww-goautoneg)
          ("go-github-com-prometheus-common-expfmt"
           ,go-github-com-prometheus-common-expfmt)
          ("go-github-com-prometheus-procfs" ,go-github-com-prometheus-procfs)))
@@ -1083,23 +1082,21 @@ system, kernel, and process metrics from the @file{/proc} pseudo file system.")
       (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))))
+      (license asl2.0)))
 
-(define-public go-github-com-client-golang-prometheus
-  (let ((commit "7e9098b20fb8e103a7a5691878272d7e3d703663")
-        (revision "0"))
+(define-public go-github-com-prometheus-client-golang-prometheus
     (package
       (name "go-github-com-prometheus-client-golang-prometheus")
-      (version (git-version "0.9.1" revision commit))
+      (version "0.9.2")
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
                        (url "https://github.com/prometheus/client_golang.git")
-                       (commit commit)))
+                       (commit (string-append "v" version))))
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "09q8hlvgyn58hn8fmmj535hrwhqc1215czwzf7fhaqpa9zamj4w1"))))
+                  "02b4yg6rfag0m3j0i39sillcm5xczwv8h133vn12yr8qw04cnigs"))))
       (build-system go-build-system)
       (arguments
        '(#:import-path "github.com/prometheus/client_golang/prometheus"
@@ -1108,48 +1105,21 @@ server tools for Prometheus metrics.")
       (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-common-model" ,go-github-com-prometheus-common-model)
          ("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)))
+         ("go-github-com-prometheus-common-internal-bitbucket-org-ww-goautoneg"
+          ,go-github-com-prometheus-common-internal-bitbucket-org-ww-goautoneg)))
       (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)
-                      #t)))))
-    (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))))
+      (license asl2.0)))
 
 (define-public go-gopkg.in-asn1-ber.v1
   (package
@@ -1230,3 +1200,25 @@ language.")
 quoting, commenting, and escaping.")
       (home-page "https://github.com/flynn-archive/go-shlex")
       (license asl2.0))))
+
+(define-public go-github-com-prometheus-common-internal-bitbucket-org-ww-goautoneg
+  (package
+    (name "go-github-com-prometheus-common-internal-bitbucket-org-ww-goautoneg")
+    (version "0.2.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/prometheus/common.git")
+                     (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "02kym6lcfnlq23qbv277jr0q1n7jj0r14gqg93c7wn7gc44jv3vp"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg"
+       #:unpack-path "github.com/prometheus/common"))
+    (synopsis "Internal Prometheus component")
+    (description "This package is an internal component of Prometheus.")
+    (home-page "https://github.com/prometheus/common")
+    (license asl2.0)))