diff options
Diffstat (limited to 'net-vpn/wireguard-modules')
-rw-r--r-- | net-vpn/wireguard-modules/Manifest | 2 | ||||
-rw-r--r-- | net-vpn/wireguard-modules/wireguard-modules-1.0.20201221.ebuild | 99 |
2 files changed, 101 insertions, 0 deletions
diff --git a/net-vpn/wireguard-modules/Manifest b/net-vpn/wireguard-modules/Manifest index 0e47ab11d15e..5a3a6ab50ace 100644 --- a/net-vpn/wireguard-modules/Manifest +++ b/net-vpn/wireguard-modules/Manifest @@ -1,3 +1,5 @@ DIST wireguard-linux-compat-1.0.20201112.tar.xz 262220 BLAKE2B 2bbcce294c7d0578e820b285074bdbff2c96908ccc10294e05aa846a6f0b614930ca71536cb954233480c9e294692df1f4954b8f11db86deecdc93373b6e1d4f SHA512 c3ad6611d1d8abf163e6626ceeb1329b8b4a745159021473fee134858e22f6a5d3418b39f165f2f2f0bde1891d560f773cdb4d1f4fb60d61b35aff01d59aee54 +DIST wireguard-linux-compat-1.0.20201221.tar.xz 262596 BLAKE2B fffd0f3a5501aa5ad0e52f3210edf507b0db63230d59b3204104584cc2b1d739311262a0e0180ce5cd5d6e74c5228d01a631fdbba8be9788bda2d80df8cfcbd0 SHA512 1b06eeda525903661657cae4f462cf2ef464bce292b0a9ae37425d254142ed4137ca7a2296da0f11447f89a4d921c3cb7cee018a4f691131541f0ec32f99c458 EBUILD wireguard-modules-1.0.20201112.ebuild 3471 BLAKE2B 9c49d59f13b7c8a6e4260e8a9696af455bdd26113c016cad92c57d08aba7d4ef7b2e3f626eb1c612ecdb3a2455e07c13b153992380a7f1f874fbb61ba3cfc0bd SHA512 7d0d4e11e30e2ba19f5116d79cdaacb542c42884f1ccefdd2c3516645609452cd066785c22f86e705eb4ea76052fd7d3f8a2426869c8d4f8a65200d781a82f05 +EBUILD wireguard-modules-1.0.20201221.ebuild 3473 BLAKE2B 291eaa04e46ef3428cfb99e05db555e1d1a9aa1734f3da18bfb66e12a1a944bea654b41adcf92f6fc433d147d6f4afa490c5c9f83345d7adeafd71f3b398bcc9 SHA512 0b8280f7e340276d0e7f19c6b73fd2a7742f4ec28ded3aaef897d4aedcc06e686feca82035c0748501a475365d0abd048afbf271a16cf61c9becea8e6b855d77 MISC metadata.xml 661 BLAKE2B bb9a48b3a4f3162f8ccec522734cbc8ffdc7a92868cc7dc32adc1f7ef89f7b2eab1df573bed421d4b76204f9f38ad4fee45f9db4b41c7dc3b86d9d9bb3120a8f SHA512 e9daa3bb8fa72cc60373a3187610231cf396bc5014f33412b65d069ffd02caa659c426819aa76d46a0dd15e8cb579325b46df5296a3b2136d020ec378e5f98a5 diff --git a/net-vpn/wireguard-modules/wireguard-modules-1.0.20201221.ebuild b/net-vpn/wireguard-modules/wireguard-modules-1.0.20201221.ebuild new file mode 100644 index 000000000000..a346e8fae151 --- /dev/null +++ b/net-vpn/wireguard-modules/wireguard-modules-1.0.20201221.ebuild @@ -0,0 +1,99 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +MODULES_OPTIONAL_USE="module" +inherit linux-mod bash-completion-r1 + +DESCRIPTION="Simple yet fast and modern VPN that utilizes state-of-the-art cryptography." +HOMEPAGE="https://www.wireguard.com/" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://git.zx2c4.com/wireguard-linux-compat" +else + SRC_URI="https://git.zx2c4.com/wireguard-linux-compat/snapshot/wireguard-linux-compat-${PV}.tar.xz" + S="${WORKDIR}/wireguard-linux-compat-${PV}" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="debug +module module-src" + +DEPEND="" +RDEPEND="${DEPEND}" + +MODULE_NAMES="wireguard(kernel/drivers/net:src)" +BUILD_TARGETS="module" +CONFIG_CHECK="NET INET NET_UDP_TUNNEL CRYPTO_ALGAPI" + +pkg_setup() { + if use module; then + linux-mod_pkg_setup + if [[ -f $KERNEL_DIR/include/uapi/linux/wireguard.h ]]; then + eerror + eerror "WireGuard has been merged upstream into this kernel. Therefore," + eerror "you no longer need this compatibility ebuild. Instead, simply" + eerror "enable CONFIG_WIREGUARD=y in your kernel configuration." + eerror + die "Use CONFIG_WIREGUARD=y for this kernel, and do not use this package." + elif kernel_is -lt 3 10 0 || kernel_is -ge 5 6 0; then + die "This version of ${PN} requires Linux >= 3.10 and < 5.6." + fi + fi +} + +src_compile() { + BUILD_PARAMS="KERNELDIR=${KV_OUT_DIR}" + use debug && BUILD_PARAMS="CONFIG_WIREGUARD_DEBUG=y ${BUILD_PARAMS}" + use module && linux-mod_src_compile +} + +src_install() { + use module && linux-mod_src_install + use module-src && emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" -C src dkms-install +} + +pkg_postinst() { + if use module-src && ! use module; then + einfo + einfo "You have enabled the module-src USE flag without the module USE" + einfo "flag. This means that sources are installed to" + einfo "${ROOT}/usr/src/wireguard instead of having the" + einfo "kernel module compiled. You will need to compile the module" + einfo "yourself. Most likely, you don't want this USE flag, and should" + einfo "rather use USE=module" + einfo + fi + + if use module; then + linux-mod_pkg_postinst + local old new + if [[ $(uname -r) != "${KV_FULL}" ]]; then + ewarn + ewarn "You have just built WireGuard for kernel ${KV_FULL}, yet the currently running" + ewarn "kernel is $(uname -r). If you intend to use this WireGuard module on the currently" + ewarn "running machine, you will first need to reboot it into the kernel ${KV_FULL}, for" + ewarn "which this module was built." + ewarn + elif [[ -f /sys/module/wireguard/version ]] && \ + old="$(< /sys/module/wireguard/version)" && \ + new="$(modinfo -F version "${ROOT}/lib/modules/${KV_FULL}/net/wireguard.ko" 2>/dev/null)" && \ + [[ $old != "$new" ]]; then + ewarn + ewarn "You appear to have just upgraded WireGuard from version v$old to v$new." + ewarn "However, the old version is still running on your system. In order to use the" + ewarn "new version, you will need to remove the old module and load the new one. As" + ewarn "root, you can accomplish this with the following commands:" + ewarn + ewarn " # rmmod wireguard" + ewarn " # modprobe wireguard" + ewarn + ewarn "Do note that doing this will remove current WireGuard interfaces, so you may want" + ewarn "to gracefully remove them yourself prior." + ewarn + fi + fi +} |