net-vpn/wireguard-modules: import split compat modules at 0.0.20191226

Package-Manager: Portage-2.3.83, Repoman-2.3.20
Signed-off-by: Jason A. Donenfeld <zx2c4@gentoo.org>
This commit is contained in:
Jason A. Donenfeld
2019-12-26 17:36:16 +01:00
parent e50c07137e
commit 4fb358cb86
4 changed files with 200 additions and 0 deletions

View File

@@ -0,0 +1 @@
DIST wireguard-linux-compat-0.0.20191226.tar.xz 261488 BLAKE2B ca2e6eda18508287fa1d3deaa07d28ec6a13732895a5fcc580a2405d6d197618f0e3e798a484ee94c3feb1f178aaacd11f3c8e3a59c00e4fc957d0f645cc9f81 SHA512 7eba183128555ca5fd8b171179fe8ec7b9a67c618ad000bc9c5475ff74097e0e2c220a1f1dd82393fbde6dbbba5c1114bfd725e733a5f4acfbb23248538f6afb

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>zx2c4@gentoo.org</email>
<name>Jason A. Donenfeld</name>
</maintainer>
<use>
<flag name="module">Compile the actual WireGuard kernel module. Most certainly you want this enabled, unless you're doing something strange.</flag>
<flag name="module-src">Install the module source code to /usr/src, in case you like building kernel modules yourself.</flag>
<flag name="debug">Enable verbose debug reporting in dmesg of various WireGuard peer and device information.</flag>
</use>
</pkgmetadata>

View File

@@ -0,0 +1,93 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
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"
KEYWORDS=""
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 ~sh ~sparc ~x86"
fi
LICENSE="GPL-2"
SLOT="0"
IUSE="debug +module module-src"
DEPEND=""
RDEPEND="${DEPEND} !<=net-vpn/wireguard-0.0.20191219-r1"
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 kernel_is -lt 3 10 0 || kernel_is -ge 5 6 0; then
die "This version of ${PN} requires 3.10 <= Linux <= 5.5.y"
fi
fi
}
src_compile() {
BUILD_PARAMS="KERNELDIR=${KERNEL_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
}

View File

@@ -0,0 +1,93 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
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"
KEYWORDS=""
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 ~sh ~sparc ~x86"
fi
LICENSE="GPL-2"
SLOT="0"
IUSE="debug +module module-src"
DEPEND=""
RDEPEND="${DEPEND} !<=net-vpn/wireguard-0.0.20191219-r1"
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 kernel_is -lt 3 10 0 || kernel_is -ge 5 6 0; then
die "This version of ${PN} requires 3.10 <= Linux <= 5.5.y"
fi
fi
}
src_compile() {
BUILD_PARAMS="KERNELDIR=${KERNEL_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
}