diff options
author | Tomas Volf <~@wolfsden.cz> | 2024-03-06 00:48:56 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2024-03-22 11:40:33 +0100 |
commit | 93af6aecd9e32d1592fb4297faebd7739653319d (patch) | |
tree | 8e8816f5026d805e050b508677ff3002d91dd4dc /gnu | |
parent | c4e25bf1fea5cdb10241b921ac64f7b701641e14 (diff) | |
download | guix-93af6aecd9e32d1592fb4297faebd7739653319d.tar.gz guix-93af6aecd9e32d1592fb4297faebd7739653319d.zip |
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>
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/packages/containers.scm | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/gnu/packages/containers.scm b/gnu/packages/containers.scm index 6d4877460d..61c7e74c78 100644 --- a/gnu/packages/containers.scm +++ b/gnu/packages/containers.scm @@ -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` |