# Copyright 2020-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 inherit go-module systemd tmpfiles # This is obtained using ./version/version.sh in the upstream repo and # substituting ${PV} appropriately. VERSION_SHORT="${PV}" VERSION_LONG="${PV}-te1571ed7e" VERSION_GIT_HASH="e1571ed7e0e84aed16f267be24fe408150109af6" DESCRIPTION="Tailscale vpn client" HOMEPAGE="https://tailscale.com" EGO_SUM=( "github.com/BurntSushi/toml v0.3.1" "github.com/BurntSushi/toml v0.3.1/go.mod" "github.com/Masterminds/semver/v3 v3.0.3" "github.com/Masterminds/semver/v3 v3.0.3/go.mod" "github.com/alecthomas/kingpin v2.2.6+incompatible/go.mod" "github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod" "github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod" "github.com/alexbrainman/sspi v0.0.0-20180613141037-e580b900e9f5" "github.com/alexbrainman/sspi v0.0.0-20180613141037-e580b900e9f5/go.mod" "github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239" "github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod" "github.com/blakesmith/ar v0.0.0-20190502131153-809d4375e1fb" "github.com/blakesmith/ar v0.0.0-20190502131153-809d4375e1fb/go.mod" "github.com/cavaliercoder/go-cpio v0.0.0-20180626203310-925f9528c45e" "github.com/cavaliercoder/go-cpio v0.0.0-20180626203310-925f9528c45e/go.mod" "github.com/coreos/go-iptables v0.4.5" "github.com/coreos/go-iptables v0.4.5/go.mod" "github.com/creack/pty v1.1.7" "github.com/creack/pty v1.1.7/go.mod" "github.com/cyolosecurity/certstore v0.0.0-20200922073901-ece7f1d353c2" "github.com/cyolosecurity/certstore v0.0.0-20200922073901-ece7f1d353c2/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/dvyukov/go-fuzz v0.0.0-20201127111758-49e582c6c23d/go.mod" "github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568" "github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod" "github.com/frankban/quicktest v1.12.1" "github.com/frankban/quicktest v1.12.1/go.mod" "github.com/github/fakeca v0.1.0" "github.com/github/fakeca v0.1.0/go.mod" "github.com/gliderlabs/ssh v0.2.2" "github.com/gliderlabs/ssh v0.2.2/go.mod" "github.com/go-multierror/multierror v1.0.2" "github.com/go-multierror/multierror v1.0.2/go.mod" "github.com/go-ole/go-ole v1.2.4" "github.com/go-ole/go-ole v1.2.4/go.mod" "github.com/godbus/dbus/v5 v5.0.3" "github.com/godbus/dbus/v5 v5.0.3/go.mod" "github.com/google/btree v1.0.1" "github.com/google/btree v1.0.1/go.mod" "github.com/google/go-cmp v0.2.0/go.mod" "github.com/google/go-cmp v0.3.1/go.mod" "github.com/google/go-cmp v0.4.0/go.mod" "github.com/google/go-cmp v0.5.0/go.mod" "github.com/google/go-cmp v0.5.2/go.mod" "github.com/google/go-cmp v0.5.4" "github.com/google/go-cmp v0.5.4/go.mod" "github.com/google/go-cmp v0.5.5" "github.com/google/go-cmp v0.5.5/go.mod" "github.com/google/renameio v0.1.0/go.mod" "github.com/google/rpmpack v0.0.0-20191226140753-aa36bfddb3a0" "github.com/google/rpmpack v0.0.0-20191226140753-aa36bfddb3a0/go.mod" "github.com/goreleaser/nfpm v1.1.10" "github.com/goreleaser/nfpm v1.1.10/go.mod" "github.com/imdario/mergo v0.3.8" "github.com/imdario/mergo v0.3.8/go.mod" "github.com/josharian/native v0.0.0-20200817173448-b6b71def0850" "github.com/josharian/native v0.0.0-20200817173448-b6b71def0850/go.mod" "github.com/jsimonetti/rtnetlink v0.0.0-20190606172950-9527aa82566a/go.mod" "github.com/jsimonetti/rtnetlink v0.0.0-20200117123717-f846d4f6c1f4/go.mod" "github.com/jsimonetti/rtnetlink v0.0.0-20201009170750-9c6f07d100c1/go.mod" "github.com/jsimonetti/rtnetlink v0.0.0-20201216134343-bde56ed16391/go.mod" "github.com/jsimonetti/rtnetlink v0.0.0-20201220180245-69540ac93943/go.mod" "github.com/jsimonetti/rtnetlink v0.0.0-20210122163228-8d122574c736/go.mod" "github.com/jsimonetti/rtnetlink v0.0.0-20210212075122-66c871082f2b" "github.com/jsimonetti/rtnetlink v0.0.0-20210212075122-66c871082f2b/go.mod" "github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51" "github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod" "github.com/kisielk/gotool v1.0.0/go.mod" "github.com/klauspost/compress v1.10.10" "github.com/klauspost/compress v1.10.10/go.mod" "github.com/kr/pretty v0.1.0" "github.com/kr/pretty v0.1.0/go.mod" "github.com/kr/pretty v0.2.1" "github.com/kr/pretty v0.2.1/go.mod" "github.com/kr/pty v1.1.1/go.mod" "github.com/kr/pty v1.1.8" "github.com/kr/pty v1.1.8/go.mod" "github.com/kr/text v0.1.0" "github.com/kr/text v0.1.0/go.mod" "github.com/lxn/walk v0.0.0-20201110160827-18ea5e372cdb/go.mod" "github.com/lxn/win v0.0.0-20201111105847-2a20daff6a55/go.mod" "github.com/mattn/go-zglob v0.0.1" "github.com/mattn/go-zglob v0.0.1/go.mod" "github.com/mdlayher/ethtool v0.0.0-20210210192532-2b88debcdd43" "github.com/mdlayher/ethtool v0.0.0-20210210192532-2b88debcdd43/go.mod" "github.com/mdlayher/genetlink v1.0.0" "github.com/mdlayher/genetlink v1.0.0/go.mod" "github.com/mdlayher/netlink v0.0.0-20190409211403-11939a169225/go.mod" "github.com/mdlayher/netlink v1.0.0/go.mod" "github.com/mdlayher/netlink v1.1.0/go.mod" "github.com/mdlayher/netlink v1.1.1/go.mod" "github.com/mdlayher/netlink v1.2.0/go.mod" "github.com/mdlayher/netlink v1.2.1/go.mod" "github.com/mdlayher/netlink v1.2.2-0.20210123213345-5cc92139ae3e/go.mod" "github.com/mdlayher/netlink v1.3.0/go.mod" "github.com/mdlayher/netlink v1.3.2" "github.com/mdlayher/netlink v1.3.2/go.mod" "github.com/mdlayher/sdnotify v0.0.0-20200625151349-e4a4f32afc4a" "github.com/mdlayher/sdnotify v0.0.0-20200625151349-e4a4f32afc4a/go.mod" "github.com/miekg/dns v1.1.30" "github.com/miekg/dns v1.1.30/go.mod" "github.com/op/go-logging v0.0.0-20160315200505-970db520ece7" "github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod" "github.com/pborman/getopt v0.0.0-20190409184431-ee0cd42419d3" "github.com/pborman/getopt v0.0.0-20190409184431-ee0cd42419d3/go.mod" "github.com/pelletier/go-toml v1.6.0/go.mod" "github.com/peterbourgon/ff/v2 v2.0.0" "github.com/peterbourgon/ff/v2 v2.0.0/go.mod" "github.com/pkg/diff v0.0.0-20200914180035-5b29258ca4f7" "github.com/pkg/diff v0.0.0-20200914180035-5b29258ca4f7/go.mod" "github.com/pkg/errors v0.8.1/go.mod" "github.com/pkg/errors v0.9.1" "github.com/pkg/errors v0.9.1/go.mod" "github.com/pmezard/go-difflib v1.0.0" "github.com/pmezard/go-difflib v1.0.0/go.mod" "github.com/rogpeppe/go-internal v1.3.0/go.mod" "github.com/sassoftware/go-rpmutils v0.0.0-20190420191620-a8f1baeba37b" "github.com/sassoftware/go-rpmutils v0.0.0-20190420191620-a8f1baeba37b/go.mod" "github.com/sergi/go-diff v1.0.0" "github.com/sergi/go-diff v1.0.0/go.mod" "github.com/stretchr/objx v0.1.0/go.mod" "github.com/stretchr/testify v1.4.0" "github.com/stretchr/testify v1.4.0/go.mod" "github.com/tailscale/depaware v0.0.0-20201214215404-77d1e9757027" "github.com/tailscale/depaware v0.0.0-20201214215404-77d1e9757027/go.mod" "github.com/tailscale/wireguard-go v0.0.0-20210429195722-6cd106ab1339" "github.com/tailscale/wireguard-go v0.0.0-20210429195722-6cd106ab1339/go.mod" "github.com/tailscale/wireguard-go v0.0.0-20210510175647-030c638da3df" "github.com/tailscale/wireguard-go v0.0.0-20210510175647-030c638da3df/go.mod" "github.com/tcnksm/go-httpstat v0.2.0" "github.com/tcnksm/go-httpstat v0.2.0/go.mod" "github.com/toqueteos/webbrowser v1.2.0" "github.com/toqueteos/webbrowser v1.2.0/go.mod" "github.com/ulikunitz/xz v0.5.6" "github.com/ulikunitz/xz v0.5.6/go.mod" "github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8" "github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod" "github.com/yuin/goldmark v1.1.27/go.mod" "github.com/yuin/goldmark v1.2.1/go.mod" "go4.org/intern v0.0.0-20210108033219-3eb7198706b2" "go4.org/intern v0.0.0-20210108033219-3eb7198706b2/go.mod" "go4.org/mem v0.0.0-20201119185036-c04c5a6ff174" "go4.org/mem v0.0.0-20201119185036-c04c5a6ff174/go.mod" "go4.org/unsafe/assume-no-moving-gc v0.0.0-20201222175341-b30ae309168e/go.mod" "go4.org/unsafe/assume-no-moving-gc v0.0.0-20201222180813-1025295fd063" "go4.org/unsafe/assume-no-moving-gc v0.0.0-20201222180813-1025295fd063/go.mod" "golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod" "golang.org/x/crypto v0.0.0-20191002192127-34f69633bfdc/go.mod" "golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod" "golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod" "golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod" "golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/go.mod" "golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod" "golang.org/x/crypto v0.0.0-20210317152858-513c2a44f670" "golang.org/x/crypto v0.0.0-20210317152858-513c2a44f670/go.mod" "golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod" "golang.org/x/mod v0.2.0/go.mod" "golang.org/x/mod v0.3.0/go.mod" "golang.org/x/mod v0.4.0" "golang.org/x/mod v0.4.0/go.mod" "golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod" "golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod" "golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod" "golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod" "golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod" "golang.org/x/net v0.0.0-20191007182048-72f939374954/go.mod" "golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod" "golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod" "golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod" "golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod" "golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod" "golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod" "golang.org/x/net v0.0.0-20201216054612-986b41b23924/go.mod" "golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod" "golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod" "golang.org/x/net v0.0.0-20210226172049-e18ecbb05110" "golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod" "golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod" "golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod" "golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod" "golang.org/x/sync v0.0.0-20210220032951-036812b2e83c" "golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod" "golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod" "golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod" "golang.org/x/sys v0.0.0-20190411185658-b44545bcd369/go.mod" "golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod" "golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod" "golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod" "golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod" "golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod" "golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod" "golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod" "golang.org/x/sys v0.0.0-20201009025420-dfb3f7c4e634/go.mod" "golang.org/x/sys v0.0.0-20201018230417-eeed37f84f13/go.mod" "golang.org/x/sys v0.0.0-20201107080550-4d91cf3a1aaf/go.mod" "golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod" "golang.org/x/sys v0.0.0-20201118182958-a01c418693c7/go.mod" "golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod" "golang.org/x/sys v0.0.0-20201218084310-7d0127a74742/go.mod" "golang.org/x/sys v0.0.0-20210110051926-789bb1bd4061/go.mod" "golang.org/x/sys v0.0.0-20210123111255-9b0068b26619/go.mod" "golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod" "golang.org/x/sys v0.0.0-20210216163648-f7da38b97c65/go.mod" "golang.org/x/sys v0.0.0-20210301091718-77cc2087c03b/go.mod" "golang.org/x/sys v0.0.0-20210316164454-77fc1eacc6aa/go.mod" "golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57" "golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod" "golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod" "golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod" "golang.org/x/term v0.0.0-20210317153231-de623e64d2a6" "golang.org/x/term v0.0.0-20210317153231-de623e64d2a6/go.mod" "golang.org/x/text v0.3.0/go.mod" "golang.org/x/text v0.3.3/go.mod" "golang.org/x/text v0.3.4" "golang.org/x/text v0.3.4/go.mod" "golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba" "golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod" "golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod" "golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod" "golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod" "golang.org/x/tools v0.0.0-20200609164405-eb789aa7ce50/go.mod" "golang.org/x/tools v0.0.0-20201211185031-d93e913c1a58" "golang.org/x/tools v0.0.0-20201211185031-d93e913c1a58/go.mod" "golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod" "golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod" "golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod" "golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1" "golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod" "golang.zx2c4.com/wireguard v0.0.20200321-0.20201111175144-60b3766b89b9" "golang.zx2c4.com/wireguard v0.0.20200321-0.20201111175144-60b3766b89b9/go.mod" "golang.zx2c4.com/wireguard/windows v0.1.2-0.20201113162609-9b85be97fdf8" "golang.zx2c4.com/wireguard/windows v0.1.2-0.20201113162609-9b85be97fdf8/go.mod" "gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod" "gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod" "gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15" "gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod" "gopkg.in/errgo.v2 v2.1.0/go.mod" "gopkg.in/yaml.v2 v2.2.2/go.mod" "gopkg.in/yaml.v2 v2.2.4/go.mod" "gopkg.in/yaml.v2 v2.2.7/go.mod" "gopkg.in/yaml.v2 v2.2.8" "gopkg.in/yaml.v2 v2.2.8/go.mod" "honnef.co/go/tools v0.1.0" "honnef.co/go/tools v0.1.0/go.mod" "inet.af/netaddr v0.0.0-20210222205655-a1ec2b7b8c44" "inet.af/netaddr v0.0.0-20210222205655-a1ec2b7b8c44/go.mod" "inet.af/netstack v0.0.0-20210317161235-a1bf4e56ef22" "inet.af/netstack v0.0.0-20210317161235-a1bf4e56ef22/go.mod" "inet.af/peercred v0.0.0-20210302202138-56e694897155" "inet.af/peercred v0.0.0-20210302202138-56e694897155/go.mod" "rsc.io/goversion v1.2.0" "rsc.io/goversion v1.2.0/go.mod" ) go-module_set_globals SRC_URI="https://github.com/tailscale/tailscale/archive/v${PV}.tar.gz -> ${P}.tar.gz ${EGO_SUM_SRC_URI}" LICENSE="MIT" SLOT="0" KEYWORDS="~amd64 ~arm ~arm64 ~x86" RDEPEND="net-firewall/iptables" # This translates the build command from upstream's build_dist.sh to an # ebuild equivalent. build_dist() { go build -tags xversion -ldflags " -X tailscale.com/version.Long=${VERSION_LONG} -X tailscale.com/version.Short=${VERSION_SHORT} -X tailscale.com/version.GitCommit=${VERSION_GIT_HASH}" "$@" } src_compile() { build_dist ./cmd/tailscale || die build_dist ./cmd/tailscaled || die } src_install() { dosbin tailscaled dobin tailscale systemd_dounit cmd/tailscaled/tailscaled.service insinto /etc/default newins cmd/tailscaled/tailscaled.defaults tailscaled keepdir /var/lib/${PN} fperms 0750 /var/lib/${PN} newtmpfiles "${FILESDIR}/${PN}.tmpfiles" ${PN}.conf newinitd "${FILESDIR}/${PN}d.initd" ${PN} newconfd "${FILESDIR}/${PN}d.confd" ${PN} }