Subject: [bug#65944] [PATCH 04/33] gnu: Add go-github-com-vishvananda-netns.

From: Edouard Klein <[email-masked]>
Date: Thu, 14 Sep 2023 09:09:11 +0200

* gnu/packages/golang.scm (go-github-com-vishvananda-netns): New variable.
---
 gnu/packages/golang.scm | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 57dee78330..5a00fd0a2b 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -13259,6 +13259,37 @@ (define-public go-src-elv-sh
 Windows.")
     (license license:bsd-2)))
 
+(define-public go-github-com-vishvananda-netns
+  (package
+    (name "go-github-com-vishvananda-netns")
+    (version "0.0.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/vishvananda/netns")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0rci8c211m57nya9il81fz6459pia3dj5i4b16fp34vjrkcxliml"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:tests? #f ;; From what I understand, and I may very well be wrong,
+       ;; the tests require root access. At least they fail with "operation not permitted".
+       #:import-path "github.com/vishvananda/netns"))
+    (propagated-inputs `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
+    (home-page "https://github.com/vishvananda/netns")
+    (synopsis "netns - network namespaces in go")
+    (description
+     "Package netns allows ultra-simple network namespace handling. @code{NsHandles}
+can be retrieved and set.  Note that the current namespace is thread local so
+actions that set and reset namespaces should use @code{LockOSThread} to make
+sure the namespace doesn't change due to a goroutine switch.  It is best to
+close @code{NsHandles} when you are done with them.  This can be accomplished
+via a `defer ns.Close()` on the handle.  Changing namespaces requires elevated
+privileges, so in most cases this code needs to be run as root.")
+    (license license:asl2.0)))
+
 (define-public go-github-com-gorilla-websocket
   (package
     (name "go-github-com-gorilla-websocket")
-- 
2.40.1