From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 3F8BB138334 for ; Thu, 26 Dec 2019 16:47:35 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 4F983E09CD; Thu, 26 Dec 2019 16:47:34 +0000 (UTC) Received: from smtp.gentoo.org (mail.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 24AEDE09CD for ; Thu, 26 Dec 2019 16:47:34 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id BD147335C38 for ; Thu, 26 Dec 2019 16:47:32 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id DABBA34 for ; Thu, 26 Dec 2019 16:47:30 +0000 (UTC) From: "Jason A. Donenfeld" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Jason A. Donenfeld" Message-ID: <1577378835.4fb358cb8610e006e7db367b4f1b2d70c5c3a760.zx2c4@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: net-vpn/wireguard-modules/ X-VCS-Repository: repo/gentoo X-VCS-Files: net-vpn/wireguard-modules/Manifest net-vpn/wireguard-modules/metadata.xml net-vpn/wireguard-modules/wireguard-modules-0.0.20191226.ebuild net-vpn/wireguard-modules/wireguard-modules-9999.ebuild X-VCS-Directories: net-vpn/wireguard-modules/ X-VCS-Committer: zx2c4 X-VCS-Committer-Name: Jason A. Donenfeld X-VCS-Revision: 4fb358cb8610e006e7db367b4f1b2d70c5c3a760 X-VCS-Branch: master Date: Thu, 26 Dec 2019 16:47:30 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 198d922a-b4fe-4904-b098-67ab8ba6560c X-Archives-Hash: 158a20e28822e8175eb1af34b720f304 commit: 4fb358cb8610e006e7db367b4f1b2d70c5c3a760 Author: Jason A. Donenfeld gentoo org> AuthorDate: Thu Dec 26 16:36:16 2019 +0000 Commit: Jason A. Donenfeld gentoo org> CommitDate: Thu Dec 26 16:47:15 2019 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4fb358cb 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 gentoo.org> net-vpn/wireguard-modules/Manifest | 1 + net-vpn/wireguard-modules/metadata.xml | 13 +++ .../wireguard-modules-0.0.20191226.ebuild | 93 ++++++++++++++++++++++ .../wireguard-modules-9999.ebuild | 93 ++++++++++++++++++++++ 4 files changed, 200 insertions(+) diff --git a/net-vpn/wireguard-modules/Manifest b/net-vpn/wireguard-modules/Manifest new file mode 100644 index 00000000000..1eebb610b44 --- /dev/null +++ b/net-vpn/wireguard-modules/Manifest @@ -0,0 +1 @@ +DIST wireguard-linux-compat-0.0.20191226.tar.xz 261488 BLAKE2B ca2e6eda18508287fa1d3deaa07d28ec6a13732895a5fcc580a2405d6d197618f0e3e798a484ee94c3feb1f178aaacd11f3c8e3a59c00e4fc957d0f645cc9f81 SHA512 7eba183128555ca5fd8b171179fe8ec7b9a67c618ad000bc9c5475ff74097e0e2c220a1f1dd82393fbde6dbbba5c1114bfd725e733a5f4acfbb23248538f6afb diff --git a/net-vpn/wireguard-modules/metadata.xml b/net-vpn/wireguard-modules/metadata.xml new file mode 100644 index 00000000000..3b5b3d014e7 --- /dev/null +++ b/net-vpn/wireguard-modules/metadata.xml @@ -0,0 +1,13 @@ + + + + + zx2c4@gentoo.org + Jason A. Donenfeld + + + Compile the actual WireGuard kernel module. Most certainly you want this enabled, unless you're doing something strange. + Install the module source code to /usr/src, in case you like building kernel modules yourself. + Enable verbose debug reporting in dmesg of various WireGuard peer and device information. + + diff --git a/net-vpn/wireguard-modules/wireguard-modules-0.0.20191226.ebuild b/net-vpn/wireguard-modules/wireguard-modules-0.0.20191226.ebuild new file mode 100644 index 00000000000..2fe86edba28 --- /dev/null +++ b/net-vpn/wireguard-modules/wireguard-modules-0.0.20191226.ebuild @@ -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 +} diff --git a/net-vpn/wireguard-modules/wireguard-modules-9999.ebuild b/net-vpn/wireguard-modules/wireguard-modules-9999.ebuild new file mode 100644 index 00000000000..2fe86edba28 --- /dev/null +++ b/net-vpn/wireguard-modules/wireguard-modules-9999.ebuild @@ -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 +}