amneziawg-linux-kernel-module: bump v1.0.20260329

This commit is contained in:
2026-03-31 16:27:15 +03:00
parent 8d4be9760e
commit d074268cb8
2 changed files with 117 additions and 0 deletions

View File

@@ -1 +1,2 @@
DIST amneziawg-linux-kernel-module-1.0.20251104.tar.gz 407287 BLAKE2B 551a729900a0b8e6df8cc206f35ebfce5d7c98eb2ab64e2758119aca63e403de0016c04caf054e182bd794037711cd6f51798ef055aac7b6abb88d3833309bc0 SHA512 5a6962d6cf49b97facd0ffa724a7a15b8736f7774086e0cc260ceac86d728ad8d72b42f8e6df4912bdd64ec17bbc732ba0540592996bda10221dfa87b1414bc9
DIST amneziawg-linux-kernel-module-1.0.20260329.tar.gz 407483 BLAKE2B fdb5d53eee29d19530fe36835f8780bd5505acb92c4c947300424d1fc8f763d11a723c0adbfb7bfa7703058de02426b49ed581f2f0e495108105291ead074be1 SHA512 7ceda29b2280ee101fdda5428e5136f823032cb6e663f23816d43ded7c0199cfcc3c3a301cadb5817a6d94650a49e13fd9e0dcb74b3ba8e5fbb2df13fc87a233

View File

@@ -0,0 +1,116 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit linux-mod-r1
DESCRIPTION="AmneziaWG kernel module"
HOMEPAGE="https://github.com/amnezia-vpn/amneziawg-linux-kernel-module"
if [[ ${PV} == 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/amnezia-vpn/amneziawg-linux-kernel-module.git"
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="~amd64 ~arm ~arm64 ~ppc64 ~x86"
fi
LICENSE="GPL-2"
SLOT="0"
IUSE="debug"
CONFIG_CHECK="NET INET NET_UDP_TUNNEL CRYPTO_ALGAPI"
# On modern kernels AmneziaWG needs Wireguard sources from kernel to generate
# own sources from. On a typical Gentoo installation 'sys-kernel/*-sources'
# package contains needed kernel sources. But installations based on
# distribution kernel (sys-kernel/*-kernel) have no kernel sources installed.
# That is why this ebuild has a build dependency on gentoo-sources or vanilla-sources.
BDEPEND="|| ( sys-kernel/gentoo-sources sys-kernel/vanilla-sources )"
pkg_setup() {
linux-mod-r1_pkg_setup
if kernel_is -lt 3 10 0; then
die "This version of ${PN} requires Linux >= 3.10"
fi
}
src_prepare() {
default
sed -i "/^WIREGUARD_VERSION =/Id" "${S}/src/Makefile" || die
if kernel_is -ge 5 6 0; then
# We need to select a directory with kernel sources.
# Usually, /usr/src/linux is the right choise, so we check it first.
# 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="/usr/src/linux ${dirs}"
for kernel_dir in ${dirs}; do
[ -d "$kernel_dir" ] || continue
if [[ -f ${kernel_dir}/drivers/net/wireguard/main.c ]]; then
echo "- ${kernel_dir} -> found"
KERNEL_SOURCES_DIR=${KERNEL_SOURCES_DIR:-${kernel_dir}}
else
echo "- ${kernel_dir} -> not found"
fi
done
if [[ -d ${KERNEL_SOURCES_DIR} ]]; then
einfo "Using kernel sources in ${KERNEL_SOURCES_DIR}"
else
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"
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"
fi
}
src_compile() {
local modlist=( amneziawg=net:src::module )
local modargs=(
KERNELDIR=${KV_OUT_DIR}
)
use debug && modargs+=( CONFIG_WIREGUARD_DEBUG=y )
linux-mod-r1_src_compile
}
src_install() {
linux-mod-r1_src_install
}
pkg_postinst() {
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
}