1 # Copyright 1999-2017 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
6 inherit linux-mod bash-completion-r1
8 DESCRIPTION="Simple yet fast and modern VPN that utilizes state-of-the-art cryptography."
9 HOMEPAGE="https://www.wireguard.io/"
11 if [[ ${PV} == 9999 ]]; then
13 EGIT_REPO_URI="https://git.zx2c4.com/WireGuard"
16 SRC_URI="https://git.zx2c4.com/WireGuard/snapshot/WireGuard-${PV}.tar.xz"
17 S="${WORKDIR}/WireGuard-${PV}"
18 KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
23 IUSE="debug +module +tools module-src"
25 DEPEND="tools? ( net-libs/libmnl )"
28 MODULE_NAMES="wireguard(net:src)"
29 BUILD_PARAMS="KERNELDIR=${KERNEL_DIR} V=1"
30 BUILD_TARGETS="module"
31 CONFIG_CHECK="NET INET NET_UDP_TUNNEL CRYPTO_BLKCIPHER ~PADATA"
32 WARNING_PADATA="If you're running a multicore system you likely should enable CONFIG_PADATA for improved performance and parallel crypto."
37 kernel_is -lt 3 10 0 && die "This version of ${PN} requires Linux >= 3.10"
42 use debug && BUILD_PARAMS="CONFIG_WIREGUARD_DEBUG=y ${BUILD_PARAMS}"
43 use module && linux-mod_src_compile
44 use tools && emake RUNSTATEDIR="${EPREFIX}/run" -C src/tools
48 use module && linux-mod_src_install
51 dodoc -r contrib/examples
53 WITH_BASHCOMPLETION=yes \
54 WITH_SYSTEMDUNITS=yes \
57 BASHCOMPDIR="$(get_bashcompdir)" \
58 PREFIX="${EPREFIX}/usr" \
60 insinto /$(get_libdir)/netifrc/net
61 newins "${FILESDIR}"/wireguard-openrc.sh wireguard.sh
63 use module-src && emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" -C src dkms-install
67 if use module-src && ! use module; then
69 einfo "You have enabled the module-src USE flag without the module USE"
70 einfo "flag. This means that sources are installed to"
71 einfo "${ROOT}usr/src/wireguard instead of having the"
72 einfo "kernel module compiled. You will need to compile the module"
73 einfo "yourself. Most likely, you don't want this USE flag, and should"
74 einfo "rather use USE=module"
77 use module && linux-mod_pkg_postinst
80 ewarn "This software is experimental and has not yet been released."
81 ewarn "As such, it may contain significant issues. Please do not file"
82 ewarn "bug reports with Gentoo, but rather direct them upstream to:"
84 ewarn " team@wireguard.io security@wireguard.io"
89 einfo "After installing WireGuard, if you'd like to try sending some packets through"
90 einfo "WireGuard, you may use, for testing purposes only, the insecure client.sh"
91 einfo "test example script:"
93 einfo " \$ bzcat ${ROOT}usr/share/doc/${PF}/examples/ncat-client-server/client.sh.bz2 | sudo bash -"
95 einfo "This will automatically setup interface wg0, through a very insecure transport"
96 einfo "that is only suitable for demonstration purposes. You can then try loading the"
97 einfo "hidden website or sending pings:"
99 einfo " \$ chromium http://192.168.4.1"
100 einfo " \$ ping 192.168.4.1"
102 einfo "If you'd like to redirect your internet traffic, you can run it with the"
103 einfo "\"default-route\" argument. You may not use this server for any abusive or illegal"
104 einfo "purposes. It is for quick testing only."
106 einfo "More info on getting started can be found at: https://www.wireguard.io/quickstart/"