diff options
Diffstat (limited to 'gnu/packages/golang-web.scm')
| -rw-r--r-- | gnu/packages/golang-web.scm | 1725 |
1 files changed, 1626 insertions, 99 deletions
diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm index 9bac874365..20ba7e663b 100644 --- a/gnu/packages/golang-web.scm +++ b/gnu/packages/golang-web.scm @@ -29,14 +29,17 @@ ;;; Copyright © 2023 Fries <fries1234@protonmail.com> ;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space> ;;; Copyright © 2023 Katherine Cox-Buday <cox.katherine.e@gmail.com> +;;; Copyright © 2023 Miguel Ángel Moreno <mail@migalmoreno.com> ;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr> ;;; Copyright © 2023 Thomas Ieong <th.ieong@free.fr> +;;; Copyright © 2023 conses <contact@conses.eu> ;;; Copyright © 2023, 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; Copyright © 2024 Dominic Martinez <dom@dominicm.dev> -;;; Copyright © 2024 Jesse Eisses <jesse@eisses.email> -;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com> ;;; Copyright © 2024 Herman Rimm <herman@rimm.ee> +;;; Copyright © 2024 Jesse Eisses <jesse@eisses.email> ;;; Copyright © 2024 Roman Scherer <roman@burningswell.com> +;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com> +;;; Copyright © 2025 André Batista <nandre@riseup.net> ;;; Copyright © 2025 Jussi Timperi <jussi.timperi@iki.fi> ;;; ;;; This file is part of GNU Guix. @@ -62,6 +65,7 @@ #:use-module (guix git-download) #:use-module (guix utils) #:use-module (gnu packages) + #:use-module (gnu packages crypto) #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) #:use-module (gnu packages golang-check) @@ -70,6 +74,7 @@ #: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) #:use-module (gnu packages web)) @@ -90,6 +95,42 @@ ;;; Libraries: ;;; +(define-public go-0xacab-org-leap-lb + (package + (name "go-0xacab-org-leap-lb") + (version "0.0.0-20210225193050-570f848edccf") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://0xacab.org/leap/lb.git") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "161bznz4srgvqr7q18z63chps52lvdfnldbf6cgm5sw1ly5vwjwi")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Module name has not been changed upstream. + (substitute* (find-files "." "\\.go$") + (("git.autistici.org/ale/lb") + "0xacab.org/leap/lb")))))) + (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 + go-google-golang-org-grpc)) + (home-page "https://0xacab.org/leap/lb") + (synopsis "Smart load balancing Golang library") + (description + "This package provides an implementation of smart load balancing of simple, +redirect-based (i.e. not directly reverse proxied) services. It's an +alternative fork of https://git.autistici.org/ale/lb.") + (license license:gpl3+))) + (define-public go-0xacab-org-leap-obfsvpn (package (name "go-0xacab-org-leap-obfsvpn") @@ -136,6 +177,38 @@ connections (although it can be used for other, more generic purposes).") (license license:bsd-2))) +(define-public go-0xacab-org-leap-shapeshifter + (let ((commit "0aa6226582efb8e563540ec1d3c5cfcd19200474") + (revision "12")) + (package + (name "go-0xacab-org-leap-shapeshifter") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://0xacab.org/leap/shapeshifter") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0m4fla9ppl53k9syms4dsad92wakr74cdvids3xxv3amdh4d1w4i")))) + (build-system go-build-system) + (arguments + (list + #:import-path "0xacab.org/leap/shapeshifter")) + (propagated-inputs + (list go-github-com-operatorfoundation-obfs4 + go-github-com-operatorfoundation-shapeshifter-transports + go-golang-org-x-net)) + (home-page "https://0xacab.org/leap/shapeshifter") + (synopsis "Shapeshifter Dispatcher Library") + (description + "Shapeshifter provides network protocol shapeshifting technology. The +purpose of this technology is to change the characteristics of network traffic +so that it is not identified and subsequently blocked by network filtering +devices.") + (license license:bsd-2)))) + (define-public go-cloud-google-com-go-compute-metadata (package (name "go-cloud-google-com-go-compute-metadata") @@ -162,6 +235,42 @@ connections API service accounts for Go.") (license license:asl2.0))) +(define-public go-code-gitea-io-sdk-gitea + (package + (name "go-code-gitea-io-sdk-gitea") + (version "0.20.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitea.com/gitea/go-sdk") + (commit (go-version->git-ref version + #:subdir "gitea")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15mxaxi1nf6b9qacizf7r55jjcnil7qsdh77qzk6b59qcps940np")))) + (build-system go-build-system) + (arguments + (list + #:tests? #f ; XXX: Tests are broken + #:import-path "code.gitea.io/sdk/gitea" + #:unpack-path "code.gitea.io/sdk")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-42wim-httpsig + ;; go-github-com-davidmz-go-pageant ; for windows only + go-github-com-go-fed-httpsig + go-github-com-hashicorp-go-version + go-golang-org-x-crypto)) + (home-page "https://code.gitea.io/sdk") + (synopsis "Gitea Golang SDK client") + (description + "Package gitea implements a client for the Gitea API. The version +corresponds to the highest supported version of the gitea API, but +backwards-compatibility is mostly given.") + (license license:expat))) + (define-public go-git-sr-ht-adnano-go-gemini (package (name "go-git-sr-ht-adnano-go-gemini") @@ -255,6 +364,38 @@ Gemini clients and servers.") 2019.") (license license:expat))) +(define-public go-github-com-42wim-httpsig + (package + (name "go-github-com-42wim-httpsig") + (version "1.2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/42wim/httpsig") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0r6q3g0ghccnvqsw7g3g18s710q8haq5vzpvhrb48vmbcj0pdyn8")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/42wim/httpsig")) + (propagated-inputs (list go-golang-org-x-crypto)) + (home-page "https://github.com/42wim/httpsig") + (synopsis "Golang implementation of the HTTP Signatures RFC draft") + (description + "This package implements HTTP request and response signing and +verification. Supports the major MAC and asymmetric key signature algorithms. +It has several safety restrictions: One, none of the widely known +non-cryptographically safe algorithms are permitted; Two, the RSA SHA256 +algorithms must be available in the binary (and it should, barring export +restrictions); Finally, the library assumes either the Authorizationn or +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-aki237-nscjar (package (name "go-github-com-aki237-nscjar") @@ -280,6 +421,35 @@ Netscape/Mozilla's old-style cookie files. It also implements a simple cookie jar struct to manage the cookies added to the cookie jar.") (license license:expat))) +(define-public go-github-com-akrylysov-algnhsa + (package + (name "go-github-com-akrylysov-algnhsa") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/akrylysov/algnhsa") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "12a118j1f4jk5rr9wlyfvhshxylhc234pzwrqlbq9b3kcc7d74yj")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/akrylysov/algnhsa")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-aws-aws-lambda-go)) + (home-page "https://github.com/akrylysov/algnhsa") + (synopsis "AWS Lambda Go @code{net/http} server adapter") + (description + "This package implements a functionality to run Go web applications on +AWS Lambda and API Gateway or ALB without changing the existing HTTP +handlers.") + (license license:asl2.0))) + (define-public go-github-com-alexliesenfeld-health (package (name "go-github-com-alexliesenfeld-health") @@ -319,6 +489,35 @@ 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-anacrolix-envpprof + (package + (name "go-github-com-anacrolix-envpprof") + (version "1.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/anacrolix/envpprof") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "121kk1fq1919f0gcnmaxsk6n8flspxa00pyfwl09dysyivwbpk67")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/anacrolix/envpprof")) + (propagated-inputs (list go-github-com-anacrolix-log)) + (home-page "https://github.com/anacrolix/envpprof") + (synopsis "Control HTTP mux via environment variable") + (description + "This package implements a functionality to configure Go's pprof features +and default HTTP mux using the environment variable @code{GOPPROF}. +@code{envpprof} has an @code{init} function that will run at process +initialization that checks the value of the @code{GOPPROF} environment +variable. The variable can contain a comma-separated list of values, for +example @code{GOPPROF=http,block}.") + (license license:expat))) + (define-public go-github-com-arceliar-ironwood (package (name "go-github-com-arceliar-ironwood") @@ -1291,14 +1490,18 @@ and RFC 5389).") #:import-path "github.com/cenkalti/backoff/v4")) (home-page "https://github.com/cenkalti/backoff") (synopsis "The exponential backoff algorithm in Go") - (description "This is a Go port of the exponential backoff algorithm from -@url{https://github.com/google/google-http-java-client/blob/da1aa993e90285ec18579f1553339b00e19b3ab5/google-http-client/src/main/java/com/google/api/client/util/ExponentialBackOff.java, -Google's HTTP Client Library for Java}. + (description + ;; URL https://raw.githubusercontent.com/googleapis/google-http-java-client + ;; Commit da1aa993e90285ec18579f1553339b00e19b3ab5 + ;; Dirrectory google-http-client/src/main/java/com/google/api/client/util + ;; File ExponentialBackOff.java + "This is a Go port of the exponential backoff algorithm from +Google's HTTP Client Library for Java. -@url{http://en.wikipedia.org/wiki/Exponential_backoff, Exponential backoff} is an -algorithm that uses feedback to multiplicatively decrease the rate of some process, -in order to gradually find an acceptable rate. The retries exponentially increase -and stop increasing when a certain threshold is met.") +@url{http://en.wikipedia.org/wiki/Exponential_backoff, Exponential backoff} is +an algorithm that uses feedback to multiplicatively decrease the rate of some +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-chris-ramon-douceur @@ -1752,6 +1955,91 @@ Data Representation (XDR) standard protocol as specified in RFC 4506 (obsoletes RFC 1832 and RFC 1014) in pure Go.") (license license:isc))) +(define-public go-github-com-digitalocean-godo + (package + (name "go-github-com-digitalocean-godo") + (version "1.138.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/digitalocean/godo") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "083vhzb1hwzdmn5m14ygs949g2kabmafvpcxq2laylkylq1fd3rm")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.22 + #:import-path "github.com/digitalocean/godo" + #:test-flags + #~(list "-skip" (string-join + ;; Tests requiring networking setup. + (list "TestRegistry_DeleteManifest" + "TestRegistry_DeleteTag" + "TestRegistry_ListManifests" + "TestRepository_ListTags") + "|")))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-google-go-querystring + go-github-com-hashicorp-go-retryablehttp + go-golang-org-x-oauth2 + go-golang-org-x-time)) + (home-page "https://github.com/digitalocean/godo") + (synopsis "DigitalOcean Go API client") + (description + "Package godo is the @code{DigitalOcean} API v2 client for Go.") + (license (list license:expat license:bsd-3)))) + +(define-public go-github-com-dimfeld-httptreemux + (package + (name "go-github-com-dimfeld-httptreemux") + (version "4.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dimfeld/httptreemux") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1hs22xfipld6xqc0yqih6llm0m0k64slw12vhrx51r2dz91mjjrz")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/dimfeld/httptreemux")) + (home-page "https://github.com/dimfeld/httptreemux") + (synopsis "Tree-based HTTP router for Go") + (description + "This package provides a re-implementation of +@url{https://github.com/julienschmidt/httprouter, Julien Schmidt's +httprouter}, in that it uses a patricia tree, but the logic is rather +different. Specifically, the routing rules are relaxed so that a single path +segment may be a wildcard in one route and a static token in another.") + (license license:expat))) + +(define-public go-github-com-dimfeld-httptreemux-v5 + (package + (inherit go-github-com-dimfeld-httptreemux) + (name "go-github-com-dimfeld-httptreemux-v5") + (version "5.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dimfeld/httptreemux") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "02q700rrf9mr1bcc3nw0qh186lhv17rsmblajsgifj42n72h0llf")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/dimfeld/httptreemux/v5")))) + (define-public go-github-com-docker-go-connections (package (name "go-github-com-docker-go-connections") @@ -1815,6 +2103,31 @@ authentication through Negotiate mechanism (see @url{https://tools.ietf.org/html/rfc4559, RFC4559}).") (license license:expat))) +(define-public go-github-com-elazarl-go-bindata-assetfs + (package + (name "go-github-com-elazarl-go-bindata-assetfs") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/elazarl/go-bindata-assetfs") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05j8gy417gcildmxa04m8ylriaakadr7zvwn2ggq56pdg7b63knc")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/elazarl/go-bindata-assetfs")) + (home-page "https://github.com/elazarl/go-bindata-assetfs") + (synopsis "Serves embedded files with @code{net/http}") + (description + "assetfs allows packages to serve static content embedded with the +@url{https://github.com/go-bindata/go-bindata, go-bindata} tool with the +standard @code{net/http} package.") + (license license:bsd-2))) + (define-public go-github-com-elazarl-goproxy (package (name "go-github-com-elazarl-goproxy") @@ -2242,6 +2555,33 @@ 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-fasthttp-router + (package + (name "go-github-com-fasthttp-router") + (version "1.5.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fasthttp/router") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1szc2s0jbk6jivgfmgxy7iykwqd6b0033jnnr0l47vyxbw7q8zvg")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/fasthttp/router")) + (propagated-inputs + (list go-github-com-savsgio-gotils + go-github-com-valyala-bytebufferpool + go-github-com-valyala-fasthttp)) + (home-page "https://github.com/fasthttp/router") + (synopsis "Router implementation for fasthttp") + (description + "Package router is a trie based high performance HTTP request router.") + (license license:bsd-3))) + (define-public go-github-com-felixge-httpsnoop (package (name "go-github-com-felixge-httpsnoop") @@ -2542,6 +2882,39 @@ Features: decompose request handling into many smaller layers.") (license license:expat))) +(define-public go-github-com-go-fed-httpsig + (package + (name "go-github-com-go-fed-httpsig") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/go-fed/httpsig") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1h2yk2ih8vrma8zrs1z8bd4r48hbqdwhgbqykrs4siyj9c80ykd2")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/go-fed/httpsig" + ;; algorithms_test.go:153: "sha1": got true, want false + #:test-flags #~(list "-skip" "TestIsAvailable"))) + (propagated-inputs + (list go-golang-org-x-crypto)) + (home-page "https://github.com/go-fed/httpsig") + (synopsis "Golang implementation of the HTTP Signatures RFC draft") + (description + "This package implements HTTP request and response signing and verification. +Supports the major MAC and asymmetric key signature algorithms. It has +several safety restrictions: One, none of the widely known +non-cryptographically safe algorithms are permitted; Two, the RSA SHA256 +algorithms must be available in the binary (and it should, barring export +restrictions); Finally, the library assumes either the Authorizationn or +Signature headers are to be set (but not both).") + (license license:bsd-3))) + (define-public go-github-com-go-http-utils-headers (package (name "go-github-com-go-http-utils-headers") @@ -3366,12 +3739,12 @@ with caching and de-duplication that works across a set of peer processes.") GitHub API v3.") (license license:bsd-3))) -;; For chezmoi-1.8.10 -(define-public go-github-com-google-go-github-v33 +;; For chezmoi@2.1.0 +(define-public go-github-com-google-go-github-v36 (package (inherit go-github-com-google-go-github-v31) - (name "go-github-com-google-go-github-v33") - (version "33.0.0") + (name "go-github-com-google-go-github-v36") + (version "36.0.0") (source (origin (method git-fetch) @@ -3380,7 +3753,7 @@ GitHub API v3.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1nzwgvaa9k1ky3sfynib6nhalam9dx66h5lxff334m9kk3rf5nn0")) + (base32 "041a1rmi7pipimxiwjnsd0dngzb4djmcz8a8x4xv53d3373szaj6")) (modules '((guix build utils))) (snippet #~(begin @@ -3392,7 +3765,7 @@ GitHub API v3.") (arguments (substitute-keyword-arguments (package-arguments go-github-com-google-go-github-v31) - ((#:import-path _) "github.com/google/go-github/v33"))))) + ((#:import-path _) "github.com/google/go-github/v36"))))) (define-public go-github-com-google-go-github-v50 (package @@ -4453,6 +4826,29 @@ jsoniter and variable type declarations (if any). jsoniter interfaces gives router.") (license license:bsd-3))) +(define-public go-github-com-justinas-alice + (package + (name "go-github-com-justinas-alice") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/justinas/alice") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "19l88vi13rqyhjl100zd5z26ghy4iln74kqfd3hsmd2nydz7manz")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/justinas/alice")) + (home-page "https://github.com/justinas/alice") + (synopsis "Middleware chaining for Golang") + (description + "Package alice provides a convenient way to chain HTTP handlers.") + (license license:expat))) + (define-public go-github-com-kolo-xmlrpc (package (name "go-github-com-kolo-xmlrpc") @@ -4793,13 +5189,29 @@ faster (and only does simple bandwidth metrics).") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1c94sq43bl1kp04lllcfrfyiy5z3zcfz0s65sm1vgb2s40zrwpr7")))) + (base32 "1c94sq43bl1kp04lllcfrfyiy5z3zcfz0s65sm1vgb2s40zrwpr7")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Delete generated binary file. + (delete-file "sorted-network-list.bin"))))) (build-system go-build-system) (arguments (list - #:import-path "github.com/libp2p/go-libp2p-asn-util")) + #:import-path "github.com/libp2p/go-libp2p-asn-util" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'generate-sorted-network-list + (lambda* (#:key import-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" import-path) + (setenv "ASN_IPV6_FILE" + (string-append + #$(this-package-native-input "specification-ip2asn-v6") + "/share/data/ip2asn-v6.tsv")) + (invoke "go" "run" "./generate/"))))))) (native-inputs - (list go-github-com-stretchr-testify)) + (list go-github-com-stretchr-testify + specification-ip2asn-v6)) (propagated-inputs (list go-golang-org-x-exp)) (home-page "https://github.com/libp2p/go-libp2p-asn-util") @@ -4942,7 +5354,7 @@ daemon as described in (define-public go-github-com-libp2p-go-yamux-v4 (package (name "go-github-com-libp2p-go-yamux-v4") - (version "4.0.1") + (version "4.0.2") (source (origin (method git-fetch) @@ -4951,11 +5363,18 @@ daemon as described in (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "13px8fcjjp02cricabbf3x410jkr8sb6r369nqq1zrgr7v90s22j")))) + (base32 "1jrj7pamcs8s6pd6c8dhkfv3a8cdjhb0kamcxa9cgv79n8rnyp86")))) (build-system go-build-system) (arguments (list - #:import-path "github.com/libp2p/go-yamux/v4")) + #:import-path "github.com/libp2p/go-yamux/v4" + #:test-flags + ;; Test fails on ARM with error: [ERR] yamux: Failed to read stream data + ;; on stream 1: receive window exceeded (remain: 262144, recv: + ;; 33554432). + #~(list #$@(if (target-arm?) + '("-skip" "TestSendData_VeryLarge") + '())))) (native-inputs (list go-github-com-stretchr-testify)) (propagated-inputs @@ -4969,6 +5388,26 @@ such as TCP or Unix domain sockets, and provides stream-oriented multiplexing. It is inspired by SPDY but is not interoperable with it.") (license (list license:mpl2.0 license:bsd-3)))) +(define-public go-github-com-libp2p-go-yamux-v5 + (package + (inherit go-github-com-libp2p-go-yamux-v4) + (name "go-github-com-libp2p-go-yamux-v5") + (version "5.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libp2p/go-yamux") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "019jj3qwzrbqcgwzri5iwi1vh2cn0ms6k8fx14jlmy856b25yl3y")))) + (build-system go-build-system) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-libp2p-go-yamux-v4) + ((#:import-path _) "github.com/libp2p/go-yamux/v5"))))) + (define-public go-github-com-libp2p-zeroconf-v2 (package (name "go-github-com-libp2p-zeroconf-v2") @@ -5131,19 +5570,22 @@ clients that speak the Gemini protocol.") (arguments (list #:import-path "github.com/marten-seemann/tcp" - #: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$") - ;; couldn't initialize from a wrapped conn: unknown - ;; connection type - (("TestWrappedConn") "OffTestWrappedConn") - ;; Get "https://golang.org/robots.txt": dial tcp: lookup - ;; golang.org on [::1]:53: read udp [::1]:56806->[::1]:53: - ;; read: connection refused - (("TestInfo") "OffTestInfo")))))))) + #:test-flags + #~(list "-skip" + (string-join + ;; Test fails with error: couldn't initialize from a wrapped + ;; conn: unknown connection type. + (list "TestWrappedConn" + ;; Get "https://golang.org/robots.txt": dial tcp: lookup + ;; golang.org on [::1]:53: read udp + ;; [::1]:56806->[::1]:53: read: connection refused + "TestInfo" + ;; Test fails on ARM with error: raw-control tcp + ;; 127.0.0.1:49386: getsockopt: protocol not available. + #$@(if (target-arm?) + '("TestConcurrentReadWriteAndInfo") + '())) + "|")))) (native-inputs (list go-golang-org-x-net)) (propagated-inputs @@ -5187,6 +5629,66 @@ supported by HTTP PATCH method, allowing for standards based partial updates via REST APIs.") (license license:asl2.0))) +(define-public go-github-com-mattn-go-ieproxy + (package + (name "go-github-com-mattn-go-ieproxy") + (version "0.0.12") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mattn/go-ieproxy") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1cqfjq106vdm9l9ddb4pps001wxwzabrq2q82f9dimszfq0my8av")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/mattn/go-ieproxy")) + (propagated-inputs + (list go-golang-org-x-net + go-golang-org-x-sys)) + (home-page "https://github.com/mattn/go-ieproxy") + (synopsis "Detect the proxy settings from Golang") + (description + "Package ieproxy is a utility to retrieve the proxy parameters.") + (license license:expat))) + +(define-public go-github-com-mattn-go-mastodon + (package + (name "go-github-com-mattn-go-mastodon") + (version "0.0.9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mattn/go-mastodon") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05hnh5359awm5x7qbaf8fvf772p2hc781alfqnp7ymr4rjfk3pql")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - github.com/mattn/go-mastodon/cmd/mstd + (delete-file-recursively "cmd"))))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/mattn/go-mastodon")) + (propagated-inputs + (list go-github-com-gorilla-websocket + go-github-com-tomnomnom-linkheader)) + (home-page "https://github.com/mattn/go-mastodon") + (synopsis "Mastodon client for golang") + (description + "Package mastodon provides functions and structs for accessing the +mastodon API.") + (license license:expat))) + (define-public go-github-com-mattn-go-xmlrpc (package (name "go-github-com-mattn-go-xmlrpc") @@ -5211,6 +5713,61 @@ via REST APIs.") language.") (license license:expat))) +(define-public go-github-com-mattn-godown + (package + (name "go-github-com-mattn-godown") + (version "0.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mattn/godown") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1f979h6z13nwwx42ahhqv3d4q2ywpg4l7v03qhnr9zaw319jjaln")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/mattn/godown")) + (propagated-inputs + (list go-github-com-mattn-go-runewidth + go-golang-org-x-net)) + (home-page "https://github.com/mattn/godown") + (synopsis "Convert HTML into Markdown") + (description + "This package provides a functionality to convert HTML into Markdown.") + (license license:expat))) + +(define-public go-github-com-mattn-goveralls + (package + (name "go-github-com-mattn-goveralls") + (version "0.0.12") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mattn/goveralls") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "16jszydip2abwc0fws3sz5yzyy87w8mbkhzm2wzb8ijpjhk1by79")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/mattn/goveralls" + ;; Test requires git. + #:test-flags #~(list "-skip" "TestShowArg/with_show"))) + (propagated-inputs + (list go-golang-org-x-mod + go-golang-org-x-tools)) + (home-page "https://github.com/mattn/goveralls") + (synopsis "Golang client for Coveralls.io") + (description + "This package provides a client for @url{http://coveralls.io/ +Coveralls.io} continuous code coverage tracking system.") + (license license:expat))) + (define-public go-github-com-mdlayher-ethtool (package (name "go-github-com-mdlayher-ethtool") @@ -5297,9 +5854,29 @@ types.") (list #:import-path "github.com/mdlayher/netlink" #:test-flags - ;; Test fails to start command "ip": exec: "ip": executable file not - ;; found in $PATH - #~(list "-skip" "TestIntegrationConnSetBuffersSyscallConn"))) + #~(list "-skip" + (string-join + ;; Test fails to start command "ip": exec: "ip": executable + ;; file not found in $PATH + (list "TestIntegrationConnSetBuffersSyscallConn" + #$@(if (target-arm?) + ;; Tests fail on ARM systems with error: failed to + ;; dial netlink: socket: protocol not supported. + '("TestIntegrationConn" + "TestIntegrationConnClosedConn" + "TestIntegrationConnConcurrentClosePreventsReceive" + "TestIntegrationConnConcurrentCloseUnblocksReceive" + "TestIntegrationConnConcurrentOneConn" + "TestIntegrationConnConcurrentSerializeExecute" + "TestIntegrationConnExecuteTimeout" + "TestIntegrationConnExplicitPID" + "TestIntegrationConnReceiveTimeout" + "TestIntegrationConnSendTimeout" + "TestIntegrationConnSetBPF" + "TestIntegrationConnSetBPFEmpty" + "TestIntegrationConnStrict") + '()) + "|"))))) (propagated-inputs (list go-github-com-google-go-cmp go-github-com-josharian-native @@ -5329,11 +5906,21 @@ sockets (AF_NETLINK).") (build-system go-build-system) (arguments (list + #:test-flags + #~(list + ;; One test fails on ARM with error: conn_linux_test.go:120: + ;; skipping, permission denied: failed to unshare network namespace: + ;; operation not permitted + #$@(if (target-arm?) + '("-skip" "TestLinuxBindToDevice") + '())) #:import-path "github.com/mdlayher/socket")) (native-inputs (list go-github-com-google-go-cmp)) (propagated-inputs - (list go-golang-org-x-net go-golang-org-x-sync go-golang-org-x-sys)) + (list go-golang-org-x-net + go-golang-org-x-sync + go-golang-org-x-sys)) (home-page "https://github.com/mdlayher/socket") (synopsis "Low-level network connection type with async I/O and deadline support") (description @@ -5547,16 +6134,20 @@ presenting a small interface.") (arguments (list #:import-path "github.com/mikioh/tcp" - #: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$") - ;; Get "https://golang.org/robots.txt": dial tcp: lookup - ;; golang.org on [::1]:53: read udp [::1]:47181->[::1]:53: - ;; read: connection refused. - (("TestInfo") "OffTestInfo")))))))) + #:test-flags + #~(list "-skip" + (string-join + ;; Get "https://golang.org/robots.txt": dial tcp: lookup + ;; golang.org on [::1]:53: read udp [::1]:47181->[::1]:53: + ;; read: connection refused. + (list "TestInfo" + #$@(if (target-arm?) + ;; Test fails on ARM with error: raw-control tcp + ;; 127.0.0.1:58464: getsockopt: protocol not + ;; available. + '("TestConcurrentReadWriteAndInfo") + '())) + "|")))) (native-inputs (list go-golang-org-x-net)) (propagated-inputs @@ -5632,6 +6223,81 @@ options regarding connection information.") options.") (license license:bsd-2))) +(define-public go-github-com-minio-minio-go + (package + (name "go-github-com-minio-minio-go") + (version "3.0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minio/minio-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1fihvi30wrjd4xgksryz8r315w30x4gyqp1qs1gzaipyyksim8d2")))) + (build-system go-build-system) + (arguments + (list + #:skip-build? #t + #:tests? #f + #:import-path "github.com/minio/minio-go")) + (home-page "https://github.com/minio/minio-go") + (synopsis "Minio Go Client SDK for Amazon S3 Compatible Cloud Storage") + (description + "The Minio Go Client SDK provides simple APIs to access any Amazon S3 +compatible object storage.") + (license license:asl2.0))) + +(define-public go-github-com-minio-minio-go-v7 + (package + (inherit go-github-com-minio-minio-go) + (name "go-github-com-minio-minio-go-v7") + (version "7.0.86") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/minio/minio-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0k9ab0nqdfgwf1h46wsv0i5d207pdyw7dc6ccdj8i7adfbxa1zwa")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/minio/minio-go/v7" + #: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") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda* (#:key import-path #:allow-other-keys) + (substitute* (format #f + "src/~a/pkg/credentials/credentials.sample" + import-path) + (("/bin/cat") (which "cat")))))))) + (propagated-inputs + (list go-github-com-dustin-go-humanize + go-github-com-go-ini-ini + go-github-com-goccy-go-json + go-github-com-google-uuid + go-github-com-klauspost-compress + go-github-com-minio-crc64nvme + go-github-com-minio-md5-simd + go-github-com-rs-xid + go-golang-org-x-crypto + go-golang-org-x-net)))) + (define-public go-github-com-multiformats-go-multiaddr (package (name "go-github-com-multiformats-go-multiaddr") @@ -5777,6 +6443,41 @@ multistream-select protocol. The protocol is defined at 2616} HTTP/1.1 standard.") (license license:bsd-3))) +(define-public go-github-com-ncw-swift-v2 + (package + (name "go-github-com-ncw-swift-v2") + (version "2.0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ncw/swift") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "058mbdgm57rm24skscpl2lklqxs46sc4c3x5770xrd3yncry0rl8")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ncw/swift/v2" + #:test-flags + #~(list "-skip" (string-join + ;; Tests requiring access with TOKEN to API endpoints. + (list "TestAuthenticate" + "TestCDNDisable" + "TestCDNEnable" + "TestCDNMeta" + "TestContainerCreate" + "TestContainerDelete" + "TestOnReAuth") + "|")))) + (home-page "https://github.com/ncw/swift") + (synopsis "Interface to various cloud storage APIs") + (description + "Package swift provides an easy to use interface to Swift / Openstack +Object Storage / Rackspace Cloud Files.") + (license license:expat))) + (define-public go-github-com-nrdcg-goinwx (package (name "go-github-com-nrdcg-goinwx") @@ -5861,7 +6562,7 @@ gzip the response body, for clients which support it.") (define-public go-github-com-opentracing-contrib-go-stdlib (package (name "go-github-com-opentracing-contrib-go-stdlib") - (version "1.0.0") + (version "1.1.0") (source (origin (method git-fetch) @@ -5870,20 +6571,12 @@ gzip the response body, for clients which support it.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1ssnfhbpljxy2v3nsw9aqmh7xlky49dpfwj275aj0b576w46ys6m")))) + (base32 "18ws81a30igmff4pnqfvc2sv8hcy5gjb2saqz00mgz64y8nvjfx7")))) (build-system go-build-system) (arguments (list - #:import-path "github.com/opentracing-contrib/go-stdlib" - #: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" "./...")))))))) + #:skip-build? #t + #:import-path "github.com/opentracing-contrib/go-stdlib")) (propagated-inputs (list go-github-com-opentracing-opentracing-go)) (home-page "https://github.com/opentracing-contrib/go-stdlib") @@ -6052,10 +6745,37 @@ performance overhead. While unmarshalling, it allows fully retaining the original data and access it via a typed struct and a dynamic map.") (license license:expat))) +(define-public go-github-com-peterbourgon-unixtransport + (package + (name "go-github-com-peterbourgon-unixtransport") + (version "0.0.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/peterbourgon/unixtransport") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0c5j01bqwh8zy3n2mynh6irh30wfv6sdd1a34yhhg39l9xbpj51g")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/peterbourgon/unixtransport")) + (propagated-inputs + (list go-github-com-miekg-dns + go-github-com-oklog-run + go-github-com-peterbourgon-ff-v3)) + (home-page "https://github.com/peterbourgon/unixtransport") + (synopsis "Support for Unix domain sockets in Go HTTP clients") + (description + "This package adds support for Unix domain sockets in Go HTTP clients.") + (license license:asl2.0))) + (define-public go-github-com-pion-datachannel (package (name "go-github-com-pion-datachannel") - (version "1.5.8") + (version "1.5.10") (source (origin (method git-fetch) @@ -6064,7 +6784,7 @@ original data and access it via a typed struct and a dynamic map.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0v2xwrzvflrh1s8x6p1dj9h0hmxsp30h8whbl5p544r30rvsbnp2")))) + (base32 "1197ix9z1qg9xf8bhcy0k4a3ppql0jv4l8szv21wwkwzpylba0jk")))) (build-system go-build-system) (arguments (list @@ -6270,10 +6990,34 @@ part of @url{https://github.com/pion, Pion} WebRTC implementation.") go-github-com-pion-turn-v3 go-golang-org-x-net)))) +(define-public go-github-com-pion-ice-v4 + (package + (inherit go-github-com-pion-ice-v3) + (name "go-github-com-pion-ice-v4") + (version "4.0.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pion/ice/") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0kcq14li99dpm927rqizmmnkx6jwp9zr4fvhhv42id9dmn8y6yqj")))) + (arguments + (list + #:tests? #f ;Tests require network access. + #:import-path "github.com/pion/ice/v4")) + (propagated-inputs + (modify-inputs (package-propagated-inputs go-github-com-pion-ice-v3) + (replace "go-github-com-pion-dtls-v2" go-github-com-pion-dtls-v3) + (replace "go-github-com-pion-stun-v2" go-github-com-pion-stun-v3) + (replace "go-github-com-pion-turn-v3" go-github-com-pion-turn-v4))))) + (define-public go-github-com-pion-interceptor (package (name "go-github-com-pion-interceptor") - (version "0.1.30") + (version "0.1.37") (source (origin (method git-fetch) @@ -6282,7 +7026,7 @@ part of @url{https://github.com/pion, Pion} WebRTC implementation.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1b0mmrzb9m9xsskylambdcw3g9xfd1fdfagcw8k0l8886ckqjprr")))) + (base32 "0dl6z8ysssq8nnkrvbi1qnhib12mdwb8psqmmdhj43yffjwb0gg6")))) (build-system go-build-system) (arguments (list @@ -6389,7 +7133,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.6") + (version "1.8.11") (source (origin (method git-fetch) @@ -6398,7 +7142,7 @@ 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 "1vrdvswvvbqq83kbjlyblarbsn5v0sjcwrcv03nncd605cggnbkx")))) + (base32 "1a4fj31j7glhfsnxxwm8r72l6capz9mh8kfr340659ahgiijdkcg")))) (build-system go-build-system) (arguments (list @@ -6415,7 +7159,7 @@ packetizer and depacketizer.") (define-public go-github-com-pion-sctp (package (name "go-github-com-pion-sctp") - (version "1.8.19") + (version "1.8.36") (source (origin (method git-fetch) @@ -6424,7 +7168,7 @@ packetizer and depacketizer.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "19yzpyrlmk3gvpkpn5846rad9cc8ffxw9jqwnpr6szqax7k0l0zw")))) + (base32 "0j9ibj7mhrnh4vmcm6dh6l7q52jq0h6788gvgsfmhh7mxrlajgy3")))) (build-system go-build-system) (arguments (list @@ -6446,7 +7190,7 @@ Protocol,SCTP} as specified in (define-public go-github-com-pion-sdp-v3 (package (name "go-github-com-pion-sdp-v3") - (version "3.0.9") + (version "3.0.10") (source (origin (method git-fetch) @@ -6455,7 +7199,7 @@ Protocol,SCTP} as specified in (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "08d3glli1n45ayc26qwaxm7k5knrf99x5nwkllmmhf29g8kwc89n")))) + (base32 "0xpak20vwf3vmhi0lcj0xgy4snffsmyb6f2c6sq0w713drxqv2hb")))) (build-system go-build-system) (arguments (list @@ -6500,6 +7244,28 @@ Protocol,SCTP} as specified in "Package srtp implements Secure Real-time Transport Protocol.") (license license:expat))) +(define-public go-github-com-pion-srtp-v3 + (package + (inherit go-github-com-pion-srtp-v2) + (name "go-github-com-pion-srtp-v3") + (version "3.0.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pion/srtp") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "03343fsgrawfy9plsl7y5022ygjln3jvsn3im5xl1qwnc68rb1a2")))) + (arguments + (list + #:import-path "github.com/pion/srtp/v3")) + (propagated-inputs + (modify-inputs (package-propagated-inputs go-github-com-pion-srtp-v2) + (replace "go-github-com-pion-transport-v2" + go-github-com-pion-transport-v3))))) + (define-public go-github-com-pion-stun (package (name "go-github-com-pion-stun") @@ -6647,21 +7413,22 @@ throughout the @url{https://github.com/pion, Pion} modules.") (define-public go-github-com-pion-transport-v3 (package - (inherit go-github-com-pion-transport) + (inherit go-github-com-pion-transport-v2) (name "go-github-com-pion-transport-v3") - (version "3.0.2") + (version "3.0.7") (source (origin - (inherit (package-source go-github-com-pion-transport)) + (method git-fetch) (uri (git-reference - (url "https://github.com/pion/transport/") + (url "https://github.com/pion/transport") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0j7ljkbyf2qd7daxg7d1rd6c92md64agi59b69g6jyqpz5jww998")))) + (base32 "05qv7packvz18dfw5bc616f7hy9ad9jz10yxckg29g60y43k5nkf")))) (arguments - (list - #:import-path "github.com/pion/transport/v3")))) + (substitute-keyword-arguments (package-arguments + go-github-com-pion-transport-v2) + ((#:import-path _) "github.com/pion/transport/v3"))))) (define-public go-github-com-pion-turn (package @@ -6679,8 +7446,20 @@ throughout the @url{https://github.com/pion, Pion} modules.") (build-system go-build-system) (arguments (list - #:tests? #f ;Tests require network access. - #:import-path "github.com/pion/turn")) + #:import-path "github.com/pion/turn" + #:test-flags + #~(list "-skip" + (string-join + ;; Tests requiring networking setup. + (list "TestClientWithSTUN/SendBindingRequest" + "TestClientWithSTUN/SendBindingRequestTo_Parallel") + "|")) + #: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)) (propagated-inputs @@ -6761,6 +7540,31 @@ it like any library. The quickest way to get started is to look at the go-github-com-pion-transport-v3 go-golang-org-x-sys)))) +(define-public go-github-com-pion-turn-v4 + (package + (inherit go-github-com-pion-turn-v3) + (name "go-github-com-pion-turn-v4") + (version "4.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pion/turn/") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1yd0v6ijwl62qd2sz7imq9pd2grcrw4dhwnn4302m1k89pxr52wx")))) + (arguments + (substitute-keyword-arguments (package-arguments + go-github-com-pion-turn-v3) + ((#:import-path _) "github.com/pion/turn/v4"))) + (propagated-inputs + (list go-github-com-pion-logging + go-github-com-pion-randutil + go-github-com-pion-stun-v3 + go-github-com-pion-transport-v3 + go-golang-org-x-sys)))) + (define-public go-github-com-pion-webrtc-v3 (package (name "go-github-com-pion-webrtc-v3") @@ -6824,6 +7628,31 @@ STUN, TURN mDNS candidates @end itemize") (license license:expat))) +(define-public go-github-com-pion-webrtc-v4 + (package + (inherit go-github-com-pion-webrtc-v3) + (name "go-github-com-pion-webrtc-v4") + (version "4.0.11") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pion/webrtc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0g7bka1x6cq4a85a73lwg8bmv9dqza0z54vdy2ny0hbypyj7xb23")))) + (build-system go-build-system) + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-pion-webrtc-v3) + ((#:import-path _) "github.com/pion/webrtc/v4"))) + (propagated-inputs + (modify-inputs (package-propagated-inputs go-github-com-pion-webrtc-v3) + (replace "go-github-com-pion-dtls-v2" go-github-com-pion-dtls-v3) + (replace "go-github-com-pion-ice-v2" go-github-com-pion-ice-v4) + (replace "go-github-com-pion-srtp-v2" go-github-com-pion-srtp-v3))))) + (define-public go-github-com-pires-go-proxyproto (package (name "go-github-com-pires-go-proxyproto") @@ -7218,6 +8047,31 @@ library.") client IP from HTTP requests.") (license license:bsd-0))) +(define-public go-github-com-restic-chunker + (package + (name "go-github-com-restic-chunker") + (version "0.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/restic/chunker") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1bp6471lsjzjg17r3q359sz7cybjxpf5xrpndf9xhqc0v9vfx7f5")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/restic/chunker")) + (home-page "https://github.com/restic/chunker") + (synopsis "Implementation of Content Defined Chunking Golang") + (description + "Package chunker implements @acronym{Content Defined Chunking, +@url{https://restic.net/blog/2015-09-12/restic-foundation1-cdc/, CDC}} based +on a rolling Rabin Checksum.") + (license license:bsd-2))) + (define-public go-github-com-rs-cors (package (name "go-github-com-rs-cors") @@ -7296,6 +8150,36 @@ per host/process @end itemize") (license license:expat))) +(define-public go-github-com-sacloud-go-http + (package + (name "go-github-com-sacloud-go-http") + (version "0.1.9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sacloud/go-http") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1c7anxj00sam5q06jlqhi1z39p19p7nffd5q07j78pahcskgvpim")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/sacloud/go-http")) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-hashicorp-go-retryablehttp + go-go-uber-org-ratelimit)) + (home-page "https://github.com/sacloud/go-http") + (synopsis "HTTP client library for SAKURA cloud in Go") + (description + "This package provides a HTTP client functionality that can be used +across various @url{https://www.sakura.ad.jp/, Sakura Cloud} APIs (IaaS, +ObjectStorage, PHY, etc.).") + (license license:asl2.0))) + (define-public go-github-com-safchain-ethtool (package (name "go-github-com-safchain-ethtool") @@ -7322,7 +8206,11 @@ per host/process "TestMsglvlGet" "TestStats" "TestDriverName" - "TestBusInfo") + "TestBusInfo" + #$@(if (target-arm?) + ;; Inappropriate ioctl for device. + '("TestFeatures") + '())) "|")))) (propagated-inputs (list go-golang-org-x-sys)) @@ -7338,7 +8226,7 @@ information or even the peer of a VETH interface.") (define-public go-github-com-sherclockholmes-webpush-go (package (name "go-github-com-sherclockholmes-webpush-go") - (version "1.3.0") + (version "1.4.0") (source (origin (method git-fetch) @@ -7347,13 +8235,13 @@ information or even the peer of a VETH interface.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0qv16zvkd1c7q81v2ai8pfz590fxdrk4lfbgyymln0q7jn5wlvki")))) + (base32 "0dzc2nlxd1lfwr97cqmr4fc792zbsb6yssr7yqxxamqck1y8gnqm")))) (build-system go-build-system) (arguments (list #:import-path "github.com/SherClockHolmes/webpush-go")) (propagated-inputs - (list go-github-com-golang-jwt-jwt go-golang-org-x-crypto)) + (list go-github-com-golang-jwt-jwt-v5 go-golang-org-x-crypto)) (home-page "https://github.com/SherClockHolmes/webpush-go") (synopsis "Web Push API Encryption with VAPID support") (description @@ -7580,6 +8468,59 @@ file into a Go http.CookieJar.") StatHat} account.") (license license:expat))) +(define-public go-github-com-swaggo-swag + (package + (name "go-github-com-swaggo-swag") + (version "1.16.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/swaggo/swag") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1a9dg8clgmpsfww5wv3jbdpm7lqza61iihviskwp5rd7wvp57862")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/swaggo/swag" + #:unpack-path "github.com/swaggo/swag" + #:embed-files + #~(list + ;; github.com/go-openapi/spec/embed.go:8:12: pattern schemas/*.json: + ;; cannot embed irregular file schemas/jsonschema-draft-04.json + "jsonschema-draft-04\\.json" + ;; github.com/go-openapi/spec/embed.go:8:27: pattern + ;; schemas/*/*.json: cannot embed irregular file + ;; schemas/v2/schema.json + "schema\\.json") + #:test-flags + #~(list "-skip" (string-append "TestParseGoList/enableGOMODULE" + "|TestParseDescriptionMarkdown")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-examples + (lambda* (#:key tests? unpack-path #:allow-other-keys) + (with-directory-excursion (string-append "src/" unpack-path) + (delete-file-recursively "example"))))))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-go-openapi-spec + go-github-com-kylebanks-depth + go-github-com-urfave-cli-v2 + go-golang-org-x-text + go-golang-org-x-tools + go-sigs-k8s-io-yaml)) + (home-page "https://github.com/swaggo/swag") + (synopsis "Generate RESTful API documentation with Swagger 2.0 for Go") + (description + "Package swag converts Go annotations to Swagger Documentation 2.0 for +verity of Go web frameworks which may be integrated with an existing project +using Swagger UI.") + (license license:expat))) + (define-public go-github-com-tdewolff-minify-v2 (package (name "go-github-com-tdewolff-minify-v2") @@ -7753,6 +8694,29 @@ 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-tomnomnom-linkheader + (package + (name "go-github-com-tomnomnom-linkheader") + (version "0.0.0-20180905144013-02ca5825eb80") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tomnomnom/linkheader") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ghrv28vrvvrpyr4d4q817yby8g1j04mid8ql00sds1pvfv67d32")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/tomnomnom/linkheader")) + (home-page "https://github.com/tomnomnom/linkheader") + (synopsis "Golang HTTP Link header parser") + (description + "Package linkheader provides functions for parsing HTTP Link headers.") + (license license:expat))) + (define-public go-github-com-tv42-httpunix (let ((commit "2ba4b9c3382c77e7b9ea89d00746e6111d142a22") (revision "0")) @@ -7862,6 +8826,49 @@ extract data from those paths.") encoding library for the MessagePack, CBOR, JSON and the Binc formats.") (license license:expat))) +(define-public go-github-com-urfave-negroni + (package + (name "go-github-com-urfave-negroni") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/urfave/negroni") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1gp6j74adi1cn8fq5v3wzlzhwl4zg43n2746m4fzdcdimihk3ccp")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/urfave/negroni")) + (home-page "https://github.com/urfave/negroni") + (synopsis "Idiomatic HTTP Middleware for Golang") + (description + "Package negroni is an idiomatic approach to web middleware in Go. It is +tiny,non-intrusive, and encourages use of @code{net/http} Handlers.") + (license license:expat))) + +(define-public go-github-com-urfave-negroni-v3 + (package + (inherit go-github-com-urfave-negroni) + (name "go-github-com-urfave-negroni-v3") + (version "3.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/urfave/negroni") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04fbp15jq23sp10kgrpgmbif3mvzs82m1wx2bbmgknh27yy8i95y")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/urfave/negroni/v3")))) + (define-public go-github-com-valyala-fasthttp (package (name "go-github-com-valyala-fasthttp") @@ -8149,6 +9156,32 @@ https://github.com/restic/restic project.") netmasks.") (license license:expat))) +(define-public go-github-com-willscott-goturn + (package + (name "go-github-com-willscott-goturn") + (version "0.0.0-20170802220503-19f41278d0c9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/willscott/goturn") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zwvhfznr84ayzknn9flh65nvqjsixisgy9fkhz2jlahl1ldqcq7")))) + (build-system go-build-system) + (arguments + (list + #:tests? #f ; tests are broken on a newer go, starting from 1.17. + #:import-path "github.com/willscott/goturn")) + (home-page "https://github.com/willscott/goturn") + (synopsis "Go TURN dialer") + (description + "GoTURN is a library providing a Go interface compatible with the +golang proxy package which connects through a TURN relay. It provides parsing +and encoding support for STUN and TURN protocols.") + (license license:bsd-3))) + (define-public go-github-com-wlynxg-anet (package (name "go-github-com-wlynxg-anet") @@ -8488,6 +9521,54 @@ It is to used for inputs in other packages.") ;; which apply to the Application, with which you must still comply license:lgpl3))) +(define-public go-gitlab-com-gitlab-org-api-client-go + (package + (name "go-gitlab-com-gitlab-org-api-client-go") + (version "0.123.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/gitlab-org/api/client-go.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xrqyqvmaslfr9cj91519qi5f2sd3l2mvipxgjf13vd3v4fchacn")))) + (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" + "TestRepositoryFilesService_CreateFile" + "TestRepositoryFilesService_DeleteFile" + "TestRepositoryFilesService_GetFile" + "TestRepositoryFilesService_GetFileBlame" + "TestRepositoryFilesService_GetFileMetaData" + "TestRepositoryFilesService_GetRawFile" + "TestRepositoryFilesService_UpdateFile" + "TestRepositorySubmodulesService_UpdateSubmodule" + "TestUpdateRepositoryEnvironmentsEscapesURL") + "|")))) + (native-inputs + (list go-github-com-stretchr-testify)) + (propagated-inputs + (list go-github-com-google-go-querystring + go-github-com-hashicorp-go-cleanhttp + go-github-com-hashicorp-go-retryablehttp + go-golang-org-x-oauth2 + go-golang-org-x-time)) + (home-page "https://gitlab.com/gitlab-org/api/client-go") + (synopsis "GitLab client for Golang") + (description + "This package provides a GitLab API client enabling Go programs to +interact with GitLab in a simple and uniform way.") + (license license:asl2.0))) + (define-public go-gitlab-torproject-org-tpo-anti-censorship-geoip (package (name "go-gitlab-torproject-org-tpo-anti-censorship-geoip") @@ -8674,6 +9755,142 @@ library code browsing activities based on HTTP Upgrade (HTTPT).") (license license:bsd-2))) +(define-public go-go-mau-fi-whatsmeow + (package + (name "go-go-mau-fi-whatsmeow") + (version "0.0.0-20241215104421-68b0856cce22") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tulir/whatsmeow") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1y3h132g3w6ihc8jn587wvyha9xm3sinjlr0znqq7krvynz3z8id")))) + (build-system go-build-system) + (arguments + (list + #:import-path "go.mau.fi/whatsmeow")) + (propagated-inputs + (list go-github-com-google-uuid + go-github-com-gorilla-websocket + go-github-com-rs-zerolog + go-go-mau-fi-libsignal + go-go-mau-fi-util + go-golang-org-x-crypto + go-golang-org-x-net + go-google-golang-org-protobuf)) + (home-page "https://go.mau.fi/whatsmeow") + (synopsis "Go library for the WhatsApp web multidevice API") + (description + "Package whatsmeow implements a client for interacting with the +@code{WhatsApp} web multidevice API. + +Features: +@itemize +@item sending messages to private chats and groups (both text and media) +@item receiving all messages +@item managing groups and receiving group change events +@item joining via invite messages, using and creating invite links +@item sending and receiving typing notifications +@item sending and receiving delivery and read receipts +@item reading and writing app state (contact list, chat pin/mute status, etc) +@item sending and handling retry receipts if message decryption fails +@item sending status messages (experimental, may not work for large contact +lists) +@end itemize") + (license license:mpl2.0))) + +(define-public go-go-opencensus-io + (package + (name "go-go-opencensus-io") + (version "0.24.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/census-instrumentation/opencensus-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1923j8v214fyk9qlw0lfva6ah8p7s8cfkrysiada5pp4jim4k4xi")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.22 + #:import-path "go.opencensus.io" + #:test-flags + #~(list "-skip" + (string-join + ;; Tests requiring networking. + (list "TestAgainstSpecs/Successful_GET_call_to_https.*" + "TestAgainstSpecs/Successfully_POST_call_to_https.*") + "|")) + #: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"))))))) + (propagated-inputs + (list go-github-com-golang-groupcache + go-github-com-golang-protobuf + go-github-com-google-go-cmp + go-github-com-stretchr-testify + go-golang-org-x-net + go-google-golang-org-grpc)) + (home-page "https://opencensus.io/") + (synopsis "Stats collection and distributed tracing framework") + (description + "Package opencensus contains Go support for @code{OpenCensus}.") + (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") + (version "0.59.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 + "instrumentation/net/http/otelhttp")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "17kyba5816983migninw6v2si2d28j32973c0x8i08fswrjz5dm0")))) + (build-system go-build-system) + (arguments + (list + #:import-path + "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" + #:unpack-path "go.opentelemetry.io/contrib" + #: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 + "instrumentation/net/http/otelhttp/example"))))))) + (native-inputs + (list go-github-com-stretchr-testify + go-go-opentelemetry-io-otel-sdk + go-go-opentelemetry-io-otel-sdk-metric)) + (propagated-inputs + (list go-github-com-felixge-httpsnoop + go-go-opentelemetry-io-otel + go-go-opentelemetry-io-otel-metric + go-go-opentelemetry-io-otel-trace)) + (home-page "https://opentelemetry.io/") + (synopsis "Golang std @code{http.Handler} wrapper library") + (description + "Package otelhttp provides an http.Handler and functions that are +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-otel (package (name "go-go-opentelemetry-io-otel") @@ -8804,6 +10021,18 @@ logging library. Instead, install one of the bridges listed in the [registry], and use the associated logging library.") (license license:asl2.0))) +(define-public go-go-opentelemetry-io-otel-metric + (package/inherit go-go-opentelemetry-io-otel + (name "go-go-opentelemetry-io-otel-metric") + (arguments + (list + #:import-path "go.opentelemetry.io/otel/metric" + #:unpack-path "go.opentelemetry.io/otel")) + (synopsis "OpenTelemetry Metric API") + (description + "Package metric provides an implementation of the metric part of the +OpenTelemetry API."))) + (define-public go-go-opentelemetry-io-otel-sdk (package (name "go-go-opentelemetry-io-otel-sdk") @@ -8977,6 +10206,46 @@ logging library. Instead, install one of the bridges listed in the metrics SDK.") (license license:asl2.0))) +(define-public go-go-opentelemetry-io-otel-trace + (package/inherit go-go-opentelemetry-io-otel + (name "go-go-opentelemetry-io-otel-trace") + (arguments + (list + #:import-path "go.opentelemetry.io/otel/trace" + #:unpack-path "go.opentelemetry.io/otel")) + (synopsis "OpenTelemetry Trace API") + (description + "Package trace provides an implementation of the tracing part of the +OpenTelemetry API."))) + +(define-public go-goji-io + (package + (name "go-goji-io") + (version "2.0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/goji/goji") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0sckb1gayxfrlm12kdp33vwqq4gs5irqswr7pm0skkdz66swsvcc")))) + (build-system go-build-system) + (arguments + (list + #:import-path "goji.io")) + (home-page "https://goji.io") + (synopsis "HTTP request multiplexer for Golang") + (description + "Goji is a HTTP request multiplexer, similar to std +@code{net/http.ServeMux}. It compares incoming requests to a list of +registered Patterns, and dispatches to the @code{http.Handler} that +corresponds to the first matching Pattern. Goji also supports +Middleware (composable shared functionality applied to every request) and uses +the standard @code{context} package to store request-scoped values.") + (license license:expat))) + (define-public go-golang-org-x-oauth2 (package (name "go-golang-org-x-oauth2") @@ -9051,6 +10320,77 @@ metrics SDK.") (description "This package is a Go Implementation of WireGuard.") (license license:expat))) +(define-public go-google-golang-org-grpc + (package + (name "go-google-golang-org-grpc") + (version "1.69.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/grpc/grpc-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0bvwnhgg04zhzwb9pxsv3n0c96hci5mdnpdaxr4ggy2m28df2q6m")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; Submodules with their own go.mod files and packaged separately: + ;; + ;; - google.golang.org/grpc/cmd/protoc-gen-go-grpc + ;; - google.golang.org/grpc/examples + ;; - google.golang.org/grpc/gcp/observability + ;; - google.golang.org/grpc + ;; - google.golang.org/grpc/interop/observability + ;; - google.golang.org/grpc/interop/xds + ;; - google.golang.org/grpc/security/advancedtls/examples + ;; - google.golang.org/grpc/security/advancedtls + ;; - google.golang.org/grpc/stats/opencensus + ;; - google.golang.org/grpc/test/tools + (for-each delete-file-recursively + (list "cmd/protoc-gen-go-grpc" + "examples" + "gcp/observability" + "interop/observability" + "interop/xds" + "security/advancedtls/examples" + "security/advancedtls" + "stats/opencensus" + "test/tools")))))) + (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 + (list go-github-com-cespare-xxhash-v2 + ;; go-github-com-cncf-xds-go + ;; go-github-com-envoyproxy-go-control-plane + ;; go-github-com-envoyproxy-go-control-plane-envoy + go-github-com-golang-glog + go-github-com-golang-protobuf + go-github-com-google-go-cmp + go-github-com-google-uuid + ;; go-go-opentelemetry-io-contrib-detectors-gcp + go-go-opentelemetry-io-otel + go-go-opentelemetry-io-otel-metric + go-go-opentelemetry-io-otel-sdk + go-go-opentelemetry-io-otel-sdk-metric + go-go-opentelemetry-io-otel-trace + go-golang-org-x-net + go-golang-org-x-oauth2 + go-golang-org-x-sync + go-golang-org-x-sys + go-google-golang-org-genproto-googleapis-rpc + go-google-golang-org-protobuf)) + (home-page "https://google.golang.org/grpc") + (synopsis "Golang implementation of gRPC - HTTP/2 based RPC") + (description + "Package grpc implements an RPC system called @code{gRPC}.") + (license license:asl2.0))) + (define-public go-gopkg-in-go-jose-go-jose-v2 (package (inherit go-github-com-go-jose-go-jose-v3) @@ -9094,6 +10434,40 @@ metrics SDK.") ((#:tests? _ #t) #f) ((#:import-path _) "gopkg.in/jcmturner/rpc.v2"))))) +(define-public go-k8s-io-cri-api + (package + (name "go-k8s-io-cri-api") + (version "0.32.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kubernetes/cri-api") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0wzqf8860xp0k1y6csrksh37alzz3ksagwl3bv67r4x602l0zadv")))) + (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)) + (propagated-inputs + (list go-github-com-gogo-protobuf + go-google-golang-org-grpc)) + (home-page "https://github.com/kubernetes/cri-api") + (synopsis "Container Runtime Interface a plugin interface") + (description + "This package provides the definitions for the Container Runtime +Interface (CRI). CRI is a plugin interface which enables kubelet to use a +wide variety of container runtimes, without the need to recompile. CRI +consists of a protocol buffers and @code{gRPC} API. Read more about CRI API at +@@url{https://kubernetes.io/docs/concepts/architecture/cri/,kubernetes +docs}.") + (license license:asl2.0))) + (define-public go-k8s-io-kube-openapi (package (name "go-k8s-io-kube-openapi") @@ -9163,6 +10537,97 @@ but implement that subset with little to no assumption about the structure of the code or routes.") (license license:asl2.0))) +(define-public go-maunium-net-go-mautrix + (package + (name "go-maunium-net-go-mautrix") + (version "0.22.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mautrix/go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0msqbs3qc9ljckj41hgvp16p0sbfzm25wzldb68av9svimscwnmm")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.23 + #:import-path "maunium.net/go/mautrix" + #: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") + #:test-flags + #~(list "-skip" (string-join + ;; Network access is required for the tets. + (list "TestClient_Version" + "TestResolveServerName/RM_Step_3B" + "TestResolveServerName/RM_Step_3C" + "TestResolveServerName/RM_Step_3C_MSC4040" + "TestResolveServerName/RM_Step_3D" + "TestResolveServerName/RM_Step_4" + "TestResolveServerName/RM_Step_4_MSC4040" + "TestResolveServerName/maunium") + "|")))) + ;; XXX: The final application needs a "libolm" package. + (native-inputs + (list olm)) + (propagated-inputs + (list go-filippo-io-edwards25519 + go-github-com-chzyer-readline + go-github-com-gorilla-mux + go-github-com-gorilla-websocket + go-github-com-lib-pq + go-github-com-mattn-go-sqlite3 + go-github-com-rs-xid + go-github-com-rs-zerolog + go-github-com-skip2-go-qrcode + go-github-com-stretchr-testify + go-github-com-tidwall-gjson + go-github-com-tidwall-sjson + go-github-com-yuin-goldmark + go-go-mau-fi-util + go-go-mau-fi-zeroconfig + go-golang-org-x-crypto + go-golang-org-x-exp + go-golang-org-x-net + go-golang-org-x-sync + go-gopkg-in-yaml-v3 + go-maunium-net-go-mauflag)) + (home-page "https://maunium.net/go/mautrix") + (synopsis "Golang Matrix framework") + (description + "Package mautrix implements the Matrix Client-Server API and originated +from @url{https://github.com/matrix-org/gomatrix}. + +Features: +@itemize +@item appservice support (Intent API like mautrix-python, room state storage, +etc) +@item end-to-end encryption support (incl. interactive SAS verification) +@item high-level module for building puppeting bridges +@item high-level module for building chat clients +@item wrapper functions for the Synapse admin API +@item structs for parsing event content +@item helpers for parsing and generating Matrix HTML +@item helpers for handling push rules +@end itemize") + (license (list + ;; This project + license:mpl2.0 + ;; Based on <https://github.com/matrix-org/gomatrix> project, no + ;; longer maintained since Feb 21, 2024. + license:asl2.0)))) + (define-public go-modernc-org-httpfs (package (name "go-modernc-org-httpfs") @@ -9214,7 +10679,7 @@ the code or routes.") (define-public go-mvdan-cc-xurls-v2 (package (name "go-mvdan-cc-xurls-v2") - (version "2.5.0") + (version "2.6.0") (source (origin (method git-fetch) @@ -9223,17 +10688,20 @@ the code or routes.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1516hwlxbnhdca56qy7sx9h2n5askq6ddqpqyp3f5rvmzdkxf4zn")))) + (base32 "1kk4mjizr23zjzsavs21krp13w52p3b8dcm4ahlrr6xkkfn8ry3i")))) (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)) #:test-flags #~(list "-skip" "TestScript/version"))) (propagated-inputs - (list go-github-com-rogpeppe-go-internal + (list go-github-com-rogpeppe-go-internal-1.14 go-golang-org-x-mod go-golang-org-x-sync)) - (home-page "https://mvdan.cc/xurls/v2/") + (home-page "https://github.com/mvdan/xurls") (synopsis "Extracts URLs from text") (description "Xurls extracts urls from plain text using regular expressions. It can @@ -9271,6 +10739,53 @@ protocol.") ;;; Executables: ;;; +(define-public lyrebird + (package + (name "lyrebird") + (version "0.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird") + (commit (string-append "lyrebird-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1hhilnk72s0h3cm7zw89n3kiqwa32c0r1a1y5ygp432hmrxvr2b0")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.22 + #:build-flags #~(list (string-append "-ldflags=" + "-X main.lyrebirdVersion=" + #$version " -s -w")) + #:install-source? #f + #:unpack-path "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird" + #:import-path "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird/cmd/lyrebird")) + (propagated-inputs + (list go-filippo-io-edwards25519 + go-github-com-dchest-siphash + go-github-com-refraction-networking-utls + go-gitlab-com-yawning-edwards25519-extra + go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-goptlib + go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-snowflake-v2 + go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-webtunnel + go-golang-org-x-crypto + go-golang-org-x-net)) + (home-page "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird") + (synopsis "Look-like nothing obfuscation protocol") + (description + "This is a look-like nothing obfuscation protocol that incorporates ideas +and concepts from Philipp Winter's ScrambleSuit protocol.") + (license (list license:bsd-2 license:bsd-3)))) + +(define-public go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-lyrebird + ;; This is a final command, no need for a full name of the go.mod module path + ;; style. The same is suggested in project's README and Makefile. + (deprecated-package + "go-gitlab-torproject-org-tpo-anti-censorship-pluggable-transports-lyrebird" + lyrebird)) + (define-public go-jose-util (package (name "go-jose-util") @@ -9424,21 +10939,33 @@ to use line-based tools such as grep to search for what you want and see the absolute \"path\" to it.") (license license:expat))) +(define-public swag + (package/inherit go-github-com-swaggo-swag + (name "swag") + (arguments + (substitute-keyword-arguments + (package-arguments go-github-com-swaggo-swag) + ((#:tests? _ #t) #f) + ((#:install-source? _ #t) #f) + ((#:import-path _ "github.com/swaggo/swag") + "github.com/swaggo/swag/cmd/swag"))) + (native-inputs (package-propagated-inputs go-github-com-swaggo-swag)) + (propagated-inputs '()) + (inputs '()))) + (define-public xurls - (package - (inherit go-mvdan-cc-xurls-v2) + (package/inherit go-mvdan-cc-xurls-v2 (name "xurls") (arguments - (list - #:import-path "mvdan.cc/xurls/v2/cmd/xurls" - #:unpack-path "mvdan.cc/xurls/v2" - #:install-source? #f - #: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) - (delete-file "testdata/script/version.txtar"))))))))) + (substitute-keyword-arguments + (package-arguments go-mvdan-cc-xurls-v2) + ((#:tests? _ #t) #f) + ((#:install-source? _ #t) #f) + ((#:import-path _ "mvdan.cc/xurls/v2") "mvdan.cc/xurls/cmd/xurls") + ((#:unpack-path _ "") "mvdan.cc/xurls"))) + (native-inputs (package-propagated-inputs go-mvdan-cc-xurls-v2)) + (propagated-inputs '()) + (inputs '()))) ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances |
