Subject: [PATCH 1/5] gnu: Add go-github-com-pion-turn-v3.

From: "Artyom V. Poptsov" <[email-masked]>
Date: Fri, 17 May 2024 22:27:12 +0300

* gnu/packages/golang-xyz.scm (go-github-com-pion-turn-v3): New variable.

Change-Id: I6127d3ba42268441e7b052a7a7693341ef7b7df9
---
 gnu/packages/golang-xyz.scm | 45 +++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm
index e69a65c3da..862e611e75 100644
--- a/gnu/packages/golang-xyz.scm
+++ b/gnu/packages/golang-xyz.scm
@@ -3006,6 +3006,51 @@ (define-public go-github-com-pion-logging
 Pion}.")
     (license license:expat)))
 
+(define-public go-github-com-pion-turn-v3
+  (package
+    (name "go-github-com-pion-turn")
+    (version "3.0.3")
+    (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 "0l78m9ym0sv1zfalbv95lwblmr789fc53d957ph5mdznhjx89lyx"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:go go-1.21
+      #:tests? #f ;Tests require network access.
+      #:unpack-path "github.com/pion/turn/v3"
+      #:import-path "github.com/pion/turn/v3"))
+    (native-inputs (list go-github-com-stretchr-testify-next))
+    (propagated-inputs (list go-github-com-pion-logging
+                             go-github-com-pion-randutil
+                             go-github-com-pion-stun-v2
+                             go-github-com-pion-transport-v3))
+    (home-page "https://github.com/pion/turn/")
+    (synopsis "Pion TURN, an API for building TURN clients and servers")
+    (description
+     "@url{https://github.com/pion, Pion} TURN is a Go toolkit for building
+@url{https://datatracker.ietf.org/doc/html/rfc8656, TURN} servers and clients.
+
+@code{pion/turn} is an API for building STUN/TURN clients and servers, not a binary
+you deploy then configure.  It may require copying the examples and making minor
+modifications to fit your need, no knowledge of Go is required however.  You may be
+able to download the pre-made binaries of our examples if you wish to get started
+quickly.
+
+The advantage of this is that you don't need to deal with complicated configuration
+files, or custom APIs to modify the state of Pion TURN.  After you instantiate an
+instance of a Pion TURN server or client you interact with it like any library.  The
+quickest way to get started is to look at the
+@url{https://github.com/pion/turn/blob/master/examples, examples} or
+@url{https://godoc.org/github.com/pion/turn, GoDoc}.")
+    (license license:expat)))
+
 (define-public go-github-com-prometheus-client-model
   (package
     (name "go-github-com-prometheus-client-model")
-- 
2.41.0