# Copyright 2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit go-module linux-info DESCRIPTION="Userspace Go implementation of the AmneziaWG VPN protocol" HOMEPAGE="https://github.com/amnezia-vpn/amneziawg-go" SRC_URI="https://github.com/amnezia-vpn/amneziawg-go/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" LICENSE="MIT" SLOT="0" KEYWORDS="~amd64" RDEPEND="net-vpn/amneziawg-tools" CONFIG_CHECK="~TUN" S="${WORKDIR}/${PN}-${PV}" EGO_SUM=( "github.com/chzyer/logex v1.1.10/go.mod" "github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod" "github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod" "github.com/davecgh/go-spew v1.1.0/go.mod" "github.com/davecgh/go-spew v1.1.1" "github.com/davecgh/go-spew v1.1.1/go.mod" "github.com/goccy/go-yaml v1.17.1" "github.com/goccy/go-yaml v1.17.1/go.mod" "github.com/golang/protobuf v1.5.3" "github.com/golang/protobuf v1.5.3/go.mod" "github.com/go-logr/logr v1.2.4" "github.com/go-logr/logr v1.2.4/go.mod" "github.com/google/btree v1.1.3" "github.com/google/btree v1.1.3/go.mod" "github.com/google/go-cmp v0.6.0" "github.com/google/go-cmp v0.6.0/go.mod" "github.com/google/gopacket v1.1.19" "github.com/google/gopacket v1.1.19/go.mod" "github.com/google/pprof v0.0.0-20211214055906-6f57359322fd" "github.com/google/pprof v0.0.0-20211214055906-6f57359322fd/go.mod" "github.com/gorilla/websocket v1.5.3" "github.com/gorilla/websocket v1.5.3/go.mod" "github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572" "github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod" "github.com/ianlancetaylor/demangle v0.0.0-20210905161508-09a460cdf81d/go.mod" "github.com/onsi/ginkgo/v2 v2.12.0" "github.com/onsi/ginkgo/v2 v2.12.0/go.mod" "github.com/onsi/gomega v1.27.10" "github.com/onsi/gomega v1.27.10/go.mod" "github.com/pmezard/go-difflib v1.0.0" "github.com/pmezard/go-difflib v1.0.0/go.mod" "github.com/quic-go/qpack v0.5.1" "github.com/quic-go/qpack v0.5.1/go.mod" "github.com/quic-go/quic-go v0.48.1" "github.com/quic-go/quic-go v0.48.1/go.mod" "github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3" "github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3/go.mod" "github.com/shadowsocks/go-shadowsocks2 v0.1.5" "github.com/shadowsocks/go-shadowsocks2 v0.1.5/go.mod" "github.com/stretchr/objx v0.1.0/go.mod" "github.com/stretchr/testify v1.10.0" "github.com/stretchr/testify v1.10.0/go.mod" "github.com/stretchr/testify v1.6.1/go.mod" "github.com/things-go/go-socks5 v0.0.5" "github.com/things-go/go-socks5 v0.0.5/go.mod" "golang.getoutline.org/sdk v0.0.23" "golang.getoutline.org/sdk v0.0.23/go.mod" "golang.getoutline.org/sdk/x v0.2.0" "golang.getoutline.org/sdk/x v0.2.0/go.mod" "golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod" "golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod" "golang.org/x/crypto v0.42.0" "golang.org/x/crypto v0.42.0/go.mod" "golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842" "golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod" "golang.org/x/mobile v0.0.0-20240520174638-fa72addaaa1b" "golang.org/x/mobile v0.0.0-20240520174638-fa72addaaa1b/go.mod" "golang.org/x/mod v0.28.0" "golang.org/x/mod v0.28.0/go.mod" "golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod" "golang.org/x/net v0.44.0" "golang.org/x/net v0.44.0/go.mod" "golang.org/x/sync v0.17.0" "golang.org/x/sync v0.17.0/go.mod" "golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod" "golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod" "golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod" "golang.org/x/sys v0.36.0" "golang.org/x/sys v0.36.0/go.mod" "golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod" "golang.org/x/text v0.29.0" "golang.org/x/text v0.29.0/go.mod" "golang.org/x/text v0.3.0/go.mod" "golang.org/x/time v0.9.0" "golang.org/x/time v0.9.0/go.mod" "golang.org/x/tools/go/expect v0.1.1-deprecated" "golang.org/x/tools/go/expect v0.1.1-deprecated/go.mod" "golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated" "golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated/go.mod" "golang.org/x/tools v0.37.0" "golang.org/x/tools v0.37.0/go.mod" "golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2" "golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2/go.mod" "google.golang.org/protobuf v1.33.0" "google.golang.org/protobuf v1.33.0/go.mod" "gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod" "gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod" "gopkg.in/yaml.v3 v3.0.1" "gopkg.in/yaml.v3 v3.0.1/go.mod" "go.uber.org/atomic v1.11.0" "go.uber.org/atomic v1.11.0/go.mod" "go.uber.org/mock v0.4.0" "go.uber.org/mock v0.4.0/go.mod" "gvisor.dev/gvisor v0.0.0-20231202080848-1f7806d17489" "gvisor.dev/gvisor v0.0.0-20231202080848-1f7806d17489/go.mod" ) _GOMODULE_GOPROXY_BASEURI="https://proxy.golang.org/" go-module_set_globals SRC_URI+=" ${EGO_SUM_SRC_URI}" src_compile() { emake amneziawg-go } src_install() { dobin amneziawg-go newinitd "${FILESDIR}/amneziawg-go.initd" amneziawg-go newconfd "${FILESDIR}/amneziawg-go.confd" amneziawg-go keepdir /etc/amneziawg dodoc README.md } pkg_postinst() { elog "Run one service instance per tunnel interface:" elog " ln -s /etc/init.d/amneziawg-go /etc/init.d/amneziawg-go.wg0" elog "Place the tunnel config in /etc/amneziawg/wg0.conf (directory is created by this package), then:" elog " rc-update add amneziawg-go.wg0 default" elog " /etc/init.d/amneziawg-go.wg0 start" elog elog "With AWG_QUICK=\"yes\" (default) the service also brings the tunnel" elog "up via awg-quick(8) once the daemon control socket appears." elog "Use a separate awg-quick. service when AWG_QUICK=\"no\"." }