@@ -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")