summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/containers.scm106
1 files changed, 67 insertions, 39 deletions
diff --git a/gnu/packages/containers.scm b/gnu/packages/containers.scm
index f74ab27f0cd..fe549f09a54 100644
--- a/gnu/packages/containers.scm
+++ b/gnu/packages/containers.scm
@@ -456,49 +456,77 @@ configure network interfaces in Linux containers.")
(package
(name "gvisor-tap-vsock")
(version "0.8.7")
- (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
- "1p9vypphssvqfcm3y2nc7b9v0wcc2smkrqq8k60vskaiza89974k"))))
- (build-system gnu-build-system)
+ (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 "1p9vypphssvqfcm3y2nc7b9v0wcc2smkrqq8k60vskaiza89974k"))
+ (modules '((guix build utils)))
+ (snippet
+ #~(begin
+ (delete-file-recursively "vendor")
+ ;; Submodules with their own go.mod files and packaged separately:
+ ;;
+ ;; - github.com/containers/gvisor-tap-vsock/tools
+ (delete-file-recursively "tools")))))
+ (build-system go-build-system)
(arguments
(list
- #:make-flags `(list ,(string-append "GIT_VERSION=v" version))
- #:test-target "test"
+ #:install-source? #f
+ #:import-path "github.com/containers/gvisor-tap-vsock/cmd/gvproxy"
+ #:unpack-path "github.com/containers/gvisor-tap-vsock"
+ #:build-flags
+ #~(list (string-append "-ldflags="
+ "-X github.com/containers/gvisor-tap-vsock"
+ "/pkg/types.gitVersion=" #$version))
+ #:test-flags
+ ;; serve UDP error: *net.OpError read udp 127.0.0.1:5354: use of closed
+ ;; network connection
+ #~(list "-skip" "TestSuite")
+ #:test-subdirs
+ #~(list "../../...") ;test the whole libary
#:phases
#~(modify-phases %standard-phases
- (delete 'configure)
- ;; Add -trimpath flag to avoid keeping references to go package
- ;; in the store.
- (add-after 'unpack 'patch-go-reference
- (lambda _
- (substitute* "Makefile"
- (("go build") "go build -trimpath"))))
- (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-qemu")
- ;; Requires working DNS.
- (substitute* "pkg/services/dns/dns_test.go"
- (("Should pass DNS requests to default system DNS.*" all)
- (string-append all "\n" "ginkgo.Skip(\"No network.\");"))
- (("\"redhat.com\",")
- "\"localhost\",")
- (("\"52.200.142.250\"")
- "\"127.0.0.1\""))))
- (replace 'install
- (lambda _
- (install-file "bin/gvproxy" (string-append #$output "/bin")))))))
- (native-inputs (list go-1.23))
+ (add-after 'unpack 'prune-tests
+ (lambda* (#:key unpack-path #:allow-other-keys)
+ (with-directory-excursion (string-append "src/" unpack-path)
+ ;; Requires working DNS.
+ (substitute* "pkg/services/dns/dns_test.go"
+ (("Should pass DNS requests to default system DNS.*" all)
+ (string-append all "\n" "ginkgo.Skip(\"No network.\");"))
+ (("\"redhat.com\",")
+ "\"localhost\",")
+ (("\"52.200.142.250\"")
+ "\"127.0.0.1\""))))))))
+ (native-inputs
+ (list go-github-com-apparentlymart-go-cidr
+ go-github-com-containers-winquit
+ go-github-com-coreos-stream-metadata-go
+ go-github-com-dustin-go-humanize
+ go-github-com-google-gopacket
+ go-github-com-insomniacslk-dhcp
+ ;; go-github-com-linuxkit-virtsock ;Windows only
+ go-github-com-mdlayher-vsock
+ ;; go-github-com-microsoft-go-winio ;Windows only
+ go-github-com-miekg-dns
+ go-github-com-onsi-ginkgo
+ go-github-com-onsi-gomega
+ go-github-com-opencontainers-go-digest
+ go-github-com-pkg-errors
+ go-github-com-sirupsen-logrus
+ go-github-com-songgao-packets
+ go-github-com-songgao-water
+ go-github-com-stretchr-testify
+ go-github-com-vishvananda-netlink
+ go-golang-org-x-crypto
+ go-golang-org-x-mod
+ go-golang-org-x-sync
+ go-golang-org-x-sys
+ go-gvisor-dev-gvisor))
(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