[PATCH 00/47] gnu: Add go-github-com-prometheus-prometheus.

OpenSubmitted by Leo Nikkilä.
Details
2 participants
  • Leo Nikkilä
  • Maxime Devos
Owner
unassigned
Severity
normal
L
L
Leo Nikkilä wrote on 25 Mar 06:55 +0100
(address . guix-patches@gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325055517.2060-1-hello@lnikki.la
Hi there. Long-time Guix user, first-time contributor.

I've been chipping away at packaging Prometheus for quite some time now.
The dependency tree turned out to be sizeable, apologies for the long
list of patches. Most of these are new packages.

I've had to resort to some tricks to reduce this effort:

* Most discovery plugins are patched out for now using a lightweight
patch, as they pulled in far more dependencies than was manageable
in a single patch set.

* I'm targeting the previous version. The latest version released a
few weeks ago (2.34.0) uses OpenTelemetry for tracing, pulling in
another complex set of dependencies, and I didn't want to patch out
tracing entirely.

Some additional notes:

* Alertmanager and other components are not included, nor the web UI
written in JavaScript. My goal was to get the base server running.

* The version of go-golang-org-x-net currently in Guix is slightly
older, and doesn't include the HTTP/2 ConfigureTransports function.
I thought I'd rather not update this package to avoid rebuilding its
dependents, and resorted to another patch.

* A couple of the Prometheus packages already existed under (gnu
packages syncthing), although unused. These look like remnants of
older packages. I kept them in the same module, but added new
packages under (gnu packages golang).

There might be appetite to consolidate all of these Prometheus
dependencies under (gnu packages golang), I'm willing to put in the
work if that's the case.

I've tested this package on x86_64 and aarch64, and attempted to follow
the relevant style guides as best I could. Let me know if (when) there's
anything I've missed.

Looking forward to your feedback!

Leo Nikkilä (47):
gnu: Add go-google-golang-org-protobuf.
gnu: go-github-com-golang-protobuf-proto: Update to 1.5.2.
gnu: Add go-github-com-golang-protobuf-ptypes.
gnu: go-github-com-prometheus-client-golang: Update to 1.12.1.
gnu: Add go-github-com-asaskevich-govalidator.
gnu: Add go-github-com-dennwc-varint.
gnu: Add go-github-com-edsrzf-mmap-go.
gnu: Add go-github-com-go-logfmt-logfmt.
gnu: Add go-github-com-go-kit-log.
gnu: Add go-github-com-go-stack-stack.
gnu: Add go-github-com-josharian-intern.
gnu: Add go-github-com-julienschmidt-httprouter.
gnu: Add go-github-com-mailru-easyjson.
gnu: Add go-github-com-modern-go-concurrent.
gnu: Add go-github-com-modern-go-reflect2.
gnu: Add go-github-com-montanaflynn-stats.
gnu: Add go-github-com-mwitkow-go-conntrack.
gnu: Add go-github-com-oklog-run.
gnu: Add go-github-com-oklog-ulid.
gnu: Add go-github-com-opentracing-contrib-go-stdlib.
gnu: Add go-github-com-puerkitobio-urlesc.
gnu: Add go-github-com-puerkitobio-purell.
gnu: Add go-github-com-shurcool-httpgzip.
gnu: Add go-github-com-shurcool-httpfs.
gnu: Add go-github-com-shurcool-vfsgen.
gnu: Add go-github-com-simonpasquier-klog-gokit.
gnu: Add go-github-com-simonpasquier-klog-gokit-v3.
gnu: Add go-github-com-tidwall-pretty.
gnu: Add go-github-com-uber-jaeger-lib.
gnu: Add go-github-com-uber-jaeger-client-go.
gnu: Add go-github-com-youmark-pkcs8.
gnu: Add go-go-uber-org-goleak.
gnu: Add go-gopkg-in-alecthomas-kingpin.v2.
gnu: Add go-github-com-json-iterator-go.
gnu: Add go-go-mongodb-org-mongo-driver.
gnu: Add go-github-com-go-openapi-errors.
gnu: Add go-github-com-go-openapi-swag.
gnu: Add go-github-com-go-openapi-jsonpointer.
gnu: Add go-github-com-go-openapi-jsonreference.
gnu: Add go-github-com-go-openapi-spec.
gnu: Add go-github-com-go-openapi-strfmt.
gnu: Add go-github-com-go-openapi-analysis.
gnu: Add go-github-com-go-openapi-loads.
gnu: Add go-github-com-go-openapi-validate.
gnu: Add go-github-com-prometheus-alertmanager-api.
gnu: Add go-github-com-prometheus-exporter-toolkit.
gnu: Add go-github-com-prometheus-prometheus.

gnu/packages/golang.scm | 1248 ++++++++++++++++-
gnu/packages/monitoring.scm | 83 ++
...etheus-common-remove-readidletimeout.patch | 28 +
...om-prometheus-prometheus-remove-deps.patch | 33 +
gnu/packages/syncthing.scm | 182 +--
5 files changed, 1489 insertions(+), 85 deletions(-)
create mode 100644 gnu/packages/patches/go-github-com-prometheus-common-remove-readidletimeout.patch
create mode 100644 gnu/packages/patches/go-github-com-prometheus-prometheus-remove-deps.patch


base-commit: d05fcc21cb9509084a0424e6808b84b58dc52d62
--
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 01/47] gnu: Add go-google-golang-org-protobuf.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-1-hello@lnikki.la
* gnu/packages/golang.scm (go-google-golang-org-protobuf): New variable.
---
gnu/packages/golang.scm | 43 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)

Toggle diff (60 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index a8b845e301..455c4daf30 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -33,6 +33,7 @@
 ;;; Copyright © 2021 Chadwain Holness <chadwainholness@gmail.com>
 ;;; Copyright © 2021 Philip McGrath <philip@philipmcgrath.com>
 ;;; Copyright © 2021 Lu Hui <luhux76@gmail.com>
+;;; Copyright © 2022 Leo Nikkilä <hello@lnikki.la>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -9774,3 +9775,45 @@ (define-public go-github-com-go-chi-chi-v5
      "@code{go-github-com-go-chi-chi-v5} is an HTTP router that lets the user
 decompose request handling into many smaller layers.")
     (license license:expat)))
+
+(define-public go-google-golang-org-protobuf
+  (package
+    (name "go-google-golang-org-protobuf")
+    (version "1.27.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/protocolbuffers/protobuf-go")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0aszb7cv8fq1m8akgd4kjyg5q7g5z9fdqnry6057ygq9r8r2yif2"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "google.golang.org/protobuf"
+       #:phases
+       (let ((glob-path "google.golang.org/protobuf/..."))
+         (modify-phases %standard-phases
+           (replace 'build
+             (lambda args
+               (apply (assoc-ref %standard-phases
+                                 'build)
+                      `(,@args #:import-path
+                        ,glob-path))))
+           (replace 'check
+             (lambda args
+               (apply (assoc-ref %standard-phases
+                                 'check)
+                      `(,@args #:import-path
+                        ,glob-path))))))))
+    (native-inputs (list go-github-com-google-go-cmp-cmp))
+    (synopsis "Go support for Google's protocol buffers")
+    (description
+     "Go implementation for protocol buffers, which is a
+language-neutral, platform-neutral, extensible mechanism for serializing
+structured data.  The protocol buffer language is a language for
+specifying the schema for structured data.  This schema is compiled into
+language specific bindings.")
+    (home-page "https://github.com/protocolbuffers/protobuf-go")
+    (license license:bsd-3)))
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 02/47] gnu: go-github-com-golang-protobuf-proto: Update to 1.5.2.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-2-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-golang-protobuf-proto): Update
to 1.5.2.
[arguments]: Enable tests.
---
gnu/packages/golang.scm | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

