gnu: gvisor-tap-vsock: Unvendor.

* gnu/packages/containers.scm (gvisor-tap-vsock):
[source] <snippet>: Remove "vendor" dirrectory and submodule with it's
own go.mod.
[build-system]: Switch to go-build-system.
[arguments] <phases>: Remove 'patch-go-reference, 'setenv;
{prune-tests}: Do not remove just skip tests requiring networking; use
default 'install.
[native-inputs]: Remove go-1.23; add
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-mdlayher-vsock,
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, and go-gvisor-dev-gvisor.

Change-Id: Ica757e693aa9ffbfaa56e64d28ff1b1669736670
This commit is contained in:
Sharlatan Hellseher 2025-11-09 21:33:49 +00:00
parent d5ed53ceed
commit 6bbedbb187
No known key found for this signature in database
GPG key ID: 76D727BFF62CD2B5

View file

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