diff options
Diffstat (limited to 'gnu/packages/golang-web.scm')
-rw-r--r-- | gnu/packages/golang-web.scm | 2911 |
1 files changed, 2371 insertions, 540 deletions
diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm index 6dab984885..c1cf6b7de9 100644 --- a/gnu/packages/golang-web.scm +++ b/gnu/packages/golang-web.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2017, 2019, 2020, 2021 Leo Famulari <leo@famulari.name> ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr> -;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2019 Maxim Cournoyer <maxim@guixotic.coop> ;;; Copyright © 2019 Vagrant Cascadian <vagrant@debian.org> ;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net> ;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us> @@ -23,7 +23,7 @@ ;;; Copyright © 2022 Leo Nikkilä <hello@lnikki.la> ;;; Copyright © 2022 jgart via Guix-patches via <guix-patches@gnu.org> ;;; Copyright © 2022 muradm <mail@muradm.net> -;;; Copyright © 2022, 2023 Sharlatan Hellseher <sharlatanus@gmail.com> +;;; Copyright © 2022, 2023, 2025 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; Copyright © 2023 Felix Lechner <felix.lechner@lease-up.com> ;;; Copyright © 2023 Filip Lajszczak <filip@lajszczak.dev> ;;; Copyright © 2023 Fries <fries1234@protonmail.com> @@ -42,6 +42,9 @@ ;;; Copyright © 2025 André Batista <nandre@riseup.net> ;;; Copyright © 2025 Jussi Timperi <jussi.timperi@iki.fi> ;;; Copyright © 2025 Ashvith Shetty <ashvithshetty0010@zohomail.in> +;;; Copyright © 2025 Arthur Rodrigues <arthurhdrodrigues@proton.me> +;;; Copyright © 2025 David Thompson <davet@gnu.org> +;;; Copyright © 2025 Danny Milosavljevic <dannym@friendly-machines.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -73,7 +76,6 @@ #:use-module (gnu packages golang-compression) #:use-module (gnu packages golang-crypto) #:use-module (gnu packages golang-xyz) - #:use-module (gnu packages ipfs) #:use-module (gnu packages prometheus) #:use-module (gnu packages specifications) #:use-module (gnu packages tls) @@ -119,7 +121,6 @@ (build-system go-build-system) (arguments (list - #:go go-1.22 #:import-path "0xacab.org/leap/lb")) (propagated-inputs (list go-github-com-golang-protobuf @@ -213,24 +214,26 @@ devices.") (define-public go-cloud-google-com-go-compute-metadata (package (name "go-cloud-google-com-go-compute-metadata") - (version "0.81.0") + (version "0.7.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/googleapis/google-cloud-go") - (commit (string-append "v" version)))) + (commit (go-version->git-ref version + #:subdir "compute/metadata")))) (file-name (git-file-name name version)) (sha256 - (base32 "15jgynqb5pbxqbj3a7ii970yn4srsw1dbxzxnhpkfkmplalpgyh3")))) + (base32 "1ryq4ay3myk7w2wb7pzfk0pbvz6ymirxq91zm6rql7a1vb15x0n9")))) (build-system go-build-system) (arguments - '(#:unpack-path "cloud.google.com/go" - #:import-path "cloud.google.com/go/compute/metadata")) - (home-page - "https://pkg.go.dev/cloud.google.com/go/compute/metadata") - (synopsis - "Go wrapper for Google Compute Engine metadata service") + (list + #:import-path "cloud.google.com/go/compute/metadata" + #:unpack-path "cloud.google.com/go")) + (native-inputs + (list go-github-com-google-go-cmp)) + (home-page "https://pkg.go.dev/cloud.google.com/go/compute/metadata") + (synopsis "Go wrapper for Google Compute Engine metadata service") (description "This package provides access to Google Compute Engine (GCE) metadata and API service accounts for Go.") @@ -272,6 +275,47 @@ corresponds to the highest supported version of the gitea API, but backwards-compatibility is mostly given.") (license license:expat))) +(define-public go-connectrpc-com-connect + (package + (name "go-connectrpc-com-connect") + (version "1.18.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/connectrpc/connect-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0a6rzp57srhyf66jri62gfsj4ndpfxgb9ln15qdpfwv0xvcffz63")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - connectrpc.com/connect/internal/conformance + (delete-file-recursively "internal/conformance"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "connectrpc.com/connect" + ;; TODO: Generate with protoc-gen-go, protoc-gen-connect-go, and buf. + ;; See: <https://github.com/connectrpc/connect-go/blob/v1.18.1/Makefile#L80>. + #:test-flags #~(list "-short" "-skip" "TestVersion|TestGenerate"))) + (propagated-inputs + (list go-github-com-google-go-cmp + go-golang-org-x-net + go-google-golang-org-protobuf)) + (home-page "https://connectrpc.com/connect") + (synopsis "@acronym{RPC, Remote procedure call} framework built on +Protocol Buffers") + (description + "Package @code{connect} is a slim RPC framework built on Protocol Buffers +and @code{net/http}. In addition to supporting its own protocol, Connect +handlers and clients are wire-compatible with gRPC and gRPC-Web, including +streaming.") + (license license:asl2.0))) + (define-public go-git-sr-ht-adnano-go-gemini (package (name "go-git-sr-ht-adnano-go-gemini") @@ -302,7 +346,7 @@ Gemini clients and servers.") (define-public go-git-sr-ht-emersion-gqlclient (package (name "go-git-sr-ht-emersion-gqlclient") - (version "0.0.0-20230820050442-8873fe0204b9") + (version "0.0.0-20250318184027-d4a003529bba") (source (origin (method git-fetch) @@ -311,10 +355,11 @@ Gemini clients and servers.") (commit (go-version->git-ref version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0x64kcryawdr0daq1w6fada60zqrddw75yi397835b9ij7wb5gmh")))) + (base32 "1yqgyjdi9cxkqdp20xwqycd8rccpqqanpq29k1qz8jazabkdlr06")))) (build-system go-build-system) (arguments (list + #:go go-1.23 #:embed-files #~(list "prelude.graphql") #:import-path "git.sr.ht/~emersion/gqlclient")) ;; For the CLI. @@ -330,7 +375,7 @@ Gemini clients and servers.") (define-public go-git-sr-ht-rockorager-go-jmap (package (name "go-git-sr-ht-rockorager-go-jmap") - (version "0.5.0") + (version "0.5.2") (source (origin (method git-fetch) @@ -339,19 +384,12 @@ Gemini clients and servers.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1r8bmdlmvpk08i7xrqwgv0aaz05564wgcyji73nszdh2s32m4kzl")))) + (base32 "00lj2ckg039xn7gnwyvl55wcwrzcnz4383qajv35dv9yp19vnljy")))) (build-system go-build-system) (arguments (list - #:import-path "git.sr.ht/~rockorager/go-jmap" - #:phases - #~(modify-phases %standard-phases - ;; XXX: Workaround for go-build-system's lack of Go modules support. - (replace 'check - (lambda* (#:key tests? import-path #:allow-other-keys) - (when tests? - (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "test" "-v" "./...")))))))) + #:go go-1.23 + #:import-path "git.sr.ht/~rockorager/go-jmap")) (native-inputs (list go-github-com-stretchr-testify)) @@ -368,7 +406,7 @@ Gemini clients and servers.") (define-public go-github-com-42wim-httpsig (package (name "go-github-com-42wim-httpsig") - (version "1.2.2") + (version "1.2.3") (source (origin (method git-fetch) @@ -377,11 +415,14 @@ Gemini clients and servers.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0r6q3g0ghccnvqsw7g3g18s710q8haq5vzpvhrb48vmbcj0pdyn8")))) + (base32 "1526ck0d32qjc6xkfi6s5wj241r9slng596w9slnpska5vazddv2")))) (build-system go-build-system) (arguments (list - #:import-path "github.com/42wim/httpsig")) + #:import-path "github.com/42wim/httpsig" + ;; algorithms_test.go:623: "rsa_SHA3_224": expected error, got: + ;; %!s(<nil>) + #:test-flags #~(list "-skip" "TestSignerSigns"))) (propagated-inputs (list go-golang-org-x-crypto)) (home-page "https://github.com/42wim/httpsig") (synopsis "Golang implementation of the HTTP Signatures RFC draft") @@ -397,6 +438,73 @@ Signature headers are to be set (but not both). It's an alternative fork of @url{https://github.com/go-fed/httpsig}.") (license license:bsd-3))) +(define-public go-github-com-a-h-templ + (package + (name "go-github-com-a-h-templ") + (version "0.3.943") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/a-h/templ") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0dqcdva7z53lhfv6ldjixwp4a363sr2cv5qm8rz2w7n8ba60m37f")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/a-h/templ/docs + ;; - github.com/a-h/templ/runtime/fuzzing + (delete-file-recursively "docs") + (delete-file-recursively "runtime/fuzzing"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/a-h/templ" + #:unpack-path "github.com/a-h/templ" + ;; TODO: Find out how to enable complete test suit, which might need + ;; gopls and other extra commands available in the PATH. + #:test-flags + #~(list "-skip" (string-join + (list "Test/css-1.css" + "Test/js-1.js" + "TestFormatting" + "TestIsAvailable/existing_commands_return_true") + "|")) + #:test-subdirs #~(list "internal/...") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key unpack-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" unpack-path) + (delete-file-recursively "examples"))))))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-a-h-parse + go-github-com-andybalholm-brotli + go-github-com-cenkalti-backoff-v4 + go-github-com-cli-browser + go-github-com-fatih-color + go-github-com-fsnotify-fsnotify + go-github-com-google-go-cmp + go-github-com-natefinch-atomic + go-github-com-rs-cors + go-golang-org-x-mod + go-golang-org-x-net + go-golang-org-x-sync + go-golang-org-x-tools)) + (home-page "https://templ.guide/") + (synopsis "Language for writing HTML user interfaces in Golang") + (description + "This package implements a functionality to create components that render +fragments of HTML and compose them to create screens, pages, documents, or +apps.") + (license license:expat))) + (define-public go-github-com-aki237-nscjar (package (name "go-github-com-aki237-nscjar") @@ -454,7 +562,7 @@ handlers.") (define-public go-github-com-alexliesenfeld-health (package (name "go-github-com-alexliesenfeld-health") - (version "0.8.0") + (version "0.8.1") (source (origin (method git-fetch) @@ -463,7 +571,7 @@ handlers.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1fchlvxwidsscskwq07vhxfwcn5wbigbizi51619l8gg09mr158q")))) + (base32 "19p0rs1dmvf3cnylyykmmnma2g5x2vy8gasr2rjl28ma58w6l0d3")))) (build-system go-build-system) (arguments (list @@ -535,6 +643,7 @@ example @code{GOPPROF=http,block}.") (build-system go-build-system) (arguments (list + #:go go-1.23 #:import-path "github.com/apex/log")) (native-inputs (list go-github-com-tj-assert @@ -565,7 +674,8 @@ require encoding and decoding before fanning-out to handlers.") (hidden-package (package/inherit go-github-com-apex-log (arguments - (list #:import-path "github.com/apex/log" + (list #:go go-1.23 + #:import-path "github.com/apex/log" #:test-subdirs #~(list "."))) (propagated-inputs (list go-github-com-fatih-color @@ -829,7 +939,7 @@ functions.") (define-public go-github-com-aws-aws-sdk-go (package (name "go-github-com-aws-aws-sdk-go") - (version "1.55.2") + (version "1.55.7") (source (origin (method git-fetch) @@ -838,26 +948,13 @@ functions.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0wsl1vcig3j9z6v2hppfr1bvrvbisck026fwq2a7yzmx36pwnj6a")))) + (base32 "11lyc27wwpfly4hvvml8j3y16g010snd4qjc9ivlwdcafjpxly33")))) (build-system go-build-system) (arguments (list + #:go go-1.23 #:import-path "github.com/aws/aws-sdk-go" - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'disable-failing-tests - (lambda* (#:key tests? import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (substitute* (find-files "." "\\_test.go$") - (("TestProcessProviderTimeout") - "OffTestProcessProviderTimeout"))))) - ;; XXX: Workaround for go-build-system's lack of Go modules - ;; support. - (replace 'check - (lambda* (#:key tests? import-path #:allow-other-keys) - (when tests? - (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "test" "-v" "./...")))))))) + #:test-flags #~(list "-skip" "TestProcessProviderTimeout"))) (propagated-inputs (list go-github-com-jmespath-go-jmespath)) (home-page "https://github.com/aws/aws-sdk-go") @@ -869,7 +966,7 @@ functions.") (define-public go-github-com-aws-aws-sdk-go-v2 (package (name "go-github-com-aws-aws-sdk-go-v2") - (version "1.32.0") + (version "1.36.4") (source (origin (method git-fetch) @@ -878,7 +975,7 @@ functions.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1iflf2ski7vm2z78wdmbrqpchc3qr50macnf965wmdyfinvx58wn")) + (base32 "07g7vgpkq8cqirc2s64d9yswnpzdb7jzqr5kwrpblya2nq27inml")) ;; XXX: It contains a lot of sub packages defined with go.mod, consider ;; to pack them separately. (modules '((guix build utils))) @@ -886,9 +983,13 @@ functions.") #~(begin ;; Submodules with their own go.mod files and packaged separately: ;; + ;; - github.com/aws/aws-sdk-go-v2/config + ;; - github.com/aws/aws-sdk-go-v2/service/s3 ;; - github.com/aws/aws-sdk-go-v2/service/sqs (for-each delete-file-recursively - (list "service/sqs")))))) + (list "config" + "service/s3" + "service/sqs")))))) (build-system go-build-system) (arguments (list @@ -905,20 +1006,37 @@ functions.") (define-public go-github-com-aws-aws-sdk-go-v2-config (package - (inherit go-github-com-aws-aws-sdk-go-v2) (name "go-github-com-aws-aws-sdk-go-v2-config") - (version "1.18.5") + (version "1.29.16") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aws/aws-sdk-go-v2") + (commit (go-version->git-ref version + #:subdir "config")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "07g7vgpkq8cqirc2s64d9yswnpzdb7jzqr5kwrpblya2nq27inml")))) + (build-system go-build-system) (arguments - '(#:import-path "github.com/aws/aws-sdk-go-v2/config" - #:unpack-path "github.com/aws/aws-sdk-go-v2")) + (list + #:import-path "github.com/aws/aws-sdk-go-v2/config" + #:unpack-path "github.com/aws/aws-sdk-go-v2")) (propagated-inputs - (list go-github-com-google-go-cmp - go-github-com-aws-smithy-go)))) + (list go-github-com-aws-smithy-go)) + (home-page "https://github.com/aws/aws-sdk-go-v2") + (synopsis "AWS SDK for Go v2 - config module") + (description + "Package config provides utilities for loading configuration from +multiple sources that can be used to configure the SDK's API clients, and +utilities.") + (license license:asl2.0))) (define-public go-github-com-aws-aws-sdk-go-v2-credentials (package (name "go-github-com-aws-aws-sdk-go-v2-credentials") - (version "1.17.48") + (version "1.17.69") (source (origin (method git-fetch) @@ -928,7 +1046,7 @@ functions.") #:subdir "credentials")))) (file-name (git-file-name name version)) (sha256 - (base32 "1n3spqncpw6w11pwkqaiq7jyv6dv0229jsbshibg24l2g3accdqi")))) + (base32 "07g7vgpkq8cqirc2s64d9yswnpzdb7jzqr5kwrpblya2nq27inml")))) (build-system go-build-system) (arguments (list @@ -953,13 +1071,30 @@ credentials sources.") (define-public go-github-com-aws-aws-sdk-go-v2-feature-s3-manager (package - (inherit go-github-com-aws-aws-sdk-go-v2) (name "go-github-com-aws-aws-sdk-go-v2-feature-s3-manager") - (version "1.11.44") + (version "1.17.78") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aws/aws-sdk-go-v2") + (commit (go-version->git-ref version + #:subdir "feature/s3/manager")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0g6pmb6i7l88d2k4i2jz2mfxjb8snq8lhl419yvblgm96zgp5qbi")))) + (build-system go-build-system) (arguments - '(#:import-path "github.com/aws/aws-sdk-go-v2/feature/s3/manager" - #:unpack-path "github.com/aws/aws-sdk-go-v2")) - (propagated-inputs (list go-github-com-aws-smithy-go)))) + (list + #:import-path "github.com/aws/aws-sdk-go-v2/feature/s3/manager" + #:unpack-path "github.com/aws/aws-sdk-go-v2")) + (propagated-inputs (list go-github-com-aws-smithy-go)) + (home-page "https://github.com/aws/aws-sdk-go-v2") + (synopsis "AWS SDK for Go v2 - S3 manager module") + (description + "Package manager provides utilities to upload and download objects from +S3 concurrently. Helpful for when working with large objects.") + (license license:asl2.0))) (define-public go-github-com-aws-aws-sdk-go-v2-service-iam (package @@ -974,14 +1109,31 @@ credentials sources.") (define-public go-github-com-aws-aws-sdk-go-v2-service-s3 (package - (inherit go-github-com-aws-aws-sdk-go-v2) (name "go-github-com-aws-aws-sdk-go-v2-service-s3") - (version "1.30.0") + (version "1.80.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/aws/aws-sdk-go-v2") + (commit (go-version->git-ref version + #:subdir "service/s3")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "07g7vgpkq8cqirc2s64d9yswnpzdb7jzqr5kwrpblya2nq27inml")))) + (build-system go-build-system) (arguments - '(#:import-path "github.com/aws/aws-sdk-go-v2/service/s3" - #:unpack-path "github.com/aws/aws-sdk-go-v2")) + (list + #:import-path "github.com/aws/aws-sdk-go-v2/service/s3" + #:unpack-path "github.com/aws/aws-sdk-go-v2")) (propagated-inputs - (list go-github-com-aws-smithy-go)))) + (list go-github-com-aws-smithy-go)) + (home-page "https://github.com/aws/aws-sdk-go-v2") + (synopsis "AWS SDK for Go v2 - S3 service module") + (description + "Package s3 provides the API client, operations, and parameter types for +Amazon Simple Storage Service.") + (license license:asl2.0))) (define-public go-github-com-aws-aws-sdk-go-v2-service-secretsmanager (package @@ -1014,7 +1166,7 @@ parameter types for AWS Secrets Manager.") (define-public go-github-com-aws-aws-sdk-go-v2-service-sqs (package (name "go-github-com-aws-aws-sdk-go-v2-service-sqs") - (version "1.37.6") + (version "1.38.7") (source (origin (method git-fetch) @@ -1024,7 +1176,7 @@ parameter types for AWS Secrets Manager.") #:subdir "service/sqs")))) (file-name (git-file-name name version)) (sha256 - (base32 "158mgp8czzkhjdwli2wciwqihs56jp879ahjdjyy8c6fn0g3xdvb")) + (base32 "07g7vgpkq8cqirc2s64d9yswnpzdb7jzqr5kwrpblya2nq27inml")) (modules '((guix build utils) (ice-9 ftw) (srfi srfi-26))) @@ -1034,18 +1186,11 @@ parameter types for AWS Secrets Manager.") ;; Consider to implement it as re-usable procedure in ;; guix/build/utils or guix/build-system/go. (define (delete-all-but directory . preserve) - (define (directory? x) - (and=> (stat x #f) - (compose (cut eq? 'directory <>) stat:type))) (with-directory-excursion directory - (let* ((pred - (negate (cut member <> (append '("." "..") preserve)))) + (let* ((pred (negate (cut member <> + (cons* "." ".." preserve)))) (items (scandir "." pred))) - (for-each (lambda (item) - (if (directory? item) - (delete-file-recursively item) - (delete-file item))) - items)))) + (for-each (cut delete-file-recursively <>) items)))) (delete-all-but "service" "sqs") (delete-all-but "." "service"))))) (build-system go-build-system) @@ -1099,7 +1244,7 @@ Amazon Simple Queue Service.") (define-public go-github-com-aws-smithy-go (package (name "go-github-com-aws-smithy-go") - (version "1.22.1") + (version "1.22.2") (source (origin (method git-fetch) @@ -1108,7 +1253,7 @@ Amazon Simple Queue Service.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "16jbv7cyj85048f4kcrib8k2yif165sc099h0aklal5dwlf85xcg")) + (base32 "1jm5d8ampysimhnm3ginfv0fh8cmp4f2fghisk5lk0zsc0anahrm")) (modules '((guix build utils))) (snippet #~(begin @@ -1152,7 +1297,10 @@ Amazon Simple Queue Service.") (list #:skip-build? #t #:import-path "github.com/aws/smithy-go/aws-http-auth" - #:unpack-path "github.com/aws/smithy-go")) + #:unpack-path "github.com/aws/smithy-go" + ;; panic: runtime error: invalid memory address or nil pointer + ;; dereference + #:test-flags #~(list "-skip" "TestSignRequest_SignStringError"))) (home-page "https://github.com/aws/smithy-go") (synopsis "Consumable SigV4 and SigV4a request signing") (description @@ -1451,7 +1599,7 @@ differentiate between installs of Mozilla software in @code{installs.ini} and (define-public go-github-com-caddyserver-certmagic (package (name "go-github-com-caddyserver-certmagic") - (version "0.21.4") + (version "0.22.1") (source (origin (method git-fetch) @@ -1460,7 +1608,7 @@ differentiate between installs of Mozilla software in @code{installs.ini} and (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "061whx9p00lpxlfnywizqx5z9b020ggqg5vx5r5v2qhdrprg1gkz")))) + (base32 "0xi3c4b0wcpk75lrpvx254zf49pi2yibxvl3x7hm9j1xhah6fsaa")))) (build-system go-build-system) (arguments (list @@ -1481,10 +1629,11 @@ differentiate between installs of Mozilla software in @code{installs.ini} and (list go-github-com-caddyserver-zerossl go-github-com-klauspost-cpuid-v2 go-github-com-libdns-libdns - go-github-com-mholt-acmez + go-github-com-mholt-acmez-v3 go-github-com-miekg-dns go-github-com-zeebo-blake3 go-go-uber-org-zap + go-go-uber-org-zap-exp go-golang-org-x-crypto go-golang-org-x-net)) (home-page "https://github.com/caddyserver/certmagic") @@ -1531,7 +1680,7 @@ and reduce scope of key compromise. (define-public go-github-com-caddyserver-zerossl (package (name "go-github-com-caddyserver-zerossl") - (version "0.1.0") + (version "0.1.3") (source (origin (method git-fetch) @@ -1540,7 +1689,7 @@ and reduce scope of key compromise. (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0hr2kdabhm35hz5krp7m3g6wxvyb9xlqgmy3krf4wwb3yabsqp1m")))) + (base32 "16mrlmsl3ajdrn2qsdq51k79z3fi8v8j82r2c6xyj7mp2yr979h6")))) (build-system go-build-system) (arguments (list @@ -1595,6 +1744,7 @@ and RFC 5389).") (build-system go-build-system) (arguments (list + #:go go-1.23 #:import-path "github.com/cenkalti/backoff/v4")) (home-page "https://github.com/cenkalti/backoff") (synopsis "The exponential backoff algorithm in Go") @@ -1612,6 +1762,31 @@ process, in order to gradually find an acceptable rate. The retries exponentially increase and stop increasing when a certain threshold is met.") (license license:expat))) +(define-public go-github-com-cenkalti-backoff-v5 + (package + (inherit go-github-com-cenkalti-backoff-v4) + (name "go-github-com-cenkalti-backoff-v5") + (version "5.0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cenkalti/backoff") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1hc4manlkqfy9acva1jb8ayh8jihjb0h76l3g1sqqp0vlaq5y6q3")))) + (arguments + (list + #:import-path "github.com/cenkalti/backoff/v5" + #:phases + #~(modify-phases %standard-phases + ;; XXX: Example tests freeze infinitely. + (add-after 'unpack 'remove-examples + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file "example_test.go"))))))))) + (define-public go-github-com-cenkalti-hub (package (name "go-github-com-cenkalti-hub") @@ -1808,10 +1983,101 @@ API. See the full Circonus API Documentation at browser window.") (license license:bsd-2))) +(define-public go-github-com-cockroachdb-errors + (package + (name "go-github-com-cockroachdb-errors") + (version "1.12.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cockroachdb/errors") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0savcvdq1xiwgf8in2xvj9d7gnj921izixlzd2zwdk6384lllc7m")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/cockroachdb/errors" + #:test-subdirs #~(list "assert/..." + "barriers/..." + "contexttags/..." + "domains/..." + "errbase/..." + "errutil/..." + "extgrpc/..." + "exthttp/..." + ;; "fmttests/..." ; build failed + "grpc/..." + "hintdetail/..." + "issuelink/..." + "join/..." + "markers/..." + "oserror/..." + ;; "report/..." ; build failed + "safedetails/..." + "secondary/..." + "telemetrykeys/..." + "testutils/..." + "withstack/..."))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-cockroachdb-datadriven + go-github-com-cockroachdb-logtags + go-github-com-cockroachdb-redact + go-github-com-getsentry-sentry-go + go-github-com-gogo-googleapis + go-github-com-gogo-protobuf + go-github-com-gogo-status + go-github-com-hydrogen18-memlistener + go-github-com-kr-pretty + go-github-com-pkg-errors + go-google-golang-org-grpc + go-google-golang-org-protobuf)) + (home-page "https://github.com/cockroachdb/errors") + (synopsis "Golang errors with network portability") + (description + "This package provides a a drop-in replacement to +@code{github.com/pkg/errors} and Go's standard @code{errors} package. It also +provides of error objects, in ways suitable for distributed systems with +mixed-version software compatibility.") + (license license:asl2.0))) + +(define-public go-github-com-cockroachdb-metamorphic + (package + (name "go-github-com-cockroachdb-metamorphic") + (version "0.0.0-20231120015718-884f2746775a") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cockroachdb/metamorphic") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1cf5rwifmlvnrwq17izgc0297yjw4q2fl1qar9d1slm3wqd4h186")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/cockroachdb/metamorphic")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-cockroachdb-errors)) + (home-page "https://github.com/cockroachdb/metamorphic") + (synopsis "Metamorphic-style testing in Golang") + (description + "This Package provides facilities for running metamorphic, property-based +testing. By running logically equivalent operations with different +conditions, metamorphic tests can identify bugs without requiring an oracle.") + (license license:asl2.0))) + (define-public go-github-com-coder-websocket (package (name "go-github-com-coder-websocket") - (version "1.8.12") + (version "1.8.13") (source (origin (method git-fetch) @@ -1820,7 +2086,7 @@ browser window.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "172v9mqghswf50ga512qghb6ii0ivz5fi2iyjzdnbm42g0cr4fjj")) + (base32 "1ycphyxz8ap0l3sbwii650wz2p0a0wy7swikxr1sb39m5mw2amdi")) (modules '((guix build utils))) (snippet #~(begin @@ -1864,8 +2130,7 @@ compression. CloseRead} helper for write only connections @item Compile to @url{https://pkg.go.dev/github.com/coder/websocket#hdr-Wasm, Wasm}. -@end itemize -") +@end itemize") (license license:isc))) (define-public go-github-com-containerd-typeurl @@ -1932,7 +2197,9 @@ Any}.") (base32 "180wnxiim622v17xcnrjrg9g07mg4xizmlxxyrl9p42is0abi9c8")))) (build-system go-build-system) (arguments - (list #:import-path "github.com/coreos/go-oidc")) + (list + #:go go-1.23 + #:import-path "github.com/coreos/go-oidc")) (native-inputs (list go-golang-org-x-net)) (propagated-inputs @@ -2116,7 +2383,7 @@ Data Representation (XDR) standard protocol as specified in RFC (define-public go-github-com-digitalocean-godo (package (name "go-github-com-digitalocean-godo") - (version "1.138.0") + (version "1.151.0") (source (origin (method git-fetch) @@ -2125,16 +2392,20 @@ Data Representation (XDR) standard protocol as specified in RFC (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "083vhzb1hwzdmn5m14ygs949g2kabmafvpcxq2laylkylq1fd3rm")))) + (base32 "02nwqlz2fxv74h4bhd8yp02s0zfxb1d7jmp4yydgbz7psk296j98")))) (build-system go-build-system) (arguments (list - #:go go-1.22 + #:go go-1.23 #:import-path "github.com/digitalocean/godo" #:test-flags #~(list "-skip" (string-join ;; Tests requiring networking setup. - (list "TestRegistry_DeleteManifest" + (list "TestRegistries_DeleteManifest" + "TestRegistries_DeleteTag" + "TestRegistries_ListRepositoryManifests" + "TestRegistries_ListRepositoryTags" + "TestRegistry_DeleteManifest" "TestRegistry_DeleteTag" "TestRegistry_ListManifests" "TestRepository_ListTags") @@ -2247,6 +2518,7 @@ translation (NAT), proxies, sockets, and transport layer security (TLS).") (build-system go-build-system) (arguments (list + #:go go-1.23 #:import-path "github.com/donovanhide/eventsource")) (home-page "https://github.com/donovanhide/eventsource") (synopsis "Server Side Events client and server for Golang") @@ -2496,7 +2768,7 @@ used to build IMAP clients and servers.") (define-public go-github-com-emersion-go-maildir (package (name "go-github-com-emersion-go-maildir") - (version "0.5.0") + (version "0.6.0") (source (origin (method git-fetch) @@ -2505,7 +2777,7 @@ used to build IMAP clients and servers.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0wa7spn3qa7ipmg29vrimw7phyybyaagdalrjklcazjb6rplvwpl")))) + (base32 "12zsfrn5dgrav3ihhddn3pwg88r63i18pjrl6y4rxam3g8l7rj5i")))) (build-system go-build-system) (arguments (list @@ -2656,7 +2928,7 @@ for Go.") (define-public go-github-com-emersion-go-smtp (package (name "go-github-com-emersion-go-smtp") - (version "0.21.3") + (version "0.22.0") (source (origin (method git-fetch) @@ -2665,10 +2937,11 @@ for Go.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0drvmvrkmhqhnv4m3my1hbkyyva2vi35b36j0pdi57xc9rflziq3")))) + (base32 "0p57x0x0pvk24pgl6qnyz7pvfvdncj8bs5p5k0g10phh5p8md684")))) (build-system go-build-system) (arguments (list + #:go go-1.23 #:import-path "github.com/emersion/go-smtp")) (propagated-inputs (list go-github-com-emersion-go-sasl)) @@ -2713,7 +2986,7 @@ protocol definition.") (define-public go-github-com-evanphx-json-patch (package (name "go-github-com-evanphx-json-patch") - (version "0.5.2") + (version "4.13.0") (source (origin (method git-fetch) @@ -2722,22 +2995,47 @@ protocol definition.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "00sib9ba8j1h1n3r1cxx48zn8hs6sxwnrh78p6wbs28wcpz8nqxi")))) + (base32 "0sydllg5hsmvwdr1276qzl8v3xsr3jjrimvvgl9096rn3kf3664m")))) (build-system go-build-system) (arguments (list - #:import-path "github.com/evanphx/json-patch")) + #:import-path "github.com/evanphx/json-patch" + #:unpack-path "github.com/evanphx/json-patch" + ;; Tests are not copatible with Go 1.24+. + #:test-flags #~(list "-vet=off"))) (propagated-inputs - (list go-github-com-jessevdk-go-flags go-github-com-pkg-errors)) + (list go-github-com-jessevdk-go-flags + go-github-com-pkg-errors)) (home-page "https://github.com/evanphx/json-patch") (synopsis "Apply and create JSON (RFC6902 and RFC7386) patches for Golang") (description "@code{jsonpatch} is a library which provides functionality for both -applying @url{http://tools.ietf.org/html/rfc6902,RFC6902 JSON patches} against -documents, as well as for calculating & applying -@url{https://tools.ietf.org/html/rfc7396,RFC7396 JSON merge patches}.") +applying @url{http://tools.ietf.org/html/rfc6902, RFC6902 JSON patches} +against documents, as well as for calculating & applying +@url{https://tools.ietf.org/html/rfc7396, RFC7396 JSON merge patches}.") (license license:bsd-3))) +(define-public go-github-com-evanphx-json-patch-v5 + (package + (inherit go-github-com-evanphx-json-patch) + (name "go-github-com-evanphx-json-patch-v5") + (version "5.9.11") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/evanphx/json-patch") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0sydllg5hsmvwdr1276qzl8v3xsr3jjrimvvgl9096rn3kf3664m")))) + (build-system go-build-system) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-evanphx-json-patch) + ((#:import-path "github.com/evanphx/json-patch") + "github.com/evanphx/json-patch/v5"))))) + (define-public go-github-com-fasthttp-router (package (name "go-github-com-fasthttp-router") @@ -2805,6 +3103,7 @@ application's http.Handlers.") (build-system go-build-system) (arguments (list + #:go go-1.23 #:import-path "github.com/flosch/pongo2/v6")) (native-inputs (list go-gopkg-in-check-v1)) @@ -2960,35 +3259,6 @@ OpenAPI v3.0} and OpenAPI v3.1}.") (license license:expat))) -;; TODO: This repository has been archived by the owner on Aug 30, 2023. It is -;; now read-only. The raven-go SDK is no longer maintained and was superseded -;; by the sentry-go -(define-public go-github-com-getsentry-raven-go - (let ((commit "5c24d5110e0e198d9ae16f1f3465366085001d92") - (revision "0")) - (package - (name "go-github-com-getsentry-raven-go") - (version (git-version "0.2.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/getsentry/raven-go") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0lvc376sq8r8jhy2v1m6rf1wyld61pvbk0x6j9xpg56ivqy69xs7")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/getsentry/raven-go")) - (propagated-inputs - (list go-github-com-certifi-gocertifi go-github-com-pkg-errors)) - (home-page "https://github.com/getsentry/raven-go") - (synopsis "Sentry client in Go") - (description "This package is a Go client API for the Sentry event/error -logging system.") - (license license:bsd-3)))) - (define-public go-github-com-getsentry-sentry-go (package (name "go-github-com-getsentry-sentry-go") @@ -3105,7 +3375,7 @@ Features: (define-public go-github-com-go-chi-chi-v5 (package (name "go-github-com-go-chi-chi-v5") - (version "5.0.7") + (version "5.2.1") (source (origin (method git-fetch) @@ -3114,10 +3384,12 @@ Features: (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0rzrsxz4xj0973c6nxklvq2vmg2m795snhk25836i0gnd1jnx79k")))) + (base32 "1kbgz6j720cdipmmkaxqa1w42wyqirw3x5pysnph92wpm2wnss1g")))) (build-system go-build-system) (arguments - '(#:import-path "github.com/go-chi/chi/v5")) + (list + #:go go-1.23 + #:import-path "github.com/go-chi/chi/v5")) (home-page "https://github.com/go-chi/chi") (synopsis "Composable router for HTTP services written in Go") (description @@ -3142,8 +3414,14 @@ decompose request handling into many smaller layers.") (arguments (list #:import-path "github.com/go-fed/httpsig" - ;; algorithms_test.go:153: "sha1": got true, want false - #:test-flags #~(list "-skip" "TestIsAvailable"))) + #:test-flags + #~(list "-skip" (string-join + ;; algorithms_test.go:153: "sha1": got true, want false + (list "TestIsAvailable" + ;; "rsa_SHA3_224": expected error, got: + ;; %!s(<nil>) + "TestSignerSigns") + "|")))) (propagated-inputs (list go-golang-org-x-crypto)) (home-page "https://github.com/go-fed/httpsig") @@ -3206,6 +3484,7 @@ Signature headers are to be set (but not both).") (build-system go-build-system) (arguments (list + #:go go-1.23 #:import-path "github.com/go-jose/go-jose/v3")) (native-inputs (list go-github-com-google-go-cmp @@ -3339,7 +3618,7 @@ about the content.") (define-public go-github-com-go-openapi-errors (package (name "go-github-com-go-openapi-errors") - (version "0.22.0") + (version "0.22.1") (source (origin (method git-fetch) @@ -3348,10 +3627,11 @@ about the content.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0nikzvknkv0nqdy44dfi096lcvkjnpjfrpg1gqlkg5ffccvdnd9s")))) + (base32 "0ll8hys25q536q73d5qhgf7ch9cl5183g6bqgdq61zdgcvvz0krf")))) (build-system go-build-system) (arguments (list + #:go go-1.23 #:import-path "github.com/go-openapi/errors")) (native-inputs (list go-github-com-stretchr-testify)) @@ -3455,7 +3735,7 @@ Supports JSON and YAML documents.") (define-public go-github-com-go-openapi-runtime (package (name "go-github-com-go-openapi-runtime") - (version "0.28.0") + (version "0.26.2") (source (origin (method git-fetch) @@ -3464,10 +3744,11 @@ Supports JSON and YAML documents.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0h8yqc6bb8mzb8jvr3m08fyws1gbrhbry6k5vj2cx2xdi50kqiy5")))) + (base32 "1vi0pdip4zdw8yn8qd7wn8i1di4f05qfy9cyjfskgqpqw38v4jkz")))) (build-system go-build-system) (arguments (list + #:go go-1.23 #:embed-files #~(list "jsonschema-draft-04\\.json" "schema\\.json") #:import-path "github.com/go-openapi/runtime")) (native-inputs @@ -3604,6 +3885,7 @@ projects.") (build-system go-build-system) (arguments (list + #:go go-1.23 #:embed-files #~(list "jsonschema-draft-04\\.json" "schema\\.json") #:import-path "github.com/go-openapi/validate" #:phases @@ -3651,7 +3933,6 @@ OpenAPI 2.0).") (build-system go-build-system) (arguments (list - #:go go-1.22 #:import-path "github.com/go-webauthn/webauthn" #:phases #~(modify-phases %standard-phases @@ -3759,6 +4040,7 @@ from CloudFlare's github.com/cloudflare/cfssl/revoke.") (build-system go-build-system) (arguments (list + #:go go-1.23 #:import-path "github.com/gobwas/httphead")) (home-page "https://github.com/gobwas/httphead") (synopsis "Tiny HTTP header value parsing library in Golang") @@ -3798,7 +4080,7 @@ protocol as specified in @url{https://rfc-editor.org/rfc/rfc6455.html, RFC (define-public go-github-com-goccy-go-json (package (name "go-github-com-goccy-go-json") - (version "0.10.3") + (version "0.10.5") (source (origin (method git-fetch) @@ -3807,12 +4089,14 @@ protocol as specified in @url{https://rfc-editor.org/rfc/rfc6455.html, RFC (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0w9kjplhyzq8n4iainddapzj7dxnfbjiz4xdpb0hlb6h35grpxgn")) + (base32 "0kbb7d4xal1y65fnb152icqjkhrk19b4h3344xmzl3grc4rdxj1n")) (modules '((guix build utils))) (snippet '(delete-file-recursively "benchmarks")))) (build-system go-build-system) (arguments - '(#:import-path "github.com/goccy/go-json")) + (list + #:go go-1.23 + #:import-path "github.com/goccy/go-json")) (home-page "https://github.com/goccy/go-json") (synopsis "JSON encoder/decoder in Go") (description @@ -3862,6 +4146,33 @@ Go. Designed to ease things up for fast development with zero memory allocation and performance in mind.") (license license:expat))) +(define-public go-github-com-gogo-googleapis + (package + (name "go-github-com-gogo-googleapis") + (version "1.4.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gogo/googleapis") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "094znmiswmz8d4b6k7il655gvjrwvraacln0n0lzv5kskbzhlmfi")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:tests? #f + #:import-path "github.com/gogo/googleapis")) + (propagated-inputs (list go-github-com-gogo-protobuf)) + (home-page "https://github.com/gogo/googleapis") + (synopsis "Google APIs rRPC templates") + (description + "This package provides rRPC templates used to interact with Google +APIs.") + (license license:asl2.0))) + (define-public go-github-com-gogo-protobuf (package (name "go-github-com-gogo-protobuf") @@ -3878,6 +4189,7 @@ allocation and performance in mind.") (build-system go-build-system) (arguments (list + #:go go-1.23 #:skip-build? #t #:import-path "github.com/gogo/protobuf" ;; protoc: exec: "protoc-min-version": executable file not found in $PATH @@ -3908,6 +4220,39 @@ generation features. This code generation is used to achieve: @end itemize") (license license:bsd-3))) +(define-public go-github-com-gogo-status + (package + (name "go-github-com-gogo-status") + (version "1.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gogo/status") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0k0j262qvq5ligiqafhq3mljzmgjcqz4n3xxv7j3di9glr8n38cz")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gogo/status")) + (propagated-inputs + (list go-github-com-gogo-googleapis + go-github-com-gogo-protobuf + go-github-com-golang-protobuf + go-google-golang-org-grpc)) + (home-page "https://github.com/gogo/status") + (synopsis "Error handling for client/server rRPC-like communication") + (description + "Package status implements errors returned by @code{gRPC}. These errors +are serialized and transmitted on the wire between server and client, and +allow for additional data to be transmitted via the Details field in the +status proto. @code{gRPC} service handlers should return an error created by +this package, and @code{gRPC} clients should expect a corresponding error to +be returned from the RPC call.") + (license license:asl2.0))) + (define-public go-github-com-golang-groupcache (package (name "go-github-com-golang-groupcache") @@ -3935,6 +4280,30 @@ replacement for memcached in many cases. It provides a data loading mechanism with caching and de-duplication that works across a set of peer processes.") (license license:asl2.0))) +(define-public go-github-com-google-go-dap + (package + (name "go-github-com-google-go-dap") + (version "0.12.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/go-dap") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0c0941wxnpx3pscf08gr6vrn90rja8k8pjhl1px0r54kcjidd5js")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/google/go-dap")) + (home-page "https://github.com/google/go-dap") + (synopsis "Implementation of the Debug Adapter Protocol in Golang") + (description + "Package dap contains data types and code for Debug Adapter +Protocol (DAP) specification.") + (license license:asl2.0))) + (define-public go-github-com-google-go-github-v31 (package (name "go-github-com-google-go-github-v31") @@ -4100,6 +4469,37 @@ parameters.") "This package provides packet processing capabilities for Go.") (license license:bsd-3))) +(define-public go-github-com-google-nftables + (package + (name "go-github-com-google-nftables") + (version "0.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/nftables") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "14ckjnfw35p5za4mad789yiciigj0ak3qfg4kdmz67ncw697205c")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/google/nftables")) + (native-inputs + (list go-github-com-google-go-cmp + go-github-com-vishvananda-netlink)) + (propagated-inputs + (list go-github-com-mdlayher-netlink + go-github-com-vishvananda-netns + go-golang-org-x-sys)) + (home-page "https://github.com/google/nftables") + (synopsis "Go module for interacting with Linux nftables") + (description + "This package provides a library to manipulates Linux nftables (the +iptables successor). It does not rely on libnftnl wrappers.") + (license license:asl2.0))) + (define-public go-github-com-google-safehtml (package (name "go-github-com-google-safehtml") @@ -4115,7 +4515,9 @@ parameters.") (base32 "0j2xjy8xrk9y9k6bqpvimj84i6hg1wwsyvwsb0axhmp49cmnrp86")))) (build-system go-build-system) (arguments - '(#:import-path "github.com/google/safehtml")) + (list + #:go go-1.23 + #:import-path "github.com/google/safehtml")) (propagated-inputs (list go-golang-org-x-text)) (home-page "https://github.com/google/safehtml") @@ -4208,7 +4610,7 @@ language.") (define-public go-github-com-gorilla-csrf (package (name "go-github-com-gorilla-csrf") - (version "1.7.2") + (version "1.7.3") (source (origin (method git-fetch) @@ -4217,10 +4619,11 @@ language.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "01d56sr9yggn6gs4lf5bnj15q6bkwvsim8kzj8m4arv1ccj7918j")))) + (base32 "0h32npfjir3k0yciisr6ybziv1bshmzw6x3bfkh3i72y3i7nv610")))) (build-system go-build-system) (arguments (list + #:go go-1.23 #:import-path "github.com/gorilla/csrf")) (propagated-inputs (list go-github-com-gorilla-securecookie @@ -4302,6 +4705,34 @@ web applications.") incoming requests with their respective handler.") (license license:bsd-3))) +(define-public go-github-com-gorilla-pat + (package + (name "go-github-com-gorilla-pat") + (version "1.0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gorilla/pat") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ip2mfhs04j1wbh69iq6d3xz760cb6qmxgv3csns6qrkxfr53av2")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/gorilla/pat")) + (propagated-inputs + (list go-github-com-gorilla-context + go-github-com-gorilla-mux)) + (home-page "https://github.com/gorilla/pat") + (synopsis "HTTP router for Golang") + (description + "This package is a request router and dispatcher with a pat-like +interface. It is an alternative to @code{gorilla/mux} that showcases how it +can be used as a base for different API flavors.") + (license license:bsd-3))) + (define-public go-github-com-gorilla-schema (package (name "go-github-com-gorilla-schema") @@ -4429,6 +4860,47 @@ responses. It is only suitable for use as a \"private\" cache (i.e. for a web-browser or an API-client and not for a shared proxy).") (license license:expat))) +(define-public go-github-com-grpc-ecosystem-grpc-gateway-v2 + (package + (name "go-github-com-grpc-ecosystem-grpc-gateway-v2") + (version "2.26.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/grpc-ecosystem/grpc-gateway") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1pw845x9bqhj64pxvyaafacq0mmmblbf5z4r2arprhdnb05czx3v")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/grpc-ecosystem/grpc-gateway/v2")) + (propagated-inputs + (list go-github-com-antihax-optional + go-github-com-google-go-cmp + go-github-com-rogpeppe-fastuuid + go-golang-org-x-oauth2 + go-golang-org-x-text + go-google-golang-org-genproto-googleapis-api + go-google-golang-org-genproto-googleapis-rpc + go-google-golang-org-grpc + go-google-golang-org-protobuf + go-gopkg-in-yaml-v3)) + (home-page "https://github.com/grpc-ecosystem/grpc-gateway") + (synopsis "gRPC to JSON proxy generator following the gRPC HTTP spec") + (description + "The @code{gRPC-Gateway} is a plugin of the Google protocol buffers +compiler @@url{https://github.com/protocolbuffers/protobuf,protoc}. It reads +protobuf service definitions and generates a reverse-proxy server which +translates a RESTful HTTP API into @code{gRPC}. This server is generated +according to the +@url{https://github.com/googleapis/googleapis/raw/master/google/api/http.proto#L46,(code +google.api.http)} annotations in your service definitions.") + (license license:bsd-3))) + (define-public go-github-com-hashicorp-go-cleanhttp (package (name "go-github-com-hashicorp-go-cleanhttp") @@ -4780,6 +5252,35 @@ dhcpv6 and dhcpv4 @end itemize") (license license:bsd-3))) +(define-public go-github-com-ipfs-go-cid + (package + (name "go-github-com-ipfs-go-cid") + (version "0.4.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/go-cid") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0gfd5dg0shj2daraai2kkf8sg24jp5cr6dsv857wp4q1ni612a23")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ipfs/go-cid")) + (propagated-inputs + (list go-github-com-multiformats-go-multihash + go-github-com-multiformats-go-multibase + go-github-com-multiformats-go-varint)) + (home-page "https://github.com/ipfs/go-cid") + (synopsis "Content ID v1 implemented in Go") + (description + "Implementation in Go of the @url{https://github.com/ipld/cid, CID spec}. +It is used in @code{go-ipfs} and related packages to refer to a typed hunk of +data.") + (license license:expat))) + (define-public go-github-com-jackpal-gateway (package (name "go-github-com-jackpal-gateway") @@ -4853,10 +5354,11 @@ port mapping and discovering the external IP address of a firewall.") (("jaytaylor.com/html2text") "github.com/jaytaylor/html2text")))))) (build-system go-build-system) (arguments - (list #:import-path "github.com/jaytaylor/html2text")) + (list + #:import-path "github.com/jaytaylor/html2text")) (propagated-inputs (list go-golang-org-x-net - go-github-com-olekukonko-tablewriter + go-github-com-olekukonko-tablewriter-0.0.5 go-github-com-ssor-bom)) (home-page "https://github.com/jaytaylor/html2text") (synopsis "Convert HTML emails to text") @@ -4934,8 +5436,10 @@ authenticated identities and their attributes.") (base32 "1rv495j8j2x6avw5hqpf7rpiakr5gdsx6pv8rfn0ff7vi35zfa62")))) (build-system go-build-system) (arguments - '(#:import-path "github.com/jcmturner/gokrb5/v8" - #:unpack-path "github.com/jcmturner/gokrb5")) + (list + #:go go-1.23 + #:import-path "github.com/jcmturner/gokrb5/v8" + #:unpack-path "github.com/jcmturner/gokrb5")) (native-inputs (list go-github-com-stretchr-testify)) (propagated-inputs @@ -5065,7 +5569,9 @@ about missing required fields, or when pattern validation does not match.") (base32 "1mlgnk0y0d8njx7h66w6bhr95zh2ccg1hxlnm15i2lfh6l58s60q")))) (build-system go-build-system) (arguments - (list #:import-path "github.com/jhillyerd/enmime")) + (list + #:go go-1.23 + #:import-path "github.com/jhillyerd/enmime")) (native-inputs (list go-github-com-go-test-deep go-github-com-stretchr-testify)) @@ -5082,6 +5588,24 @@ about missing required fields, or when pattern validation does not match.") geared towards parsing MIME encoded emails.") (license license:expat))) +(define-public go-github-com-jhillyerd-enmime-v2 + (package + (inherit go-github-com-jhillyerd-enmime) + (name "go-github-com-jhillyerd-enmime-v2") + (version "2.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jhillyerd/enmime") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ahw8bxwp8zbi7qgq2d49hd31iznc8njjjzk84xmxa30qyb3ilgc")))) + (arguments + (list + #:import-path "github.com/jhillyerd/enmime/v2")))) + (define-public go-github-com-jlaffaye-ftp (package (name "go-github-com-jlaffaye-ftp") @@ -5098,6 +5622,7 @@ geared towards parsing MIME encoded emails.") (build-system go-build-system) (arguments (list + #:go go-1.23 #:import-path "github.com/jlaffaye/ftp")) (native-inputs (list go-github-com-stretchr-testify)) @@ -5125,7 +5650,9 @@ described in @url{https://www.rfc-editor.org/rfc/rfc959,RFC 959}.") (base32 "18zyr9nlywmwp3wpzcjxrgq9s9d2mmc6zg6xhsna00m663nkyc3n")))) (build-system go-build-system) (arguments - '(#:import-path "github.com/jmespath/go-jmespath")) + (list + #:go go-1.23 + #:import-path "github.com/jmespath/go-jmespath")) (native-inputs (list go-github-com-davecgh-go-spew go-github-com-pmezard-go-difflib @@ -5202,10 +5729,15 @@ controlled. It is based on netlink messages.") (build-system go-build-system) (arguments (list + #:go go-1.23 #:import-path "github.com/json-iterator/go" #:test-flags - ;; XXX: Try to skip just "Test_symmetric/map[test.stringKeyType]string". - #~(list "-skip" "Test_symmetric"))) + #~(list "-skip" (string-join + (list "Test_marshal/.53..b/string" + "Test_marshal/.57._/string" + "Test_string_encode_with_std_without_html_escape" + "Test_symmetric/map.test.stringKeyType.string") + "|")))) (native-inputs (list go-github-com-davecgh-go-spew go-github-com-google-gofuzz @@ -5374,6 +5906,7 @@ protocol in Go language.") (build-system go-build-system) (arguments (list + #:go go-1.23 #:skip-build? #t #:import-path "github.com/labbsr0x/goh")) (propagated-inputs @@ -5434,6 +5967,301 @@ Features: @end itemize") (license license:expat))) +(define-public go-github-com-lestrrat-go-httpcc + (package + (name "go-github-com-lestrrat-go-httpcc") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lestrrat-go/httpcc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "12wsr6ipl3h7iaq7s7a2mgkbli9z5zpxj9dxqhzqn33akb055i28")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/lestrrat-go/httpcc")) + (native-inputs + (list go-github-com-stretchr-testify)) + (home-page "https://github.com/lestrrat-go/httpcc") + (synopsis "HTTP/1.1 Cache-Control header parser for Golang") + (description + "This package provides a Go library that parses HTTP/1.1 Cache-Control +header and returns a struct that is convenient for the end-user to do what +they will with.") + (license license:expat))) + +(define-public go-github-com-lestrrat-go-httprc + (package + (name "go-github-com-lestrrat-go-httprc") + (version "1.0.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lestrrat-go/httprc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "19pvxzw3l1riz0lryyh4n8s4jk7ba6js7fvbcdpxl60gb69fpz3g")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/lestrrat-go/httprc")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-lestrrat-go-httpcc + go-github-com-lestrrat-go-option)) + (home-page "https://github.com/lestrrat-go/httprc") + (synopsis "Quasi Up-to-date HTTP In-memory Cache ") + (description + "Package httprc implements a cache for resources available over http(s). +Its aim is not only to cache these resources so that it saves on HTTP +roundtrips, but it also periodically attempts to auto-refresh these resources +once they are cached based on the user-specified intervals and HTTP +@code{Expires} and @code{Cache-Control} headers, thus keeping the entries +relativelyfresh.") + (license license:expat))) + +(define-public go-github-com-lestrrat-go-httprc-v3 + (package + (inherit go-github-com-lestrrat-go-httprc) + (name "go-github-com-lestrrat-go-httprc-v3") + (version "3.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lestrrat-go/httprc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15kcs3qi55f5774k1sh0sx9vhg60cxkh9x2wb1frd6c7f7q4nkq7")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/lestrrat-go/httprc/v3")))) + +(define-public go-github-com-lestrrat-go-jwx + (package + (name "go-github-com-lestrrat-go-jwx") + (version "1.2.31") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lestrrat-go/jwx") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ljbnw7fd9d5xggixrkx7fg9gs4jk23m6xkfy7s1rc7ljkh1n1qk")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/lestrrat-go/jwx/cmd/jwx + ;; - github.com/lestrrat-go/jwx/internal/cmd/genreadfile + ;; - github.com/lestrrat-go/jwx/jwa/internal/cmd/gentypes + ;; - github.com/lestrrat-go/jwx/jwe/internal/cmd/genheader + ;; - github.com/lestrrat-go/jwx/jwk/internal/cmd/genheader + ;; - github.com/lestrrat-go/jwx/jws/internal/cmd/genheader + ;; - github.com/lestrrat-go/jwx/jwt/internal/cmd/gentoken + (for-each delete-file-recursively + (list "cmd/jwx" + "internal/cmd/genreadfile" + "jwa/internal/cmd/gentypes" + "jwe/internal/cmd/genheader" + "jwk/internal/cmd/genheader" + "jws/internal/cmd/genheader" + "jwt/internal/cmd/gentoken")))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/lestrrat-go/jwx" + #:test-flags + #~(list "-skip" (string-append + ;; XXX: Not sure why these two tests fail. + "TestGH664/Check_what_happens_when_primes_are_reduced_to_0" + "|TestGH664/Check_what_happens_when_primes_are_reduced_to_1")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples-and-benchmarks + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file-recursively "bench") + (delete-file-recursively "examples"))))))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-decred-dcrd-dcrec-secp256k1-v4 + go-github-com-goccy-go-json + go-github-com-lestrrat-go-backoff-v2 + go-github-com-lestrrat-go-blackmagic + go-github-com-lestrrat-go-httpcc + go-github-com-lestrrat-go-iter + go-github-com-lestrrat-go-option + go-github-com-pkg-errors + go-golang-org-x-crypto)) + (home-page "https://github.com/lestrrat-go/jwx") + (synopsis "Complete implementation of JWx in Golang") + (description + "This package provides implementations of various @acronym{JWx, +Javascript Object Signing and Encryption/JOSE} (JWA/JWE/JWK/JWS/JWT, otherwise +known as JOSE) technologies.") + (license license:expat))) + +(define-public go-github-com-lestrrat-go-jwx-v2 + (package + (inherit go-github-com-lestrrat-go-jwx) + (name "go-github-com-lestrrat-go-jwx-v2") + (version "2.1.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lestrrat-go/jwx") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1qvi2z45pc2y97paw55vyb5q2ngrwczvxlkp0ccgxvpd73fbwmx9")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/lestrrat-go/jwx/cmd/jwx + ;; - github.com/lestrrat-go/jwx/tools/cmd/genjwa + ;; - github.com/lestrrat-go/jwx/tools/cmd/genjwe + ;; - github.com/lestrrat-go/jwx/tools/cmd/genjwk + ;; - github.com/lestrrat-go/jwx/tools/cmd/genjws + ;; - github.com/lestrrat-go/jwx/tools/cmd/genjwt + ;; - github.com/lestrrat-go/jwx/tools/cmd/genoptions + ;; - github.com/lestrrat-go/jwx/tools/cmd/genreadfile + (for-each delete-file-recursively + (list "cmd/jwx" + "tools/cmd")))))) + (build-system go-build-system) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-lestrrat-go-jwx) + ((#:import-path _) "github.com/lestrrat-go/jwx/v2"))) + (propagated-inputs + (list go-github-com-decred-dcrd-dcrec-secp256k1-v4 + go-github-com-goccy-go-json + go-github-com-lestrrat-go-blackmagic + go-github-com-lestrrat-go-httprc + go-github-com-lestrrat-go-iter + go-github-com-lestrrat-go-option + go-github-com-segmentio-asm + go-golang-org-x-crypto)))) + +(define-public go-github-com-lestrrat-go-jwx-v3 + (package + (inherit go-github-com-lestrrat-go-jwx) + (name "go-github-com-lestrrat-go-jwx-v3") + (version "3.0.10") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lestrrat-go/jwx") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0sw5ymrvky9z7rijs0rbc7p234f9i4blas2wrlsj4kr8k35c7qxw")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/lestrrat-go/jwx/cmd/jwx + ;; - github.com/lestrrat-go/jwx/tools/cmd/genjwa + ;; - github.com/lestrrat-go/jwx/tools/cmd/genjwe + ;; - github.com/lestrrat-go/jwx/tools/cmd/genjwk + ;; - github.com/lestrrat-go/jwx/tools/cmd/genjws + ;; - github.com/lestrrat-go/jwx/tools/cmd/genjwt + ;; - github.com/lestrrat-go/jwx/tools/cmd/genoptions + ;; - github.com/lestrrat-go/jwx/tools/cmd/genreadfile + (for-each delete-file-recursively + (list "cmd/jwx" + "tools/cmd")))))) + (build-system go-build-system) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-lestrrat-go-jwx) + ((#:import-path _) "github.com/lestrrat-go/jwx/v3"))) + (propagated-inputs + (list go-github-com-decred-dcrd-dcrec-secp256k1-v4 + go-github-com-goccy-go-json + go-github-com-lestrrat-go-blackmagic + go-github-com-lestrrat-go-httprc-v3 + go-github-com-lestrrat-go-option-v2 + go-github-com-segmentio-asm + go-github-com-valyala-fastjson + go-golang-org-x-crypto)))) + +(define-public go-github-com-letsencrypt-challtestsrv + (package + (name "go-github-com-letsencrypt-challtestsrv") + (version "1.3.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/letsencrypt/challtestsrv") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "03g5bvifxijhg9kw4qrs3x3h48m6q6s9a14w7172s1mwshmyr0wi")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/letsencrypt/challtestsrv")) + (propagated-inputs + (list go-github-com-miekg-dns)) + (home-page "https://github.com/letsencrypt/challtestsrv") + (synopsis "Challenge Test Server") + (description + "Package challtestsrv provides a trivially insecure acme challenge response +server for rapidly testing HTTP-01, DNS-01 and TLS-ALPN-01 challenge types.") + (license license:mpl2.0))) + +(define-public go-github-com-letsencrypt-pebble-v2 + (package + (name "go-github-com-letsencrypt-pebble-v2") + (version "2.8.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/letsencrypt/pebble") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "17jqkmgh8hl4cazslnjc90blzncqv5g2h0nf1bihpc26x7an3xqx")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/letsencrypt/pebble/v2")) + (propagated-inputs + (list go-github-com-go-jose-go-jose-v4 + go-github-com-letsencrypt-challtestsrv + go-github-com-miekg-dns)) + (home-page "https://github.com/letsencrypt/pebble") + (synopsis "RFC 8555 ACME test server") + (description + "This package provides a miniature version of +@url{https://github.com/letsencrypt/boulder, Boulder}, Pebble is a small +@url{https://github.com/ietf-wg-acme/acme, ACME} test server not suited for +use as a production CA.") + (license license:mpl2.0))) + (define-public go-github-com-levigross-grequests (package (name "go-github-com-levigross-grequests") @@ -5502,74 +6330,6 @@ to delete records. @end itemize") (license license:expat))) -(define-public go-github-com-libp2p-go-cidranger - (package - (name "go-github-com-libp2p-go-cidranger") - (version "1.1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/libp2p/go-cidranger") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "05hzlk5hx7qna5znr3q1crr0qb7h8yrv1v96pj015dh0kbdkdaba")))) - (build-system go-build-system) - (arguments - (list - ;; XXX: Check if the most of the tests may be enabled: - ;; src/github.com/libp2p/go-cidranger/trie_test.go:557:8: cannot use - ;; 4294967295 (untyped int constant) as int value in assignment - ;; (overflows). - #:tests? (and (target-64bit?) - (not (%current-target-system))) - #:import-path "github.com/libp2p/go-cidranger")) - (native-inputs - (list go-github-com-stretchr-testify)) - (propagated-inputs - (list go-github-com-ipfs-go-detect-race)) - (home-page "https://github.com/libp2p/go-cidranger") - (synopsis "Fast IP to CIDR lookup in Golang") - (description - "Fast IP to @url{https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing, -CIDR} block(s) lookup using trie in Golang, inspired by -@url{https://vincent.bernat.im/en/blog/2017-ipv4-route-lookup-linux, IPv4 -route lookup Linux}. Possible use cases include detecting if a IP address is -from published cloud provider CIDR blocks (e.g. 52.95.110.1 is contained in -published AWS Route53 CIDR 52.95.110.0/24), IP routing rules, etc.") - (license license:expat))) - -(define-public go-github-com-libp2p-go-doh-resolver - (package - (name "go-github-com-libp2p-go-doh-resolver") - (version "0.4.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/libp2p/go-doh-resolver") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0asni7f3gd65bjfqz99fqchz9y75cpgmfwkkhsbq0y2dydagw666")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/libp2p/go-doh-resolver")) - (native-inputs - (list go-github-com-stretchr-testify)) - (propagated-inputs - (list go-github-com-ipfs-go-log-v2 - go-github-com-miekg-dns - go-github-com-multiformats-go-multiaddr-dns)) - (home-page "https://github.com/libp2p/go-doh-resolver") - (synopsis "DNS over HTTPS resolver") - (description - "This package provides an implementation DNS over HTTPS resolver as -specified in @url{https://datatracker.ietf.org/doc/html/rfc8484, RFC 8484}.") - (license license:expat))) - (define-public go-github-com-libp2p-go-flow-metrics (package (name "go-github-com-libp2p-go-flow-metrics") @@ -5743,35 +6503,6 @@ NAT hole-punching, which requires a process to both @code{Listen} and around enabling this behaviour on various operating systems.") (license license:isc))) -(define-public go-github-com-libp2p-go-socket-activation - (package - (name "go-github-com-libp2p-go-socket-activation") - (version "0.1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/libp2p/go-socket-activation") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1cqxzmjfg7838xifs07kigys9icardwlj1wl426mzgzmbwn6pg5s")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/libp2p/go-socket-activation")) - (propagated-inputs - (list go-github-com-coreos-go-systemd-v22 - go-github-com-ipfs-go-log - go-github-com-multiformats-go-multiaddr)) - (home-page "https://github.com/libp2p/go-socket-activation") - (synopsis "Multiaddr backed systemd socket activation") - (description - "This package provides access to sockets registered by the system's init -daemon as described in -@url{http://0pointer.de/blog/projects/socket-activation}.") - (license license:expat))) - (define-public go-github-com-libp2p-go-yamux-v4 (package (name "go-github-com-libp2p-go-yamux-v4") @@ -5874,7 +6605,6 @@ intends to be compatible with Avahi.") (build-system go-build-system) (arguments (list - #:go go-1.24 #:import-path "github.com/LINBIT/golinstor")) (native-inputs (list go-github-com-stretchr-testify)) @@ -5893,6 +6623,30 @@ intends to be compatible with Avahi.") Block Storage for container, cloud and virtualisation.") (license license:asl2.0))) +(define-public go-github-com-lum8rjack-go-ja4h + (package + (name "go-github-com-lum8rjack-go-ja4h") + (version "0.0.0-20250828030157-fa5266d50650") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lum8rjack/go-ja4h") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "079qh3lj6a8jr90g170lc36b878hqfyi94azqs8fl0wnj2fzzcs3")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/lum8rjack/go-ja4h")) + (home-page "https://github.com/lum8rjack/go-ja4h") + (synopsis "JA4H Fingerprint in Golang") + (description + "This Package provides an implementation of the +@url{https://github.com/FoxIO-LLC/ja4, JA4HTTP (JA4H) hashing algorithm}.") + (license license:expat))) + (define-public go-github-com-macronut-go-tproxy (package (name "go-github-com-macronut-go-tproxy") @@ -5919,6 +6673,34 @@ Block Storage for container, cloud and virtualisation.") Proxy functionality.") (license license:expat))) +(define-public go-github-com-magisterquis-connectproxy + (package + (name "go-github-com-magisterquis-connectproxy") + (version "0.0.0-20200725203833-3582e84f0c9b") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/magisterquis/connectproxy") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "19l94ahyg33z186fiymbjdc8pb0rzknz46xs3rb7wzqq84mni4p5")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/magisterquis/connectproxy")) + (native-inputs + (list go-github-com-gorilla-websocket)) + (propagated-inputs + (list go-golang-org-x-net)) + (home-page "https://github.com/magisterquis/connectproxy") + (synopsis "Golang @code{proxy.Dialer} which uses HTTP(s) CONNECT requests") + (description + "This package implements a @code{proxy.Dialer} which uses HTTP(s) CONNECT +requests.") + (license license:zlib))) + (define-public go-github-com-mailru-easyjson (package (name "go-github-com-mailru-easyjson") @@ -5975,6 +6757,7 @@ fixed.") go-golang-org-x-text)) (arguments (list + #:go go-1.23 #:import-path "github.com/makeworld-the-better-one/go-gemini")) (home-page "https://github.com/makew0rld/go-gemini") (synopsis "Client/server library for the Gemini protocol, in Go") @@ -6085,6 +6868,31 @@ supported by HTTP PATCH method, allowing for standards based partial updates via REST APIs.") (license license:asl2.0))) +(define-public go-github-com-matterbridge-gomatrix + (package + (name "go-github-com-matterbridge-gomatrix") + (version "0.0.0-20220411225302-271e5088ea27") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/matterbridge/gomatrix") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08y6kbsa9cs4d9qckwg85i64gz7jbv606gqk4sk09172bzaxzsm1")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/matterbridge/gomatrix")) + (home-page "https://github.com/matterbridge/gomatrix") + (synopsis "Golang Matrix client") + (description + "Package gomatrix implements the Matrix Client-Server API. This package +is an alternative fork of not maintained +https://github.com/matrix-org/gomatrix project.") + (license license:asl2.0))) + (define-public go-github-com-mattn-go-ieproxy (package (name "go-github-com-mattn-go-ieproxy") @@ -6589,9 +7397,9 @@ communication between a hypervisor and its virtual machines.") operations on Linux using nl80211.") (license license:expat))) -(define-public go-github-com-mholt-acmez +(define-public go-github-com-mholt-acmez-v2 (package - (name "go-github-com-mholt-acmez") + (name "go-github-com-mholt-acmez-v2") (version "2.0.3") (source (origin @@ -6605,7 +7413,7 @@ operations on Linux using nl80211.") (build-system go-build-system) (arguments (list - #:import-path "github.com/mholt/acmez")) + #:import-path "github.com/mholt/acmez/v2")) (propagated-inputs (list go-golang-org-x-crypto go-golang-org-x-net @@ -6651,6 +7459,24 @@ RFC 8737} (tls-alpn-01 challenge), @url{https://tools.ietf.org/html/rfc8823, RFC @end itemize") (license license:asl2.0))) +(define-public go-github-com-mholt-acmez-v3 + (package + (inherit go-github-com-mholt-acmez-v2) + (name "go-github-com-mholt-acmez-v3") + (version "3.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mholt/acmez") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0knh1j9679ma50myh38nj1hpgifk2h3jyn70nnjsmmmm6whysnlg")))) + (arguments + (list + #:import-path "github.com/mholt/acmez/v3")))) + (define-public go-github-com-microcosm-cc-bluemonday (package (name "go-github-com-microcosm-cc-bluemonday") @@ -6896,6 +7722,128 @@ compatible object storage.") go-golang-org-x-crypto go-golang-org-x-net)))) +(define-public go-github-com-moby-ipvs + (package + (name "go-github-com-moby-ipvs") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/moby/ipvs") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0gi7cjxs5s1db7nssj3r46fp44x94j5mlcrzng3ma663sbpmsrj2")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/moby/ipvs" + ;; Failed to enter netns: operation not permitted + #:test-flags #~(list "-skip" "TestService|TestDestination|TestTimeouts"))) + (propagated-inputs + (list go-github-com-sirupsen-logrus + go-github-com-vishvananda-netlink + go-github-com-vishvananda-netns + go-golang-org-x-sys)) + (home-page "https://github.com/moby/ipvs") + (synopsis "Networking for containers") + (description + "ipvs provides a native Go implementation for communicating with +@url{https://en.wikipedia.org/wiki/IP_Virtual_Server, IPVS} kernel module +using a netlink socket.") + (license license:asl2.0))) + +(define-public go-github-com-moby-moby-api + (package + (name "go-github-com-moby-moby-api") + (version "1.52.0-beta.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/moby/moby") + (commit (go-version->git-ref version + #:subdir "api")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0dzvs6byzn29qk06kpvr0gwdkznmjl6z4jd52xjwlxhj473gdj3f")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/moby/moby/api" + #:unpack-path "github.com/moby/moby")) + (native-inputs + (list go-github-com-google-go-cmp + go-gotest-tools-v3 + go-pgregory-net-rapid)) + (propagated-inputs + (list go-github-com-docker-go-connections + go-github-com-docker-go-units + go-github-com-moby-docker-image-spec + go-github-com-opencontainers-go-digest + go-github-com-opencontainers-image-spec + go-golang-org-x-time)) + (home-page "https://github.com/moby/moby") + (synopsis "Docker Engine API") + (description + "The Docker Engine API is an HTTP API used by the command-line client to +communicate with the daemon. It can also be used by third-party software to +control the daemon.") + (license license:asl2.0))) + +(define-public go-github-com-moby-moby-client + (package + (name "go-github-com-moby-moby-client") + (version "0.1.0-beta.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/moby/moby") + (commit (go-version->git-ref version + #:subdir "client")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1624z57hqqw1b473arfa5m936rsrhc8h3hs2jg4645b3dykfyawn")) + (modules '((guix build utils) + (ice-9 ftw) + (srfi srfi-26))) + (snippet + #~(begin + (define (delete-all-but directory . preserve) + (with-directory-excursion directory + (let* ((pred (negate (cut member <> + (cons* "." ".." preserve)))) + (items (scandir "." pred))) + (for-each (cut delete-file-recursively <>) items)))) + (delete-all-but "." "client"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/moby/moby/client" + #:unpack-path "github.com/moby/moby")) + (native-inputs + (list go-gotest-tools-v3)) + (propagated-inputs + (list go-github-com-containerd-errdefs + go-github-com-containerd-errdefs-pkg + go-github-com-distribution-reference + go-github-com-docker-go-connections + go-github-com-docker-go-units + ;; go-github-com-microsoft-go-winio ; for Windows only + go-github-com-moby-moby-api + go-github-com-moby-term + go-github-com-opencontainers-go-digest + go-github-com-opencontainers-image-spec + go-go-opentelemetry-io-contrib-instrumentation-net-http-otelhttp + go-go-opentelemetry-io-otel-trace)) + (home-page "https://github.com/moby/moby") + (synopsis "Go client for the Docker Engine API") + (description "Package client is a Go client for the Docker Engine API.") + (license license:asl2.0))) + (define-public go-github-com-muhlemmer-httpforwarded (package (name "go-github-com-muhlemmer-httpforwarded") @@ -6927,7 +7875,7 @@ function for formatting a Forwarded header.") (define-public go-github-com-multiformats-go-multiaddr (package (name "go-github-com-multiformats-go-multiaddr") - (version "0.13.0") + (version "0.15.0") (source (origin (method git-fetch) @@ -6936,7 +7884,7 @@ function for formatting a Forwarded header.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0029zjhndbisfsc2msd2h18pcw23rqvf40drkcf7nxic3y2vaff7")))) + (base32 "0rnq4b9vn6d0d9b6m0yqwdigrgidky3smrgnp5w8sfw523nk5dkl")))) (build-system go-build-system) (arguments (list @@ -7133,32 +8081,6 @@ Object Storage / Rackspace Cloud Files.") @url{https://www.inwx.com/en/help/apidoc, INWX XML-RPC API}.") (license license:expat))) -(define-public go-github-com-nwidger-jsoncolor - (package - (name "go-github-com-nwidger-jsoncolor") - (version "0.3.0") - (home-page "https://github.com/nwidger/jsoncolor") - (source - (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "13rd146pnj7qm70r1333gyd1f61x40nafxlpvdxlci9h7mx8c5p8")))) - (build-system go-build-system) - (arguments - `(#:import-path "github.com/nwidger/jsoncolor")) - (native-inputs - (list go-github-com-fatih-color)) - (synopsis "Colorized JSON marshalling and encoding") - (description - "@code{jsoncolor} is a drop-in replacement for @code{encoding/json}'s -@code{Marshal} and @code{MarshalIndent} functions and @code{Encoder} type -which produce colorized output using github.com/fatih/color.") - (license license:expat))) - (define-public go-github-com-nytimes-gziphandler (package (name "go-github-com-nytimes-gziphandler") @@ -7298,6 +8220,42 @@ standard library.") (description "OpenTracing-Go is a Go implementation of the OpenTracing API.") (license license:asl2.0))) +(define-public go-github-com-openzipkin-zipkin-go + (package + (name "go-github-com-openzipkin-zipkin-go") + (version "0.4.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/openzipkin/zipkin-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0780agn2bygi7i2nxng8n80mspaab17k95px1vf6nqil1kg8hh7m")))) + (build-system go-build-system) + (arguments + (list + ;; TODO: Enable tests and build when all missing inputs are packags, use + ;; as source only package for Kubo. + #:skip-build? #t + #:tests? #f + #:import-path "github.com/openzipkin/zipkin-go")) + (native-inputs + (list go-github-com-onsi-ginkgo-v2 + go-github-com-onsi-gomega)) + (propagated-inputs + (list ;; go-github-com-ibm-sarama + ;; go-github-com-rabbitmq-amqp091-go + go-google-golang-org-grpc + go-google-golang-org-protobuf)) + (home-page "https://github.com/openzipkin/zipkin-go") + (synopsis "Zipkin Library for Go") + (description + "Package zipkin implements a native Zipkin instrumentation library for +Go.") + (license license:asl2.0))) + (define-public go-github-com-oschwald-geoip2-golang (package (name "go-github-com-oschwald-geoip2-golang") @@ -7386,7 +8344,6 @@ higher-level API for doing so.") (build-system go-build-system) (arguments (list - #:go go-1.24 #:skip-build? #t #:import-path "github.com/osrg/gobgp/v3")) (native-inputs @@ -7443,6 +8400,7 @@ Border Gateway Protocol}} implementation.") (build-system go-build-system) (arguments (list + #:go go-1.23 #:skip-build? #t #:import-path "github.com/ovn-kubernetes/libovsdb" #:test-flags @@ -7529,22 +8487,44 @@ also be used to manage your stamp collection.") (build-system go-build-system) (arguments (list - #:import-path "github.com/pascaldekloe/goe" - #:phases - #~(modify-phases %standard-phases - ;; XXX: Replace when go-build-system supports nested path. - (delete 'build) - (replace 'check - (lambda* (#:key import-path tests? #:allow-other-keys) - (when tests? - (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "test" "-v" "./...")))))))) + #:go go-1.23 + #:skip-build? #t + #:import-path "github.com/pascaldekloe/goe")) (home-page "https://github.com/pascaldekloe/goe") (synopsis "Enterprise tooling for Golang") (description "Common enterprise features for the Go programming language.") (license license:cc0))) +(define-public go-github-com-performancecopilot-speed-v4 + (package + (name "go-github-com-performancecopilot-speed-v4") + (version "4.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/performancecopilot/speed") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zpf42pid3cd3sqv4gy2h51adq2zpw0pi0v3fpgxqna4iia280j0")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/performancecopilot/speed/v4")) + (propagated-inputs + (list go-github-com-edsrzf-mmap-go + go-github-com-hdrhistogram-hdrhistogram-go + go-github-com-pkg-errors)) + (home-page "https://github.com/performancecopilot/speed") + (synopsis "Performance Co-Pilot instrumentation API in Golang") + (description + "Package speed implements a golang client for the @url{https://pcp.io/, +Performance Co-Pilot}, system performance analysis toolkit, instrumentation +API.") + (license license:expat))) + (define-public go-github-com-perimeterx-marshmallow (package (name "go-github-com-perimeterx-marshmallow") @@ -7561,6 +8541,7 @@ also be used to manage your stamp collection.") (build-system go-build-system) (arguments (list + #:go go-1.23 #:import-path "github.com/perimeterx/marshmallow")) (native-inputs (list go-github-com-go-test-deep)) @@ -7808,6 +8789,7 @@ part of @url{https://github.com/pion, Pion} WebRTC implementation.") (base32 "0f9jy80law69zb26rkb6kl6w1c66vdghdrmifhwlmzngb644ihdb")))) (arguments (list + #:go go-1.23 #:tests? #f ;Tests require network access. #:import-path "github.com/pion/ice/v3")) (propagated-inputs @@ -7964,7 +8946,7 @@ to @url{https://www.rfc-editor.org/rfc/rfc3550, RFC 3550}, (define-public go-github-com-pion-rtp (package (name "go-github-com-pion-rtp") - (version "1.8.11") + (version "1.8.21") (source (origin (method git-fetch) @@ -7973,11 +8955,13 @@ to @url{https://www.rfc-editor.org/rfc/rfc3550, RFC 3550}, (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1a4fj31j7glhfsnxxwm8r72l6capz9mh8kfr340659ahgiijdkcg")))) + (base32 "1hc5cdxgf0m44awvzzaby3hrlnhjbxjivl6981069xwgxspqakhm")))) (build-system go-build-system) (arguments (list #:import-path "github.com/pion/rtp")) + (native-inputs + (list go-github-com-stretchr-testify)) (propagated-inputs (list go-github-com-pion-randutil)) (home-page "https://github.com/pion/rtp") @@ -8079,7 +9063,7 @@ Protocol,SCTP} as specified in (package (inherit go-github-com-pion-srtp-v2) (name "go-github-com-pion-srtp-v3") - (version "3.0.4") + (version "3.0.7") (source (origin (method git-fetch) @@ -8088,7 +9072,7 @@ Protocol,SCTP} as specified in (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "03343fsgrawfy9plsl7y5022ygjln3jvsn3im5xl1qwnc68rb1a2")))) + (base32 "0l8y01ci5fsx8b6ajn9cvs45hqpz838x0jnyyj1p2z714nw9jh61")))) (arguments (list #:import-path "github.com/pion/srtp/v3")) @@ -8113,6 +9097,7 @@ Protocol,SCTP} as specified in (build-system go-build-system) (arguments (list + #:go go-1.23 #:import-path "github.com/pion/stun")) (native-inputs (list go-github-com-stretchr-testify)) @@ -8147,6 +9132,7 @@ Protocol,SCTP} as specified in (base32 "0zli55ls5izpr6cw0wj0gy44872xn9rk20i8ay9cfk7j2rb60y60")))) (arguments (list + #:go go-1.23 #:import-path "github.com/pion/stun/v2")) (propagated-inputs (list go-github-com-pion-dtls-v2 @@ -8171,6 +9157,7 @@ Protocol,SCTP} as specified in (base32 "0yavl76y0fida9f1jfdmzdg7rm5jhp6kvdgn3smsf93jad1vbr2x")))) (arguments (list + #:go go-1.23 #:import-path "github.com/pion/stun/v3")) (propagated-inputs (list go-github-com-pion-dtls-v3 @@ -8277,6 +9264,7 @@ throughout the @url{https://github.com/pion, Pion} modules.") (build-system go-build-system) (arguments (list + #:go go-1.23 #:import-path "github.com/pion/turn" #:test-flags #~(list "-skip" @@ -8629,7 +9617,7 @@ changes.") (define-public go-github-com-puerkitobio-goquery (package (name "go-github-com-puerkitobio-goquery") - (version "1.7.0") + (version "1.10.3") (source (origin (method git-fetch) @@ -8638,7 +9626,7 @@ changes.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0gh1d99l5xc9hvwa4j40pfq3y9vfyq52mnrz6bf1kw2r2zr2gbcc")))) + (base32 "1f2iar9agj3rhlr0iiyj44yc4i8jfqv8ssjj9adlwn3jg8m115y2")))) (build-system go-build-system) (arguments `(#:import-path "github.com/PuerkitoBio/goquery")) @@ -8737,7 +9725,7 @@ the Go standard library}.") (define-public go-github-com-quic-go-quic-go (package (name "go-github-com-quic-go-quic-go") - (version "0.45.2") + (version "0.52.0") (source (origin (method git-fetch) @@ -8746,10 +9734,11 @@ the Go standard library}.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0skg771b6h9xlssf7prkryypz4j8hnkz7k3i76qhxdc4iz4rqyfz")))) + (base32 "0frcjzrarvk3ck6dhqp88a1cbazw7jb26gxq1wp3lhgmxv4v4m2m")))) (build-system go-build-system) (arguments (list + #:go go-1.23 #:import-path "github.com/quic-go/quic-go" #:phases #~(modify-phases %standard-phases @@ -8774,8 +9763,8 @@ the Go standard library}.") (native-inputs (list go-ginkgo go-github-com-onsi-ginkgo-v2 - go-go-uber-org-mock - go-golang-org-x-time)) + go-github-com-stretchr-testify + go-go-uber-org-mock)) (propagated-inputs (list go-github-com-francoispqt-gojay go-github-com-quic-go-qpack @@ -8792,43 +9781,48 @@ protocol.") (license license:expat))) (define-public go-github-com-quic-go-webtransport-go - (package - (name "go-github-com-quic-go-webtransport-go") - (version "0.8.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/quic-go/webtransport-go") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0zwr4jg4dg2b14kkypkbs8dpai5b5s44gm5gq0vrs3mmg6vq0v97")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/quic-go/webtransport-go" - ;; Error: "68" is not greater than "80" - #:test-flags #~(list "-skip" "TestDatagrams"))) - (native-inputs - (list go-go-uber-org-mock - go-github-com-stretchr-testify)) - (propagated-inputs - (list go-github-com-quic-go-quic-go - go-golang-org-x-exp)) - (home-page "https://github.com/quic-go/webtransport-go") - (synopsis "WebTransport implementation based on quic-go") - (description - "webtransport-go is an implementation of the @code{WebTransport} protocol, based -on @@url{https://github.com/quic-go/quic-go,quic-go}. It currently implements + ;; XXX: The latest commits contains comparability with Go@1.24 and QUICK + ;; 0.48+, revert back to version tag when released. + (let ((commit "0a9e2ee55f751e48eb03c4675d873edff3b69c05") + (revision "0")) + (package + (name "go-github-com-quic-go-webtransport-go") + (version (git-version "0.8.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/quic-go/webtransport-go") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "048qf7glv3zgz43qvi1smwsh1khhzyfrid6hp5dnp799p3s3vk13")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/quic-go/webtransport-go" + ;; Error: "68" is not greater than "80" + #:test-flags #~(list "-skip" "TestDatagrams"))) + (native-inputs + (list go-go-uber-org-mock + go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-quic-go-quic-go + go-golang-org-x-exp)) + (home-page "https://github.com/quic-go/webtransport-go") + (synopsis "WebTransport implementation based on quic-go") + (description + "webtransport-go is an implementation of the @code{WebTransport} +protocol, based on @@url{https://github.com/quic-go/quic-go,quic-go}. It +currently implements @@url{https://www.ietf.org/archive/id/draft-ietf-webtrans-http3-02.html,draft-02} of the specification.") - (license license:expat))) + (license license:expat)))) (define-public go-github-com-rcrowley-go-metrics (package (name "go-github-com-rcrowley-go-metrics") - (version "0.0.0-20201227073835-cf1acfcdf475") + (version "0.0.0-20250401214520-65e299d6c5c9") (source (origin (method git-fetch) @@ -8837,14 +9831,23 @@ of the specification.") (commit (go-version->git-ref version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0s7zab04slz07c7l4h2cqz62qnqah69r6p157vvbd7725a7wzkr0")))) + (base32 "1d47289sm3gzjx0ah5wi0gcia40kixfyxyilrdrdzlak8mra94c4")))) (build-system go-build-system) (arguments - ;; Arbitrary precision tests are known to be broken on aarch64, ppc64le - ;; and s390x. See: https://github.com/rcrowley/go-metrics/issues/249 - `(#:tests? ,(not (string-prefix? "aarch64" (or (%current-target-system) - (%current-system)))) - #:import-path "github.com/rcrowley/go-metrics")) + (list + #:go go-1.23 + #:import-path "github.com/rcrowley/go-metrics" + #:test-flags + ;; Arbitrary precision tests are known to be broken on aarch64, ppc64le + ;; and s390x. See: https://github.com/rcrowley/go-metrics/issues/249 + #~(list #$@(if (or (target-aarch64?) (target-ppc64le?)) + '("-skip" (string-join + (list "TestEWMA1" + "TestEWMA5" + "TestUniformSampleSnapshot" + "TestUniformSampleStatistics") + "|")) + '())))) (propagated-inputs (list go-github-com-stathat-go)) (home-page "https://github.com/rcrowley/go-metrics") @@ -9054,6 +10057,135 @@ information from a network device such as statistics, driver related information or even the peer of a VETH interface.") (license license:asl2.0))) +(define-public go-github-com-santhosh-tekuri-jsonschema-v5 + (package + (name "go-github-com-santhosh-tekuri-jsonschema-v5") + (version "5.3.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/santhosh-tekuri/jsonschema") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0fjklx6sik1pp4qpmzsvwfmavd1m9pcsyap1wvajhm2d8wx3vnh0")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/santhosh-tekuri/jsonschema/cmd/jv + (delete-file-recursively "cmd"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/santhosh-tekuri/jsonschema/v5" + #:test-flags + #~(list "-skip" (string-join + ;; TODO: Figure out why these test patterns fail. + (list "TestDraft2019/optional" + "TestDraft2019/refRemote.json" + "TestDraft2019/vocabulary.json" + "TestDraft2020/dynamicRef.json" + "TestDraft2020/optional" + "TestDraft2020/refRemote.json" + "TestDraft2020/vocabulary.json" + "TestDraft4/refRemote.json" + "TestDraft6/refRemote.json" + "TestDraft7/optional" + "TestDraft7/refRemote.json" + "TestExtra/draft2020") + "|")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'copy-json-schema-specs + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (copy-recursively + (string-append #$(this-package-native-input + "specification-json-schema-test-suite") + "/share/tests") + "testdata/JSON-Schema-Test-Suite/tests")))) + (add-after 'check 'remove-json-schema-specs + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file-recursively + "testdata/JSON-Schema-Test-Suite/tests"))))))) + (native-inputs + (list specification-json-schema-test-suite)) + (home-page "https://github.com/santhosh-tekuri/jsonschema") + (synopsis "JSONSchema validation using Golang") + (description + "Package jsonschema provides json-schema compilation and validation.") + (license license:asl2.0))) + +(define-public go-github-com-schollz-peerdiscovery + (package + (name "go-github-com-schollz-peerdiscovery") + (version "1.7.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/schollz/peerdiscovery") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ygdcz1zxahy7h0n1xqgfd97sklaidvqiw2axjh5mzjjrrf30dm5")))) + (build-system go-build-system) + (arguments + (list + #:tests? #f ;they require network setup + #:import-path "github.com/schollz/peerdiscovery" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file-recursively "examples"))))))) + (propagated-inputs + (list go-golang-org-x-net)) + (home-page "https://github.com/schollz/peerdiscovery") + (synopsis "Local peer discovery using UDP multicast") + (description + "This package implements a functionality for cross-platform thread-safe +local peer discovery using UDP multicast.") + (license license:expat))) + +(define-public go-github-com-sebest-xff + (package + (name "go-github-com-sebest-xff") + (version "0.0.0-20210106013422-671bd2870b3a") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sebest/xff") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "06is8vvgxsis4sdr1d1n7p5g16x3rrw86qwkiwgamm5vnjkrvcdp")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/sebest/xff" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file-recursively "examples"))))))) + (native-inputs + (list go-github-com-stretchr-testify)) + (home-page "https://github.com/sebest/xff") + (synopsis "X-Forwarded-For middleware fo Golang") + (description + "Package @@code{xff} is a @code{net/http} middleware/handler to parse +@url{http://tools.ietf.org/html/rfc7239, Forwarded HTTP Extension} in +Golang.") + (license license:expat))) + (define-public go-github-com-sherclockholmes-webpush-go (package (name "go-github-com-sherclockholmes-webpush-go") @@ -9081,6 +10213,45 @@ information or even the peer of a VETH interface.") support.") (license license:expat))) +(define-public go-github-com-shopify-goreferrer + (package + (name "go-github-com-shopify-goreferrer") + (version "0.0.0-20250513162709-b78e2829e40b") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shopify/goreferrer") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1sdmhkb1z5lhk7sgwq13vn2ryp0aaj4vsqb3fcxj8nyjvq19bfin")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/Shopify/goreferrer" + #:embed-files + #~(list + ;; golang.org/x/net/publicsuffix/table.go:63:12: pattern + ;; data/children: cannot embed irregular file data/children + "children" + ;; golang.org/x/net/publicsuffix/table.go:48:12: pattern data/nodes: + ;; cannot embed irregular file data/nodes + "nodes" + ;; golang.org/x/net/publicsuffix/table.go:33:12: pattern data/text: + ;; cannot embed irregular file data/text + "text"))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-golang-org-x-net)) + (home-page "https://github.com/Shopify/goreferrer") + (synopsis "Referrer URLs analyzer and classifier library for Golang") + (description + "This package provides a Go module that analyzes and classifies different +kinds of referrer URLs (search, social, ...).") + (license license:expat))) + (define-public go-github-com-shurcool-githubv4 (package (name "go-github-com-shurcool-githubv4") @@ -9225,6 +10396,56 @@ use gzip compression when serving HTTP requests.") provided @code{http.FileSystem}.") (license license:expat))) +(define-public go-github-com-slok-go-http-metrics + (package + (name "go-github-com-slok-go-http-metrics") + (version "0.13.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/slok/go-http-metrics") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lrnf0vhqlnhad6n8yyc2iafqlw6jr55cmyg9gqns2yi2gdfqv8m")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/slok/go-http-metrics" + ;; XXX: Full tests require Iris package. + #:test-subdirs #~(list "metrics/...") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key tests? import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (delete-file-recursively "examples"))))))) + (propagated-inputs + (list go-contrib-go-opencensus-io-exporter-prometheus + go-github-com-emicklei-go-restful-v3 + go-github-com-fasthttp-router + go-github-com-gin-gonic-gin + go-github-com-go-chi-chi-v5 + go-github-com-gorilla-mux + go-github-com-julienschmidt-httprouter + go-github-com-justinas-alice + ;; go-github-com-kataras-iris-v12 + go-github-com-labstack-echo-v4 + go-github-com-prometheus-client-golang + go-github-com-stretchr-testify + go-github-com-urfave-negroni + go-github-com-valyala-fasthttp + go-go-opencensus-io + go-goji-io)) + (home-page "https://github.com/slok/go-http-metrics") + (synopsis "Modular http middleware to measure HTTP requests") + (description + "Package gohttpmetrics knows how to measure http metrics in different +metric formats, it comes with a middleware that can be used for different +frameworks and also the the main Go net/http handler:.") + (license license:asl2.0))) + (define-public go-github-com-smartystreets-go-aws-auth (package (name "go-github-com-smartystreets-go-aws-auth") @@ -9273,7 +10494,7 @@ Supports S3 and STS.") (define-public go-github-com-sourcegraph-jsonrpc2 (package (name "go-github-com-sourcegraph-jsonrpc2") - (version "0.2.0") + (version "0.2.1") (home-page "https://github.com/sourcegraph/jsonrpc2") (source (origin @@ -9283,7 +10504,7 @@ Supports S3 and STS.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1id35b4mhif9gy1b70mv0x7xkmpm2p8xydix8six10yjyhvm1wjh")))) + (base32 "0nxiq8da4x4sipjkap50cfzjg9b8vqm45w65hbjywwj6q73jl54a")))) (build-system go-build-system) (arguments '(#:import-path "github.com/sourcegraph/jsonrpc2")) @@ -9360,6 +10581,7 @@ StatHat} account.") (build-system go-build-system) (arguments (list + #:go go-1.23 #:import-path "github.com/swaggo/swag" #:unpack-path "github.com/swaggo/swag" #:embed-files @@ -9570,6 +10792,52 @@ runtime. It has zero dependencies, and doesn't rely on CGO. This means you can run applications in other languages and still keep cross compilation.") (license license:asl2.0))) +(define-public go-github-com-things-go-go-socks5 + (package + (name "go-github-com-things-go-go-socks5") + (version "0.0.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/things-go/go-socks5") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0r7v1bpja4j8q9bjh124w8l5m29vwnpaq0flm97izvzw4pcyxybf")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/things-go/go-socks5")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-golang-org-x-net)) + (home-page "https://github.com/things-go/go-socks5") + (synopsis "SOCKS5 with full TCP/UDP and IPv4/IPv6 support in Golang") + (description + "This package implements a @url{http://en.wikipedia.org/wiki/SOCKS, +SOCKS5}. SOCKS (Secure Sockets) is used to route traffic between a client and +server through an intermediate proxy layer. This can be used to bypass +firewalls or NATs. + +Features: +@itemize +@item support socks5 server +@item support TCP/UDP and IPv4/IPv6 +@item unit tests +@item \"No Auth\" mode +@item user/password authentication optional user addr limit +@item support for the CONNECT command +@item support for the ASSOCIATE command +@item rules to do granular filtering of commands +@item custom DNS resolution +@item custom goroutine pool +@item buffer pool design and optional custom buffer pool +@item custom logger +@end itemize") + (license license:expat))) + (define-public go-github-com-tj-go-elastic (package (name "go-github-com-tj-go-elastic") @@ -9757,7 +11025,7 @@ extract data from those paths.") (define-public go-github-com-ugorji-go-codec (package (name "go-github-com-ugorji-go-codec") - (version "1.2.12") + (version "1.2.14") (source (origin (method git-fetch) @@ -9766,10 +11034,11 @@ extract data from those paths.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "11j0sd7kli2bh2npfr2znnvdjsk118rs8khqzfdp6pb5jm0l20ib")))) + (base32 "1mny5gm5gr82hz4y6k5ljaa0khjw647ys278wq750fgrbzp6fs8h")))) (build-system go-build-system) (arguments (list + #:go go-1.23 #:import-path "github.com/ugorji/go/codec" #:unpack-path "github.com/ugorji/go" #:phases #~(modify-phases %standard-phases @@ -9802,6 +11071,7 @@ encoding library for the MessagePack, CBOR, JSON and the Binc formats.") (build-system go-build-system) (arguments (list + #:go go-1.23 #:import-path "github.com/urfave/negroni")) (home-page "https://github.com/urfave/negroni") (synopsis "Idiomatic HTTP Middleware for Golang") @@ -9827,6 +11097,7 @@ tiny,non-intrusive, and encourages use of @code{net/http} Handlers.") (build-system go-build-system) (arguments (list + #:go go-1.23 #:import-path "github.com/urfave/negroni/v3")))) (define-public go-github-com-valyala-fasthttp @@ -9907,6 +11178,35 @@ replacement for native @code{net/http} module.") performance-related options.") (license license:expat))) +(define-public go-github-com-varlink-go-varlink + (package + (name "go-github-com-varlink-go-varlink") + (version "0.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/varlink/go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1bhpi18xrmf5in2m4y6wj2q05rxk9m219knk9dj3bin1aj1dlf56")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "github.com/varlink/go" + ;; Tests in cmd are broken. + #:test-subdirs #~(list "varlink/..."))) + (home-page "https://github.com/varlink/go") + (synopsis "Go implementation of the Varlink IPC protocol") + (description + "This package provides a Go implementation of the +@url{https://varlink.org/, Varlink} protocol, a protocol for inter-process +communication. Varlink utilizes a plain-text, JSON-based format for messages +and is designed to be accessible to both humans and machines.") + (license license:asl2.0))) + (define-public go-github-com-vektah-gqlparser-v2 (package (name "go-github-com-vektah-gqlparser-v2") @@ -9941,7 +11241,7 @@ implementation as closely while remaining idiomatic and easy to use.") (define-public go-github-com-vishvananda-netlink (package (name "go-github-com-vishvananda-netlink") - (version "1.3.0") + (version "1.3.1") (source (origin (method git-fetch) @@ -9950,7 +11250,7 @@ implementation as closely while remaining idiomatic and easy to use.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1ckwb1ml7i2ccdd7kzc04s839naf4arlxav2ip5kf4rm4xhba9g7")))) + (base32 "0zc18p7mfcfjrpiwgyka8153lfyqrrlqnw7x1zzsfjf961m2cgw3")))) (build-system go-build-system) (arguments (list @@ -10265,6 +11565,7 @@ programming language.") (build-system go-build-system) (arguments (list + #:go go-1.23 ;; validation of time strings. only RFC3339 not all of ISO 8601 are ;; valid. expects: false, given true Schema: {"format":"time"} Data: ;; "01:01:01,1111" @@ -10446,7 +11747,7 @@ connection management for @url{https://github.com/xtaci/kcp-go,kcp-go}.") go-github-com-hashicorp-go-syslog go-github-com-hjson-hjson-go-v4 go-github-com-kardianos-minwinsvc - go-github-com-olekukonko-tablewriter + go-github-com-olekukonko-tablewriter-0.0.5 go-github-com-quic-go-quic-go go-github-com-vishvananda-netlink go-github-com-wlynxg-anet @@ -10484,7 +11785,7 @@ It is to used for inputs in other packages.") (define-public go-github-com-zitadel-oidc-v3 (package (name "go-github-com-zitadel-oidc-v3") - (version "3.39.1") + (version "3.43.0") (source (origin (method git-fetch) @@ -10493,13 +11794,14 @@ It is to used for inputs in other packages.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1vwqr8p75zxyghcjlm5n2d52amgpqagjwnmba9zhvcnd3cqpdjpb")))) + (base32 "01cpck1qy91r74q86qkw3dh62zrzwdpqlbzwrxzsv0gpqz5pixc9")))) (build-system go-build-system) (arguments (list #:import-path "github.com/zitadel/oidc/v3" #:test-flags - #~(list "-skip" (string-join + #~(list "-vet=off" + "-skip" (string-join ;; Tests requring Internet access. (list "TestDiscover/spotify" "TestIntrospect" @@ -10525,6 +11827,7 @@ It is to used for inputs in other packages.") go-github-com-zitadel-logging go-github-com-zitadel-schema go-go-opentelemetry-io-otel + go-go-opentelemetry-io-otel-trace go-golang-org-x-oauth2 go-golang-org-x-text)) (home-page "https://github.com/zitadel/oidc") @@ -10537,38 +11840,46 @@ https://openid.net/developers/how-connect-works/}.") (define-public go-gitlab-com-gitlab-org-api-client-go (package (name "go-gitlab-com-gitlab-org-api-client-go") - (version "0.123.0") + (version "0.130.1") (source (origin (method git-fetch) (uri (git-reference - (url "https://gitlab.com/gitlab-org/api/client-go.git") - (commit (string-append "v" version)))) + (url "https://gitlab.com/gitlab-org/api/client-go") + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0xrqyqvmaslfr9cj91519qi5f2sd3l2mvipxgjf13vd3v4fchacn")))) + (base32 "06bnaja7b0q2wgznqg9rz7kdx5wq70hmdn9ymf2546svwibmz4vk")))) (build-system go-build-system) (arguments (list - #:go go-1.22 #:import-path "gitlab.com/gitlab-org/api/client-go" #:test-flags #~(list "-skip" (string-join ;; Tests requir network access. (list "TestGetMergeRequest" + "TestPagination_Scan2" + "TestPagination_Scan2_Error" + "TestPagination_ScanAndCollect" + "TestPagination_Scan_Error" + "TestPagination_Scan_KeysetBased" + "TestPagination_Scan_OffsetBased" "TestRepositoryFilesService_CreateFile" "TestRepositoryFilesService_DeleteFile" "TestRepositoryFilesService_GetFile" "TestRepositoryFilesService_GetFileBlame" "TestRepositoryFilesService_GetFileMetaData" "TestRepositoryFilesService_GetRawFile" + "TestRepositoryFilesService_GetRawFileMetaData" "TestRepositoryFilesService_UpdateFile" "TestRepositorySubmodulesService_UpdateSubmodule" + "TestTagsService_GetTagSignature" "TestUpdateRepositoryEnvironmentsEscapesURL") "|")))) (native-inputs - (list go-github-com-stretchr-testify)) + (list go-github-com-stretchr-testify + go-go-uber-org-mock)) (propagated-inputs (list go-github-com-google-go-querystring go-github-com-hashicorp-go-cleanhttp @@ -10637,7 +11948,7 @@ Go.") (package (name "go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-ptutil") - (version "0.0.0-20240710081135-6c4d8ed41027") + (version "0.0.0-20250130151315-efaf4e0ec0d3") (source (origin (method git-fetch) @@ -10648,16 +11959,21 @@ Go.") (commit (go-version->git-ref version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1h7ssgsny6abhpycgks1kvqzvd20s081n39j5yxjjr7zn495ysdc")))) + (base32 "04c76aygplm81h49dbibzjax1r9b4i37rn7qi8qsi2j2czvm639z")))) (build-system go-build-system) (arguments (list #:skip-build? #t #:import-path "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/ptutil")) + (native-inputs + (list go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-snowflake-v2-bootstrap)) (propagated-inputs (list go-github-com-prometheus-client-golang go-github-com-prometheus-client-model + go-github-com-refraction-networking-utls + go-github-com-smartystreets-goconvey + go-golang-org-x-net go-google-golang-org-protobuf)) (home-page "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/ptutil") @@ -10670,7 +11986,7 @@ Go.") (package (name "go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-snowflake-v2") - (version "2.10.1") + (version "2.11.0") (source (origin (method git-fetch) @@ -10681,19 +11997,20 @@ Go.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "14ypgzj6c6vjw9s85wf2vdfa9l06iandx7gz90i3w6r65q2cp6vj")))) + (base32 "0cy0q88bw14fwbyk0nrdc1g73g7623k337w4b9n7hln2jmis5wjm")))) (build-system go-build-system) (arguments (list - ;; Project provides a Go library and also CLI builds. + #:go go-1.23 + ;; TODO: Project provides a Go library and also CLI builds for service, + ;; client and proxy. #:skip-build? #t #:import-path "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2" ;; panic: empty transcript [recovered] #:test-flags #~(list "-skip" "TestQueuePacketConnWriteToKCP"))) (native-inputs - (list go-github-com-golang-mock - go-github-com-stretchr-testify)) + (list go-github-com-stretchr-testify)) (propagated-inputs (list go-github-com-aws-aws-sdk-go-v2 go-github-com-aws-aws-sdk-go-v2-config @@ -10702,16 +12019,15 @@ Go.") go-github-com-golang-mock go-github-com-gorilla-websocket go-github-com-miekg-dns - go-github-com-pion-ice-v2 + go-github-com-pion-ice-v4 go-github-com-pion-sdp-v3 go-github-com-pion-stun-v3 - go-github-com-pion-transport-v2 - go-github-com-pion-webrtc-v3 + go-github-com-pion-transport-v3 + go-github-com-pion-webrtc-v4 go-github-com-prometheus-client-golang go-github-com-realclientip-realclientip-go go-github-com-refraction-networking-utls go-github-com-smartystreets-goconvey - go-github-com-stretchr-testify go-github-com-txthinking-socks5 go-github-com-xtaci-kcp-go-v5 go-github-com-xtaci-smux @@ -10742,6 +12058,20 @@ library code @end itemize") (license license:bsd-3))) +(define-public go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-snowflake-v2-bootstrap + ;; This variant is to break cycle where ptuil tries to read version from + ;; <gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2/common/version> + (hidden-package + (package/inherit go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-snowflake-v2 + (arguments + (list #:skip-build? #t + #:tests? #f + #:import-path "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/v2")) + (propagated-inputs + (modify-inputs (package-propagated-inputs + go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-snowflake-v2) + (delete "go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-ptutil")))))) + (define-public go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-webtunnel (package (name "go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-webtunnel") @@ -10831,7 +12161,7 @@ lists) (build-system go-build-system) (arguments (list - #:go go-1.22 + #:go go-1.23 #:import-path "go.opencensus.io" #:test-flags #~(list "-skip" @@ -10859,35 +12189,6 @@ lists) "Package opencensus contains Go support for @code{OpenCensus}.") (license license:asl2.0))) -(define-public go-go-opentelemetry-io-contrib - (package - (name "go-go-opentelemetry-io-contrib") - (version "1.35.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/open-telemetry/opentelemetry-go-contrib") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1gnhccl9fkyqr4kp8by3cqzsc1w88h1ghxikdh5fpwnvsdqzqy9q")))) - (build-system go-build-system) - (arguments - (list - #:go go-1.22 - #:import-path "go.opentelemetry.io/contrib" - #:tests? #f)) - (native-inputs (list go-github-com-stretchr-testify)) - (propagated-inputs (list go-github-com-felixge-httpsnoop)) - (home-page "https://go.opentelemetry.io/contrib") - (synopsis "OpenTelemetry-Go Contrib") - (description - "Package contrib is a collection of extensions for the opentelemetry-go project. -It provides 3rd party resource detectors, propagators, samplers, bridges, and -instrumentation as submodules.") - (license license:asl2.0))) - (define-public go-go-opentelemetry-io-contrib-instrumentation-net-http-otelhttp (package (name "go-go-opentelemetry-io-contrib-instrumentation-net-http-otelhttp") @@ -10933,6 +12234,195 @@ intended to be used to add tracing by wrapping existing handlers (with Handler) and routes @code{WithRouteTag}.") (license license:asl2.0))) +(define-public go-go-opentelemetry-io-contrib-propagators-autoprop + (package + (name "go-go-opentelemetry-io-contrib-propagators-autoprop") + (version "0.61.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/open-telemetry/opentelemetry-go-contrib") + (commit (go-version->git-ref version + #:subdir "propagators/autoprop")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15k2xps4qv37pw3ml6pj98kihl6a04bbr005px5hhckl23s40w2c")) + (modules '((guix build utils) + (ice-9 ftw) + (srfi srfi-26))) + (snippet + #~(begin + ;; XXX: 'delete-all-but' is copied from the turbovnc package. + ;; Consider to implement it as re-usable procedure in + ;; guix/build/utils or guix/build-system/go. + (define (delete-all-but directory . preserve) + (with-directory-excursion directory + (let* ((pred (negate (cut member <> + (cons* "." ".." preserve)))) + (items (scandir "." pred))) + (for-each (cut delete-file-recursively <>) items)))) + (delete-all-but "propagators" "autoprop") + (delete-all-but "." "propagators"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "go.opentelemetry.io/contrib/propagators/autoprop" + #:unpack-path "go.opentelemetry.io/contrib")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-go-opentelemetry-io-contrib-propagators-aws + go-go-opentelemetry-io-contrib-propagators-b3 + go-go-opentelemetry-io-contrib-propagators-jaeger + go-go-opentelemetry-io-contrib-propagators-ot + go-go-opentelemetry-io-otel)) + (home-page "https://opentelemetry.io/") + (synopsis "OpenTelemetry TextMapPropagator creation") + (description + "Package autoprop provides an @code{OpenTelemetry} +@code{TextMapPropagator} creation function. The @code{OpenTelemetry} +specification states that the default @code{TextMapPropagator} needs to be a +no-operation implementation. The opentelemetry-go project adheres to this +requirement. However, for systems that perform propagation this default is +not ideal. This package provides a @code{TextMapPropagator} with useful +defaults (a combined @code{TraceContext} and Baggage +@code{TextMapPropagator}), and supports environment overrides using the +OTEL_PROPAGATORS environment variable.") + (license license:asl2.0))) + +(define-public go-go-opentelemetry-io-contrib-propagators-aws + (package + (name "go-go-opentelemetry-io-contrib-propagators-aws") + (version "1.36.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/open-telemetry/opentelemetry-go-contrib") + (commit (go-version->git-ref version + #:subdir "propagators/aws")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15k2xps4qv37pw3ml6pj98kihl6a04bbr005px5hhckl23s40w2c")))) + (build-system go-build-system) + (arguments + (list + #:import-path "go.opentelemetry.io/contrib/propagators/aws" + #:unpack-path "go.opentelemetry.io/contrib")) + (native-inputs + (list go-github-com-google-go-cmp + go-github-com-stretchr-testify)) + (propagated-inputs + (list go-go-opentelemetry-io-otel + go-go-opentelemetry-io-otel-sdk + go-go-opentelemetry-io-otel-trace)) + (home-page "https://go.opentelemetry.io/contrib") + (synopsis "OpenTracing AWS propagator library") + (description + "Package aws contains @code{OpenTelemetry} propagators that use AWS +propagation formats.") + (license license:asl2.0))) + +(define-public go-go-opentelemetry-io-contrib-propagators-b3 + (package + (name "go-go-opentelemetry-io-contrib-propagators-b3") + (version "1.36.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/open-telemetry/opentelemetry-go-contrib") + (commit (go-version->git-ref version + #:subdir "propagators/b3")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15k2xps4qv37pw3ml6pj98kihl6a04bbr005px5hhckl23s40w2c")))) + (build-system go-build-system) + (arguments + (list + #:import-path "go.opentelemetry.io/contrib/propagators/b3" + #:unpack-path "go.opentelemetry.io/contrib")) + (native-inputs + (list go-github-com-google-go-cmp + go-github-com-stretchr-testify)) + (propagated-inputs + (list go-go-opentelemetry-io-otel + go-go-opentelemetry-io-otel-trace)) + (home-page "https://go.opentelemetry.io/contrib") + (synopsis "OpenTracing B3 propagator library") + (description + "Package b3 implements the B3 propagator specification as defined at +@@url{https://github.com/openzipkin/b3-propagation,}.") + (license license:asl2.0))) + +(define-public go-go-opentelemetry-io-contrib-propagators-jaeger + (package + (name "go-go-opentelemetry-io-contrib-propagators-jaeger") + (version "1.36.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/open-telemetry/opentelemetry-go-contrib") + (commit (go-version->git-ref version + #:subdir "propagators/jaeger")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15k2xps4qv37pw3ml6pj98kihl6a04bbr005px5hhckl23s40w2c")))) + (build-system go-build-system) + (arguments + (list + #:import-path "go.opentelemetry.io/contrib/propagators/jaeger" + #:unpack-path "go.opentelemetry.io/contrib")) + (native-inputs + (list go-github-com-google-go-cmp + go-github-com-stretchr-testify)) + (propagated-inputs + (list go-go-opentelemetry-io-otel + go-go-opentelemetry-io-otel-trace)) + (home-page "https://go.opentelemetry.io/contrib") + (synopsis "OpenTracing Jaeger propagator library") + (description + "Package jaeger implements the Jaeger propagator specification as defined +at +@url{https://www.jaegertracing.io/docs/1.18/client-libraries/#propagation-format}.") + (license license:asl2.0))) + +(define-public go-go-opentelemetry-io-contrib-propagators-ot + (package + (name "go-go-opentelemetry-io-contrib-propagators-ot") + (version "1.36.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/open-telemetry/opentelemetry-go-contrib") + (commit (go-version->git-ref version + #:subdir "propagators/ot")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15k2xps4qv37pw3ml6pj98kihl6a04bbr005px5hhckl23s40w2c")))) + (build-system go-build-system) + (arguments + (list + #:import-path "go.opentelemetry.io/contrib/propagators/ot" + #:unpack-path "go.opentelemetry.io/contrib")) + (native-inputs + (list go-github-com-google-go-cmp + go-github-com-stretchr-testify)) + (propagated-inputs + (list + go-go-opentelemetry-io-otel + go-go-opentelemetry-io-otel-trace + go-go-uber-org-multierr)) + (home-page "https://opentelemetry.io/") + (synopsis "OpenTracing propagator library") + (description + "Package ot implements the ot-tracer-* propagator used by the default +Tracer implementation from the @code{OpenTracing} project.") + (license license:asl2.0))) + (define-public go-go-opentelemetry-io-otel (package (name "go-go-opentelemetry-io-otel") @@ -10957,21 +12447,9 @@ Handler) and routes @code{WithRouteTag}.") ;; the longest path to go.mod first, shell snippet to ;; produce the list: ;; find . -type f -name go.mod -printf "%d %p\n" | sort -rn - (list "exporters/otlp/otlptrace/otlptracehttp" - "exporters/otlp/otlptrace/otlptracegrpc" - "exporters/otlp/otlpmetric/otlpmetrichttp" - "exporters/otlp/otlpmetric/otlpmetricgrpc" - "exporters/otlp/otlplog/otlploghttp" - "exporters/otlp/otlplog/otlploggrpc" - "exporters/stdout/stdouttrace" - "exporters/stdout/stdoutmetric" - "exporters/stdout/stdoutlog" - "exporters/otlp/otlptrace" - "sdk/metric" + (list "sdk/metric" "sdk/log" "internal/tools" - "exporters/zipkin" - "exporters/prometheus" "example/zipkin" "example/prometheus" "example/passthrough" @@ -10982,6 +12460,7 @@ Handler) and routes @code{WithRouteTag}.") "bridge/opentracing" "bridge/opencensus" ;; "trace" - introduces a cycle, keep it + "exporters" "sdk" "schema" ;; "metric" - introduces a cycle, keep it @@ -11008,6 +12487,252 @@ go.opentelemetry.io/otel, go.opentelemetry.io/otel/metric and go.opentelemetry.io/otel/trace.") (license license:asl2.0))) +(define-public go-go-opentelemetry-io-otel-exporters-otlp-otlptrace + (package + (name "go-go-opentelemetry-io-otel-exporters-otlp-otlptrace") + (version "1.36.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/open-telemetry/opentelemetry-go") + (commit (go-version->git-ref version + #:subdir "exporters/otlp/otlptrace")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kvfbqc56p1h9rh9cvgn37ya6k10613r0f2rhjiwrrkgs2mszk30")) + (modules '((guix build utils) + (ice-9 ftw) + (srfi srfi-26))) + (snippet + #~(begin + ;; XXX: 'delete-all-but' is copied from the turbovnc package. + ;; Consider to implement it as re-usable procedure in + ;; guix/build/utils or guix/build-system/go. + (define (delete-all-but directory . preserve) + (with-directory-excursion directory + (let* ((pred (negate (cut member <> + (cons* "." ".." preserve)))) + (items (scandir "." pred))) + (for-each (cut delete-file-recursively <>) items)))) + (delete-all-but "exporters/otlp" "otlptrace") + (delete-all-but "." "exporters") + ;; Submodules with their own go.mod files and packed as separated + ;; packages: + ;; + ;; - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc + ;; - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp + (for-each delete-file-recursively + (list "exporters/otlp/otlptrace/otlptracegrpc" + "exporters/otlp/otlptrace/otlptracehttp")))))) + (build-system go-build-system) + (arguments + (list + #:import-path "go.opentelemetry.io/otel/exporters/otlp/otlptrace" + #:unpack-path "go.opentelemetry.io/otel")) + (native-inputs + (list go-github-com-google-go-cmp + go-github-com-stretchr-testify)) + (propagated-inputs + (list go-go-opentelemetry-io-proto-otlp + go-google-golang-org-protobuf)) + (home-page "https://go.opentelemetry.io/otel") + (synopsis "OTLP Trace Exporter") + (description + "Package otlptrace contains abstractions for OTLP span exporters.") + (license license:asl2.0))) + +(define-public go-go-opentelemetry-io-otel-exporters-otlp-otlptrace-otlptracegrpc + (package + (name "go-go-opentelemetry-io-otel-exporters-otlp-otlptrace-otlptracegrpc") + (version "1.36.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/open-telemetry/opentelemetry-go") + (commit (go-version->git-ref version + #:subdir "exporters/otlp/otlptrace/otlptracegrpc")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kvfbqc56p1h9rh9cvgn37ya6k10613r0f2rhjiwrrkgs2mszk30")) + (modules '((guix build utils) + (ice-9 ftw) + (srfi srfi-26))) + (snippet + #~(begin + ;; XXX: 'delete-all-but' is copied from the turbovnc package. + ;; Consider to implement it as re-usable procedure in + ;; guix/build/utils or guix/build-system/go. + (define (delete-all-but directory . preserve) + (with-directory-excursion directory + (let* ((pred (negate (cut member <> + (cons* "." ".." preserve)))) + (items (scandir "." pred))) + (for-each (cut delete-file-recursively <>) items)))) + (delete-all-but "exporters/otlp/otlptrace" "otlptracegrpc") + (delete-all-but "." "exporters"))))) + (build-system go-build-system) + (arguments + (list + ;; TODO: Enable when all missing inputs are availalbe, use as source + ;; only package for Boxo. + #:skip-build? #t + #:tests? #f + #:import-path + "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc" + #:unpack-path "go.opentelemetry.io/otel")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-cenkalti-backoff-v5 + go-go-opentelemetry-io-proto-otlp + go-go-uber-org-goleak + go-google-golang-org-genproto-googleapis-rpc + go-google-golang-org-grpc + go-google-golang-org-protobuf)) + (home-page "https://go.opentelemetry.io/otel") + (synopsis "OTLP Trace gRPC Exporter") + (description + "Package otlptracegrpc provides an OTLP span exporter using @code{gRPC}. +By default the telemetry is sent to @@url{https://localhost:4317}.") + (license license:asl2.0))) + +(define-public go-go-opentelemetry-io-otel-exporters-otlp-otlptrace-otlptracehttp + (package + (name "go-go-opentelemetry-io-otel-exporters-otlp-otlptrace-otlptracehttp") + (version "1.36.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/open-telemetry/opentelemetry-go") + (commit (go-version->git-ref version + #:subdir "exporters/otlp/otlptrace/otlptracehttp")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kvfbqc56p1h9rh9cvgn37ya6k10613r0f2rhjiwrrkgs2mszk30")) + (modules '((guix build utils) + (ice-9 ftw) + (srfi srfi-26))) + (snippet + #~(begin + ;; XXX: 'delete-all-but' is copied from the turbovnc package. + ;; Consider to implement it as re-usable procedure in + ;; guix/build/utils or guix/build-system/go. + (define (delete-all-but directory . preserve) + (with-directory-excursion directory + (let* ((pred (negate (cut member <> + (cons* "." ".." preserve)))) + (items (scandir "." pred))) + (for-each (cut delete-file-recursively <>) items)))) + (delete-all-but "exporters/otlp/otlptrace" "otlptracehttp") + (delete-all-but "." "exporters"))))) + (build-system go-build-system) + (arguments + (list + ;; TODO: Enable when all missing inputs are availalbe, use as source + ;; only package for Boxo. + #:skip-build? #t + #:tests? #f + #:import-path + "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp" + #:unpack-path "go.opentelemetry.io/otel")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-cenkalti-backoff-v5 + go-go-opentelemetry-io-proto-otlp + ;; go-google-golang-org-grpc + go-google-golang-org-protobuf)) + (home-page "https://go.opentelemetry.io/otel") + (synopsis "OTLP Trace HTTP Exporter") + (description + "Package otlptracehttp provides an OTLP span exporter using HTTP with +protobuf payloads. By default the telemetry is sent to +@@url{https://localhost:4318/v1/traces}.") + (license license:asl2.0))) + +(define-public go-go-opentelemetry-io-otel-exporters-stdout-stdouttrace + (package + (name "go-go-opentelemetry-io-otel-exporters-stdout-stdouttrace") + (version "1.36.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/open-telemetry/opentelemetry-go") + (commit (go-version->git-ref version + #:subdir + "exporters/stdout/stdouttrace")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kvfbqc56p1h9rh9cvgn37ya6k10613r0f2rhjiwrrkgs2mszk30")))) + (build-system go-build-system) + (arguments + (list + ;; TODO: Enable when all missing inputs are availalbe, use as source + ;; only package for Boxo. + #:skip-build? #t + #:tests? #f + #:import-path "go.opentelemetry.io/otel/exporters/stdout/stdouttrace" + #:unpack-path "go.opentelemetry.io/otel")) + (propagated-inputs (list go-github-com-stretchr-testify)) + (home-page "https://go.opentelemetry.io/otel") + (synopsis "STDOUT Trace Exporter") + (description + "Package stdouttrace contains an @code{OpenTelemetry} exporter for tracing +telemetry to be written to an output destination as JSON.") + (license license:asl2.0))) + +(define-public go-go-opentelemetry-io-otel-exporters-zipkin + (package + (name "go-go-opentelemetry-io-otel-exporters-zipkin") + (version "1.36.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/open-telemetry/opentelemetry-go") + (commit (go-version->git-ref version + #:subdir "exporters/zipkin")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kvfbqc56p1h9rh9cvgn37ya6k10613r0f2rhjiwrrkgs2mszk30")) + (modules '((guix build utils) + (ice-9 ftw) + (srfi srfi-26))) + (snippet + #~(begin + ;; XXX: 'delete-all-but' is copied from the turbovnc package. + ;; Consider to implement it as re-usable procedure in + ;; guix/build/utils or guix/build-system/go. + (define (delete-all-but directory . preserve) + (with-directory-excursion directory + (let* ((pred (negate (cut member <> + (cons* "." ".." preserve)))) + (items (scandir "." pred))) + (for-each (cut delete-file-recursively <>) items)))) + (delete-all-but "exporters" "zipkin") + (delete-all-but "." "exporters"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "go.opentelemetry.io/otel/exporters/zipkin" + #:unpack-path "go.opentelemetry.io/otel")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-openzipkin-zipkin-go + go-github-com-google-go-cmp + go-github-com-go-logr-stdr + go-github-com-go-logr-logr)) + (home-page "https://go.opentelemetry.io/otel") + (synopsis "Zipkin Exporter") + (description + "Package zipkin contains an @code{OpenTelemetry} tracing exporter for Zipkin.") + (license license:asl2.0))) + (define-public go-go-opentelemetry-io-otel-log (package (name "go-go-opentelemetry-io-otel-log") @@ -11016,9 +12741,9 @@ go.opentelemetry.io/otel/trace.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/open-telemetry/opentelemetry-go") - (commit (go-version->git-ref version - #:subdir "log")))) + (url "https://github.com/open-telemetry/opentelemetry-go") + (commit (go-version->git-ref version + #:subdir "log")))) (file-name (git-file-name name version)) (sha256 (base32 "0sb36qyq389fif9qp5iiqp6w41dfcwi95gb0bsbvznvijhd8c1cc")) @@ -11031,18 +12756,11 @@ go.opentelemetry.io/otel/trace.") ;; Consider to implement it as re-usable procedure in ;; guix/build/utils or guix/build-system/go. (define (delete-all-but directory . preserve) - (define (directory? x) - (and=> (stat x #f) - (compose (cut eq? 'directory <>) stat:type))) (with-directory-excursion directory - (let* ((pred - (negate (cut member <> (append '("." "..") preserve)))) + (let* ((pred (negate (cut member <> + (cons* "." ".." preserve)))) (items (scandir "." pred))) - (for-each (lambda (item) - (if (directory? item) - (delete-file-recursively item) - (delete-file item))) - items)))) + (for-each (cut delete-file-recursively <>) items)))) (delete-all-but "." "log"))))) (build-system go-build-system) (arguments @@ -11083,8 +12801,8 @@ OpenTelemetry API."))) (origin (method git-fetch) (uri (git-reference - (url "https://github.com/open-telemetry/opentelemetry-go") - (commit (go-version->git-ref version #:subdir "sdk")))) + (url "https://github.com/open-telemetry/opentelemetry-go") + (commit (go-version->git-ref version #:subdir "sdk")))) (file-name (git-file-name name version)) (sha256 (base32 "0sb36qyq389fif9qp5iiqp6w41dfcwi95gb0bsbvznvijhd8c1cc")) @@ -11097,18 +12815,11 @@ OpenTelemetry API."))) ;; Consider to implement it as re-usable procedure in ;; guix/build/utils or guix/build-system/go. (define (delete-all-but directory . preserve) - (define (directory? x) - (and=> (stat x #f) - (compose (cut eq? 'directory <>) stat:type))) (with-directory-excursion directory - (let* ((pred - (negate (cut member <> (append '("." "..") preserve)))) + (let* ((pred (negate (cut member <> + (cons* "." ".." preserve)))) (items (scandir "." pred))) - (for-each (lambda (item) - (if (directory? item) - (delete-file-recursively item) - (delete-file item))) - items)))) + (for-each (cut delete-file-recursively <>) items)))) (delete-all-but "." "sdk") (delete-file-recursively "sdk/log") (delete-file-recursively "sdk/metric"))))) @@ -11139,9 +12850,9 @@ OpenTelemetry API."))) (origin (method git-fetch) (uri (git-reference - (url "https://github.com/open-telemetry/opentelemetry-go") - (commit (go-version->git-ref version - #:subdir "sdk/log")))) + (url "https://github.com/open-telemetry/opentelemetry-go") + (commit (go-version->git-ref version + #:subdir "sdk/log")))) (file-name (git-file-name name version)) (sha256 (base32 "0sb36qyq389fif9qp5iiqp6w41dfcwi95gb0bsbvznvijhd8c1cc")) @@ -11154,18 +12865,11 @@ OpenTelemetry API."))) ;; Consider to implement it as re-usable procedure in ;; guix/build/utils or guix/build-system/go. (define (delete-all-but directory . preserve) - (define (directory? x) - (and=> (stat x #f) - (compose (cut eq? 'directory <>) stat:type))) (with-directory-excursion directory - (let* ((pred - (negate (cut member <> (append '("." "..") preserve)))) + (let* ((pred (negate (cut member <> + (cons* "." ".." preserve)))) (items (scandir "." pred))) - (for-each (lambda (item) - (if (directory? item) - (delete-file-recursively item) - (delete-file item))) - items)))) + (for-each (cut delete-file-recursively <>) items)))) (delete-all-but "sdk" "log") (delete-all-but "." "sdk"))))) (build-system go-build-system) @@ -11194,9 +12898,9 @@ OpenTelemetry API."))) (origin (method git-fetch) (uri (git-reference - (url "https://github.com/open-telemetry/opentelemetry-go") - (commit (go-version->git-ref version - #:subdir "sdk/metric")))) + (url "https://github.com/open-telemetry/opentelemetry-go") + (commit (go-version->git-ref version + #:subdir "sdk/metric")))) (file-name (git-file-name name version)) (sha256 (base32 "0sb36qyq389fif9qp5iiqp6w41dfcwi95gb0bsbvznvijhd8c1cc")) @@ -11209,18 +12913,11 @@ OpenTelemetry API."))) ;; Consider to implement it as re-usable procedure in ;; guix/build/utils or guix/build-system/go. (define (delete-all-but directory . preserve) - (define (directory? x) - (and=> (stat x #f) - (compose (cut eq? 'directory <>) stat:type))) (with-directory-excursion directory - (let* ((pred - (negate (cut member <> (append '("." "..") preserve)))) + (let* ((pred (negate (cut member <> + (cons* "." ".." preserve)))) (items (scandir "." pred))) - (for-each (lambda (item) - (if (directory? item) - (delete-file-recursively item) - (delete-file item))) - items)))) + (for-each (cut delete-file-recursively <>) items)))) (delete-all-but "sdk" "metric") (delete-all-but "." "sdk"))))) (build-system go-build-system) @@ -11260,6 +12957,39 @@ metrics SDK.") "Package trace provides an implementation of the tracing part of the OpenTelemetry API."))) +(define-public go-go-opentelemetry-io-proto-otlp + (package + (name "go-go-opentelemetry-io-proto-otlp") + (version "1.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/open-telemetry/opentelemetry-proto-go") + (commit (go-version->git-ref version + #:subdir "otlp")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0k7g5p1qhw17szyzxr08aixi5d0d2ixlb3sp4dksgz45v0dy5cds")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "go.opentelemetry.io/proto/otlp" + #:unpack-path "go.opentelemetry.io/proto")) + (propagated-inputs + (list go-github-com-grpc-ecosystem-grpc-gateway-v2 + go-google-golang-org-grpc + go-google-golang-org-protobuf)) + (home-page "https://go.opentelemetry.io/proto") + (synopsis "OpenTelemetry protobuf data model") + (description + "This package provides Go code follows the stability guarantees as +defined in +@code{https://github.com/open-telemetry/opentelemetry-proto?tab=readme-ov-file#maturity-level, +maturity level}.") + (license license:asl2.0))) + (define-public go-go-starlark-net (package (name "go-go-starlark-net") @@ -11352,7 +13082,7 @@ the standard @code{context} package to store request-scoped values.") (define-public go-golang-zx2c4-com-wireguard (package (name "go-golang-zx2c4-com-wireguard") - (version "0.0.0-20231211153847-12269c276173") + (version "0.0.0-20250521234502-f333402bd9cb") (source (origin (method git-fetch) @@ -11364,38 +13094,76 @@ the standard @code{context} package to store request-scoped values.") (commit (go-version->git-ref version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1fbc6m0ahifhrd6jdrpdxi8l3b2slpp8fmv20kpq2yzz19vzzgkf")))) + (base32 "1h4rmdvssk939gk31f0sfwa1yaks72zk8rkcs7fj3qcvl8sgq6hr")))) (build-system go-build-system) (arguments (list - #:import-path "golang.zx2c4.com/wireguard" - #:phases - #~(modify-phases %standard-phases - ;; XXX: Workaround for go-build-system's lack of Go modules - ;; support. - (replace 'check - (lambda* (#:key tests? import-path #:allow-other-keys) - (when tests? - (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "test" "-v" - ;; "./tune/..." ; Requires gvisor.dev/gvisor, not packed yet - "./" - "./conn/..." - "./device/..." - "./ipc/..." - "./ratelimiter/..." - "./replay/..." - "./rwcancel/..." - "./tai64n/...")))))))) + #:import-path "golang.zx2c4.com/wireguard")) (propagated-inputs (list go-golang-org-x-crypto go-golang-org-x-net - go-golang-org-x-sys)) + go-golang-org-x-sys + go-gvisor-dev-gvisor)) (home-page "https://git.zx2c4.com/wireguard") (synopsis "Implementation of WireGuard in Go") (description "This package is a Go Implementation of WireGuard.") (license license:expat))) +(define-public go-google-golang-org-genproto-googleapis-api + (package + (name "go-google-golang-org-genproto-googleapis-api") + (version "0.0.0-20250519155744-55703ea1f237") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/googleapis/go-genproto") + (commit (go-version->git-ref version #:subdir "googleapis/api")))) + (modules '((guix build utils) + (ice-9 ftw) + (srfi srfi-26))) + (snippet + #~(begin + ;; XXX: 'delete-all-but' is copied from the turbovnc package. + ;; Consider to implement it as re-usable procedure in + ;; guix/build/utils or guix/build-system/go. + (define (delete-all-but directory . preserve) + (with-directory-excursion directory + (let* ((pred (negate (cut member <> + (cons* "." ".." preserve)))) + (items (scandir "." pred))) + (for-each (cut delete-file-recursively <>) items)))) + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - google.golang.org/genproto/googleapis/api/apikeys + ;; - google.golang.org/genproto/googleapis/api/servicecontrol + ;; - google.golang.org/genproto/googleapis/api/servicemanagement + ;; - google.golang.org/genproto/googleapis/api/serviceusage + (for-each delete-file-recursively + (list "googleapis/api/apikeys" + "googleapis/api/servicecontrol" + "googleapis/api/servicemanagement" + "googleapis/api/serviceusage")) + (delete-all-but "googleapis" "api") + (delete-all-but "." "googleapis"))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ilf95lhx7930cqx2hmswxasxyxjz3xmbznd0cfcglzdl3d9k4rk")))) + (build-system go-build-system) + (arguments + (list + #:import-path "google.golang.org/genproto/googleapis/api" + #:unpack-path "google.golang.org/genproto")) + (propagated-inputs + (list go-google-golang-org-genproto-googleapis-rpc + go-google-golang-org-grpc + go-google-golang-org-protobuf)) + (home-page "https://github.com/googleapis/go-genproto") + (synopsis "API implementation of Google Cloud Platform in Golang") + (description + "This package provides an API to interact with @acronym{GCP, Google Cloud Platform}.") + (license license:asl2.0))) + (define-public go-google-golang-org-grpc (package (name "go-google-golang-org-grpc") @@ -11437,7 +13205,6 @@ the standard @code{context} package to store request-scoped values.") (build-system go-build-system) (arguments (list - #:go go-1.22 #:tests? #f ; TODO: full test suite needs more packages #:import-path "google.golang.org/grpc")) (propagated-inputs @@ -11467,6 +13234,72 @@ the standard @code{context} package to store request-scoped values.") "Package grpc implements an RPC system called @code{gRPC}.") (license license:asl2.0))) +(define-public go-google-golang-org-grpc-cmd-protoc-gen-go-grpc + (package + (name "go-google-golang-org-grpc-cmd-protoc-gen-go-grpc") + (version "1.5.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/grpc/grpc-go") + (commit (go-version->git-ref version + #:subdir "cmd/protoc-gen-go-grpc")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0yn1ir5y0wc91q95ngr3dlz2cyhp0wlb9l30hkw2cr34r38hq19w")) + (modules '((guix build utils) + (ice-9 ftw) + (srfi srfi-26))) + (snippet + #~(begin + (define (delete-all-but directory . preserve) + (with-directory-excursion directory + (let* ((pred (negate (cut member <> + (cons* "." ".." preserve)))) + (items (scandir "." pred))) + (for-each (cut delete-file-recursively <>) items)))) + (delete-all-but "." "cmd"))))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:import-path "google.golang.org/grpc/cmd/protoc-gen-go-grpc" + #:unpack-path "google.golang.org/grpc")) + (propagated-inputs + (list go-google-golang-org-grpc + go-google-golang-org-protobuf)) + (home-page "https://google.golang.org/grpc") + (synopsis "Generate Go bindings of gRPC's services in protobuf definition files") + (description + "This packge provides a plugin for the Google protocol buffer compiler to +generate Go code.") + (license license:asl2.0))) + +;; This to satisfy alternative import path, some of the projects still use it +;; in go.mod. +(define-public go-gopkg-in-evanphx-json-patch-v4 + (package/inherit go-github-com-evanphx-json-patch + (name "go-gopkg-in-evanphx-json-patch-v4") + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-evanphx-json-patch) + ((#:import-path "github.com/evanphx/json-patch") + "gopkg.in/evanphx/json-patch.v4") + ((#:unpack-path "github.com/evanphx/json-patch") + "gopkg.in/evanphx/json-patch.v4") + ((#:phases _ '%standard-phases) + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-v5-module + (lambda* (#:key import-path #:allow-other-keys) + (delete-file-recursively + (string-append "src/" import-path "/v5")))) + (add-before 'build 'adjust-import-path + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (substitute* (find-files "." "\\.go$") + (("github.com/evanphx/json-patch") import-path))))))))))) + (define-public go-gopkg-in-go-jose-go-jose-v2 (package (inherit go-github-com-go-jose-go-jose-v3) @@ -11526,7 +13359,6 @@ the standard @code{context} package to store request-scoped values.") (build-system go-build-system) (arguments (list - #:go go-1.23 #:import-path "k8s.io/cri-api")) (native-inputs (list go-github-com-stretchr-testify)) @@ -11547,17 +13379,17 @@ docs}.") (define-public go-k8s-io-kube-openapi (package (name "go-k8s-io-kube-openapi") - (version "0.0.0-20241212222426-2c72e554b1e7") + (version "0.0.0-20250905212525-66792eed8611") ;; XXX: Unbundle third_party in pkg. (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/kubernetes/kube-openapi") - (commit (go-version->git-ref version)))) + (url "https://github.com/kubernetes/kube-openapi") + (commit (go-version->git-ref version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0crd349jd210bh68ic70pqmdkfns7cix2qhsa6pfya6kbvschyf9")) + (base32 "1979alrrlym968jxdcxc1lpm3b13bnkyayg042gk6xn0kb97mqma")) ;; XXX: test/integration contains submodule with it's own go.mod. (modules '((guix build utils))) (snippet @@ -11574,17 +13406,16 @@ docs}.") (build-system go-build-system) (arguments (list - #:go go-1.23 + #:skip-build? #t #:import-path "k8s.io/kube-openapi" - #:phases - #~(modify-phases %standard-phases - (delete 'build)))) ; no go files in project's root + ;; Tests are not copatible with Go 1.24+. + #:test-flags #~(list "-vet=off"))) (native-inputs - (list go-github-com-getkin-kin-openapi - go-github-com-google-gofuzz - go-github-com-onsi-ginkgo-v2 + (list go-github-com-onsi-ginkgo-v2 go-github-com-onsi-gomega - go-github-com-stretchr-testify)) + go-github-com-stretchr-testify + ;; go-golang-org-x-tools-go-packages-packagestest + go-sigs-k8s-io-yaml)) (propagated-inputs (list go-github-com-emicklei-go-restful-v3 go-github-com-go-openapi-jsonreference @@ -11595,15 +13426,17 @@ docs}.") go-github-com-munnerz-goautoneg go-github-com-nytimes-gziphandler go-github-com-spf13-pflag + go-github-com-stretchr-testify + go-go-yaml-in-yaml-v2 + go-go-yaml-in-yaml-v3 go-golang-org-x-tools go-google-golang-org-protobuf - go-gopkg-in-yaml-v3 go-k8s-io-gengo-v2 go-k8s-io-klog-v2 go-k8s-io-utils go-sigs-k8s-io-json - go-sigs-k8s-io-structured-merge-diff-v4 - go-sigs-k8s-io-yaml)) + go-sigs-k8s-io-randfill + go-sigs-k8s-io-structured-merge-diff-v6)) (home-page "https://github.com/kubernetes/kube-openapi") (synopsis "Kubernetes OpenAPI spec generation & serving") (description @@ -11794,7 +13627,6 @@ etc) (build-system go-build-system) (arguments (list - #:go go-1.22 #:import-path "mvdan.cc/xurls/v2" #:build-flags #~(list (string-append "-ldflags=-X main.version=" #$version)) @@ -12027,36 +13859,19 @@ go-github-com-tdewolff-minify-v2 source."))) the TLS @acronym{SNI, Server Name Indication} of the TLS handshake. It carries no encryption keys and cannot decode the traffic that it proxies."))) -(define-public gron - (package - (name "gron") - (version "0.7.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tomnomnom/gron") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1sj34b6yv0qigy3aq7qmwf8bqxp1a8qh9p10lzkpw58s1c0iyh36")))) - (build-system go-build-system) +(define-public protoc-gen-go-grpc + (package/inherit go-google-golang-org-grpc-cmd-protoc-gen-go-grpc + (name "protoc-gen-go-grpc") (arguments - (list - #:install-source? #f - #:import-path "github.com/tomnomnom/gron")) - (native-inputs - (list go-github-com-fatih-color - go-github-com-mattn-go-colorable - go-github-com-nwidger-jsoncolor - go-github-com-pkg-errors)) - (home-page "https://github.com/tomnomnom/gron") - (synopsis "Transform JSON to make it easier to grep") - (description - "This package transforms JSON into discrete assignments to make it easier -to use line-based tools such as grep to search for what you want and see the -absolute \"path\" to it.") - (license license:expat))) + (substitute-keyword-arguments + (package-arguments go-google-golang-org-grpc-cmd-protoc-gen-go-grpc) + ((#:install-source? _ #t) #f) + ((#:skip-build? _ #t) #f) + ((#:tests? _ #t) #f))) + (native-inputs (package-propagated-inputs + go-google-golang-org-grpc-cmd-protoc-gen-go-grpc)) + (propagated-inputs '()) + (inputs '()))) (define-public swag (package/inherit go-github-com-swaggo-swag @@ -12072,6 +13887,22 @@ absolute \"path\" to it.") (propagated-inputs '()) (inputs '()))) +(define-public templ + (package/inherit go-github-com-a-h-templ + (name "templ") + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-a-h-templ) + ((#:tests? _ #t) #f) + ((#:install-source? _ #t) #f) + ((#:import-path _ "github.com/a-h/templ") + "github.com/a-h/templ/cmd/templ"))) + (native-inputs + (append (package-native-inputs go-github-com-a-h-templ) + (package-propagated-inputs go-github-com-a-h-templ))) + (propagated-inputs '()) + (inputs '()))) + (define-public xurls (package/inherit go-mvdan-cc-xurls-v2 (name "xurls") |