Toggle diff (33 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 455c4daf30..6945680e0e 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -6504,7 +6504,7 @@ (define-public gotestsum
 (define-public go-github-com-golang-protobuf-proto
   (package
     (name "go-github-com-golang-protobuf-proto")
-    (version "1.3.1")
+    (version "1.5.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -6513,13 +6513,13 @@ (define-public go-github-com-golang-protobuf-proto
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "15am4s4646qy6iv0g3kkqq52rzykqjhm4bf08dk0fy2r58knpsyl"))))
+                "1mh5fyim42dn821nsd3afnmgscrzzhn3h8rag635d2jnr23r1zhk"))))
     (build-system go-build-system)
     (arguments
      '(#:import-path "github.com/golang/protobuf/proto"
-       #:unpack-path "github.com/golang/protobuf"
-       ;; Requires unpackaged golang.org/x/sync/errgroup
-       #:tests? #f))
+       #:unpack-path "github.com/golang/protobuf"))
+    (propagated-inputs (list go-google-golang-org-protobuf))
+    (native-inputs (list go-github-com-google-go-cmp-cmp))
     (synopsis "Go support for Protocol Buffers")
     (description "This package provides Go support for the Protocol Buffers
 data serialization format.")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 03/47] gnu: Add go-github-com-golang-protobuf-ptypes.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-3-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-golang-protobuf-ptypes): New
variable.
---
gnu/packages/golang.scm | 8 ++++++++
1 file changed, 8 insertions(+)

Toggle diff (21 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 6945680e0e..f8ca9cf580 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -6526,6 +6526,14 @@ (define-public go-github-com-golang-protobuf-proto
     (home-page "https://github.com/golang/protobuf")
     (license license:bsd-3)))
 
+(define-public go-github-com-golang-protobuf-ptypes
+  (package
+    (inherit go-github-com-golang-protobuf-proto)
+    (name "go-github-com-golang-protobuf-ptypes")
+    (arguments
+     '(#:import-path "github.com/golang/protobuf/ptypes"
+       #:unpack-path "github.com/golang/protobuf"))))
+
 (define-public go-github-com-mattn-go-zglob
   (package
     (name "go-github-com-mattn-go-zglob")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 04/47] gnu: go-github-com-prometheus-client-golang: Update to 1.12.1.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-4-hello@lnikki.la
* gnu/packages/patches/go-github-com-prometheus-common-remove-readidletimeout.patch:
New patch, avoid updating go-golang-org-x-net just yet.
* gnu/packages/syncthing.scm (go-github-com-prometheus-client-golang):
Update to 1.12.1.
(go-github-com-prometheus-client-model): Update to 0.2.0.
(go-github-com-prometheus-common): Update to 0.32.1.
[patches]: Use patch.
(go-github-com-prometheus-procfs): Update to 0.7.3.
{unpack-test-data}, {delete-test-data}: New phases.
[arguments]: Enable tests.
---
...etheus-common-remove-readidletimeout.patch | 28 +++
gnu/packages/syncthing.scm | 182 ++++++++++--------
2 files changed, 130 insertions(+), 80 deletions(-)
create mode 100644 gnu/packages/patches/go-github-com-prometheus-common-remove-readidletimeout.patch

Toggle diff (265 lines)
diff --git a/gnu/packages/patches/go-github-com-prometheus-common-remove-readidletimeout.patch b/gnu/packages/patches/go-github-com-prometheus-common-remove-readidletimeout.patch
new file mode 100644
index 0000000000..4eea8ae5c5
--- /dev/null
+++ b/gnu/packages/patches/go-github-com-prometheus-common-remove-readidletimeout.patch
@@ -0,0 +1,28 @@
+ConfigureTransports was introduced in a newer version of
+go-golang-org-x-net:
+<https://github.com/golang/net/commit/08b38378de702b893ee869b94b32f833e2933bd2>
+
+Prior to this, Prometheus didn't configure ReadIdleTimeout:
+<https://github.com/prometheus/common/commit/b5c358997cbf126e8f8518cdc024c32da3996d48>
+
+It's somewhat unclear whether ReadIdleTimeout is absolutely required to
+work around the upstream issues with HTTP/2 mentioned in the codebase,
+however HTTP/2 can be disabled using enable_http2 if this is the case.
+
+diff --git a/config/http_config.go b/config/http_config.go
+index 4b87241..7698ba4 100644
+--- a/config/http_config.go
++++ b/config/http_config.go
+@@ -411,11 +411,10 @@ func NewRoundTripperFromConfig(cfg HTTPClientConfig, name string, optFuncs ...HT
+ 			// issues again, but will be removed once we are confident that
+ 			// things work as expected.
+ 
+-			http2t, err := http2.ConfigureTransports(rt.(*http.Transport))
++			err := http2.ConfigureTransport(rt.(*http.Transport))
+ 			if err != nil {
+ 				return nil, err
+ 			}
+-			http2t.ReadIdleTimeout = time.Minute
+ 		}
+ 
+ 		// If a authorization_credentials is provided, create a round tripper that will set the
diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
index 107b97e547..b9c72a3212 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
+;;; Copyright © 2022 Leo Nikkilä <hello@lnikki.la>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -819,34 +820,32 @@ (define-public go-github-com-beorn7-perks-quantile
       (license expat))))
 
 (define-public go-github-com-prometheus-client-model
-  (let ((commit "14fe0d1b01d4d5fc031dd4bec1823bd3ebbe8016")
-        (revision "2"))
-    (package
-      (name "go-github-com-prometheus-client-model")
-      (version (git-version "0.0.2" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                       (url "https://github.com/prometheus/client_model")
-                       (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0zdmk6rbbx39cvfz0r59v2jg5sg9yd02b4pds5n5llgvivi99550"))))
-      (build-system go-build-system)
-      (arguments
-       '(#:import-path "github.com/prometheus/client_model"
-         #:tests? #f
-         #:phases
-         (modify-phases %standard-phases
-           ;; Source-only package
-           (delete 'build))))
-      (propagated-inputs
-       (list 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))))
+  (package
+    (name "go-github-com-prometheus-client-model")
+    (version "0.2.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/prometheus/client_model")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0jffnz94d6ff39fr96b5w8i8yk26pwnrfggzz8jhi8k0yihg2c9d"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/prometheus/client_model"
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         ;; Source-only package
+         (delete 'build))))
+    (propagated-inputs (list go-github-com-golang-protobuf-proto
+                             go-github-com-golang-protobuf-ptypes))
+    (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")
@@ -879,65 +878,87 @@ (define-public go-github-com-matttproud-golang-protobuf-extensions-pbutil
       (license asl2.0))))
 
 (define-public go-github-com-prometheus-common
-    (package
-      (name "go-github-com-prometheus-common")
-      (version "0.4.1")
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                       (url "https://github.com/prometheus/common")
-                       (commit (string-append "v" version))))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0sf4sjdckblz1hqdfvripk3zyp8xq89w7q75kbsyg4c078af896s"))))
-      (build-system go-build-system)
-      (arguments
-       '(#:import-path "github.com/prometheus/common"
-         #:tests? #f
-         #:phases
-         (modify-phases %standard-phases
-           ;; Source-only package
-           (delete 'build))))
-      (propagated-inputs
-       (list go-github-com-golang-protobuf-proto
-             go-github-com-matttproud-golang-protobuf-extensions-pbutil
-             go-github-com-prometheus-client-model))
-      (synopsis "Prometheus metrics")
-      (description "This package provides tools for reading and writing
+  (package
+    (name "go-github-com-prometheus-common")
+    (version "0.32.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/prometheus/common")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0501dwlv427vr78c59h4z25vxzkzjx76haydjj4pql1sx44546vv"))
+              ;; This can be removed once go-golang-org-x-net is
+              ;; updated past 08b38378de702b893ee869b94b32f833e2933bd2.
+              (patches
+               (search-patches
+                "go-github-com-prometheus-common-remove-readidletimeout.patch"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/prometheus/common"
+                     #:tests? #f
+                     #:phases
+                     (modify-phases %standard-phases
+                       ;; Source-only package
+                       (delete 'build))))
+    (propagated-inputs
+     (list go-github-com-golang-protobuf-proto
+           go-github-com-golang-protobuf-ptypes
+           go-github-com-julienschmidt-httprouter
+           go-github-com-matttproud-golang-protobuf-extensions-pbutil
+           go-github-com-prometheus-client-model))
+    (synopsis "Prometheus metrics")
+    (description "This package provides tools for reading and writing
 Prometheus metrics.")
-      (home-page "https://github.com/prometheus/common")
-      (license asl2.0)))
+    (home-page "https://github.com/prometheus/common")
+    (license asl2.0)))
 
 (define-public go-github-com-prometheus-procfs
-    (package
-      (name "go-github-com-prometheus-procfs")
-      (version "0.0.4")
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                       (url "https://github.com/prometheus/procfs")
-                       (commit (string-append "v" version))))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "1z5jq5rjala0a0di4nwk1rai0z9f73qwqj6mgcbpjbg2qknlb544"))))
-      (build-system go-build-system)
-      (arguments
-       '(#:import-path "github.com/prometheus/procfs"
-         ;; The tests require Go modules, which are not yet supported in Guix's
-         ;; Go build system.
-         #:tests? #f))
-      (synopsis "Go library for reading @file{/proc}")
-      (description "The @code{procfs} Go package provides functions to retrieve
+  (package
+    (name "go-github-com-prometheus-procfs")
+    (version "0.7.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/prometheus/procfs")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "00z7ghcb86y2ajx0xvwmn3d18nq4djmvmjn52crgm85gsl442lb4"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/prometheus/procfs"
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'unpack-test-data
+           (lambda* (#:key tests? import-path #:allow-other-keys)
+             (when tests?
+               (with-directory-excursion (string-append "src/" import-path)
+                 (invoke "make" "fixtures")))
+             #t))
+         ;; We don't want to install fixtures and other test data.
+         (add-before 'install 'delete-test-data
+           (lambda* (#:key import-path #:allow-other-keys)
+              (with-directory-excursion (string-append "src/" import-path)
+                (delete-file "ttar")
+                (delete-file "fixtures.ttar")
+                (delete-file-recursively "fixtures"))
+             #t)))))
+    (propagated-inputs (list go-golang-org-x-sys))
+    (native-inputs (list go-github-com-google-go-cmp-cmp))
+    (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)))
+    (home-page "https://github.com/prometheus/procfs")
+    (license asl2.0)))
 
 (define-public go-github-com-prometheus-client-golang
     (package
       (name "go-github-com-prometheus-client-golang")
-      (version "1.2.1")
+      (version "1.12.1")
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
@@ -946,7 +967,7 @@ (define-public go-github-com-prometheus-client-golang
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0zs49psk23n9z8wrl02d5vib5wclpym8kaxcy6n5pk696i419065"))))
+                  "0d46nindizpjgdygryc140fd94j1qfkzwyzwh9p2g3zp6v4fw0s1"))))
       (build-system go-build-system)
       (arguments
        '(#:tests? #f
@@ -958,6 +979,7 @@ (define-public go-github-com-prometheus-client-golang
       (propagated-inputs
        (list go-github-com-beorn7-perks-quantile
              go-github-com-golang-protobuf-proto
+             go-github-com-golang-protobuf-ptypes
              go-github-com-prometheus-client-model
              go-github-com-prometheus-common
              go-github-com-prometheus-procfs
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 05/47] gnu: Add go-github-com-asaskevich-govalidator.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-5-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-asaskevich-govalidator): New
variable.
---
gnu/packages/golang.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

Toggle diff (46 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index f8ca9cf580..ee22952fe7 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -9784,6 +9784,39 @@ (define-public go-github-com-go-chi-chi-v5
 decompose request handling into many smaller layers.")
     (license license:expat)))
 
+(define-public go-github-com-asaskevich-govalidator
+  (package
+    (name "go-github-com-asaskevich-govalidator")
+    (version "11.0.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/asaskevich/govalidator")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0aab1pym5c6di8vidynp6ly5j4kcqv6lp2737gw0a07zng0nn8lw"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/asaskevich/govalidator"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-tests
+           (lambda* (#:key import-path #:allow-other-keys)
+             ;; Skip test that needs network access to check MX records
+             (substitute* (string-append "src/" import-path
+                                         "/validator_test.go")
+               (("func TestIsExistingEmail\\(t \\*testing\\.T\\) \\{" match)
+                (string-append match "\n\tt.Skip()")))
+             #t)))))
+    (synopsis "Package of validators and sanitizers for strings,
+numerics, slices and structs")
+    (description "A package of validators and sanitizers for strings,
+structs and collections.  Based on validator.js.")
+    (home-page "https://github.com/asaskevich/govalidator")
+    (license license:expat)))
+
 (define-public go-google-golang-org-protobuf
   (package
     (name "go-google-golang-org-protobuf")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 06/47] gnu: Add go-github-com-dennwc-varint.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-6-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-dennwc-varint): New variable.
---
gnu/packages/golang.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index ee22952fe7..078cb30cbc 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -9817,6 +9817,31 @@ (define-public go-github-com-asaskevich-govalidator
     (home-page "https://github.com/asaskevich/govalidator")
     (license license:expat)))
 
+(define-public go-github-com-dennwc-varint
+  ;; Test fixes haven't received a tag yet.
+  (let ((commit "2d9bdf4e8e69d9b1d5cbc270960451dda46c3231")
+        (revision "0"))
+    (package
+      (name "go-github-com-dennwc-varint")
+      (version (git-version "1.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/dennwc/varint")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0050g9z6s40j8h5m7sw121i0wb0yp6yipsp5xlqlx2hrwa7ha8l3"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "github.com/dennwc/varint"))
+      (synopsis "Fast varint library for Go")
+      (description "This package provides an optimized implementation of
+protobuf's varint encoding/decoding.")
+      (home-page "https://github.com/dennwc/varint")
+      (license license:expat))))
+
 (define-public go-google-golang-org-protobuf
   (package
     (name "go-google-golang-org-protobuf")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 09/47] gnu: Add go-github-com-go-kit-log.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-9-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-go-kit-log): New variable.
---
gnu/packages/golang.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 943f32edcf..e2bf81528f 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -9865,6 +9865,32 @@ (define-public go-github-com-edsrzf-mmap-go
     (home-page "https://github.com/edsrzf/mmap-go")
     (license license:bsd-3)))
 
+(define-public go-github-com-go-kit-log
+  (package
+    (name "go-github-com-go-kit-log")
+    (version "0.2.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/go-kit/log")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "13gbqrwvqy9j903j44x0kix5gnn34a8hl8skbdijy7arpkxpj6h3"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/go-kit/log"))
+    (propagated-inputs (list go-github-com-go-logfmt-logfmt))
+    (synopsis "Minimal and extensible structured logger")
+    (description
+     "@code{package log} provides a minimal interface for structured
+logging in services.  It may be wrapped to encode conventions, enforce
+type-safety, provide leveled logging, and so on.  It can be used for
+both typical application log events, and log-structured data streams.")
+    (home-page "https://github.com/go-kit/log")
+    (license license:expat)))
+
 (define-public go-github-com-go-logfmt-logfmt
   (package
     (name "go-github-com-go-logfmt-logfmt")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 10/47] gnu: Add go-github-com-go-stack-stack.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-10-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-go-stack-stack): New variable.
---
gnu/packages/golang.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index e2bf81528f..a46a6f955b 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -9915,6 +9915,33 @@ (define-public go-github-com-go-logfmt-logfmt
     (home-page "https://github.com/go-logfmt/logfmt")
     (license license:expat)))
 
+(define-public go-github-com-go-stack-stack
+  (package
+    (name "go-github-com-go-stack-stack")
+    (version "1.8.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/go-stack/stack")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "01m6l9w84yq2yyly8bdfsgc386hla1gn9431c7vr3mfa3bchj5wb"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/go-stack/stack"))
+    (synopsis "Utilities to capture, manipulate, and format call
+stacks")
+    (description
+     "Package @code{stack} implements utilities to capture, manipulate,
+and format call stacks.  It provides a simpler API than package
+@code{runtime}.  The implementation takes care of the minutia and
+special cases of interpreting the program counter (pc) values returned
+by @code{runtime.Callers}.")
+    (home-page "https://github.com/go-stack/stack")
+    (license license:expat)))
+
 (define-public go-google-golang-org-protobuf
   (package
     (name "go-google-golang-org-protobuf")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 07/47] gnu: Add go-github-com-edsrzf-mmap-go.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-7-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-edsrzf-mmap-go): New variable.
---
gnu/packages/golang.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 078cb30cbc..4f55acf1ad 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -9842,6 +9842,29 @@ (define-public go-github-com-dennwc-varint
       (home-page "https://github.com/dennwc/varint")
       (license license:expat))))
 
+(define-public go-github-com-edsrzf-mmap-go
+  (package
+    (name "go-github-com-edsrzf-mmap-go")
+    (version "1.1.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/edsrzf/mmap-go")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "11xpfcacfvmrkbp0pv4j8pg2gyjnxpfp7l93j42h0svwxywhjmrc"))))
+    (build-system go-build-system)
+    (propagated-inputs (list go-golang-org-x-sys))
+    (arguments
+     '(#:import-path "github.com/edsrzf/mmap-go"))
+    (synopsis "Portable mmap package for Go")
+    (description "@code{mmap-go} is a portable mmap package for the Go
+programming language.")
+    (home-page "https://github.com/edsrzf/mmap-go")
+    (license license:bsd-3)))
+
 (define-public go-google-golang-org-protobuf
   (package
     (name "go-google-golang-org-protobuf")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 11/47] gnu: Add go-github-com-josharian-intern.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-11-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-josharian-intern): New
variable.
---
gnu/packages/golang.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index a46a6f955b..a9286f8b8a 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -9942,6 +9942,31 @@ (define-public go-github-com-go-stack-stack
     (home-page "https://github.com/go-stack/stack")
     (license license:expat)))
 
+(define-public go-github-com-josharian-intern
+  (package
+    (name "go-github-com-josharian-intern")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/josharian/intern")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1za48ppvwd5vg8vv25ldmwz1biwpb3p6qhf8vazhsfdg9m07951c"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/josharian/intern"))
+    (synopsis "Intern Go strings")
+    (description
+     "Package intern interns strings.  Interning is best effort only.
+Interned strings may be removed automatically at any time without
+notification.  All functions may be called concurrently with themselves
+and each other.")
+    (home-page "https://github.com/josharian/intern")
+    (license license:expat)))
+
 (define-public go-google-golang-org-protobuf
   (package
     (name "go-google-golang-org-protobuf")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 08/47] gnu: Add go-github-com-go-logfmt-logfmt.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-8-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-go-logfmt-logfmt): New
variable.
---
gnu/packages/golang.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 4f55acf1ad..943f32edcf 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -9865,6 +9865,30 @@ (define-public go-github-com-edsrzf-mmap-go
     (home-page "https://github.com/edsrzf/mmap-go")
     (license license:bsd-3)))
 
+(define-public go-github-com-go-logfmt-logfmt
+  (package
+    (name "go-github-com-go-logfmt-logfmt")
+    (version "0.5.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/go-logfmt/logfmt")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "01fs4x2aqw2qcsz18s4nfvyqv3rcwz5xmgpk3bic6nzgyzsjd7dp"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/go-logfmt/logfmt"))
+    (synopsis "Marshals and unmarshals logfmt messages")
+    (description
+     "@code{package logfmt} implements utilities to marshal and
+unmarshal data in the logfmt format.  It provides an API similar to
+@code{encoding/json} and @code{encoding/xml}.")
+    (home-page "https://github.com/go-logfmt/logfmt")
+    (license license:expat)))
+
 (define-public go-google-golang-org-protobuf
   (package
     (name "go-google-golang-org-protobuf")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 12/47] gnu: Add go-github-com-julienschmidt-httprouter.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-12-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-julienschmidt-httprouter): New
variable.
---
gnu/packages/golang.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index a9286f8b8a..cf4c85b7cc 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -9967,6 +9967,38 @@ (define-public go-github-com-josharian-intern
     (home-page "https://github.com/josharian/intern")
     (license license:expat)))
 
+(define-public go-github-com-julienschmidt-httprouter
+  (package
+    (name "go-github-com-julienschmidt-httprouter")
+    (version "1.3.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/julienschmidt/httprouter")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1a6sy0ysqknsjssjh7qg1dqn21xmj9a36c57nrk7srfmab4ffmk1"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/julienschmidt/httprouter"))
+    (synopsis "High performance HTTP request router")
+    (description
+     "HttpRouter is a lightweight high performance HTTP request router
+(also called multiplexer or just mux for short) for Go.
+
+In contrast to the default mux of Go's @code{net/http} package, this
+router supports variables in the routing pattern and matches against the
+request method.  It also scales better.
+
+The router is optimized for high performance and a small memory
+footprint.  It scales well even with very long paths and a large number
+of routes.  A compressing dynamic trie (radix tree) structure is used for
+efficient matching.")
+    (home-page "https://github.com/julienschmidt/httprouter")
+    (license license:bsd-3)))
+
 (define-public go-google-golang-org-protobuf
   (package
     (name "go-google-golang-org-protobuf")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 14/47] gnu: Add go-github-com-modern-go-concurrent.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-14-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-modern-go-concurrent): New
variable.
---
gnu/packages/golang.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 15a2f4310b..61332a5786 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10027,6 +10027,30 @@ (define-public go-github-com-mailru-easyjson
     (home-page "https://github.com/mailru/easyjson")
     (license license:expat)))
 
+(define-public go-github-com-modern-go-concurrent
+  (package
+    (name "go-github-com-modern-go-concurrent")
+    (version "1.0.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/modern-go/concurrent")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0s0fxccsyb8icjmiym5k7prcqx36hvgdwl588y0491gi18k5i4zs"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/modern-go/concurrent"))
+    (synopsis "Concurrency utilities for Go")
+    (description
+     "Concurrency utilities for Go, including a backported version of
+@code{sync.Map} for Go < 1.9 named @code{concurrent.Map}, and
+@code{concurrent.Executor}.")
+    (home-page "https://github.com/modern-go/concurrent")
+    (license license:asl2.0)))
+
 (define-public go-google-golang-org-protobuf
   (package
     (name "go-google-golang-org-protobuf")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 16/47] gnu: Add go-github-com-montanaflynn-stats.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-16-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-montanaflynn-stats): New
variable.
---
gnu/packages/golang.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 5027b0d927..e55c5de616 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10078,6 +10078,28 @@ (define-public go-github-com-modern-go-reflect2
     (home-page "https://github.com/modern-go/reflect2")
     (license license:asl2.0)))
 
+(define-public go-github-com-montanaflynn-stats
+  (package
+    (name "go-github-com-montanaflynn-stats")
+    (version "0.6.6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/montanaflynn/stats")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0r0ad2275saw79kgh3ywafii8f6rja2z6mzm9izs11k2lvkqpz6z"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/montanaflynn/stats"))
+    (synopsis "Golang statistics library package")
+    (description "A well tested and comprehensive Golang statistics
+library / package / module with no dependencies.")
+    (home-page "https://github.com/montanaflynn/stats")
+    (license license:expat)))
+
 (define-public go-google-golang-org-protobuf
   (package
     (name "go-google-golang-org-protobuf")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 17/47] gnu: Add go-github-com-mwitkow-go-conntrack.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-17-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-mwitkow-go-conntrack): New
variable.
---
gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index e55c5de616..e60d29b75e 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10100,6 +10100,34 @@ (define-public go-github-com-montanaflynn-stats
     (home-page "https://github.com/montanaflynn/stats")
     (license license:expat)))
 
+(define-public go-github-com-mwitkow-go-conntrack
+  (let ((commit "2f068394615f73e460c2f3d2c158b0ad9321cadb")
+        (revision "0"))
+    (package
+      (name "go-github-com-mwitkow-go-conntrack")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/mwitkow/go-conntrack")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0ymjmy12ks7smgwmrwsa5kf07d9w5kpk1dn650azlzr61b561aw7"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "github.com/mwitkow/go-conntrack"))
+      (propagated-inputs (list go-github-com-jpillora-backoff
+                               go-github-com-prometheus-client-golang
+                               go-golang-org-x-net))
+      (native-inputs (list go-github-com-stretchr-testify))
+      (synopsis "Go middleware for @code{net.Conn} tracing")
+      (description "Prometheus monitoring and @code{x/net/trace} tracing
+wrappers for @code{net.Conn}.")
+      (home-page "https://github.com/mwitkow/go-conntrack")
+      (license license:asl2.0))))
+
 (define-public go-google-golang-org-protobuf
   (package
     (name "go-google-golang-org-protobuf")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 18/47] gnu: Add go-github-com-oklog-run.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-18-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-oklog-run): New variable.
---
gnu/packages/golang.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index e60d29b75e..ebd2ac95b2 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10128,6 +10128,31 @@ (define-public go-github-com-mwitkow-go-conntrack
       (home-page "https://github.com/mwitkow/go-conntrack")
       (license license:asl2.0))))
 
+(define-public go-github-com-oklog-run
+  (package
+    (name "go-github-com-oklog-run")
+    (version "1.1.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/oklog/run")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0r55p3kgdkgw55i33lqvvvl60mjp92mhd1170m980sw98z9150jk"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/oklog/run"))
+    (synopsis "Universal mechanism to manage goroutine lifecycles")
+    (description
+     "@code{run.Group} is a universal mechanism to manage goroutine
+lifecycles, written to manage component lifecycles in @code{func main}
+for OK Log.  It's useful in any circumstance where you need to
+orchestrate multiple goroutines as a unit whole.")
+    (home-page "https://github.com/oklog/run")
+    (license license:asl2.0)))
+
 (define-public go-google-golang-org-protobuf
   (package
     (name "go-google-golang-org-protobuf")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 22/47] gnu: Add go-github-com-puerkitobio-purell.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-22-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-puerkitobio-purell): New
variable.
---
gnu/packages/golang.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 99715d910d..7471120b7a 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -7242,6 +7242,29 @@ (define-public go-github-com-puerkitobio-goquery
 to jQuery to the Go language.")
     (license license:bsd-3)))
 
+(define-public go-github-com-puerkitobio-purell
+  (package
+    (name "go-github-com-puerkitobio-purell")
+    (version "1.1.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/PuerkitoBio/purell")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0c525frsxmalrn55hzzsxy17ng8avkd40ga0wxfw9haxsdjgqdqy"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/PuerkitoBio/purell"))
+    (propagated-inputs (list go-github-com-puerkitobio-urlesc
+                             go-golang-org-x-net go-golang-org-x-text))
+    (synopsis "Tiny Go library to normalize URLs")
+    (description "Purell is a tiny Go library to normalize URLs.")
+    (home-page "https://github.com/PuerkitoBio/purell")
+    (license license:bsd-3)))
+
 (define-public go-github-com-puerkitobio-urlesc
   (let ((commit "de5bf2ad457846296e2031421a34e2568e304e35")
         (revision "0"))
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 19/47] gnu: Add go-github-com-oklog-ulid.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-19-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-oklog-ulid): New variable.
---
gnu/packages/golang.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index ebd2ac95b2..c84f3b499c 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10153,6 +10153,31 @@ (define-public go-github-com-oklog-run
     (home-page "https://github.com/oklog/run")
     (license license:asl2.0)))
 
+(define-public go-github-com-oklog-ulid
+  (package
+    (name "go-github-com-oklog-ulid")
+    (version "1.3.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/oklog/ulid")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0hybwyid820n80axrk863k2py93hbqlq6hxhf84ppmz0qd0ys0gq"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/oklog/ulid"))
+    (synopsis "Universally Unique Lexicographically Sortable Identifier
+(ULID) in Go")
+    (description
+     "Universally Unique Lexicographically Sortable Identifier (ULID) in
+Go.  A Go port of @code{ulid/javascript} with binary format
+implemented.")
+    (home-page "https://github.com/oklog/ulid")
+    (license license:asl2.0)))
+
 (define-public go-google-golang-org-protobuf
   (package
     (name "go-google-golang-org-protobuf")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 23/47] gnu: Add go-github-com-shurcool-httpgzip.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-23-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-shurcool-httpgzip): New
variable.
---
gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 7471120b7a..775d1c274b 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -5386,6 +5386,34 @@ (define-public go-github-com-russross-blackfriday
     (description "Blackfriday is a Markdown processor in Go.")
     (license license:bsd-2)))
 
+(define-public go-github-com-shurcool-httpgzip
+  (let ((commit "320755c1c1b0484e6179c9a5b68aabcc0dae5ac2")
+        (revision "0"))
+    (package
+      (name "go-github-com-shurcool-httpgzip")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/shurcooL/httpgzip")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0vhlpnb93nndbbxc4jkix3bjjypjpfs5rrfkpqacfshs6gnvm647"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "github.com/shurcooL/httpgzip"))
+      (propagated-inputs (list go-golang-org-x-net go-golang-org-x-text))
+      (native-inputs (list go-golang-org-x-tools))
+      (synopsis "Primitives that use gzip compression when serving HTTP
+requests")
+      (description
+       "Package @code{httpgzip} provides @code{net/http}-like primitives
+that use gzip compression when serving HTTP requests.")
+      (home-page "https://github.com/shurcooL/httpgzip")
+      (license license:expat))))
+
 (define-public go-github-com-shurcool-sanitized-anchor-name
   (package
     (name "go-github-com-shurcool-sanitized-anchor-name")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 20/47] gnu: Add go-github-com-opentracing-contrib-go-stdlib.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-20-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-opentracing-contrib-go-stdlib):
New variable.
---
gnu/packages/golang.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index c84f3b499c..7504f5637e 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -1258,6 +1258,30 @@ (define-public go-github-com-mufti1-interconv
       (description "InterConv converts interfaces into any data type.")
       (license license:expat))))
 
+(define-public go-github-com-opentracing-contrib-go-stdlib
+  (package
+    (name "go-github-com-opentracing-contrib-go-stdlib")
+    (version "1.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/opentracing-contrib/go-stdlib")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1ssnfhbpljxy2v3nsw9aqmh7xlky49dpfwj275aj0b576w46ys6m"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/opentracing-contrib/go-stdlib/nethttp"
+       #:unpack-path "github.com/opentracing-contrib/go-stdlib"))
+    (propagated-inputs (list go-github-com-opentracing-opentracing-go))
+    (home-page "https://github.com/opentracing-contrib/go-stdlib")
+    (synopsis "OpenTracing instrumentation for packages in the Go stdlib")
+    (description "This repository contains OpenTracing instrumentation
+for packages in the Go standard library.")
+    (license license:asl2.0)))
+
 (define-public go-github-com-opentracing-opentracing-go
   (package
     (name "go-github-com-opentracing-opentracing-go")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 24/47] gnu: Add go-github-com-shurcool-httpfs.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-24-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-shurcool-httpfs): New variable.
---
gnu/packages/golang.scm | 57 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 57 insertions(+)

Toggle diff (70 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 775d1c274b..416f1b1f86 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -5386,6 +5386,63 @@ (define-public go-github-com-russross-blackfriday
     (description "Blackfriday is a Markdown processor in Go.")
     (license license:bsd-2)))
 
+(define-public go-github-com-shurcool-httpfs
+  (let ((commit "8d4bc4ba774931155e6cd5ef6098cb038dd45135")
+        (revision "0"))
+    (package
+      (name "go-github-com-shurcool-httpfs")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/shurcooL/httpfs")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0qjkbjnp86kjr7r0xjwp39blnk1ggkzy6zm3xphr5dpin4jkgfa1"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:unpack-path "github.com/shurcooL/httpfs"
+         #:phases
+         (let ((paths '("github.com/shurcooL/httpfs/filter"
+                        "github.com/shurcooL/httpfs/html/vfstemplate"
+                        "github.com/shurcooL/httpfs/httputil"
+                        "github.com/shurcooL/httpfs/path/vfspath"
+                        "github.com/shurcooL/httpfs/text/vfstemplate"
+                        "github.com/shurcooL/httpfs/union"
+                        "github.com/shurcooL/httpfs/vfsutil")))
+           (modify-phases %standard-phases
+             (replace 'build
+               (lambda args
+                 (for-each (lambda (path)
+                             (apply (assoc-ref %standard-phases
+                                               'build)
+                                    `(,@args #:import-path
+                                      ,path))) paths)))
+             (replace 'check
+               (lambda args
+                 (for-each (lambda (path)
+                             (apply (assoc-ref %standard-phases
+                                               'check)
+                                    `(,@args #:import-path
+                                      ,path))) paths)))
+             (replace 'install
+               (lambda args
+                 (for-each (lambda (path)
+                             (apply (assoc-ref %standard-phases
+                                               'install)
+                                    `(,@args #:import-path
+                                      ,path))) paths)))))))
+      (propagated-inputs (list go-github-com-shurcool-httpgzip))
+      (native-inputs (list go-golang-org-x-tools))
+      (synopsis "Collection of Go packages for working with the
+@code{http.FileSystem} interface")
+      (description "Collection of Go packages for working with the
+@code{http.FileSystem} interface.")
+      (home-page "https://github.com/shurcooL/httpfs")
+      (license license:expat))))
+
 (define-public go-github-com-shurcool-httpgzip
   (let ((commit "320755c1c1b0484e6179c9a5b68aabcc0dae5ac2")
         (revision "0"))
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 21/47] gnu: Add go-github-com-puerkitobio-urlesc.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-21-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-puerkitobio-urlesc): New
variable.
---
gnu/packages/golang.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 7504f5637e..99715d910d 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -7242,6 +7242,30 @@ (define-public go-github-com-puerkitobio-goquery
 to jQuery to the Go language.")
     (license license:bsd-3)))
 
+(define-public go-github-com-puerkitobio-urlesc
+  (let ((commit "de5bf2ad457846296e2031421a34e2568e304e35")
+        (revision "0"))
+    (package
+      (name "go-github-com-puerkitobio-urlesc")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/PuerkitoBio/urlesc")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0n0srpqwbaan1wrhh2b7ysz543pjs1xw2rghvqyffg9l0g8kzgcw"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "github.com/PuerkitoBio/urlesc"))
+      (synopsis "Proper URL escaping as per RFC 3986")
+      (description "Package @code{urlesc} implements query escaping as
+per RFC 3986.")
+      (home-page "https://github.com/PuerkitoBio/urlesc")
+      (license license:bsd-3))))
+
 (define-public go-github-com-jmespath-go-jmespath
   (package
     (name "go-github-com-jmespath-go-jmespath")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 13/47] gnu: Add go-github-com-mailru-easyjson.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-13-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-mailru-easyjson): New variable.
---
gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index cf4c85b7cc..15a2f4310b 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -9999,6 +9999,34 @@ (define-public go-github-com-julienschmidt-httprouter
     (home-page "https://github.com/julienschmidt/httprouter")
     (license license:bsd-3)))
 
+(define-public go-github-com-mailru-easyjson
+  (package
+    (name "go-github-com-mailru-easyjson")
+    (version "0.7.7")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/mailru/easyjson")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0clifkvvy8f45rv3cdyv58dglzagyvfcqb63wl6rij30c5j2pzc1"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/mailru/easyjson"))
+    (propagated-inputs (list go-github-com-josharian-intern))
+    (synopsis "Fast JSON serializer for golang")
+    (description
+     "Package @code{easyjson} provides a fast and easy way to
+marshal/unmarshal Go structs to/from JSON without the use of reflection.
+
+In performance tests, @code{easyjson} outperforms the standard
+@code{encoding/json} package by a factor of 4-5x, and other JSON
+encoding packages by a factor of 2-3x.")
+    (home-page "https://github.com/mailru/easyjson")
+    (license license:expat)))
+
 (define-public go-google-golang-org-protobuf
   (package
     (name "go-google-golang-org-protobuf")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 15/47] gnu: Add go-github-com-modern-go-reflect2.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-15-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-modern-go-reflect2): New
variable.
---
gnu/packages/golang.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 61332a5786..5027b0d927 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10051,6 +10051,33 @@ (define-public go-github-com-modern-go-concurrent
     (home-page "https://github.com/modern-go/concurrent")
     (license license:asl2.0)))
 
+(define-public go-github-com-modern-go-reflect2
+  (package
+    (name "go-github-com-modern-go-reflect2")
+    (version "1.0.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/modern-go/reflect2")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "05a89f9j4nj8v1bchfkv2sy8piz746ikj831ilbp54g8dqhl8vzr"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/modern-go/reflect2"))
+    (synopsis "Reflect API without runtime @code{reflect.Value} cost")
+    (description
+     "@dfn{reflect2} is a reflect API that avoids runtime
+@code{reflect.Value} cost.
+
+This package is designed for low level libraries to optimize reflection
+performance.  General applications should still use the @code{reflect}
+standard library.")
+    (home-page "https://github.com/modern-go/reflect2")
+    (license license:asl2.0)))
+
 (define-public go-google-golang-org-protobuf
   (package
     (name "go-google-golang-org-protobuf")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 25/47] gnu: Add go-github-com-shurcool-vfsgen.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-25-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-shurcool-vfsgen): New variable.
---
gnu/packages/golang.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 416f1b1f86..da399aaafd 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -5494,6 +5494,35 @@ (define-public go-github-com-shurcool-sanitized-anchor-name
 anchor names.")
     (license license:expat)))
 
+(define-public go-github-com-shurcool-vfsgen
+  (let ((commit "0d455de96546f756e8830efeec8dab0f489af135")
+        (revision "0"))
+    (package
+      (name "go-github-com-shurcool-vfsgen")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/shurcooL/vfsgen")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0md1vgaq95x1jmxpnsfv6s9xf3v8gqi7lcl7mkxpf6274rf1n2pk"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "github.com/shurcooL/vfsgen"))
+      (propagated-inputs (list go-github-com-shurcool-httpfs))
+      (native-inputs (list go-github-com-shurcool-httpgzip
+                           go-golang-org-x-tools))
+      (synopsis "Generate Go code from an @code{http.FileSystem}")
+      (description
+       "Package @code{vfsgen} takes an @code{http.FileSystem} (likely at
+@code{go generate} time) and generates Go code that statically
+implements the provided @code{http.FileSystem}.")
+      (home-page "https://github.com/shurcooL/vfsgen")
+      (license license:expat))))
+
 (define-public go-github-com-pmezard-go-difflib
   (package
     (name "go-github-com-pmezard-go-difflib")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 26/47] gnu: Add go-github-com-simonpasquier-klog-gokit.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-26-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-simonpasquier-klog-gokit): New
variable.
---
gnu/packages/golang.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (48 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index da399aaafd..9931c460d4 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10363,6 +10363,41 @@ (define-public go-github-com-oklog-ulid
     (home-page "https://github.com/oklog/ulid")
     (license license:asl2.0)))
 
+(define-public go-github-com-simonpasquier-klog-gokit
+  (package
+    (name "go-github-com-simonpasquier-klog-gokit")
+    (version "0.3.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/simonpasquier/klog-gokit")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "061hxp1x7akgfdg9iy4kk5528rzq70cq7pj8azygf4149i7nsssk"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/simonpasquier/klog-gokit"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-source
+           (lambda* (#:key import-path #:allow-other-keys)
+             ;; `go-kit/kit' is large and unpackaged, however the log
+             ;; library has been extracted out and can be swapped in.
+             (substitute* (find-files (string-append "src/" import-path)
+                                      "\\.go")
+               (("github.com/go-kit/kit/log") "github.com/go-kit/log"))
+             #t)))))
+    (propagated-inputs (list go-github-com-go-kit-log))
+    (native-inputs (list go-github-com-stretchr-testify))
+    (synopsis "Replacement for klog for projects using the go-kit
+logger")
+    (description "Replacement for @code{k8s.io/klog} in projects that
+use the @code{github.com/go-kit/log} module for logging.")
+    (home-page "https://github.com/simonpasquier/klog-gokit")
+    (license license:asl2.0)))
+
 (define-public go-google-golang-org-protobuf
   (package
     (name "go-google-golang-org-protobuf")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 27/47] gnu: Add go-github-com-simonpasquier-klog-gokit-v3.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-27-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-simonpasquier-klog-gokit-v3):
New variable.
---
gnu/packages/golang.scm | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

Toggle diff (30 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 9931c460d4..58a66e95b7 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10398,6 +10398,23 @@ (define-public go-github-com-simonpasquier-klog-gokit
     (home-page "https://github.com/simonpasquier/klog-gokit")
     (license license:asl2.0)))
 
+(define-public go-github-com-simonpasquier-klog-gokit-v3
+  (package
+    (inherit go-github-com-simonpasquier-klog-gokit)
+    (name "go-github-com-simonpasquier-klog-gokit-v3")
+    (version "3.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/simonpasquier/klog-gokit")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1vgswha6kivshi00lk6x49q2p13jchw59g08ww4nhiip51xlj33k"))))
+    (arguments
+     '(#:import-path "github.com/simonpasquier/klog-gokit/v3"))))
+
 (define-public go-google-golang-org-protobuf
   (package
     (name "go-google-golang-org-protobuf")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 28/47] gnu: Add go-github-com-tidwall-pretty.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-28-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-tidwall-pretty): New variable.
---
gnu/packages/golang.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 58a66e95b7..e39d0ec062 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10415,6 +10415,30 @@ (define-public go-github-com-simonpasquier-klog-gokit-v3
     (arguments
      '(#:import-path "github.com/simonpasquier/klog-gokit/v3"))))
 
+(define-public go-github-com-tidwall-pretty
+  (package
+    (name "go-github-com-tidwall-pretty")
+    (version "1.2.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/tidwall/pretty")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "11zi5hxb75yapgxq67r4lmv8n910iqmw7994ig1fy4gnr4d51i3s"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/tidwall/pretty"))
+    (synopsis "Efficient JSON beautifier and compactor for Go")
+    (description
+     "Pretty is a Go package that provides fast methods for
+formatting JSON for human readability, or to compact JSON for smaller
+payloads.")
+    (home-page "https://github.com/tidwall/pretty")
+    (license license:expat)))
+
 (define-public go-google-golang-org-protobuf
   (package
     (name "go-google-golang-org-protobuf")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 29/47] gnu: Add go-github-com-uber-jaeger-lib.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-29-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-uber-jaeger-lib): New variable.
---
gnu/packages/golang.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index e39d0ec062..c4a6d76791 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10439,6 +10439,31 @@ (define-public go-github-com-tidwall-pretty
     (home-page "https://github.com/tidwall/pretty")
     (license license:expat)))
 
+(define-public go-github-com-uber-jaeger-lib
+  (package
+    (name "go-github-com-uber-jaeger-lib")
+    (version "2.4.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/jaegertracing/jaeger-lib")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "15871xzc7qs00yy5bv1gzdv4xlfws68bhb70m4k5p5n41060ppj0"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/uber/jaeger-lib"))
+    (synopsis "Shared infrastructure libraries used by Jaeger")
+    (description
+     "A collection of shared infrastructure libraries used
+by different components of Jaeger backend and @code{jaeger-client-go}.
+This library is not intended to be used standalone, and provides no
+guarantees of backwards compatibility.")
+    (home-page "https://github.com/jaegertracing/jaeger-lib")
+    (license license:asl2.0)))
+
 (define-public go-google-golang-org-protobuf
   (package
     (name "go-google-golang-org-protobuf")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 33/47] gnu: Add go-gopkg-in-alecthomas-kingpin.v2.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-33-hello@lnikki.la
* gnu/packages/golang.scm (go-gopkg-in-alecthomas-kingpin.v2): New
variable.
---
gnu/packages/golang.scm | 12 ++++++++++++
1 file changed, 12 insertions(+)

Toggle diff (25 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 70e2c454e4..a8f5bb7261 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -9885,6 +9885,18 @@ (define-public go-github-com-alecthomas-kingpin
 (define-public go-github-com-kingpin
   (deprecated-package "go-github-com-kingpin" go-github-com-alecthomas-kingpin))
 
+(define-public go-gopkg-in-alecthomas-kingpin.v2
+  (let ((base go-github-com-alecthomas-kingpin))
+    (package
+      (inherit base)
+      (name "go-gopkg-in-alecthomas-kingpin.v2")
+      (arguments
+       (ensure-keyword-arguments (package-arguments base)
+                                 '(#:import-path
+                                   "gopkg.in/alecthomas/kingpin.v2"
+                                   #:unpack-path
+                                   "gopkg.in/alecthomas/kingpin.v2"))))))
+
 (define-public go-github-com-alecthomas-template
   (let ((commit "a0175ee3bccc567396460bf5acd36800cb10c49c")
         (revision "0"))
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 30/47] gnu: Add go-github-com-uber-jaeger-client-go.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-30-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-uber-jaeger-client-go): New
variable.
---
gnu/packages/golang.scm | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)

Toggle diff (44 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index c4a6d76791..4f1de715d0 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10439,6 +10439,37 @@ (define-public go-github-com-tidwall-pretty
     (home-page "https://github.com/tidwall/pretty")
     (license license:expat)))
 
+(define-public go-github-com-uber-jaeger-client-go
+  (package
+    (name "go-github-com-uber-jaeger-client-go")
+    (version "2.30.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/jaegertracing/jaeger-client-go")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0nm4mi23bvk84418gkpl2wmijij4bnb082f5zv4ivrvcrp9lhkx3"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/uber/jaeger-client-go"
+       #:tests? #f)) ;HdrHistogram is unpackaged
+    (propagated-inputs (list go-github-com-opentracing-opentracing-go
+                             go-github-com-uber-jaeger-lib
+                             go-go-uber-org-atomic))
+    (synopsis "Instrumentation library that implements an OpenTracing Go
+Tracer for Jaeger")
+    (description
+     "Instrumentation library that implements an OpenTracing Go Tracer
+for Jaeger.
+
+This library is deprecated.  No new pull requests are accepted except
+for security fixes.  We urge all users to migrate to OpenTelemetry.")
+    (home-page "https://github.com/jaegertracing/jaeger-client-go")
+    (license license:asl2.0)))
+
 (define-public go-github-com-uber-jaeger-lib
   (package
     (name "go-github-com-uber-jaeger-lib")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 34/47] gnu: Add go-github-com-json-iterator-go.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-34-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-json-iterator-go): New
variable.
---
gnu/packages/golang.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index a8f5bb7261..e71f70520d 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10187,6 +10187,33 @@ (define-public go-github-com-josharian-intern
     (home-page "https://github.com/josharian/intern")
     (license license:expat)))
 
+(define-public go-github-com-json-iterator-go
+  (package
+    (name "go-github-com-json-iterator-go")
+    (version "1.1.12")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/json-iterator/go")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1c8f0hxm18wivx31bs615x3vxs2j3ba0v6vxchsjhldc8kl311bz"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/json-iterator/go"))
+    (propagated-inputs (list go-github-com-davecgh-go-spew
+                             go-github-com-google-gofuzz
+                             go-github-com-modern-go-concurrent
+                             go-github-com-modern-go-reflect2))
+    (native-inputs (list go-github-com-stretchr-testify))
+    (synopsis "Drop-in replacement of @code{encoding/json}")
+    (description "High-performance 100% compatible drop-in replacement
+of @code{encoding/json}.")
+    (home-page "https://github.com/json-iterator/go")
+    (license license:expat)))
+
 (define-public go-github-com-julienschmidt-httprouter
   (package
     (name "go-github-com-julienschmidt-httprouter")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 31/47] gnu: Add go-github-com-youmark-pkcs8.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-31-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-youmark-pkcs8): New variable.
---
gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 4f1de715d0..d16326e52c 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10495,6 +10495,34 @@ (define-public go-github-com-uber-jaeger-lib
     (home-page "https://github.com/jaegertracing/jaeger-lib")
     (license license:asl2.0)))
 
+(define-public go-github-com-youmark-pkcs8
+  (package
+    (name "go-github-com-youmark-pkcs8")
+    (version "1.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/youmark/pkcs8")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0g20ydzhxrcrnm4azvgd1013cns7qiwsz1469w9mr2rwy4h2g8qn"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/youmark/pkcs8"))
+    (propagated-inputs (list go-golang-org-x-crypto))
+    (synopsis "Functions to parse and convert private keys in PKCS#8
+format")
+    (description
+     "@code{pkcs8} implements functions to process private keys in
+PKCS#8 format, as defined in RFC 5208 and RFC 5958.
+
+It can handle both unencrypted PKCS#8 PrivateKeyInfo format and
+EncryptedPrivateKeyInfo format with PKCS#5 (v2.0) algorithms.")
+    (home-page "https://github.com/youmark/pkcs8")
+    (license license:expat)))
+
 (define-public go-google-golang-org-protobuf
   (package
     (name "go-google-golang-org-protobuf")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 35/47] gnu: Add go-go-mongodb-org-mongo-driver.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-35-hello@lnikki.la
* gnu/packages/golang.scm (go-go-mongodb-org-mongo-driver): New
variable.
---
gnu/packages/golang.scm | 67 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 67 insertions(+)

Toggle diff (80 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index e71f70520d..cf53f50fd9 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10585,6 +10585,73 @@ (define-public go-github-com-youmark-pkcs8
     (home-page "https://github.com/youmark/pkcs8")
     (license license:expat)))
 
+(define-public go-go-mongodb-org-mongo-driver
+  (package
+    (name "go-go-mongodb-org-mongo-driver")
+    (version "1.8.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/mongodb/mongo-go-driver")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "12lkr8p84x8n9yl1pa7gnl1hjvjr1azz3jms9cvfngq8kl8dy3ic"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:unpack-path "go.mongodb.org/mongo-driver"
+       #:phases
+       (let ((paths '("go.mongodb.org/mongo-driver/bson"
+                      "go.mongodb.org/mongo-driver/event"
+                      "go.mongodb.org/mongo-driver/mongo"
+                      "go.mongodb.org/mongo-driver/tag"
+                      "go.mongodb.org/mongo-driver/x/bsonx"
+                      "go.mongodb.org/mongo-driver/x/mongo/driver")))
+         (modify-phases %standard-phases
+           (replace 'build
+             (lambda args
+               (for-each (lambda (path)
+                           (apply (assoc-ref %standard-phases
+                                             'build)
+                                  `(,@args #:import-path
+                                    ,path))) paths)))
+           (replace 'check
+             (lambda args
+               (for-each (lambda (path)
+                           (apply (assoc-ref %standard-phases
+                                             'check)
+                                  `(,@args #:import-path
+                                    ,path)))
+                         ;; `mongo' tests require a running mongodb
+                         (delete "go.mongodb.org/mongo-driver/mongo" paths))))
+           (replace 'install
+             (lambda args
+               (for-each (lambda (path)
+                           (apply (assoc-ref %standard-phases
+                                             'install)
+                                  `(,@args #:import-path
+                                    ,path))) paths)))))))
+    (propagated-inputs (list go-github-com-go-stack-stack
+                             go-github-com-golang-snappy
+                             go-github-com-klauspost-compress
+                             go-github-com-kr-pretty
+                             go-github-com-montanaflynn-stats
+                             go-github-com-pkg-errors
+                             go-github-com-tidwall-pretty
+                             go-github-com-xdg-go-scram
+                             go-github-com-xdg-go-stringprep
+                             go-github-com-youmark-pkcs8
+                             go-golang-org-x-crypto
+                             go-golang-org-x-sync
+                             go-golang-org-x-tools))
+    (native-inputs (list go-github-com-google-go-cmp-cmp
+                         go-github-com-stretchr-testify))
+    (synopsis "Go driver for MongoDB")
+    (description "Go driver for MongoDB.")
+    (home-page "https://github.com/mongodb/mongo-go-driver")
+    (license license:asl2.0)))
+
 (define-public go-google-golang-org-protobuf
   (package
     (name "go-google-golang-org-protobuf")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:31 +0100
[PATCH 32/47] gnu: Add go-go-uber-org-goleak.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-32-hello@lnikki.la
* gnu/packages/golang.scm (go-go-uber-org-goleak): New variable.
---
gnu/packages/golang.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index d16326e52c..70e2c454e4 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -8881,6 +8881,29 @@ (define-public go-go-uber-org-atomic
 atomic access.")
     (license license:expat)))
 
+(define-public go-go-uber-org-goleak
+  (package
+    (name "go-go-uber-org-goleak")
+    (version "1.1.12")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/uber-go/goleak")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1wda3bd5xqbnvskgpr2lg6ccnrm3v9wl0i5c5b6xrrzf01b81vzg"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "go.uber.org/goleak"))
+    (native-inputs (list go-github-com-stretchr-testify go-golang-org-x-lint))
+    (synopsis "Goroutine leak detector")
+    (description "Goroutine leak detector to help avoid Goroutine
+leaks.")
+    (home-page "https://github.com/uber-go/goleak")
+    (license license:expat)))
+
 (define-public go-go-uber-org-multierr
   (package
     (name "go-go-uber-org-multierr")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:32 +0100
[PATCH 36/47] gnu: Add go-github-com-go-openapi-errors.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-36-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-go-openapi-errors): New
variable.
---
gnu/packages/golang.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index cf53f50fd9..8f4b762e9d 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10135,6 +10135,29 @@ (define-public go-github-com-go-logfmt-logfmt
     (home-page "https://github.com/go-logfmt/logfmt")
     (license license:expat)))
 
+(define-public go-github-com-go-openapi-errors
+  (package
+    (name "go-github-com-go-openapi-errors")
+    (version "0.20.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/go-openapi/errors")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0w7y16lk7gqcndpmzj7b8f6wmb6q5l3yq7rbqcbv9k7vd2vwww0k"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/go-openapi/errors"))
+    (native-inputs (list go-github-com-stretchr-testify))
+    (synopsis "OpenAPI toolkit common errors")
+    (description "Shared errors and error interface used throughout the
+various libraries found in the go-openapi toolkit.")
+    (home-page "https://github.com/go-openapi/errors")
+    (license license:asl2.0)))
+
 (define-public go-github-com-go-stack-stack
   (package
     (name "go-github-com-go-stack-stack")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:32 +0100
[PATCH 37/47] gnu: Add go-github-com-go-openapi-swag.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-37-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-go-openapi-swag): New variable.
---
gnu/packages/golang.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 8f4b762e9d..4b54a03c20 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10158,6 +10158,30 @@ (define-public go-github-com-go-openapi-errors
     (home-page "https://github.com/go-openapi/errors")
     (license license:asl2.0)))
 
+(define-public go-github-com-go-openapi-swag
+  (package
+    (name "go-github-com-go-openapi-swag")
+    (version "0.21.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/go-openapi/swag")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1gndhgfgwlcqqynn1rizp9nmqs9di22jmjhr6djb9794dkzr4kv5"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/go-openapi/swag"))
+    (propagated-inputs (list go-github-com-mailru-easyjson go-gopkg-in-yaml-v2))
+    (native-inputs (list go-github-com-stretchr-testify))
+    (synopsis "Goodie bag in use in the go-openapi projects")
+    (description "Contains a bunch of helper functions for go-openapi
+and go-swagger projects.")
+    (home-page "https://github.com/go-openapi/swag")
+    (license license:asl2.0)))
+
 (define-public go-github-com-go-stack-stack
   (package
     (name "go-github-com-go-stack-stack")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:32 +0100
[PATCH 38/47] gnu: Add go-github-com-go-openapi-jsonpointer.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-38-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-go-openapi-jsonpointer): New
variable.
---
gnu/packages/golang.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 4b54a03c20..c26ac622a6 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10158,6 +10158,29 @@ (define-public go-github-com-go-openapi-errors
     (home-page "https://github.com/go-openapi/errors")
     (license license:asl2.0)))
 
+(define-public go-github-com-go-openapi-jsonpointer
+  (package
+    (name "go-github-com-go-openapi-jsonpointer")
+    (version "0.19.5")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/go-openapi/jsonpointer")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0azic9nfwywlz4qxvacyi4g668fbbrkcyv15bag02yfcsi8szg5c"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/go-openapi/jsonpointer"))
+    (propagated-inputs (list go-github-com-go-openapi-swag))
+    (native-inputs (list go-github-com-stretchr-testify))
+    (synopsis "Fork of gojsonpointer with support for structs")
+    (description "Fork of gojsonpointer with support for structs.")
+    (home-page "https://github.com/go-openapi/jsonpointer")
+    (license license:asl2.0)))
+
 (define-public go-github-com-go-openapi-swag
   (package
     (name "go-github-com-go-openapi-swag")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:32 +0100
[PATCH 39/47] gnu: Add go-github-com-go-openapi-jsonreference.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-39-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-go-openapi-jsonreference): New
variable.
---
gnu/packages/golang.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index c26ac622a6..9b887e773a 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10181,6 +10181,31 @@ (define-public go-github-com-go-openapi-jsonpointer
     (home-page "https://github.com/go-openapi/jsonpointer")
     (license license:asl2.0)))
 
+(define-public go-github-com-go-openapi-jsonreference
+  (package
+    (name "go-github-com-go-openapi-jsonreference")
+    (version "0.19.6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/go-openapi/jsonreference")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1b4xg5ghzlzd6ricc3jwmlp71hxz1mgg54mgywzzqwyzvpbwn7n9"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/go-openapi/jsonreference"))
+    (propagated-inputs (list go-github-com-puerkitobio-purell
+                             go-github-com-go-openapi-jsonpointer
+                             go-github-com-go-openapi-swag))
+    (native-inputs (list go-github-com-stretchr-testify))
+    (synopsis "Fork of gojsonreference with support for structs")
+    (description "Fork of gojsonreference with support for structs.")
+    (home-page "https://github.com/go-openapi/jsonreference")
+    (license license:asl2.0)))
+
 (define-public go-github-com-go-openapi-swag
   (package
     (name "go-github-com-go-openapi-swag")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:32 +0100
[PATCH 40/47] gnu: Add go-github-com-go-openapi-spec.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-40-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-go-openapi-spec): New variable.
---
gnu/packages/golang.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 9b887e773a..e6d7ab5518 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10206,6 +10206,32 @@ (define-public go-github-com-go-openapi-jsonreference
     (home-page "https://github.com/go-openapi/jsonreference")
     (license license:asl2.0)))
 
+(define-public go-github-com-go-openapi-spec
+  (package
+    (name "go-github-com-go-openapi-spec")
+    (version "0.20.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/go-openapi/spec")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1gc92i6y9rcnzx1pz7q0k3s16pgpgmzgjyqvqzlyrds59jxc165s"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/go-openapi/spec"))
+    (propagated-inputs (list go-github-com-go-openapi-jsonpointer
+                             go-github-com-go-openapi-jsonreference
+                             go-github-com-go-openapi-swag go-gopkg-in-yaml-v2))
+    (native-inputs (list go-github-com-stretchr-testify))
+    (synopsis "OpenAPI specification object model")
+    (description "The object model for OpenAPI specification
+documents.")
+    (home-page "https://github.com/go-openapi/spec")
+    (license license:asl2.0)))
+
 (define-public go-github-com-go-openapi-swag
   (package
     (name "go-github-com-go-openapi-swag")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:32 +0100
[PATCH 44/47] gnu: Add go-github-com-go-openapi-validate.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-44-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-go-openapi-validate): New
variable.
---
gnu/packages/golang.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 7d679e825f..e4a09fea4a 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10351,6 +10351,36 @@ (define-public go-github-com-go-openapi-swag
     (home-page "https://github.com/go-openapi/swag")
     (license license:asl2.0)))
 
+(define-public go-github-com-go-openapi-validate
+  (package
+    (name "go-github-com-go-openapi-validate")
+    (version "0.21.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/go-openapi/validate")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1ga0jcb8hzfcx2rhysz1cxixs9hib1rv3qhvhn6ssb9xlx2p4fnq"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/go-openapi/validate"))
+    (propagated-inputs (list go-github-com-go-openapi-analysis
+                             go-github-com-go-openapi-errors
+                             go-github-com-go-openapi-jsonpointer
+                             go-github-com-go-openapi-loads
+                             go-github-com-go-openapi-spec
+                             go-github-com-go-openapi-strfmt
+                             go-github-com-go-openapi-swag))
+    (native-inputs (list go-github-com-stretchr-testify))
+    (synopsis "OpenAPI toolkit validation helpers")
+    (description "This package provides helpers to validate Swagger 2.0
+specification (aka OpenAPI 2.0).")
+    (home-page "https://github.com/go-openapi/validate")
+    (license license:asl2.0)))
+
 (define-public go-github-com-go-stack-stack
   (package
     (name "go-github-com-go-stack-stack")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:32 +0100
[PATCH 41/47] gnu: Add go-github-com-go-openapi-strfmt.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-41-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-go-openapi-strfmt): New
variable.
---
gnu/packages/golang.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index e6d7ab5518..8256ad5ad6 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10232,6 +10232,38 @@ (define-public go-github-com-go-openapi-spec
     (home-page "https://github.com/go-openapi/spec")
     (license license:asl2.0)))
 
+(define-public go-github-com-go-openapi-strfmt
+  (package
+    (name "go-github-com-go-openapi-strfmt")
+    (version "0.21.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/go-openapi/strfmt")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "010wpkk1mc6k1qi5fs23fphxik4yp3mjfg330dwhqa17njacr6dx"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/go-openapi/strfmt"))
+    (propagated-inputs (list go-github-com-asaskevich-govalidator
+                             go-github-com-go-openapi-errors
+                             go-github-com-google-uuid
+                             go-github-com-mitchellh-mapstructure
+                             go-github-com-oklog-ulid
+                             go-go-mongodb-org-mongo-driver))
+    (native-inputs (list go-github-com-stretchr-testify))
+    (synopsis "OpenAPI toolkit common string formats")
+    (description
+     "This package exposes a registry of data types to support string
+formats in the @code{go-openapi} toolkit.  @code{strfmt} represents a
+well known string format such as credit card or email.  The Go toolkit
+for OpenAPI specifications knows how to deal with those.")
+    (home-page "https://github.com/go-openapi/strfmt")
+    (license license:asl2.0)))
+
 (define-public go-github-com-go-openapi-swag
   (package
     (name "go-github-com-go-openapi-swag")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:32 +0100
[PATCH 45/47] gnu: Add go-github-com-prometheus-alertmanager-api.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-45-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-prometheus-alertmanager-api):
New variable.
---
gnu/packages/golang.scm | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)

Toggle diff (49 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index e4a09fea4a..92d3e40697 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10671,6 +10671,42 @@ (define-public go-github-com-oklog-ulid
     (home-page "https://github.com/oklog/ulid")
     (license license:asl2.0)))
 
+(define-public go-github-com-prometheus-alertmanager-api
+  (package
+    (name "go-github-com-prometheus-alertmanager-api")
+    (version "0.23.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/prometheus/alertmanager")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1d9mad4yp5kpcyyp9nhqv4ayz8d2gw7mv4d8ikn9ihrjcn0qmafk"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/prometheus/alertmanager/api"
+       #:unpack-path "github.com/prometheus/alertmanager"
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         ;; Source-only package
+         (delete 'build))))
+    (propagated-inputs (list go-github-com-go-openapi-swag
+                             go-github-com-go-openapi-validate))
+    (synopsis "Prometheus Alertmanager")
+    (description
+     "Alertmanager handles alerts sent by client applications such as
+the Prometheus server.  It takes care of deduplicating, grouping, and
+routing them to the correct receiver integrations such as email,
+PagerDuty, or OpsGenie.  It also takes care of silencing and inhibition
+of alerts.
+
+This package contains the API definitions for Alertmanager.")
+    (home-page "https://github.com/prometheus/alertmanager")
+    (license license:asl2.0)))
+
 (define-public go-github-com-simonpasquier-klog-gokit
   (package
     (name "go-github-com-simonpasquier-klog-gokit")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:32 +0100
[PATCH 42/47] gnu: Add go-github-com-go-openapi-analysis.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-42-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-go-openapi-analysis): New
variable.
---
gnu/packages/golang.scm | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)

Toggle diff (50 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 8256ad5ad6..bebde5fe89 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10135,6 +10135,43 @@ (define-public go-github-com-go-logfmt-logfmt
     (home-page "https://github.com/go-logfmt/logfmt")
     (license license:expat)))
 
+(define-public go-github-com-go-openapi-analysis
+  (package
+    (name "go-github-com-go-openapi-analysis")
+    (version "0.21.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/go-openapi/analysis")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0kwal4skrv4nayif71cdvirsa76vm7s9lrqyac33gsc8gzsfdh7z"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/go-openapi/analysis"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-tests
+           (lambda* (#:key import-path #:allow-other-keys)
+             ;; Skip test that needs network access
+             (substitute* (string-append "src/" import-path "/flatten_test.go")
+               (("func TestFlatten_RemoteAbsolute\\(t \\*testing\\.T\\) \\{"
+                 match)
+                (string-append match "\n\tt.Skip()")))
+             #t)))))
+    (propagated-inputs (list go-github-com-go-openapi-jsonpointer
+                             go-github-com-go-openapi-spec
+                             go-github-com-go-openapi-strfmt
+                             go-github-com-go-openapi-swag))
+    (native-inputs (list go-github-com-stretchr-testify))
+    (synopsis "OpenAPI specification object model analyzer")
+    (description "A foundational library to analyze an OAI specification
+document for easier reasoning about the content.")
+    (home-page "https://github.com/go-openapi/analysis")
+    (license license:asl2.0)))
+
 (define-public go-github-com-go-openapi-errors
   (package
     (name "go-github-com-go-openapi-errors")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:32 +0100
[PATCH 46/47] gnu: Add go-github-com-prometheus-exporter-toolkit.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-46-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-prometheus-exporter-toolkit):
New variable.
---
gnu/packages/golang.scm | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)

Toggle diff (50 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 92d3e40697..47ab9d8212 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10707,6 +10707,43 @@ (define-public go-github-com-prometheus-alertmanager-api
     (home-page "https://github.com/prometheus/alertmanager")
     (license license:asl2.0)))
 
+(define-public go-github-com-prometheus-exporter-toolkit
+  (package
+    (name "go-github-com-prometheus-exporter-toolkit")
+    (version "0.7.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/prometheus/exporter-toolkit")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "082di72cyj34wjjhi5ji59bjabdy897faji07v7qm20a4f7csdbs"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/prometheus/exporter-toolkit"
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         ;; Source-only package
+         (delete 'build))))
+    (propagated-inputs (list go-github-com-go-kit-log
+                             go-github-com-golang-protobuf-ptypes
+                             go-github-com-mwitkow-go-conntrack
+                             go-github-com-pkg-errors
+                             go-github-com-prometheus-common
+                             go-golang-org-x-crypto
+                             go-golang-org-x-oauth2
+                             go-golang-org-x-text
+                             go-gopkg-in-yaml-v2))
+    (synopsis "Utility package to build Prometheus exporters")
+    (description
+     "This is a Go library for Prometheus exporters, meant
+to be used in combination with the @code{client_golang} package.")
+    (home-page "https://github.com/prometheus/exporter-toolkit")
+    (license license:asl2.0)))
+
 (define-public go-github-com-simonpasquier-klog-gokit
   (package
     (name "go-github-com-simonpasquier-klog-gokit")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:32 +0100
[PATCH 43/47] gnu: Add go-github-com-go-openapi-loads.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-43-hello@lnikki.la
* gnu/packages/golang.scm (go-github-com-go-openapi-loads): New
variable.
---
gnu/packages/golang.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index bebde5fe89..7d679e825f 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -10243,6 +10243,32 @@ (define-public go-github-com-go-openapi-jsonreference
     (home-page "https://github.com/go-openapi/jsonreference")
     (license license:asl2.0)))
 
+(define-public go-github-com-go-openapi-loads
+  (package
+    (name "go-github-com-go-openapi-loads")
+    (version "0.21.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/go-openapi/loads")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "05jjykw8slfbndcrhrhxcam14zq973w0sbi3d6ivy344k3n4a0pm"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/go-openapi/loads"))
+    (propagated-inputs (list go-github-com-go-openapi-analysis
+                             go-github-com-go-openapi-spec
+                             go-github-com-go-openapi-swag go-gopkg-in-yaml-v2))
+    (native-inputs (list go-github-com-stretchr-testify))
+    (synopsis "Load OAI specification documents")
+    (description "Loading of OAI specification documents from local or
+remote locations.  Supports JSON and YAML documents.")
+    (home-page "https://github.com/go-openapi/loads")
+    (license license:asl2.0)))
+
 (define-public go-github-com-go-openapi-spec
   (package
     (name "go-github-com-go-openapi-spec")
-- 
2.34.0
L
L
Leo Nikkilä wrote on 25 Mar 14:32 +0100
[PATCH 47/47] gnu: Add go-github-com-prometheus-prometheus.
(address . 54560@debbugs.gnu.org)(name . Leo Nikkilä)(address . hello@lnikki.la)
20220325133211.5128-47-hello@lnikki.la
* gnu/packages/patches/go-github-com-prometheus-prometheus-remove-deps.patch:
New patch, reduce go-github-com-prometheus-prometheus dependency tree.
* gnu/packages/monitoring.scm (go-github-com-prometheus-prometheus): New
variable.
---
gnu/packages/monitoring.scm | 83 +++++++++++++++++++
...om-prometheus-prometheus-remove-deps.patch | 33 ++++++++
2 files changed, 116 insertions(+)
create mode 100644 gnu/packages/patches/go-github-com-prometheus-prometheus-remove-deps.patch

Toggle diff (156 lines)
diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm
index 7935c92815..968eb6b1ee 100644
--- a/gnu/packages/monitoring.scm
+++ b/gnu/packages/monitoring.scm
@@ -10,6 +10,7 @@
 ;;; Copyright © 2021, 2022 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2021 Raphaël Mélotte <raphael.melotte@mind.be>
+;;; Copyright © 2022 Leo Nikkilä <hello@lnikki.la>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -48,6 +49,7 @@ (define-module (gnu packages monitoring)
   #:use-module (gnu packages django)
   #:use-module (gnu packages gd)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages golang)
   #:use-module (gnu packages image)
   #:use-module (gnu packages mail)
   #:use-module (gnu packages ncurses)
@@ -61,6 +63,7 @@ (define-module (gnu packages monitoring)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages rrdtool)
+  #:use-module (gnu packages syncthing)
   #:use-module (gnu packages time)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages web))
@@ -499,6 +502,86 @@ (define-public go-github-com-prometheus-node-exporter
     (home-page "https://github.com/prometheus/node_exporter")
     (license license:asl2.0)))
 
+(define-public go-github-com-prometheus-prometheus
+  (package
+    (name "go-github-com-prometheus-prometheus")
+    (version "2.33.5")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/prometheus/prometheus")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0arz7ksrfavzg3vm5rlf6y3gbj8l59cg4x4zw6gmmd1dkflm2jx3"))
+              (patches (search-patches
+                        "go-github-com-prometheus-prometheus-remove-deps.patch"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/prometheus/prometheus/cmd/prometheus"
+       #:unpack-path "github.com/prometheus/prometheus"
+       #:install-source? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-source
+           (lambda* (#:key import-path #:allow-other-keys)
+             ;; `k8s.io/klog' is replaced by `simonpasquier/klog-gokit'
+             (substitute* (find-files (string-append "src/" import-path)
+                                      "\\.go")
+               (("k8s.io/klog/v2") "github.com/simonpasquier/klog-gokit/v3")
+               (("k8s.io/klog") "github.com/simonpasquier/klog-gokit"))
+             #t)))))
+    (native-inputs (list go-github-com-alecthomas-template
+                         go-github-com-alecthomas-units
+                         go-github-com-aws-aws-sdk-go
+                         go-github-com-cespare-xxhash
+                         go-github-com-dennwc-varint
+                         go-github-com-edsrzf-mmap-go
+                         go-github-com-fsnotify-fsnotify
+                         go-github-com-go-kit-log
+                         go-github-com-go-logfmt-logfmt
+                         go-github-com-go-openapi-strfmt
+                         go-github-com-gogo-protobuf
+                         go-github-com-golang-snappy
+                         go-github-com-json-iterator-go
+                         go-github-com-mwitkow-go-conntrack
+                         go-github-com-oklog-run
+                         go-github-com-oklog-ulid
+                         go-github-com-opentracing-contrib-go-stdlib
+                         go-github-com-opentracing-opentracing-go
+                         go-github-com-pkg-errors
+                         go-github-com-prometheus-alertmanager-api
+                         go-github-com-prometheus-client-golang
+                         go-github-com-prometheus-client-model
+                         go-github-com-prometheus-common
+                         go-github-com-prometheus-exporter-toolkit
+                         go-github-com-shurcool-httpfs
+                         go-github-com-shurcool-vfsgen
+                         go-github-com-simonpasquier-klog-gokit
+                         go-github-com-simonpasquier-klog-gokit-v3
+                         go-github-com-stretchr-testify
+                         go-github-com-uber-jaeger-client-go
+                         go-github-com-uber-jaeger-lib
+                         go-go-uber-org-atomic
+                         go-go-uber-org-goleak
+                         go-golang-org-x-net
+                         go-golang-org-x-sync
+                         go-golang-org-x-sys
+                         go-golang-org-x-time
+                         go-golang-org-x-tools
+                         go-gopkg-in-alecthomas-kingpin.v2
+                         go-gopkg-in-yaml-v2
+                         go-gopkg-in-yaml-v3))
+    (synopsis "Monitoring system and time series database")
+    (description
+     "Prometheus is a systems and service monitoring system.  It
+collects metrics from configured targets at given intervals, evaluates
+rule expressions, displays the results, and can trigger alerts when
+specified conditions are observed.")
+    (home-page "https://github.com/prometheus/prometheus")
+    (license license:asl2.0)))
+
 (define-public temper-exporter
   (let ((commit "a87bbab19c05609d62d9e4c7941178700c1ef84d")
         (revision "0"))
diff --git a/gnu/packages/patches/go-github-com-prometheus-prometheus-remove-deps.patch b/gnu/packages/patches/go-github-com-prometheus-prometheus-remove-deps.patch
new file mode 100644
index 0000000000..4d4626d2d1
--- /dev/null
+++ b/gnu/packages/patches/go-github-com-prometheus-prometheus-remove-deps.patch
@@ -0,0 +1,33 @@
+This patch reduces the Prometheus dependency tree, most of which
+consists of unpackaged Go libraries, by removing certain discovery
+plugins.
+
+diff --git a/discovery/install/install.go b/discovery/install/install.go
+index e16b348f6..a3944cf9f 100644
+--- a/discovery/install/install.go
++++ b/discovery/install/install.go
+@@ -17,24 +17,9 @@ package install
+ 
+ import (
+-	_ "github.com/prometheus/prometheus/discovery/aws"          // register aws
+-	_ "github.com/prometheus/prometheus/discovery/azure"        // register azure
+-	_ "github.com/prometheus/prometheus/discovery/consul"       // register consul
+-	_ "github.com/prometheus/prometheus/discovery/digitalocean" // register digitalocean
+-	_ "github.com/prometheus/prometheus/discovery/dns"          // register dns
+ 	_ "github.com/prometheus/prometheus/discovery/eureka"       // register eureka
+ 	_ "github.com/prometheus/prometheus/discovery/file"         // register file
+-	_ "github.com/prometheus/prometheus/discovery/gce"          // register gce
+-	_ "github.com/prometheus/prometheus/discovery/hetzner"      // register hetzner
+ 	_ "github.com/prometheus/prometheus/discovery/http"         // register http
+-	_ "github.com/prometheus/prometheus/discovery/kubernetes"   // register kubernetes
+-	_ "github.com/prometheus/prometheus/discovery/linode"       // register linode
+ 	_ "github.com/prometheus/prometheus/discovery/marathon"     // register marathon
+-	_ "github.com/prometheus/prometheus/discovery/moby"         // register moby
+-	_ "github.com/prometheus/prometheus/discovery/openstack"    // register openstack
+ 	_ "github.com/prometheus/prometheus/discovery/puppetdb"     // register puppetdb
+-	_ "github.com/prometheus/prometheus/discovery/scaleway"     // register scaleway
+ 	_ "github.com/prometheus/prometheus/discovery/triton"       // register triton
+-	_ "github.com/prometheus/prometheus/discovery/uyuni"        // register uyuni
+-	_ "github.com/prometheus/prometheus/discovery/xds"          // register xds
+-	_ "github.com/prometheus/prometheus/discovery/zookeeper"    // register zookeeper
+ )
-- 
2.34.0
M
M
Maxime Devos wrote on 25 Mar 20:09 +0100
Re: [bug#54560] [PATCH 01/47] gnu: Add go-google-golang-org-protobuf.
67d52bda1068fb82a918d4b31237fc72d84cb338.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 15:31 [+0200]:
Toggle quote (2 lines)
> +(define-public go-google-golang-org-protobuf

(A part of) this is already in Guix, see go-github-com-golang-protobuf-
proto. Possibly relevant: https://issues.guix.gnu.org/48259.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4TZxccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7i6gAP4jI1ghBUEgwbyOjJqGJlwwggJK
ocx9x9pN7CTQyq7YzAEA488QXTuOubdOqfcD+TDpsb/1Fe4UNl0F/qehHP12VAo=
=k5ud
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 25 Mar 20:12 +0100
Re: [bug#54560] [PATCH 02/47] gnu: go-github-com-golang-protobuf-proto: Update to 1.5.2.
ec9ea2f182660b0ed327d846cee442ec478ce1b3.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 15:31 [+0200]:
Toggle quote (6 lines)
> -       ;; Requires unpackaged golang.org/x/sync/errgroup
> -       #:tests? #f))
> +       #:unpack-path "github.com/golang/protobuf"))
> +    (propagated-inputs (list go-google-golang-org-protobuf))
> +    (native-inputs (list go-github-com-google-go-cmp-cmp))

I'm not seeing go-golang.org-x-sync-errgroup here. So my question is:
does this package build?
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4UOBccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7jSOAQCk/lAWNQZUzqSvbiwN3/PWL2Ms
zh9DXIWajj7YBnke5QEA5BYa/JTzJT9WJUuIfU0imqTIhrOL44BFASiDkgBthgA=
=buh9
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 25 Mar 20:14 +0100
Re: [bug#54560] [PATCH 03/47] gnu: Add go-github-com-golang-protobuf-ptypes.
ec1344f9b366ae71f6e6fde766b4b83bac8375a7.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 15:31 [+0200]:
Toggle quote (8 lines)
> +(define-public go-github-com-golang-protobuf-ptypes
> +  (package
> +    (inherit go-github-com-golang-protobuf-proto)
> +    (name "go-github-com-golang-protobuf-ptypes")
> +    (arguments
> +     '(#:import-path "github.com/golang/protobuf/ptypes"
> +       #:unpack-path "github.com/golang/protobuf"))))

go-google-golang-org-protobuf (which presumably contains the ptypes
stuff) has been packaged in 01/47, so is this separate package
still necessary?
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4UhRccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7pFCAP92GKl/iRpqMAI7yni/Yny8l+pI
P2uP1Ptff5H3x8ssbwEAxC3XOp2VR11876ALHvbs1LRchz0AhYCku3Ux+pSYzwI=
=VAws
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 25 Mar 20:15 +0100
Re: [bug#54560] [PATCH 01/47] gnu: Add go-google-golang-org-protobuf.
dca13a250afd432222c97e4ffbed6c58d533804f.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 15:31 [+0200]:
Toggle quote (9 lines)
> +       (let ((glob-path "google.golang.org/protobuf/..."))
> +         (modify-phases %standard-phases
> +           (replace 'build
> +             (lambda args
> +               (apply (assoc-ref %standard-phases
> +                                 'build)
> +                      `(,@args #:import-path
> +                        ,glob-path))))

What are ‘glob paths’ here? They don't appear to be used anywhere else
in Guix. What's the problem with the default build phase?
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4U5BccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7ujFAQDcwPAyvc/xN59TVVb35EE1izlS
sR+Z8Ow57ecYs3nZVgD9HdQ80PAnH39lRUwft5uu9JysXeXv05Fo8S6/Xd5ylw0=
=v6FJ
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 25 Mar 20:19 +0100
Re: [bug#54560] [PATCH 04/47] gnu: go-github-com-prometheus-client-golang: Update to 1.12.1.
2f0647b811e0ca69c4827081aec70748f755e0de.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 15:31 [+0200]:
Toggle quote (5 lines)
> +       #:phases
> +       (modify-phases %standard-phases
> +         ;; Source-only package
> +         (delete 'build))))

Why is this phase deleted? I know it is currently being done for a few
other go packages, but AFAIK these deletals are pointless. I'm
wondering if removing them from other Go packages would cause any
problems ...

Greetings,
Maxime
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4VxxccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7t/9AP0Zt2R4TZJpCY8RNFm77eHUZj5u
knTqXbI6rjUzPwjSbAD/Rdp3cTN3d7FqvIsOHAxoO/KXWAco0FBX6boqrag/rQA=
=amSt
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 25 Mar 20:20 +0100
6999394754cd472275bc5b95287d9bf86ca4b3d5.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 15:31 [+0200]:
Toggle quote (2 lines)
> +       #:tests? #f

Is ignoring tests still necessary?
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4V6BccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7vj5AP40STu5e6FcuzQsQ4BpmsZCUNmu
H14PYt27Sb9fWM/VbgD+JGDTrqPURYFhpSI4bE4ER5x55eqSoxAVp/4UX5W8Rwg=
=Dtpb
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 25 Mar 20:22 +0100
d56f70fc9bd0b765a907186674565d9d22d3dfd1.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 15:31 [+0200]:
Toggle quote (2 lines)
> +             #t))

Returning #t from phases is not necessary anymore. I'm wondering, did
you find this in some documentation floating around somewhere or
something? If so, I'd like to know where such that it can be updated.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4WdRccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7sz+AQCFnUmLjy3vmErQb8WjKaGPMIHV
KxbxJ68CfM3w/df9FQD/XfqIEc8ItMemKVSo8O+Q1+1pPACBTUHjpB2nSKqkIAE=
=GRPQ
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 25 Mar 20:23 +0100
37cc96afe0449357415535ca258f7223ac4e023b.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 15:31 [+0200]:
Toggle quote (2 lines)
>         '(#:tests? #f

Is this still necessary?
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4WpBccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7nqqAPsEqGjM3cTbyFc8wKy/BT8xW3ms
RWD3wdXFPAz4vBtPpAD/TCJLMpbbtJ2QPIxyciu7M72rEMtXxUPBmsdyAj7uQQc=
=yNc0
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 25 Mar 20:24 +0100
89d6f6df97b5e27bf719cb5cd9c8989a607310c6.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 15:31 [+0200]:
Toggle quote (2 lines)
> +    (name "go-github-com-prometheus-procfs")

This looks Linux-specific. Is it? If so, please remove non-linux
things from supporetd-systems:

(supported-systems (filter target-linux? %supported-systems))
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4XBBccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7uAKAP9NNZdPvulHU9JwjeoTT64ucWki
ImrpNHbjJ0xRSw3n7AEAvexuDF6THOETJp6a5F3nhVdNZUPCFelTeauVTgpHigI=
=jxTb
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 25 Mar 20:26 +0100
Re: [bug#54560] [PATCH 05/47] gnu: Add go-github-com-asaskevich-govalidator.
9de2283fcb22d2ec0ccb1c8be8295e95fb62c6d9.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 15:31 [+0200]:
Toggle quote (5 lines)
> +    (synopsis "Package of validators and sanitizers for strings,
> +numerics, slices and structs")
> +    (description "A package of validators and sanitizers for strings,
> +structs and collections.

Preferably, this description could be expanded a bit to make it more
useful. ‘(guix)Synopses and Descriptions’ has some tips.

Toggle quote (2 lines)
>   Based on validator.js.")

This does not seem relevant to the user?

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4XaBccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7lL0AP41a0D4SeI3SQOliozuZQ5FYZJE
mu2jU/l9nUpuePc0lwD6Ag1DhNf7Ho8lUvOOC9zwq0okT7uTcC9Iyg4qDihXzgs=
=Xk40
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 25 Mar 20:30 +0100
Re: [bug#54560] [PATCH 06/47] gnu: Add go-github-com-dennwc-varint.
d3ee8970f86980562c7006c6fa625a0281845854.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 15:31 [+0200]:
Toggle quote (2 lines)
> +      (synopsis "Fast varint library for Go")

From (guix)Synopses and Descriptions:

Keep in mind that the synopsis must be meaningful for a very wide
audience. For example, “Manipulate alignments in the SAM format” might
make sense for a seasoned bioinformatics researcher, but might be
fairly unhelpful or even misleading to a non-specialized audience. It
is a good idea to come up with a synopsis that gives an idea of the
application domain of the package. In this example, this might give
something like “Manipulate nucleotide sequence alignments”, which
hopefully gives the user a better idea of whether this is what they are
looking for.

I guess it is an implementation of bignums and bignum arithmetic?
Maybe "Arithmetic on arbitrarily large numbers"?

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4YOhccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7hX1AQD6/RfvrSDQfiZAEAPP9sRWax48
3bFXnUewQEi3gWqOBQEAuhp2B9u/KYM5NUPENqp+nN0n/9z61dthirqcIcWI+wc=
=cami
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 25 Mar 20:33 +0100
Re: [bug#54560] [PATCH 07/47] gnu: Add go-github-com-edsrzf-mmap-go.
809e7bd96a840dea0a7f715a0a76ea95854cc728.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 15:31 [+0200]:
Toggle quote (3 lines)
> +    (synopsis "Portable mmap package for Go")
> +    (description "@code{mmap-go} is a portable mmap package for the Go

To me, the note about portability doesn't seem very relevant to people
using Guix, though I suppose there is an argument to be made for
developers looking for sufficiently portable libraries. Guix only
supports GNU targets (GNU/Linux and GNU/Hurd), and I doubt that mmap-go
supports DOS. Everything is unportable, it's the degree of portability
that matters, and the description doesn't qualify the statement ...

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4ZJxccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7k9jAP4u1Xkd9UpLEyGzc1AAVJg+s9L0
85Mzsrajl70ycdmf3QD/StFOQxYMEu5O2am4ihSWr/CkfoSDz3G2sgVmKuNw3QY=
=g2m+
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 25 Mar 20:35 +0100
c370c8b8c7fc50e04eed7cb26a9114d18ff4753c.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 15:31 [+0200]:
Toggle quote (2 lines)
> +    (synopsis "Portable mmap package for Go")

'mmap' is a C-ism, maybe "Map files into virtual memory", with a
mention of 'mmap' in the description?
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4ZdBccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7sLvAP4qyQ2LRsSUMuovtXY082CLw4E0
+gOlEcPCNTh8m3aFqAEAnQFMTTesxc5Se3mvarF3dTS/cH8rAoZR9wCGa3NDBwk=
=VXQW
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 25 Mar 20:38 +0100
Re: [bug#54560] [PATCH 08/47] gnu: Add go-github-com-go-logfmt-logfmt.
f3ec03a20041ae025e974ed4416d475332c77c9a.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 15:31 [+0200]:
Toggle quote (2 lines)
> +    (synopsis "Marshals and unmarshals logfmt messages")

I think the less fancy words ‘encode’ and ‘decode’ are more widely
understood and just as accurate.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4aQxccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7reAAP43Me8rN0klXTIzzoUXUw4uyMi+
ktejHJAk6zRusoRVCAD/S2WpxotNpJsqZKyDfSFuQAA9bBQ4P0+d+Uoxu7Z9VA8=
=vupE
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 25 Mar 20:40 +0100
Re: [bug#54560] [PATCH 11/47] gnu: Add go-github-com-josharian-intern.
e38fc57dbfdfd7354459f76f6ff18363a56f0714.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 15:31 [+0200]:
Toggle quote (2 lines)
> +    (synopsis "Intern Go strings")

This is a rather confusing synopsis. If these strings are internal to
Go, why aren't they part of the 'go' package? I know that's not what
is meant here, but I'd recommend a different description ...
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4axhccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7nkeAP4l8YC6I6c/eBTdhp9nMfiDnouJ
v9HaQTzb7ezCJq9y0AEAxD2xvO7+dixOEqrUERh4jMlSz9W3mS7ttOjUVHyPXQg=
=wYcG
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 25 Mar 20:41 +0100
cb3e807a32623d4346946af9f1c52298a3f24068.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 15:31 [+0200]:
Toggle quote (3 lines)
> All functions may be called concurrently with themselves
> +and each other.

Can be simplified a bit:

This package is thread-safe.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4a6RccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7mEBAP985HNS2t7Sn4JyVgq1C/MTIUSE
OhaNO1VY5OqHVIyhrQEAoR9yjTqaf3HN4HM9R+xSlqMtblg4TuWP2rqfMU+ojgY=
=9bo8
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 25 Mar 20:47 +0100
Re: [bug#54560] [PATCH 12/47] gnu: Add go-github-com-julienschmidt-httprouter.
d738fd83abcb29b914cf1a8af670216e068ce205.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 15:31 [+0200]:
Toggle quote (12 lines)
> +    (synopsis "High performance HTTP request router")
> +    (description
> +     "HttpRouter is a lightweight high performance [...]
> +
> +In contrast to the default mux of Go's @code{net/http} package, this
> +router [...].  It also scales better.
> +
> +The router is optimized for high performance and a small memory
> +footprint.  It scales well even with very long paths and a large number
> +of routes.
>

While it seems that HttpRouter actually has some evidence for these
claims about lightweightness and performance
it still leans rather close to marketing, and AFAIK the conclusions
have not been independently verified.

Toggle quote (2 lines)
>   A compressing dynamic trie (radix tree) structure is used for

This is an implementation detail and hence doesn't seem relevant to me.

Greetings,
Maxime
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4cVhccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7uXmAP97fd/OjBus4FHg12Xir23w2LYe
nYF7EOfAnEb8crGtiwEA0EHYlOCG8qQ91SY3b30vUw7hZhN5oa7gPMM1zfAzeg4=
=fKdx
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 25 Mar 20:49 +0100
Re: [bug#54560] [PATCH 13/47] gnu: Add go-github-com-mailru-easyjson.
58a9c2ad343e45642676ecbd73b1069dbddf1599.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 15:31 [+0200]:
Toggle quote (5 lines)
> +    (synopsis "Fast JSON serializer for golang")
> +    (description
> +     "Package @code{easyjson} provides a fast and easy way to
> +marshal/unmarshal Go structs to/from JSON without the use of reflection.

As per (guix)Synopses and Descriptions, no marketing (‘fast and easy’)
please.

Toggle quote (4 lines)
> +In performance tests, @code{easyjson} outperforms the standard
> +@code{encoding/json} package by a factor of 4-5x, and other JSON
> +encoding packages by a factor of 2-3x.")

This seems better suited for a bug report or patches to encoding/json
and the other JSON packages --- putting this in the Guix description
isn't going to improve encoding/json and friends ...
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4c3RccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7jnOAP9tghKbKZJ+Kl66r+auZHkPpGuh
GCx4wWDXK4KXpVZ4zgD/aNGQ8rfXn1rSL7Nmm2DMEnGYIByVhmBJnU0b1H8jxAE=
=TvkL
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 25 Mar 20:50 +0100
Re: [bug#54560] [PATCH 14/47] gnu: Add go-github-com-modern-go-concurrent.
30f3ee3ae208432b621b1d82918a19c841ab11a0.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 15:31 [+0200]:
Toggle quote (3 lines)
>  including a backported version of
> +@code{sync.Map} for Go < 1.9

The Go in Guix is >1.9.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4dChccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7ioxAQDe7Zkt2cI4mNalqR9XHPMAO303
sqLeeFIn/9/724GQvwEAwRXJw7T8zh/5NHOHKLw7ZgDiUUxEM4b6WFJPgoEvogk=
=K9oA
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 25 Mar 20:51 +0100
4a4e6e4f19ec95352b81cd66c29fe55cefe51cc9.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 15:31 [+0200]:
Toggle quote (4 lines)
> +     "Concurrency utilities for Go, including a backported version of
> +@code{sync.Map} for Go < 1.9 named @code{concurrent.Map}, and
> +@code{concurrent.Executor}.")

It would be nice to actually describe what this package provides
instead of mentioning some symbols.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4dKRccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7pOEAQCm79TBP7odc2n/zYtyaJu+1jD6
zEODMggVp4xugxNQGAEAq2rTZxGO2sgdQMtgZZy5TB+Jg0yke0oZSeBgdE2ZYQg=
=d53i
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 25 Mar 20:52 +0100
Re: [bug#54560] [PATCH 46/47] gnu: Add go-github-com-prometheus-exporter-toolkit.
2c7b9e4266d1d0a62af6dcc5876561fb4220f0b3.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 15:32 [+0200]:
Toggle quote (2 lines)
> +       #:tests? #f

Why?
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4djxccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7mL7AP9235siKA8MX6OVQ8gZl0C2oO4K
4+LTsdBHBvtweI1CywD/fCAvmj4GTmu8yqo4iNW/5JTzA8tuA/EZYKTJ0LsTSgk=
=Eljs
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 25 Mar 20:55 +0100
Re: [bug#54560] [PATCH 00/47] gnu: Add go-github-com-prometheus-prometheus.
5a5a9c4a1362c8cc0a4a558f0e174f0f0e7db624.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 07:55 [+0200]:
Toggle quote (5 lines)
>   * The version of go-golang-org-x-net currently in Guix is slightly
>     older, and doesn't include the HTTP/2 ConfigureTransports function.
>     I thought I'd rather not update this package to avoid rebuilding its
>     dependents, and resorted to another patch.

In which patch is this?

Anyway, Go packages are relatively cheap to build, so maybe the number
of dependents isn't a problem, and it will have to updated sometime
anyway ...
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4eGhccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7i1aAQCMrItanzkLvSmiyaUzCmp7Km2j
HP8eQTqEkzlj2nssfQD/Zy5Qx7jDCHnRt32bBTREsPTM25xbIVFR6SpdEPsygQg=
=bXbW
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 25 Mar 20:59 +0100
2ee15277aa24fefc15eed65f9ceff799905b4e3a.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 07:55 [+0200]:
Toggle quote (9 lines)
>   * A couple of the Prometheus packages already existed under (gnu
>     packages syncthing), although unused. These look like remnants of
>     older packages. I kept them in the same module, but added new
>     packages under (gnu packages golang).
>
>     There might be appetite to consolidate all of these Prometheus
>     dependencies under (gnu packages golang), I'm willing to put in the
>     work if that's the case.

The (... golang) module is already big (~10000) lines (*), so I would
recommend not putting it in (gnu packages golang) and instead looking
into creating a new module -- maybe (gnu packages prometheus)?
Non-Go prometheus-related packages could be put there as well

Alternatively, maybe the already-existing (gnu packages monitoring)
would be a good place?

(*) IIUC, crates-io becoming big has caused building guix to become
slower because bignums had to be used?
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4fBxccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7nQlAQDWKYF86RGG9guI8K+rEUiL5nL7
mfv9r2N3FNw2W0i1XQEAnpKJ/PTldp8lmXmaHe0m5siMOjOK9zK3hjMaBD2IyQ0=
=K2GD
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 25 Mar 21:04 +0100
Re: [bug#54560] [PATCH 47/47] gnu: Add go-github-com-prometheus-prometheus.
551eff608e25d80a5b055cab5fda47be166d803b.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 15:32 [+0200]:
Toggle quote (2 lines)
> +(define-public go-github-com-prometheus-prometheus

IIUC, the result is some [...]/bin/prometheus binary that can be run or
something like that and not a library, so I think that the 'go-github-
com-prometheus) prefix can be dropped here. I would go with
"prometheus" such that the user can just do "guix shell prometheus".

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4gRhccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7oJPAP0ZRF9q3/Abm6B0f50/xgqhf0wR
HGM2Q4ULevrKkxSfCAD+McLK8TDTkRxRY4dMwq1S6/ycjL+JMIcEaWGKo0ZwuA0=
=ri8f
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 25 Mar 21:05 +0100
01fc9197987c88e182efe6121f45e1c99fab6733.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 15:32 [+0200]:
Toggle quote (42 lines)
> +    (native-inputs (list go-github-com-alecthomas-template
> +                         go-github-com-alecthomas-units
> +                         go-github-com-aws-aws-sdk-go
> +                         go-github-com-cespare-xxhash
> +                         go-github-com-dennwc-varint
> +                         go-github-com-edsrzf-mmap-go
> +                         go-github-com-fsnotify-fsnotify
> +                         go-github-com-go-kit-log
> +                         go-github-com-go-logfmt-logfmt
> +                         go-github-com-go-openapi-strfmt
> +                         go-github-com-gogo-protobuf
> +                         go-github-com-golang-snappy
> +                         go-github-com-json-iterator-go
> +                         go-github-com-mwitkow-go-conntrack
> +                         go-github-com-oklog-run
> +                         go-github-com-oklog-ulid
> +                         go-github-com-opentracing-contrib-go-stdlib
> +                         go-github-com-opentracing-opentracing-go
> +                         go-github-com-pkg-errors
> +                         go-github-com-prometheus-alertmanager-api
> +                         go-github-com-prometheus-client-golang
> +                         go-github-com-prometheus-client-model
> +                         go-github-com-prometheus-common
> +                         go-github-com-prometheus-exporter-toolkit
> +                         go-github-com-shurcool-httpfs
> +                         go-github-com-shurcool-vfsgen
> +                         go-github-com-simonpasquier-klog-gokit
> +                         go-github-com-simonpasquier-klog-gokit-v3
> +                         go-github-com-stretchr-testify
> +                         go-github-com-uber-jaeger-client-go
> +                         go-github-com-uber-jaeger-lib
> +                         go-go-uber-org-atomic
> +                         go-go-uber-org-goleak
> +                         go-golang-org-x-net
> +                         go-golang-org-x-sync
> +                         go-golang-org-x-sys
> +                         go-golang-org-x-time
> +                         go-golang-org-x-tools
> +                         go-gopkg-in-alecthomas-kingpin.v2
> +                         go-gopkg-in-yaml-v2
> +                         go-gopkg-in-yaml-v3))

I doubt that all of these are test dependencies, probably most of them
need to be in 'inputs'.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj4gkhccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7r66AP9sd5EqS34IpJ/R4jeygtJa/ecC
GK5h7+M+vDSmcAEW2gEA8s2WiKuIgPGyqwdENAvO9wv+iHm/pZjq4/9wIHtE5gw=
=81GW
-----END PGP SIGNATURE-----


L
L
Leo Nikkilä wrote on 25 Mar 23:53 +0100
Re: [bug#54560] [PATCH 00/47] gnu: Add go-github-com-prometheus-prometheus.
a38d4e13-8f58-486a-adfa-b4489abf431d@beta.fastmail.com
Maxime, thank you for the speedy review.

Toggle quote (2 lines)
> In which patch is this?

This is in go-github-com-prometheus-common-remove-readidletimeout.patch.

Toggle quote (2 lines)
> Maybe the number of dependents isn't a problem

According to `guix refresh --list-dependent' there are 34 dependents, that's less than I expected. I'll remove the patch and attempt an upgrade here.

Toggle quote (3 lines)
> Alternatively, maybe the already-existing (gnu packages monitoring)
> would be a good place?

That might be better for now. It's not as large yet, and it already houses existing packages like go-github-com-prometheus-node-exporter.

Would it be appropriate to update the existing variables in (gnu packages syncthing) to use `deprecated-package'?

Toggle quote (2 lines)
> (guix)Synopses and Descriptions

Regarding your comments on several patches about descriptions: this is entirely fair, I didn't spend much time on these at all and mostly copied what was described upstream.

I'll update these.
L
L
Leo Nikkilä wrote on 25 Mar 23:55 +0100
Re: [bug#54560] [PATCH 47/47] gnu: Add go-github-com-prometheus-prometheus.
65336416-1e35-4100-addc-3c68c2e2805a@beta.fastmail.com
Toggle quote (2 lines)
> I would go with "prometheus" such that the user can just do "guix shell prometheus".

Great point, will update this.

Toggle quote (3 lines)
> I doubt that all of these are test dependencies, probably most of them
> need to be in 'inputs'.

This as well.
L
L
Leo Nikkilä wrote on 25 Mar 23:55 +0100
Re: [bug#54560] [PATCH 02/47] gnu: go-github-com-golang-protobuf-proto: Update to 1.5.2.
426b2075-884e-43b6-bd26-175f165b761a@beta.fastmail.com
Toggle quote (2 lines)
> I'm not seeing go-golang.org-x-sync-errgroup here.

The errgroup dependency was dropped in 1.3.1:

Later in 1.4.0, the package was rewritten in terms of google.golang.org/protobuf, thus the added dependency:
L
L
Leo Nikkilä wrote on 25 Mar 23:55 +0100
Re: [bug#54560] [PATCH 01/47] gnu: Add go-google-golang-org-protobuf.
d9a05508-917d-4463-b871-8b173edc6fae@beta.fastmail.com
Toggle quote (2 lines)
> see go-github-com-golang-protobuf-proto.

I clarified the difference between github.com/golang/protobuf and google.golang.org/protobuf under 03/47.

Should https://issues.guix.gnu.org/48259 be applied, the separate `-proto` and `-ptypes` packages could certainly be replaced by the merged package.

Toggle quote (3 lines)
> What are ‘glob paths’ here? They don't appear to be used anywhere else
> in Guix. What's the problem with the default build phase?

There's no top-level package in google.golang.org/protobuf, instead the repository consists of individual packages which depend on each other.

Looking at (gnu packages golang), I see two ways this has been dealt with before: splitting each one into multiple Guix packages, or building all of the packages together in one Guix package.

There are many of these packages in the repository [0], and another list of "internal" packages [1]. (This listing doesn't cover all of them, some are deeper within the tree.) In order to use this library you'll need most of them, and splitting each one into a separate Guix package feels unnecessary.

There are examples in (gnu packages golang) where a single Guix package contains many Golang packages, e.g. go-github-com-blanu-dust, redefining build phases to reduce a list of packages instead.

However, the number of these packages makes this approach difficult. The list of internal packages is not considered public nor stable; these are added and removed between releases. Maintaining a list of these within Guix seems prone to breaking during the update process.

`go build' and others support wildcards [2], which are also used within build scripts of the library [3]. Since the upstream build makes use of these, I thought they would be fair game to build it.

However, due to how go-build-system correlates these import paths with directory paths, supporting wildcards in `#:import-path` directly would require further changes to the build system.

Adapting how go-github-com-blanu-dust and others call these build phases directly, I found this to be the simplest way to use the wildcard capability, and avoid having to maintain a list of the packages within Guix directly.

Happy to try out other approaches, this is just what I came up with earlier.

I should've also specified `wildcard' instead of `glob' when naming this.

L
L
Leo Nikkilä wrote on 25 Mar 23:55 +0100
Re: [bug#54560] [PATCH 04/47] gnu: go-github-com-prometheus-client-golang: Update to 1.12.1.
936fc378-2e49-4c4a-a584-d319eb360efc@beta.fastmail.com
Toggle quote (4 lines)
> Why is the 'build phase deleted?

> Is ignoring tests still necessary?

Looks like you're right, I was able to use the default build phases with these packages locally, after minor tweaks. I believe I followed the pattern from the existing packages earlier, seems it's unnecessary.

Toggle quote (4 lines)
> Returning #t from phases is not necessary anymore. I'm wondering, did
> you find this in some documentation floating around somewhere or
> something?

Old habit, I learned this when this was still common. Will remove these.

Toggle quote (2 lines)
> This looks Linux-specific.

Thank you, it is.
L
L
Leo Nikkilä wrote on 25 Mar 23:55 +0100
Re: [bug#54560] [PATCH 46/47] gnu: Add go-github-com-prometheus-exporter-toolkit.
a18a1ed7-886f-427f-b386-7698826c2b73@beta.fastmail.com
Toggle quote (4 lines)
> > + #:tests? #f
>
> Why?

I copied this over from the packages in (... syncthing), this is unnecessary as well. Will remove.
M
M
Maxime Devos wrote on 26 Mar 10:18 +0100
Re: [bug#54560] [PATCH 00/47] gnu: Add go-github-com-prometheus-prometheus.
8e95b8f10fc211fa4d4d883ffd1e3f43ec5a074d.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 22:53 [+0000]:
Toggle quote (2 lines)
> Would it be appropriate to update the existing variables in (gnu packages syncthing) to use `deprecated-package'?

Looking at "git grep -F deprecated-package", 'deprecated-package' seems
to be used to indicate that a package has been renamed, so I guess it
isn't.

Greetings,
Maxime
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj7adBccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7v96AQDqyiS7nM55t65A7DScMsv9rLKb
nAmCQk7H0M4MvHRUGgD/SOcENv6LCtI9FhmDPP0WPi0XdOtH6hh3PYRav4Rbmgo=
=gnGw
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 26 Mar 10:31 +0100
Re: [bug#54560] [PATCH 01/47] gnu: Add go-google-golang-org-protobuf.
774959929b959d2dd38e516d84d0e779ecf47083.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 22:55 [+0000]:
Toggle quote (2 lines)
> However, due to how go-build-system correlates these import paths with directory paths, supporting wildcards in `#:import-path` directly would require further changes to the build system.

Looking at go-build-system.scm, it seems that 'unpack, 'install'
and 'install-licenses' need to be modified to drop the "/..." suffix,
if any? If this is done in go-build-system, then more packages could
benefit and perhaps some existing package definitions could be
simplified.

;; for how wildcard paths work.
(define (unwildcard-import-path import-path
(if (string-suffix? "/..." import-path)
(string-drop-right import-path 4)
import-path))

;; in 'unpack', change
;; (when (string-null? unpack-path)
;; (set! unpack-path import-path))
;; to
;; (when (string-null? unpack-path)
;; (set! unpack-path (unwildcard-import-path unpack-path)))
;;
;; and likewise in 'install' and and 'install-license-files'.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj7dZBccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7te5AP4+yHh0NcAe2g9PJOycz8OwoHMJ
F1nAKXPRT6ecl3QoFwD/W9a8IM6i9b1dY334lKWMGzZhYBZB9YJ0pSZ6sQ4qTwQ=
=Hd8b
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 26 Mar 10:36 +0100
Re: [bug#54560] [PATCH 00/47] gnu: Add go-github-com-prometheus-prometheus.
e2066cb38f1d13844284352c0364768e572e3977.camel@telenet.be
Leo Nikkilä schreef op vr 25-03-2022 om 22:53 [+0000]:
Toggle quote (2 lines)
> Maxime, thank you for the speedy review.

TBC, this is a partial review that just looks at the package
definitions a bit. I did not look at the source code for bundling,
malware, license problems ...

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYj7elRccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7hkXAQDWTvr3uPaxXBphBUU2jd+wkoi6
Gj6ucZosOsHMrvMFTAD+LFr4rjm4oanN/3/SqFGJYJLgtGOsV7LeBVA41ou+LQo=
=A7vL
-----END PGP SIGNATURE-----


?