me
/
guix
Archived
1
0
Fork 0

gnu: Add gvisor-tap-vsock.

* gnu/packages/containers.scm (gvisor-tap-vsock): New variable.

Change-Id: I50c51613509e84998f17b4be593ce80c16002778
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
master
Tomas Volf 2024-03-06 00:48:56 +01:00 committed by Ludovic Courtès
parent c4e25bf1fe
commit 93af6aecd9
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 44 additions and 0 deletions

View File

@ -336,6 +336,50 @@ Layer-4 sockets.")
configure network interfaces in Linux containers.")
(license license:asl2.0)))
(define-public gvisor-tap-vsock
(package
(name "gvisor-tap-vsock")
(version "0.7.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/containers/gvisor-tap-vsock")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1q1zism0c63k2aq6yhkjqc3b2zsm4lwn0bk39p2kl79h798wfyp4"))))
(build-system gnu-build-system)
(arguments
(list
#:make-flags `(list ,(string-append "GIT_VERSION=v" version))
#:test-target "test"
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
(add-before 'build 'setenv
(lambda _
;; For golang toolchain.
(setenv "HOME" "/tmp")))
(add-before 'check 'prune-tests
(lambda _
;; Requires internet connection to fetch QEMU image.
(invoke "rm" "-r" "test")))
(replace 'install
(lambda _
(install-file "bin/gvproxy" (string-append #$output "/bin")))))))
(native-inputs (list go-1.20))
(home-page "https://github.com/containers/gvisor-tap-vsock")
(synopsis "Network stack for virtualization based on gVisor")
(description "This package provides a replacement for @code{libslirp} and
@code{VPNKit}, written in pure Go. It is based on the network stack of gVisor
and brings a configurable DNS server and dynamic port forwarding.
It can be used with QEMU, Hyperkit, Hyper-V and User-Mode Linux.
The binary is called @command{gvproxy}.")
(license license:asl2.0)))
;; For podman to work, the user needs to run
;; `sudo mount -t cgroup2 none /sys/fs/cgroup`