diff --git a/net-vpn/amneziawg-linux-kernel-module/amneziawg-linux-kernel-module-1.0.20251009.ebuild b/net-vpn/amneziawg-linux-kernel-module/amneziawg-linux-kernel-module-1.0.20251009.ebuild index f8b5372..bd2b395 100644 --- a/net-vpn/amneziawg-linux-kernel-module/amneziawg-linux-kernel-module-1.0.20251009.ebuild +++ b/net-vpn/amneziawg-linux-kernel-module/amneziawg-linux-kernel-module-1.0.20251009.ebuild @@ -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 } diff --git a/net-vpn/amneziawg-linux-kernel-module/metadata.xml b/net-vpn/amneziawg-linux-kernel-module/metadata.xml new file mode 100644 index 0000000..fa20240 --- /dev/null +++ b/net-vpn/amneziawg-linux-kernel-module/metadata.xml @@ -0,0 +1,11 @@ + + + + + alex@millerson.name + Alexander Miroshnichenko + + + amnezia-vpn/amneziawg-linux-kernel-module + +