net-vpn/amneziawg-linux-kernel-module: unkeyword 1.0.20251009

Signed-off-by: Alexander Miroshnichenko <alex@millerson.name>
This commit is contained in:
Alexander Miroshnichenko 2025-10-11 22:31:32 +03:00
parent 4f2be050e9
commit 4b50bbbe7e
2 changed files with 47 additions and 52 deletions

View File

@ -2,7 +2,6 @@
EAPI=8
MODULES_OPTIONAL_IUSE="module"
inherit linux-mod-r1
DESCRIPTION="AmneziaWG kernel module"
@ -14,12 +13,12 @@ if [[ ${PV} == 9999 ]]; then
else
SRC_URI="https://github.com/amnezia-vpn/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
# Please don't stabilize this package. Stable users should use gentoo-sources 5.4 or 5.10.
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
fi
LICENSE="GPL-2"
SLOT="0"
IUSE="debug +module module-src"
IUSE="debug"
CONFIG_CHECK="NET INET NET_UDP_TUNNEL CRYPTO_ALGAPI"
@ -31,11 +30,9 @@ CONFIG_CHECK="NET INET NET_UDP_TUNNEL CRYPTO_ALGAPI"
BDEPEND="|| ( sys-kernel/gentoo-sources sys-kernel/vanilla-sources )"
pkg_setup() {
if use module; then
linux-mod-r1_pkg_setup
if kernel_is -lt 3 10 0; then
die "This version of ${PN} requires Linux >= 3.10"
fi
linux-mod-r1_pkg_setup
if kernel_is -lt 3 10 0; then
die "This version of ${PN} requires Linux >= 3.10"
fi
}
@ -48,7 +45,8 @@ src_prepare() {
# If /usr/src/linux contains no sources (distribution kernel), we check
# other subdirectories in /usr/src sorted by version in reverse order.
echo "Searching for kernel sources..."
dirs=$(find /usr/src -maxdepth 1 -name 'linux-*' -type d | sort --reverse --version-sort --field-separator=- --key=2,2)
dirs=$(find /usr/src -maxdepth 1 -name 'linux-*' -type d | \
sort --reverse --version-sort --field-separator=- --key=2,2)
dirs="/usr/src/linux ${dirs}"
for kernel_dir in ${dirs}; do
[ -d "$kernel_dir" ] || continue
@ -66,9 +64,9 @@ src_prepare() {
die "Kernel sources not found, but required for building."
fi
sed -i "s@^KERNELRELEASE ?= .*@KERNELRELEASE ?= ${KV_FULL}@" src/Makefile || die "Fail to set desired kernel verion in the Makefile"
sed -i "s@^KERNELRELEASE ?= .*@KERNELRELEASE ?= ${KV_FULL}@" src/Makefile || die "Fail to set desired kernel verion in the Makefile"
ln -s ${KERNEL_SOURCES_DIR} src/kernel || die "Creation link to kernel sources directory fail"
emake -C ${S}/src apply-patches || die "Fail to apply amnezia patches over wireguard"
emake -C "${S}/src" apply-patches || die "Fail to apply amnezia patches over wireguard"
fi
}
@ -78,52 +76,38 @@ src_compile() {
KERNELDIR=${KV_OUT_DIR}
)
use debug && modargs+=( CONFIG_WIREGUARD_DEBUG=y )
use module && linux-mod-r1_src_compile
linux-mod-r1_src_compile
}
src_install() {
use module && linux-mod-r1_src_install
use module-src && emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" -C src dkms-install
linux-mod-r1_src_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/amneziawg 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-r1_pkg_postinst
local old new
if [[ $(uname -r) != "${KV_FULL}" ]]; then
ewarn
ewarn "You have just built AmneziaWG for kernel ${KV_FULL}, yet the currently running"
ewarn "kernel is $(uname -r). If you intend to use this AmneziaWG 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/amneziawg/version ]] && \
old="$(< /sys/module/amneziawg/version)" && \
new="$(modinfo -F version "${ROOT}/lib/modules/${KV_FULL}/net/amneziawg.ko" 2>/dev/null)" && \
[[ $old != "$new" ]]; then
ewarn
ewarn "You appear to have just upgraded AmneziaWG 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 amneziawg"
ewarn " # modprobe amneziawg"
ewarn
ewarn "Do note that doing this will remove current AmneziaWG interfaces, so you may want"
ewarn "to gracefully remove them yourself prior."
ewarn
fi
linux-mod-r1_pkg_postinst
local old new
if [[ $(uname -r) != "${KV_FULL}" ]]; then
ewarn
ewarn "You have just built AmneziaWG for kernel ${KV_FULL}, yet the currently running"
ewarn "kernel is $(uname -r). If you intend to use this AmneziaWG 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/amneziawg/version ]] && \
old="$(< /sys/module/amneziawg/version)" && \
new="$(modinfo -F version "${ROOT}/lib/modules/${KV_FULL}/net/amneziawg.ko" 2>/dev/null)" && \
[[ $old != "$new" ]]; then
ewarn
ewarn "You appear to have just upgraded AmneziaWG 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 amneziawg"
ewarn " # modprobe amneziawg"
ewarn
ewarn "Do note that doing this will remove current AmneziaWG interfaces, so you may want"
ewarn "to gracefully remove them yourself prior."
ewarn
fi
}

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>alex@millerson.name</email>
<name>Alexander Miroshnichenko</name>
</maintainer>
<upstream>
<remote-id type="github">amnezia-vpn/amneziawg-linux-kernel-module</remote-id>
</upstream>
</pkgmetadata>