summaryrefslogtreecommitdiff
path: root/gnu/packages/golang-web.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/golang-web.scm')
-rw-r--r--gnu/packages/golang-web.scm325
1 files changed, 325 insertions, 0 deletions
diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index 5fbf2fe41a..28eba7f5d2 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -22,6 +22,7 @@
;;; Copyright © 2022 jgart via Guix-patches via <[email protected]>
;;; Copyright © 2022 muradm <[email protected]>
;;; Copyright © 2022, 2023 Sharlatan Hellseher <[email protected]>
+;;; Copyright © 2023 Felix Lechner <[email protected]>
;;; Copyright © 2023 Filip Lajszczak <[email protected]>
;;; Copyright © 2023 Fries <[email protected]>
;;; Copyright © 2023 Hilton Chain <[email protected]>
@@ -656,6 +657,55 @@ 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-containerd-typeurl
+ (package
+ (name "go-github-com-containerd-typeurl")
+ (version "1.0.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/containerd/typeurl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0wvfxlxgkln11d9s6rxay965c715bnpk203klbsq8m8qpjqrz620"))))
+ (build-system go-build-system)
+ (arguments
+ (list #:import-path "github.com/containerd/typeurl"))
+ (propagated-inputs
+ (list go-github-com-gogo-protobuf
+ go-github-com-pkg-errors))
+ (home-page "https://github.com/containerd/typeurl")
+ (synopsis "Managing marshaled types to @code{protobuf.Any}")
+ (description
+ "This package implements a functionality of managing the registration,
+marshaling, and unmarshaling of encoded types. It helps when types are sent
+over a ttrpc/GRPC API and marshaled as a protobuf
+@url{https://pkg.go.dev/google.golang.org/protobuf@@v1.27.1/types/known/anypb#Any,
+Any}.")
+ (license license:asl2.0)))
+
+(define-public go-github-com-containerd-typeurl-v2
+ (package
+ (inherit go-github-com-containerd-typeurl)
+ (name "go-github-com-containerd-typeurl-v2")
+ (version "2.2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/containerd/typeurl")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1n43s8zqwwrvpzb0pczm73xx4w8yb96ax31cripzxmfhj43z21b5"))))
+ (arguments
+ (list #:import-path "github.com/containerd/typeurl/v2"))
+ (propagated-inputs
+ (list go-github-com-gogo-protobuf
+ go-google-golang-org-protobuf))))
+
(define-public go-github-com-coreos-go-oidc
(package
(name "go-github-com-coreos-go-oidc")
@@ -1008,6 +1058,34 @@ developers to use @code{http} methods explicitly and in a way that's
consistent with the HTTP protocol definition.")
(license license:expat)))
+(define-public go-github-com-evanphx-json-patch
+ (package
+ (name "go-github-com-evanphx-json-patch")
+ (version "0.5.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/evanphx/json-patch")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "00sib9ba8j1h1n3r1cxx48zn8hs6sxwnrh78p6wbs28wcpz8nqxi"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/evanphx/json-patch"))
+ (propagated-inputs
+ (list go-github-com-jessevdk-go-flags go-github-com-pkg-errors))
+ (home-page "https://github.com/evanphx/json-patch")
+ (synopsis "Apply and create JSON (RFC6902 and RFC7386) patches for Golang")
+ (description
+ "@code{jsonpatch} is a library which provides functionality for both
+applying @url{http://tools.ietf.org/html/rfc6902,RFC6902 JSON patches} against
+documents, as well as for calculating & applying
+@url{https://tools.ietf.org/html/rfc7396,RFC7396 JSON merge patches}.")
+ (license license:bsd-3)))
+
(define-public go-github-com-felixge-httpsnoop
(package
(name "go-github-com-felixge-httpsnoop")
@@ -1747,6 +1825,61 @@ user interface for humans, to read and edit before passing the JSON data to
the machine.")
(license license:expat)))
+(define-public go-github-com-huin-goupnp
+ (package
+ (name "go-github-com-huin-goupnp")
+ (version "1.3.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/huin/goupnp")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "04j5rmrfawjxcimiqpyjm9gm5phdndjxrmydf9f1ylij6m360nwl"))
+ (modules '((guix build utils)))
+ (snippet
+ #~(begin
+ ;; Submodules with their own go.mod files and packed as separated
+ ;; packages:
+ ;;
+ ;; - github.com/huin/goupnp/v2alpha
+ (for-each delete-file-recursively
+ (list "v2alpha"))))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/huin/goupnp"
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; XXX: Run all tests, workaround for go-build-system's lack of Go
+ ;; modules support.
+ (replace 'check
+ (lambda* (#:key tests? import-path #:allow-other-keys)
+ (when tests?
+ (with-directory-excursion (string-append "src/" import-path)
+ (invoke "go" "test" "-v" "./..."))))))))
+ (home-page "https://github.com/huin/goupnp")
+ (propagated-inputs
+ (list go-golang-org-x-sync))
+ (synopsis "UPnP client library for Go")
+ (description
+ "@code{goupnp} is a @acronym{Universal Plug and Play, UPnP} client
+library for Go.
+
+Core components:
+@itemize
+@item @code{goupnp}: core library - contains datastructures and utilities
+typically used by the implemented DCPs
+@item @code{httpu}: HTTPU implementation, underlies SSDP
+@item @code{ssdp}: SSDP client implementation (simple service discovery
+protocol) - used to discover UPnP services on a network
+@item @code{soap}: SOAP client implementation (simple object access protocol)
+- used to communicate with discovered services
+@end itemize")
+ (license license:bsd-2)))
+
(define-public go-github-com-jackpal-gateway
(package
(name "go-github-com-jackpal-gateway")
@@ -2020,6 +2153,119 @@ jsoniter and variable type declarations (if any). jsoniter interfaces gives
router.")
(license license:bsd-3)))
+(define-public go-github-com-koron-go-ssdp
+ (package
+ (name "go-github-com-koron-go-ssdp")
+ (version "0.0.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/koron/go-ssdp")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0agzxzlwvnhgwk6sxswjq7v1ghmf0l02gr7zpdih24i3g457af4f"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/koron/go-ssdp"
+ #: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$")
+ ;; Test requiring network setup.
+ (("TestAdvertise_Alive") "OffTestAdvertise_Alive")
+ (("TestAdvertise_Bye") "OffTestAdvertise_Bye")
+ (("TestAnnounceAlive") "OffTestAnnounceAlive")
+ (("TestAnnounceBye") "OffTestAnnounceBye")
+ (("TestInterfaces") "OffTestInterfaces")
+ (("TestSearch_Request") "OffTestSearch_Request")
+ (("TestSearch_Response") "OffTestSearch_Response")
+ (("TestSearch_ServiceRawHeader") "OffTestSearch_ServiceRawHeader")))))
+ ;; XXX: Run all tests, workaround for go-build-system's lack of Go
+ ;; modules support.
+ (replace 'check
+ (lambda* (#:key tests? import-path #:allow-other-keys)
+ (when tests?
+ (with-directory-excursion (string-append "src/" import-path)
+ (invoke "go" "test" "-v" "./..."))))))))
+ (propagated-inputs
+ (list go-golang-org-x-net))
+ (home-page "https://github.com/koron/go-ssdp")
+ (synopsis "SSDP library for Golang")
+ (description
+ "@code{go-ssdp} is a @url{https://tools.ietf.org/html/draft-cai-ssdp-v1-03,
+@acronym{Simple Service Discovery Protocol, SSDP}} library for Golang.")
+ (license license:expat)))
+
+(define-public go-github-com-libp2p-go-nat
+ (package
+ (name "go-github-com-libp2p-go-nat")
+ (version "0.2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/libp2p/go-nat")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1yyb3knxvfr7fi759nh7mhh88ap1jpkb7nky7niqrh75737phgh0"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/libp2p/go-nat"))
+ (propagated-inputs
+ (list go-github-com-huin-goupnp
+ go-github-com-jackpal-go-nat-pmp
+ go-github-com-koron-go-ssdp
+ go-github-com-libp2p-go-netroute))
+ (home-page "https://github.com/libp2p/go-nat")
+ (synopsis "NAT port mapping library for Golang")
+ (description
+ "Package @code{go-nat} implements NAT handling facilities.")
+ (license license:asl2.0)))
+
+(define-public go-github-com-libp2p-go-netroute
+ (package
+ (name "go-github-com-libp2p-go-netroute")
+ (version "0.2.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/libp2p/go-netroute")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "06p68j63fd5nf2gf1fz2pnksmdmv735swpbpvnhb15vrgg3r528g"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/libp2p/go-netroute"
+ #: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$")
+ ;; Test requiring network access: no route found for 8.8.8.8
+ (("TestRoute") "OffTestRoute"))))))))
+ (propagated-inputs
+ (list go-github-com-google-gopacket
+ go-golang-org-x-net
+ go-golang-org-x-sys))
+ (home-page "https://github.com/libp2p/go-netroute")
+ (synopsis "Routing table abstraction library for Golang")
+ (description
+ "@code{go-netroute} provides an implementation of the
+@url{https://godoc.org/github.com/google/gopacket/routing#Router,
+gopacket/routing.Router} interface for Golang.")
+ (license license:bsd-3)))
+
(define-public go-github-com-makeworld-the-better-one-go-gemini
(package
(name "go-github-com-makeworld-the-better-one-go-gemini")
@@ -2074,6 +2320,38 @@ clients that speak the Gemini protocol.")
@@url{https://github.com/makeworld-the-better-one/go-gemini,go-gemini}.")
(license license:expat)))
+(define-public go-github-com-mattbaird-jsonpatch
+ (package
+ (name "go-github-com-mattbaird-jsonpatch")
+ (version "0.0.0-20240118010651-0ba75a80ca38")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mattbaird/jsonpatch")
+ (commit (go-version->git-ref version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1nxbrpk8bvvmfgl4sfsbx82g0q44i2sakl7vigbsj3prx6nql5iv"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "github.com/mattbaird/jsonpatch"))
+ (native-inputs
+ (list go-github-com-evanphx-json-patch go-github-com-stretchr-testify))
+ (home-page "https://github.com/mattbaird/jsonpatch")
+ (synopsis "JSON Patch library for Go")
+ (description
+ "@url{http://jsonpatch.com/, JSON Patch} implementation for Go as
+specified in @url{https://datatracker.ietf.org/doc/html/rfc6902/, RFC 6902}
+from the IETF.
+
+JSON Patch allows you to generate JSON that describes changes you want to make
+to a document, so you don't have to send the whole doc. JSON Patch format is
+supported by HTTP PATCH method, allowing for standards based partial updates
+via REST APIs.")
+ (license license:asl2.0)))
+
(define-public go-github-com-microcosm-cc-bluemonday
(package
(name "go-github-com-microcosm-cc-bluemonday")
@@ -3647,6 +3925,53 @@ programming language, which supports draft-04, draft-06 and draft-07.")
spec in Go.")
(license license:bsd-3)))
+(define-public go-golang-zx2c4-com-wireguard
+ (package
+ (name "go-golang-zx2c4-com-wireguard")
+ (version "0.0.0-20231211153847-12269c276173")
+ (source
+ (origin
+ (method git-fetch)
+ ;; NOTE: module URL is a redirect
+ ;; target: git.zx2c4.com/wireguard-go
+ ;; source: golang.zx2c4.com/wireguard
+ (uri (git-reference
+ (url "https://git.zx2c4.com/wireguard-go/")
+ (commit (go-version->git-ref version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1fbc6m0ahifhrd6jdrpdxi8l3b2slpp8fmv20kpq2yzz19vzzgkf"))))
+ (build-system go-build-system)
+ (arguments
+ (list
+ #:import-path "golang.zx2c4.com/wireguard"
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; XXX: Workaround for go-build-system's lack of Go modules
+ ;; support.
+ (replace 'check
+ (lambda* (#:key tests? import-path #:allow-other-keys)
+ (when tests?
+ (with-directory-excursion (string-append "src/" import-path)
+ (invoke "go" "test" "-v"
+ ;; "./tune/..." ; Requires gvisor.dev/gvisor, not packed yet
+ "./"
+ "./conn/..."
+ "./device/..."
+ "./ipc/..."
+ "./ratelimiter/..."
+ "./replay/..."
+ "./rwcancel/..."
+ "./tai64n/..."))))))))
+ (propagated-inputs
+ (list go-golang-org-x-crypto
+ go-golang-org-x-net
+ go-golang-org-x-sys))
+ (home-page "https://git.zx2c4.com/wireguard")
+ (synopsis "Implementation of WireGuard in Go")
+ (description "This package is a Go Implementation of WireGuard.")
+ (license license:expat)))
+
;; XXX: This repository has been archived by the owner on Feb 27, 2023. It is
;; now read-only and it is DEPRECATED.
(define-public go-gopkg-in-square-go-jose-v2