commit: 2eacdb091f9a5d84db6413d83e9a1a9a35f88dbf
Author: Jason A. Donenfeld <zx2c4 <AT> gentoo <DOT> org>
AuthorDate: Wed Nov 2 11:31:36 2016 +0000
Commit: Jason Donenfeld <zx2c4 <AT> gentoo <DOT> org>
CommitDate: Wed Nov 2 11:32:19 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2eacdb09
net-misc/wireguard: add kmod-src option
Package-Manager: portage-2.3.2
net-misc/wireguard/metadata.xml | 4 ++++
net-misc/wireguard/wireguard-0.0.20161102.ebuild | 24 ++++++++++++++++++++----
net-misc/wireguard/wireguard-9999.ebuild | 24 ++++++++++++++++++++----
3 files changed, 44 insertions(+), 8 deletions(-)
diff --git a/net-misc/wireguard/metadata.xml b/net-misc/wireguard/metadata.xml
index 915f002..aa8747f 100644
--- a/net-misc/wireguard/metadata.xml
+++ b/net-misc/wireguard/metadata.xml
@@ -5,4 +5,8 @@
<email>[email protected]</email>
<name>Jason A. Donenfeld</name>
</maintainer>
+ <use>
+ <flag name="kmod-src">Do not compile the kernel module. Instead
install the kernel module source code to /usr/src/wireguard.</flag>
+ <flag name="debug">Enable verbose debug reporting in dmesg of
various WireGuard peer and device information.</flag>
+ </use>
</pkgmetadata>
diff --git a/net-misc/wireguard/wireguard-0.0.20161102.ebuild
b/net-misc/wireguard/wireguard-0.0.20161102.ebuild
index 642325b..b6e88c4 100644
--- a/net-misc/wireguard/wireguard-0.0.20161102.ebuild
+++ b/net-misc/wireguard/wireguard-0.0.20161102.ebuild
@@ -21,7 +21,7 @@ fi
LICENSE="GPL-2"
SLOT="0"
-IUSE="debug"
+IUSE="debug kmod-src"
DEPEND="net-libs/libmnl"
RDEPEND="${DEPEND}"
@@ -33,27 +33,43 @@ WARNING_PADATA="If you're running a multicore system you
likely should enable CO
WARNING_IP6_NF_IPTABLES="If your kernel has CONFIG_IPV6, you need
CONFIG_IP6_NF_IPTABLES; otherwise WireGuard will not insert."
pkg_setup() {
+ use kmod-src && return
linux-mod_pkg_setup
kernel_is -lt 4 1 0 && die "This version of ${PN} requires Linux >= 4.1"
}
src_compile() {
use debug && BUILD_PARAMS="CONFIG_WIREGUARD_DEBUG=y ${BUILD_PARAMS}"
- linux-mod_src_compile
+ use kmod-src || linux-mod_src_compile
emake RUNSTATEDIR="${EPREFIX}/run" -C src/tools
}
src_install() {
dodoc README.md
dodoc -r contrib/examples
- linux-mod_src_install
emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" -C src/tools install
+ if use kmod-src; then
+ dodir /usr/src
+ rm -r "${WORKDIR}"/*/src/tools || die
+ mv "${WORKDIR}"/*/src "${ED}"usr/src/wireguard || die
+ else
+ linux-mod_src_install
+ fi
insinto /$(get_libdir)/netifrc/net
newins "${FILESDIR}"/wireguard-openrc.sh wireguard.sh
}
pkg_postinst() {
- linux-mod_pkg_postinst
+ if use kmod-src; then
+ einfo
+ einfo "You have enabled the kmod-src USE flag. This means that
sources"
+ einfo "are installed to ${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."
+ einfo
+ else
+ linux-mod_pkg_postinst
+ fi
ewarn
ewarn "This software is experimental and has not yet been released."
ewarn "As such, it may contain significant issues. Please do not file"
diff --git a/net-misc/wireguard/wireguard-9999.ebuild
b/net-misc/wireguard/wireguard-9999.ebuild
index 642325b..b6e88c4 100644
--- a/net-misc/wireguard/wireguard-9999.ebuild
+++ b/net-misc/wireguard/wireguard-9999.ebuild
@@ -21,7 +21,7 @@ fi
LICENSE="GPL-2"
SLOT="0"
-IUSE="debug"
+IUSE="debug kmod-src"
DEPEND="net-libs/libmnl"
RDEPEND="${DEPEND}"
@@ -33,27 +33,43 @@ WARNING_PADATA="If you're running a multicore system you
likely should enable CO
WARNING_IP6_NF_IPTABLES="If your kernel has CONFIG_IPV6, you need
CONFIG_IP6_NF_IPTABLES; otherwise WireGuard will not insert."
pkg_setup() {
+ use kmod-src && return
linux-mod_pkg_setup
kernel_is -lt 4 1 0 && die "This version of ${PN} requires Linux >= 4.1"
}
src_compile() {
use debug && BUILD_PARAMS="CONFIG_WIREGUARD_DEBUG=y ${BUILD_PARAMS}"
- linux-mod_src_compile
+ use kmod-src || linux-mod_src_compile
emake RUNSTATEDIR="${EPREFIX}/run" -C src/tools
}
src_install() {
dodoc README.md
dodoc -r contrib/examples
- linux-mod_src_install
emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" -C src/tools install
+ if use kmod-src; then
+ dodir /usr/src
+ rm -r "${WORKDIR}"/*/src/tools || die
+ mv "${WORKDIR}"/*/src "${ED}"usr/src/wireguard || die
+ else
+ linux-mod_src_install
+ fi
insinto /$(get_libdir)/netifrc/net
newins "${FILESDIR}"/wireguard-openrc.sh wireguard.sh
}
pkg_postinst() {
- linux-mod_pkg_postinst
+ if use kmod-src; then
+ einfo
+ einfo "You have enabled the kmod-src USE flag. This means that
sources"
+ einfo "are installed to ${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."
+ einfo
+ else
+ linux-mod_pkg_postinst
+ fi
ewarn
ewarn "This software is experimental and has not yet been released."
ewarn "As such, it may contain significant issues. Please do not file"