diff options
Diffstat (limited to 'gnu/packages/golang-web.scm')
-rw-r--r-- | gnu/packages/golang-web.scm | 1190 |
1 files changed, 1009 insertions, 181 deletions
diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm index dcbc37cea3..e895ba59ce 100644 --- a/gnu/packages/golang-web.scm +++ b/gnu/packages/golang-web.scm @@ -10,7 +10,7 @@ ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com> ;;; Copyright © 2020 raingloom <raingloom@riseup.net> -;;; Copyright © 2020-2023 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2020-2024 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2021 Collin J. Doering <collin@rekahsoft.ca> ;;; Copyright © 2021 Philip McGrath <philip@philipmcgrath.com> ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> @@ -210,6 +210,54 @@ required dependencies. The HTTP response contains the aggregated health result and details about the health status of each component.") (license license:expat))) +(define-public go-github-com-arceliar-ironwood + (package + (name "go-github-com-arceliar-ironwood") + (version "v0.0.0-20241122002527-75a6e82fa380") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Arceliar/ironwood") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1xrdy5yn2y8q147n6fafc8cqjf6my06wzlhghv0c5ra9rqg1dii7")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/Arceliar/ironwood" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key import-path #:allow-other-keys) + (delete-file-recursively + (string-append "src/" import-path "/cmd/ironwood-example")))) + ;; 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" "./...")))))))) + (propagated-inputs + (list go-github-com-arceliar-phony + go-github-com-bits-and-blooms-bitset + go-github-com-bits-and-blooms-bloom-v3 + go-golang-org-x-crypto)) + (home-page "https://github.com/Arceliar/ironwood") + (synopsis "Experimental network routing library") + (description + "Ironwood is a routing library with a @code{net.PacketConn}-compatible +interface using @code{ed25519.PublicKey}s as addresses. Basically, you use it +when you want to communicate with some other nodes in a network, but you can't +guarantee that you can directly connect to every node in that network. It was +written to test improvements to / replace the routing logic in +@url{https://github.com/yggdrasil-network/yggdrasil-go,Yggdrasil}, but it may +be useful for other network applications.") + (license license:mpl2.0))) + (define-public go-github-com-anaskhan96-soup (package (name "go-github-com-anaskhan96-soup") @@ -377,23 +425,23 @@ functions.") (define-public go-github-com-aws-aws-sdk-go-v2 (package (name "go-github-com-aws-aws-sdk-go-v2") - (version "1.17.3") + (version "1.30.5") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/aws/aws-sdk-go-v2") - (commit "v1.17.3"))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1a07xab1cn96iff7zvp5a82fzhqwl0i4bhplkm2h1qbkxgldn6x0")))) + (base32 "1mxm3j8xwlzjqhdw515kwzzhnfr325s08ry73chjbdw6qb940lb1")))) (build-system go-build-system) (arguments - '(#:import-path "github.com/aws/aws-sdk-go-v2")) + (list + #:import-path "github.com/aws/aws-sdk-go-v2")) (propagated-inputs - (list go-github-com-aws-smithy-go - go-github-com-google-go-cmp - go-github-com-jmespath-go-jmespath)) + (list go-github-com-jmespath-go-jmespath + go-github-com-aws-smithy-go)) (home-page "https://github.com/aws/aws-sdk-go-v2") (synopsis "AWS SDK for Go v2") (description @@ -508,24 +556,23 @@ credentials sources.") (define-public go-github-com-aws-smithy-go (package (name "go-github-com-aws-smithy-go") - (version "1.13.5") + (version "1.21.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/aws/smithy-go") - (commit "v1.13.5"))) + (commit "v1.21.0"))) (file-name (git-file-name name version)) (sha256 - (base32 "1rgyk0m2d3agknnlzjqvac1a61wwdq1pbck7vyl587m38n5zi2cz")))) + (base32 "1pcq9d154l41c4k23q6ri51ba5i2kc8ihrv4sgkv4q59cw70rspi")))) (build-system go-build-system) (arguments '(#:import-path "github.com/aws/smithy-go")) (propagated-inputs (list go-github-com-jmespath-go-jmespath go-github-com-google-go-cmp)) (home-page "https://github.com/aws/smithy-go") - (synopsis "@url{https://smithy.io/2.0/index.html,Smithy} code generators -for Go") + (synopsis "Smithy code generators for Go") (description "Package smithy provides the core components for a Smithy SDK.") (license license:asl2.0))) @@ -641,6 +688,113 @@ Manager,NTLM}/Negotiate authentication over HTTP.") "This package provides SCSS compiler support for Go applications.") (license license:expat))) +(define-public go-github-com-caddyserver-certmagic + (package + (name "go-github-com-caddyserver-certmagic") + (version "0.21.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/caddyserver/certmagic") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "061whx9p00lpxlfnywizqx5z9b020ggqg5vx5r5v2qhdrprg1gkz")))) + (build-system go-build-system) + (arguments + (list + #:test-flags + #~(list "-skip" + ;; Some tests require networking to run so skip them altogether. + (string-join + (list "TestLookupNameserversOK/physics.georgetown.edu." + "TestFindZoneByFqdn/domain_is_a_CNAME" + "TestFindZoneByFqdn/domain_is_a_non-existent_subdomain" + "TestFindZoneByFqdn/domain_is_a_eTLD" + "TestFindZoneByFqdn/domain_is_a_cross-zone_CNAME" + "TestFindZoneByFqdn/NXDOMAIN" + "TestFindZoneByFqdn/several_non_existent_nameservers") + "|")) + #:import-path "github.com/caddyserver/certmagic")) + (propagated-inputs + (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-miekg-dns + go-github-com-zeebo-blake3 + go-go-uber-org-zap + go-golang-org-x-crypto + go-golang-org-x-net)) + (home-page "https://github.com/caddyserver/certmagic") + (synopsis "Automatic HTTPS for any Go program") + (description + "@code{certmagic} provides API for TLS Automation with full control over almost +every aspect of the system. + +Main features: +@itemize +@item Fully automated certificate management including issuance and renewal, with +support for certificate revocation. Also works in conjunction with your own +certificates. +@item Wildcard certificates. +@item One-line, fully managed HTTPS servers, with HTTP->HTTPS redirects. +@item Multiple issuers supported: get certificates from multiple sources/CAs for +redundancy and resiliency. +@item Solves all 3 common ACME challenges: HTTP, TLS-ALPN, and DNS (and capable of +others.) +@item Robust error handling: +@itemize +@item Challenges are randomized to avoid accidental dependence and rotated to +overcome certain network blockages. +@item Robust retries for up to 30 days. +@item Exponential backoff with carefully-tuned intervals. +@item Retries with optional test/staging CA endpoint instead of production, to avoid +rate limits. +@end itemize +@item All libdns DNS providers work out-of-the-box. +@item Pluggable storage backends (default: file system) and key sources. +@item Automatic OCSP stapling. +@item Distributed solving of all challenges (works behind load balancers.) +@item Supports @samp{on-demand} issuance of certificates. +@item Optional event hooks for observation. +@item One-time private keys by default (new key for each cert) to discourage pinning +and reduce scope of key compromise. +@item Works with any certificate authority (CA) compliant with the ACME specification +@url{https://tools.ietf.org/html/rfc8555, RFC 8555}. +@item Must-Staple (optional; not default.) +@item Full support for draft-ietf-acme-ari (ACME Renewal Information; ARI) extension. +@end itemize") + (license license:expat))) + +(define-public go-github-com-caddyserver-zerossl + (package + (name "go-github-com-caddyserver-zerossl") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/caddyserver/zerossl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0hr2kdabhm35hz5krp7m3g6wxvyb9xlqgmy3krf4wwb3yabsqp1m")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/caddyserver/zerossl")) + (home-page "https://github.com/caddyserver/zerossl") + (synopsis "ZeroSSL REST API client implementation for Go") + (description + "@code{zerossl} implements the @url{https://zerossl.com/documentation/api/, +ZeroSSL REST API}. + +The REST API is distinct from the @url{https://zerossl.com/documentation/acme/, ACME +endpoint}, which is a standardized way of obtaining certificates.") + (license license:expat))) + (define-public go-github-com-ccding-go-stun (package (name "go-github-com-ccding-go-stun") @@ -722,6 +876,98 @@ and stop increasing when a certain threshold is met.") (description "This package provides a CSS parser and inliner.") (license license:expat))) +(define-public go-github-com-circonus-labs-circonus-gometrics + (package + (name "go-github-com-circonus-labs-circonus-gometrics") + (version "2.3.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/circonus-labs/circonus-gometrics") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0s2wir711h0k2h8xsypgpzshccnx8jkwjfni7n32l7wd8yng9ngs")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Module name has been changed upstream, permament redirect: + ;; <https://github.com/circonus-labs/circonusllhist> -> + ;; <https://github.com/openhistogram/circonusllhist>. + (substitute* (find-files "." "\\.go$") + (("github.com/circonus-labs/circonusllhist") + "github.com/openhistogram/circonusllhist")))))) + (build-system go-build-system) + (arguments + (list + #:test-flags #~(list "-skip" "TestNew|TestFlushMetrics|TestPromOutput") + #:import-path "github.com/circonus-labs/circonus-gometrics")) + (propagated-inputs + (list go-github-com-hashicorp-go-retryablehttp + go-github-com-openhistogram-circonusllhist + go-github-com-pkg-errors + go-github-com-tv42-httpunix)) + (home-page "https://github.com/circonus-labs/circonus-gometrics") + (synopsis "Circonus metrics tracking for Golang") + (description + "This library supports named counters, gauges and histograms. It also +provides convenience wrappers for registering latency instrumented functions +with Go's builtin http server.") + (license license:bsd-3))) + +(define-public go-github-com-circonus-labs-circonus-gometrics-v3 + (package + (inherit go-github-com-circonus-labs-circonus-gometrics) + (name "go-github-com-circonus-labs-circonus-gometrics-v3") + (version "3.4.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/circonus-labs/circonus-gometrics") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1wdnhj1xwm5p5wp76afs08aq30hkpgnq4802d6ylnpb3n46v0lj4")))) + (build-system go-build-system) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-circonus-labs-circonus-gometrics) + ((#:import-path _) "github.com/circonus-labs/circonus-gometrics/v3"))) + (propagated-inputs + (modify-inputs (package-propagated-inputs + go-github-com-circonus-labs-circonus-gometrics) + (prepend go-github-com-circonus-labs-go-apiclient))))) + +(define-public go-github-com-circonus-labs-go-apiclient + (package + (name "go-github-com-circonus-labs-go-apiclient") + (version "0.7.24") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/circonus-labs/go-apiclient") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ysfycnjmqkn1prlz68k2nkrkk3570q5gx0d6vdvvwfhvlisj4c7")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/circonus-labs/go-apiclient")) + (propagated-inputs + (list go-github-com-hashicorp-go-retryablehttp + go-github-com-pkg-errors)) + (home-page "https://github.com/circonus-labs/go-apiclient") + (synopsis "Circonus API Client for Golang") + (description + "Package apiclient provides methods for interacting with the Circonus +API. See the full Circonus API Documentation at +@url{https://login.circonus.com/resources/api} for more information.") + (license license:bsd-3))) + (define-public go-github-com-coder-websocket (package (name "go-github-com-coder-websocket") @@ -881,6 +1127,113 @@ Any}.") go-golang-org-x-net go-golang-org-x-oauth2)))) +(define-public go-github-com-cretz-bine + (package + ;; This package can be used with CGO to statically compile Tor. This + ;; package expects <https://github.com/cretz/tor-static> to be cloned at + ;; $GOPATH/src/github.com/cretz/tor-static as if it was fetched with go + ;; get. If you use go modules the expected path would be + ;; $GOPATH/pkg/mod/github.com/cretz/tor-static libs. See + ;; <https://github.com/cretz/bine/blob/v0.2.0/process/embedded/process.go#L7>. + (name "go-github-com-cretz-bine") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cretz/bine") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "16h7j7v4qbwb7zjsbc1p3b67xji7hgis95znz9cj8fw3rqxwvkcs")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/cretz/bine" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key 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)) + (propagated-inputs + (list go-golang-org-x-crypto + go-golang-org-x-net)) + (home-page "https://github.com/cretz/bine") + (synopsis "Accessing and embedding Tor clients and servers from Golang") + (description + "Bine is a toolkit to assist in creating Tor clients and servers. +Features: +@itemize +@item full support for the Tor controller API +@item support for @code{net.Conn} and @code{net.Listen} style APIs +@item supports statically compiled Tor to embed Tor into the binary +@item supports v3 onion services +@item support for embedded control socket in Tor >= 0.3.5 +@end itemize") + (license license:expat))) + +(define-public go-github-com-datadog-datadog-go + (package + (name "go-github-com-datadog-datadog-go") + (version "4.8.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/DataDog/datadog-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "03dc3ld9zyynhmslzlciry6rs06hvd1c5finjip9vj300xaybazl")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/DataDog/datadog-go" + #:phases + #~(modify-phases %standard-phases + ;; XXX: Workaround for go-build-system's lack of Go modules + ;; support. + (delete 'build) + (replace 'check + (lambda* (#:key tests? import-path #:allow-other-keys) + (when tests? + (with-directory-excursion (string-append "src/" import-path) + (invoke "go" "test" "-v" "./...")))))))) + (native-inputs + (list go-github-com-stretchr-testify)) + (home-page "https://github.com/DataDog/datadog-go") + (synopsis "Golang client library to work with DataDog's API") + (description + "@code{datadog-go} is a library that provides a +@url{https://docs.datadoghq.com/developers/dogstatsd/?code-lang=go,@code{DogStatsD}} +client in Golang.") + (license license:expat))) + +(define-public go-github-com-datadog-datadog-go-v5 + (package + (inherit go-github-com-datadog-datadog-go) + (name "go-github-com-datadog-datadog-go-v5") + (version "5.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/DataDog/datadog-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05cw8n2hv8sa6s4qi4xkkv75y9bzn5qdqx1hv5g9h49cw92rkcas")))) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-datadog-datadog-go) + ((#:import-path _) "github.com/DataDog/datadog-go/v5"))) + (native-inputs + (modify-inputs (package-native-inputs go-github-com-datadog-datadog-go) + (append go-github-com-golang-mock))))) + (define-public go-github-com-emersion-go-imap (package (name "go-github-com-emersion-go-imap") @@ -1445,6 +1798,7 @@ language.") (build-system go-build-system) (arguments (list + #:embed-files #~(list "jsonschema-draft-04\\.json" "schema\\.json") #:import-path "github.com/go-openapi/analysis" #:phases #~(modify-phases %standard-phases @@ -1455,35 +1809,11 @@ language.") ;; Tests requiring network access. (("TestFlatten_RemoteAbsolute") "OffTestFlatten_RemoteAbsolute"))))) - ;; FIXME: pattern schemas/*.json: cannot embed irregular file - ;; schemas/jsonschema-draft-04.json - ;; - ;; This happens due to Golang can't determine the valid directory of - ;; the module which is sourced during setup environment phase, but - ;; easy resolved after coping to expected directory "vendor" within - ;; the current package, see details in Golang source: - ;; - ;; - URL: <https://github.com/golang/go/blob/> - ;; - commit: 82c14346d89ec0eeca114f9ca0e88516b2cda454 - ;; - file: src/cmd/go/internal/load/pkg.go#L2059 - (add-before 'build 'copy-input-to-vendor-directory - (lambda* (#:key import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (mkdir "vendor") - (copy-recursively - (string-append - #$(this-package-input "go-github-com-go-openapi-spec") - "/src/github.com") - "vendor/github.com")))) (replace 'check (lambda* (#:key tests? import-path #:allow-other-keys) (when tests? (with-directory-excursion (string-append "src/" import-path) - (invoke "go" "test" "-v" "./..."))))) - (add-before 'install 'remove-vendor-directory - (lambda* (#:key import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (delete-file-recursively "vendor"))))))) + (invoke "go" "test" "-v" "./...")))))))) (native-inputs (list go-github-com-stretchr-testify)) (propagated-inputs @@ -1598,38 +1928,8 @@ prototyped in @url{https://github.com/xeipuuv/gojsonreference}.") (build-system go-build-system) (arguments (list - #:import-path "github.com/go-openapi/loads" - #:phases - #~(modify-phases %standard-phases - ;; FIXME: pattern schemas/*.json: cannot embed irregular file - ;; schemas/jsonschema-draft-04.json - ;; - ;; This happens due to Golang can't determine the valid directory of - ;; the module which is sourced during setup environment phase, but - ;; easy resolved after coping to expected directory "vendor" within - ;; the current package, see details in Golang source: - ;; - ;; - URL: <https://github.com/golang/go/blob/> - ;; - commit: 82c14346d89ec0eeca114f9ca0e88516b2cda454 - ;; - file: src/cmd/go/internal/load/pkg.go#L2059 - (add-before 'build 'copy-input-to-vendor-directory - (lambda* (#:key import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (mkdir "vendor") - (copy-recursively - (string-append - #$(this-package-input "go-github-com-go-openapi-spec") - "/src/github.com") - "vendor/github.com") - (copy-recursively - (string-append - #$(this-package-input "go-github-com-go-openapi-analysis") - "/src/github.com") - "vendor/github.com")))) - (add-before 'install 'remove-vendor-directory - (lambda* (#:key import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (delete-file-recursively "vendor"))))))) + #:embed-files #~(list "jsonschema-draft-04\\.json" "schema\\.json") + #:import-path "github.com/go-openapi/loads")) (native-inputs (list go-github-com-stretchr-testify)) (propagated-inputs @@ -1645,6 +1945,47 @@ Initiative,OAI} specification documents from local or remote locations. Supports JSON and YAML documents.") (license license:asl2.0))) +(define-public go-github-com-go-openapi-runtime + (package + (name "go-github-com-go-openapi-runtime") + (version "0.28.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-openapi/runtime") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0h8yqc6bb8mzb8jvr3m08fyws1gbrhbry6k5vj2cx2xdi50kqiy5")))) + (build-system go-build-system) + (arguments + (list + #:embed-files #~(list "jsonschema-draft-04\\.json" "schema\\.json") + #:import-path "github.com/go-openapi/runtime")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-docker-go-units + go-github-com-go-openapi-analysis + go-github-com-go-openapi-errors + go-github-com-go-openapi-loads + go-github-com-go-openapi-spec + go-github-com-go-openapi-strfmt + go-github-com-go-openapi-swag + go-github-com-go-openapi-validate + go-github-com-opentracing-opentracing-go + go-go-opentelemetry-io-otel + go-go-opentelemetry-io-otel-sdk + go-golang-org-x-sync + go-gopkg-in-yaml-v3)) + (home-page "https://github.com/go-openapi/runtime") + (synopsis "OpenAPI runtime interfaces") + (description + "OpenAPI toolkit runtime component for use in code generation or as +untyped usage.") + (license license:asl2.0))) + (define-public go-github-com-go-openapi-spec (package (name "go-github-com-go-openapi-spec") @@ -1756,6 +2097,7 @@ projects.") (build-system go-build-system) (arguments (list + #:embed-files #~(list "jsonschema-draft-04\\.json" "schema\\.json") #:import-path "github.com/go-openapi/validate" #:phases #~(modify-phases %standard-phases @@ -1766,41 +2108,7 @@ projects.") (for-each delete-file (list "benchmark_test.go" "example_validator_test.go" - "doc_test.go"))))) - ;; FIXME: pattern schemas/*.json: cannot embed irregular file - ;; schemas/jsonschema-draft-04.json - ;; - ;; This happens due to Golang can't determine the valid directory of - ;; the module which is sourced during setup environment phase, but - ;; easy resolved after coping to expected directory "vendor" within - ;; the current package, see details in Golang source: - ;; - ;; - URL: <https://github.com/golang/go/blob/> - ;; - commit: 82c14346d89ec0eeca114f9ca0e88516b2cda454 - ;; - file: src/cmd/go/internal/load/pkg.go#L2059 - (add-before 'build 'copy-input-to-vendor-directory - (lambda* (#:key import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (mkdir "vendor") - (copy-recursively - (string-append - #$(this-package-input "go-github-com-go-openapi-loads") - "/src/github.com") - "vendor/github.com") - (copy-recursively - (string-append - #$(this-package-input "go-github-com-go-openapi-spec") - "/src/github.com") - "vendor/github.com") - (copy-recursively - (string-append - #$(this-package-input "go-github-com-go-openapi-analysis") - "/src/github.com") - "vendor/github.com")))) - (add-before 'install 'remove-vendor-directory - (lambda* (#:key import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (delete-file-recursively "vendor"))))))) + "doc_test.go")))))))) (native-inputs (list go-github-com-stretchr-testify)) (propagated-inputs @@ -1953,33 +2261,31 @@ from CloudFlare's github.com/cloudflare/cfssl/revoke.") (license license:expat))) (define-public go-github-com-golang-groupcache - (let ((commit "41bb18bfe9da5321badc438f91158cd790a33aa3") - (revision "3")) - (package - (name "go-github-com-golang-groupcache") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/golang/groupcache") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "07amgr8ji4mnq91qbsw2jlcmw6hqiwdf4kzfdrj8c4b05w4knszc")))) - (build-system go-build-system) - (arguments - (list #:import-path "github.com/golang/groupcache")) - (propagated-inputs - (list go-github-com-golang-protobuf)) - (home-page "https://github.com/golang/groupcache") - (synopsis "Groupcache is a caching and cache-filling library") - (description - "Groupcache is a caching and cache-filling library, intended -as a 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)))) + (package + (name "go-github-com-golang-groupcache") + (version "0.0.0-20210331224755-41bb18bfe9da") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/golang/groupcache") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "07amgr8ji4mnq91qbsw2jlcmw6hqiwdf4kzfdrj8c4b05w4knszc")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/golang/groupcache")) + (propagated-inputs + (list go-github-com-golang-protobuf)) + (home-page "https://github.com/golang/groupcache") + (synopsis "Groupcache is a caching and cache-filling library") + (description + "Groupcache is a caching and cache-filling library, intended as a +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-github (package @@ -2033,6 +2339,55 @@ GitHub API v3.") ((#:import-path _ "github.com/google/go-github/v26/github") "github.com/google/go-github/v33/github"))))) +(define-public go-github-com-google-go-querystring + (package + (name "go-github-com-google-go-querystring") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/go-querystring") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15k460c23nsmqd1nx3mvrnazws8bpb1gafrmffx7vf91m200mnwa")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/google/go-querystring/query" + #:unpack-path "github.com/google/go-querystring")) + (native-inputs + (list go-github-com-google-go-cmp)) + (home-page "https://github.com/google/go-querystring/") + (synopsis "Library for encoding structs into URL query parameters") + (description + "@code{go-querystring} is Go library for encoding structs into URL query +parameters.") + (license license:bsd-3))) + +(define-public go-github-com-google-gopacket + (package + (name "go-github-com-google-gopacket") + (version "1.1.19") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/gopacket") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "048qwm2n0wrpql4qqgd7jyynn3gk069yvqbxnshlayzmbhf87ls4")))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/google/gopacket")) + (home-page "https://github.com/google/gopacket") + (synopsis "Packet processing capabilities library") + (description + "This package provides packet processing capabilities for Go.") + (license license:bsd-3))) + (define-public go-github-com-google-safehtml (package (name "go-github-com-google-safehtml") @@ -2311,6 +2666,35 @@ the Go standard library, but returns a client that does not share any state with other clients.") (license license:mpl2.0))) +(define-public go-github-com-hashicorp-go-retryablehttp + (package + (name "go-github-com-hashicorp-go-retryablehttp") + (version "0.7.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hashicorp/go-retryablehttp") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "11bqzz3244vpa91l5bx8pp5pajbcg4qxrl8ic2x0qgwbrjfz362x")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/hashicorp/go-retryablehttp")) + (propagated-inputs + (list go-github-com-hashicorp-go-hclog + go-github-com-hashicorp-go-cleanhttp)) + (home-page "https://github.com/hashicorp/go-retryablehttp") + (synopsis "Retryable HTTP client in Golang") + (description + "Package retryablehttp provides a familiar HTTP client interface with +automatic retries and exponential backoff. It is a thin wrapper over the +standard @code{net/http} client library and exposes nearly the same public +API.") + (license license:mpl2.0))) + (define-public go-github-com-hjson-hjson-go-v4 (package (name "go-github-com-hjson-hjson-go-v4") @@ -2443,6 +2827,39 @@ default LAN gateway.") port mapping and discovering the external IP address of a firewall.") (license license:asl2.0))) +(define-public go-github-com-jaytaylor-html2text + (package + (name "go-github-com-jaytaylor-html2text") + (version "0.0.0-20230321000545-74c2419ad056") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jaytaylor/html2text") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "14r0ph8w4yxx129kfvj0qbx4cyid65md93qmwlz2cly4iwjnr7w2")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Module name has been changed upstream. + (substitute* (find-files "." "\\.go$") + (("jaytaylor.com/html2text") "github.com/jaytaylor/html2text")))))) + (build-system go-build-system) + (arguments + (list #:import-path "github.com/jaytaylor/html2text")) + (propagated-inputs + (list go-golang-org-x-net + go-github-com-olekukonko-tablewriter + go-github-com-ssor-bom)) + (home-page "https://github.com/jaytaylor/html2text") + (synopsis "Convert HTML emails to text") + (description + "The html2text package converts HTML emails to plain text, allowing +text-only mail clients to display them.") + (license license:expat))) + (define-public go-github-com-jcmturner-dnsutils-v2 (package (name "go-github-com-jcmturner-dnsutils-v2") @@ -2550,7 +2967,7 @@ Microsoft AD PAC authorization data.") (define-public go-github-com-jhillyerd-enmime (package (name "go-github-com-jhillyerd-enmime") - (version "1.2.0") + (version "1.3.0") (source (origin (method git-fetch) @@ -2559,15 +2976,15 @@ Microsoft AD PAC authorization data.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "03pir9wq9ha2i2ifj819yv5i0lvrgdn904ksbzgc3k8bqc497ydn")))) + (base32 "1mlgnk0y0d8njx7h66w6bhr95zh2ccg1hxlnm15i2lfh6l58s60q")))) (build-system go-build-system) (arguments (list #:import-path "github.com/jhillyerd/enmime")) (native-inputs - (list go-github-com-stretchr-testify)) + (list go-github-com-go-test-deep + go-github-com-stretchr-testify)) (propagated-inputs (list go-github-com-cention-sany-utf7 - go-github-com-go-test-deep go-github-com-gogs-chardet go-github-com-jaytaylor-html2text go-github-com-pkg-errors @@ -2788,6 +3205,45 @@ router.") @acronym{Simple Service Discovery Protocol, SSDP}} library for Golang.") (license license:expat))) +(define-public go-github-com-libdns-libdns + (package + (name "go-github-com-libdns-libdns") + (version "0.2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libdns/libdns") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "00zx6yij1ac8mhswhsks1nchzgmhbzrsm9hr0faqbmx0vkip78j5")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/libdns/libdns")) + (native-inputs (list go-github-com-stretchr-testify)) + (propagated-inputs (list go-golang-org-x-exp)) + (home-page "https://github.com/libdns/libdns") + (synopsis "Universal DNS provider APIs for Go") + (description + "@code{libdns} is a collection of free-range DNS provider client +implementations. It defines the core interfaces that provider packages should +implement. They are small and idiomatic interfaces with well-defined semantics. + +The interfaces include: +@itemize +@item @url{https://pkg.go.dev/github.com/libdns/libdns#RecordGetter, RecordGetter} to +list records. +@item @url{https://pkg.go.dev/github.com/libdns/libdns#RecordAppender, +RecordAppender} to append new records. +@item @url{https://pkg.go.dev/github.com/libdns/libdns#RecordSetter, RecordSetter} to +set (create or change existing) records. +@item @url{https://pkg.go.dev/github.com/libdns/libdns#RecordDeleter, RecordDeleter} +to delete records. +@end itemize") + (license license:expat))) + (define-public go-github-com-libp2p-go-cidranger (package (name "go-github-com-libp2p-go-cidranger") @@ -2808,7 +3264,8 @@ router.") ;; src/github.com/libp2p/go-cidranger/trie_test.go:557:8: cannot use ;; 4294967295 (untyped int constant) as int value in assignment ;; (overflows). - #:tests? (target-64bit?) + #:tests? (and (target-64bit?) + (not (%current-target-system))) #:import-path "github.com/libp2p/go-cidranger")) (native-inputs (list go-github-com-stretchr-testify)) @@ -3324,6 +3781,68 @@ integrates with Go's runtime network poller to provide asynchronous I/O and deadline support.") (license license:expat))) +(define-public go-github-com-mholt-acmez + (package + (name "go-github-com-mholt-acmez") + (version "2.0.3") + (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 "0xfl6p8izgjs1d26iygfilmmagxld409qsgdy60r1chfsrcnraby")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/mholt/acmez")) + (propagated-inputs + (list go-golang-org-x-crypto + go-golang-org-x-net + go-go-uber-org-zap)) + (home-page "https://github.com/mholt/acmez") + (synopsis "ACME (RFC 8555) client library for Go") + (description + "@code{ACMEz} is a lightweight, fully-compliant +@url{https://tools.ietf.org/html/rfc8555, RFC 8555} (ACME) implementation, that +provides an API for getting certificates. @code{ACMEz} is suitable for large-scale +enterprise deployments. It also supports common IETF-standardized ACME extensions. + +This module has two primary packages: +@itemize +@item @code{acmez} is a high-level wrapper for getting certificates. It implements +the ACME order flow described in RFC 8555 including challenge solving using pluggable +solvers. +@item @code{acme} is a low-level RFC 8555 implementation that provides the +fundamental ACME operations, mainly useful if you have advanced or niche +requirements. +@end itemize + +Main features: +@itemize +@item Go API that thoroughly documented with spec citations. +@item Structured error values (@samp{problems} as defined in +@url{https://tools.ietf.org/html/rfc7807, RFC 7807}.) +@item Smart retries (resilient against network and server hiccups.) +@item Challenge plasticity (randomized challenges, and will retry others if one +fails.) +@item Context cancellation (suitable for high-frequency config changes or reloads.) +@item Highly flexible and customizable. +@item External Account Binding (EAB) support. +@item Tested with numerous ACME CAs (more than just Let's Encrypt.) +@item Implements niche aspects of RFC 8555 (such as alt cert chains and account key +rollover.) +@item Efficient solving of large SAN lists (e.g. for slow DNS record propagation.) +@item Utility functions for solving challenges: device attestation +challenges (draft-acme-device-attest-02), @url{https://tools.ietf.org/html/rfc8737, +RFC 8737} (tls-alpn-01 challenge), @url{https://tools.ietf.org/html/rfc8823, RFC +8823} (email-reply-00 challenge; S/MIME.) +@item ACME Renewal Information (ARI) support (draft-ietf-acme-ari-03.) +@end itemize") + (license license:asl2.0))) + (define-public go-github-com-microcosm-cc-bluemonday (package (name "go-github-com-microcosm-cc-bluemonday") @@ -3792,6 +4311,38 @@ used to read GeoLite2 and GeoIP2 databases, @code{geoip2} provides a higher-level API for doing so.") (license license:isc))) +(define-public go-github-com-pascaldekloe-goe + (package + (name "go-github-com-pascaldekloe-goe") + (version "0.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pascaldekloe/goe") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1mszfjcc29b6nvw3hs8w33iy6zx6ih5v2jlard0dsrgkpvsx5c81")))) + (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" "./...")))))))) + (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-pion-datachannel (package (name "go-github-com-pion-datachannel") @@ -4564,6 +5115,32 @@ are supported. @acronym{TLV, tag-length-value} parsers extensions comming with this library support AWS, Azure and GCP.") (license license:asl2.0))) +(define-public go-github-com-pkg-browser + (package + (name "go-github-com-pkg-browser") + (version "0.0.0-20240102092130-5ac0b6a4141c") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pkg/browser") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05m0baqy1grd42by3vgih55473fa98cz2psyakbmf0swg8f949pn")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/pkg/browser")) + (propagated-inputs (list go-golang-org-x-sys)) + (home-page "https://github.com/pkg/browser") + (synopsis "Helpers to open files, readers, and URLs in a browser window") + (description + "Package browser provides helpers to open files, readers, and urls in a +browser window. The choice of which browser is started is entirely client +dependant.") + (license license:bsd-2))) + (define-public go-github-com-pkg-sftp (package (name "go-github-com-pkg-sftp") @@ -4617,6 +5194,36 @@ for Go.") Caching.") (license license:asl2.0))) +(define-public go-github-com-pquerna-ffjson + (package + (name "go-github-com-pquerna-ffjson") + (version "0.0.0-20190930134022-aa0246cd15f7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pquerna/ffjson") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0mxmrvqmiinqhlaxncaqznxwfspf3p8bmg9vniz40dw5jpv24cwb")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/pquerna/ffjson")) + (home-page "https://github.com/pquerna/ffjson") + (synopsis "Faster JSON for Golang") + (description + "This package implements functinality to generate static +@code{MarshalJSON} and @code{UnmarshalJSON} functions for structures in Go. +The generated functions reduce the reliance upon runtime reflection to do +serialization and are generally 2 to 3 times faster. In cases where +@@code{ffjson} doesn't understand a Type involved, it falls back to +@@code{encoding/json}, meaning it is a safe drop in replacement. By using +@code{ffjson} your JSON serialization just gets faster with no additional code +changes.") + (license license:asl2.0))) + (define-public go-github-com-puerkitobio-goquery (package (name "go-github-com-puerkitobio-goquery") @@ -4858,6 +5465,42 @@ resource sharing,CORS} related requests as defined by @url{http://www.w3.org/TR/cors/,http://www.w3.org/TR/cors/}.") (license license:expat))) +(define-public go-github-com-rs-xid + (package + (name "go-github-com-rs-xid") + (version "1.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rs/xid") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0dck1girg54kgwjms0vsizaxasc8rj6pby4rlz7m07xffa3pp45c")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/rs/xid")) + (home-page "https://github.com/rs/xid") + (synopsis "Globally Unique ID Generator") + (description + "Package xid is a globally unique id generator suited for web scale. +Features: +@itemize +@item zize: 12 bytes (96 bits), smaller than UUID, larger than snowflake +@item base32 hex encoded by default (20 chars when transported as printable +string, still sortable) +@item mon configured, you don't need set a unique machine and/or data center +id +@item k-ordered +@item embedded time with 1 second precision +@item unicity guaranteed for 16,777,216 (24 bits) unique ids per second and +per host/process +@item lock-free (i.e.: unlike UUIDv1 and v2) +@end itemize") + (license license:expat))) + (define-public go-github-com-sherclockholmes-webpush-go (package (name "go-github-com-sherclockholmes-webpush-go") @@ -5398,51 +6041,220 @@ programming language.") (license license:asl2.0)))) (define-public go-github-com-xeipuuv-gojsonschema - (let ((commit "6b67b3fab74d992bd07f72550006ab2c6907c416") - (revision "0")) - (package - (name "go-github-com-xeipuuv-gojsonschema") - (version (git-version "0.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/xeipuuv/gojsonschema") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1q937a6q7canlr3dllqdw0qwa6z2fpwn1w9kycavx8jmwh6q3f69")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/xeipuuv/gojsonschema" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'disable-failing-tests - (lambda* (#:key import-path #:allow-other-keys) - (with-directory-excursion (string-append "src/" import-path) - (substitute* "schema_test.go" - (("\\{\"phase\": \"remote ref, " all) - (string-append "// " all)) - (("\\{\"phase\": \"valid definition" all) - (string-append "// " all)) - (("\\{\"phase\": \"invalid definition" all) - (string-append "// " all))))))))) - (native-inputs - (list go-github-com-stretchr-testify)) - (propagated-inputs - (list go-github-com-xeipuuv-gojsonreference - go-github-com-xeipuuv-gojsonpointer)) - (home-page "https://github.com/xeipuuv/gojsonschema") - (synopsis "Implementation of JSON Schema for Go") - (description - "This package provides an implementation of JSON Schema for the Go + (package + (name "go-github-com-xeipuuv-gojsonschema") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xeipuuv/gojsonschema") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1mqiq0r8qw4qlfp3ls8073r6514rmzwrmdn4j33rppk3zh942i6l")))) + (build-system go-build-system) + (arguments + (list + ;; 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" + #:test-flags #~(list "-skip" "TestFormats") + #:import-path "github.com/xeipuuv/gojsonschema")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-xeipuuv-gojsonreference + go-github-com-xeipuuv-gojsonpointer)) + (home-page "https://github.com/xeipuuv/gojsonschema") + (synopsis "Implementation of JSON Schema for Go") + (description + "This package provides an implementation of JSON Schema for the Go programming language, which supports draft-04, draft-06 and draft-07.") - (license license:asl2.0)))) + (license license:asl2.0))) + +(define-public go-github-com-xtaci-lossyconn + (package + (name "go-github-com-xtaci-lossyconn") + (version "0.0.0-20200209145036-adba10fffc37") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xtaci/lossyconn") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1pizmd8py5x8yjqp6fz2y0kpvd1za3rbp7whyyh69zyk1a305fam")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/xtaci/lossyconn")) + (home-page "https://github.com/xtaci/lossyconn") + (synopsis "Lossy connection simulator") + (description + "Package lossyconn is a lossy connection simulator for Golang.") + (license license:expat))) + +(define-public go-github-com-xtaci-smux + (package + (name "go-github-com-xtaci-smux") + (version "1.5.30") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xtaci/smux") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1i4h672vmg2b4p8hkbhpsp8p2nk4d3qm6vf76yly389l2zb7h4l3")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/xtaci/smux")) + (home-page "https://github.com/xtaci/smux") + (synopsis "Introduction") + (description + "Smux (@strong{S}imple @strong{MU}ltiple@strong{X}ing) is a multiplexing +library for Golang. It relies on an underlying connection to provide +reliability and ordering, such as TCP or +@url{https://github.com/xtaci/kcp-go,KCP}, and provides stream-oriented +multiplexing. The original intention of this library is to power the +connection management for @url{https://github.com/xtaci/kcp-go,kcp-go}.") + (license license:expat))) + +(define-public go-go-opentelemetry-io-otel + (package + (name "go-go-opentelemetry-io-otel") + (version "1.30.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/open-telemetry/opentelemetry-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0mpkwz2ryah5j2fb835pdw9084nwhr6fj3jig2mnvwwnsymp2bvy")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packed as separated + ;; packages: + (for-each + delete-file-recursively + ;; Do not sort the list, it needs to be formatted with + ;; 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" + "sdk/log" + "internal/tools" + "exporters/zipkin" + "exporters/prometheus" + "example/zipkin" + "example/prometheus" + "example/passthrough" + "example/otel-collector" + "example/opencensus" + "example/namedtracer" + "example/dice" + "bridge/opentracing" + "bridge/opencensus" + ;; "trace" - introduces a cycle, keep it + "sdk" + "schema" + ;; "metric" - introduces a cycle, keep it + "log")))))) + (build-system go-build-system) + (arguments + (list + #:import-path "go.opentelemetry.io/otel")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-go-logr-logr + go-github-com-go-logr-stdr + go-github-com-google-go-cmp)) + (home-page "https://opentelemetry.io/") + (synopsis "OpenTelemetry implementation for Golang") + (description + "Package otel provides global access to the @code{OpenTelemetry} API. +The subpackages of the otel package provide an implementation of the +@code{OpenTelemetry} API. This package contains 3 Golang modules: +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-sdk + (package + (name "go-go-opentelemetry-io-otel-sdk") + (version "1.30.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (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 "0mpkwz2ryah5j2fb835pdw9084nwhr6fj3jig2mnvwwnsymp2bvy")) + (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) + (define (directory? x) + (and=> (stat x #f) + (compose (cut eq? 'directory <>) stat:type))) + (with-directory-excursion directory + (let* ((pred + (negate (cut member <> (append '("." "..") preserve)))) + (items (scandir "." pred))) + (for-each (lambda (item) + (if (directory? item) + (delete-file-recursively item) + (delete-file item))) + items)))) + (delete-all-but "." "sdk"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "go.opentelemetry.io/otel/sdk" + #:unpack-path "go.opentelemetry.io/otel")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-go-logr-logr + go-github-com-google-go-cmp + go-github-com-google-uuid + go-go-opentelemetry-io-otel + go-golang-org-x-sys)) + (home-page "https://opentelemetry.io/") + (synopsis "OpenTelemetry Golang SDK") + (description + "This package provides OpenTelemetry Otel SDK.") + (license license:asl2.0))) (define-public go-golang-org-x-oauth2 (package (name "go-golang-org-x-oauth2") - (version "0.21.0") + (version "0.23.0") (source (origin (method git-fetch) @@ -5451,7 +6263,7 @@ programming language, which supports draft-04, draft-06 and draft-07.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0pzpa9jqrfxxhxi1w7n5ljnvr9qfw42hzavz62fc9i6z9vk2466k")))) + (base32 "00r6qryh9nfnfq8q8h12hvqp0mhflhl68qyknrmzmw5ww52ghm9b")))) (build-system go-build-system) (arguments (list @@ -5549,9 +6361,9 @@ Signing and Encryption set of standards. This includes support for JSON Web Encryption, JSON Web Signature, and JSON Web Token standards.") (license license:asl2.0))) -(define-public go-mvdan-cc-xurls +(define-public go-mvdan-cc-xurls-v2 (package - (name "go-mvdan-cc-xurls") + (name "go-mvdan-cc-xurls-v2") (version "2.5.0") (source (origin @@ -5608,6 +6420,22 @@ protocol.") ;;; Executables: ;;; +(define-public go-html2text + (package + (inherit go-github-com-jaytaylor-html2text) + (name "go-html2text") + (arguments + (list + #:install-source? #f + #:import-path "github.com/jaytaylor/html2text/cmd/html2text" + #:unpack-path "github.com/jaytaylor/html2text")) + (native-inputs + (list go-github-com-pborman-getopt)) + (description + (string-append (package-description go-github-com-jaytaylor-html2text) + " This package provides an command line interface (CLI) +tool.")))) + (define-public go-madns (package (inherit go-github-com-multiformats-go-multiaddr-dns) @@ -5643,7 +6471,7 @@ go-github-com-tdewolff-minify-v2 source."))) (define-public xurls (package - (inherit go-mvdan-cc-xurls) + (inherit go-mvdan-cc-xurls-v2) (name "xurls") (arguments (list |