View Raw Ebuild
# Copyright 2021-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit go-module linux-info systemd fcaps
DESCRIPTION="An experiment in scalable routing as an encrypted IPv6 overlay network"
HOMEPAGE="
https://yggdrasil-network.github.io/
https://github.com/yggdrasil-network/yggdrasil-go
"
SRC_URI="
https://github.com/${PN%%-*}-network/${PN}/archive/v${PV/_rc/rc}.tar.gz -> ${P}.tar.gz
https://github.com/dm9pZCAq/gentoo-go-deps/releases/download/${P}/${P}-deps.tar.xz
"
S="${WORKDIR}/${P/_rc/rc}"
LICENSE="LGPL-3 MIT Apache-2.0 BSD ZLIB"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~s390 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
RDEPEND="
acct-user/${PN%-*}
acct-group/${PN%-*}
"
BDEPEND=">=dev-lang/go-1.21"
FILECAPS=(
cap_net_admin,cap_net_raw+eip "usr/bin/${PN%-*}"
)
pkg_setup() {
linux-info_pkg_setup
if ! linux_config_exists; then
eerror "Unable to check your kernel for TUN support"
else
CONFIG_CHECK="~TUN"
ERROR_TUN="Your kernel lacks TUN support."
fi
}
src_compile() {
local src_version="github.com/yggdrasil-network/yggdrasil-go/src/version"
local cmd=''
for cmd in "${PN%-*}"{,ctl}; do
CGO_ENABLED=0 ego build -ldflags="
-X ${src_version}.buildName=${P}
-X ${src_version}.buildVersion=v${PV}
-extldflags '-static'
" -o "${cmd}" "./cmd/${cmd}"
done
}
src_install() {
dobin yggdrasil{,ctl}
systemd_dounit "contrib/systemd/${PN%-*}.service"
doinitd "contrib/openrc/${PN%-*}"
einstalldocs
}