Compare commits

...

3 Commits

6 changed files with 126 additions and 9 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
}

View File

@@ -1,2 +1,2 @@
DIST amneziawg-tools-1.0.20241018.tar.gz 156259 BLAKE2B 11fd47be0e23ef3b13da324cd76caee3d1dd66d71449d32e5a59f94dd34e9c401255c182e7337fbe17843509936861a11fb8871f4e0256f298659a0acce6fccd SHA512 cc6ba3ea8cc4e8ec75c690926e3bc37e942e3019ba4a560efecab70103a1c91be48db6066ef250ad1cbf6bb6cff50dac1d2980147ec1eed860872133068b0595
DIST amneziawg-tools-1.0.20250903.tar.gz 160214 BLAKE2B ec32969cf32b0c75179a3c53702997963c176e61958d4cc166706d8439ae736e191be488e7dc93e3c2f9d8657e67deee674359b15e19ca473ddfc19f5fe3767d SHA512 a69f3911b18cd5abb73ba1f695802c87205ed6be10be035a5d06ca266c5de3c0b88c0aeac7670bc302112288f1b58937608e7b2835a22d2b4fc45a8f63b218ad
DIST amneziawg-tools-1.0.20260223.tar.gz 160261 BLAKE2B 33277e23dfd7b498e845329a853495ecfe4ca00faf1f9d5aa2288e302d0d03363df418082f32c727ce83b67ece8dccd91c252964e67c42a6646d7cea1d489227 SHA512 591afaef659e26be16c8d883da8d8ff026f855f60c9887440b566ef18b9948ca57754673d833f27e77d8c05f7e354f37b49adc9f5467334eeb7eda7165960c54

View File

@@ -13,7 +13,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/amnezia-vpn/amneziawg-tools.git"
else
SRC_URI="https://github.com/amnezia-vpn/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
KEYWORDS="amd64 arm arm64 ppc64 x86"
fi
LICENSE="GPL-2"
@@ -21,7 +21,6 @@ SLOT="0"
IUSE="+wg-quick selinux"
BDEPEND="virtual/pkgconfig"
DEPEND=""
RDEPEND="${DEPEND}
wg-quick? (
|| ( net-firewall/nftables net-firewall/iptables )
@@ -59,6 +58,7 @@ pkg_setup() {
wg_quick_optional_config_nob IP_NF_RAW
wg_quick_optional_config_nob IP6_NF_FILTER
wg_quick_optional_config_nob IP_NF_FILTER
wg_quick_optional_config_nob IP_NF_MANGLE
fi
fi
get_version
@@ -99,19 +99,19 @@ src_install() {
pkg_postinst() {
einfo
einfo "After installing WireGuard, if you'd like to try sending some packets through"
einfo "WireGuard, you may use, for testing purposes only, the insecure client.sh"
einfo "After installing AmneziaWG, if you'd like to try sending some packets through"
einfo "AmneziaWG, you may use, for testing purposes only, the insecure client.sh"
einfo "test example script:"
einfo
einfo " \$ bzcat ${ROOT}/usr/share/doc/${PF}/contrib/ncat-client-server/client.sh.bz2 | sudo bash -"
einfo
einfo "This will automatically setup interface wg0, through a very insecure transport"
einfo "This will automatically setup interface awg0, through a very insecure transport"
einfo "that is only suitable for demonstration purposes. You can then try loading the"
einfo "hidden website or sending pings:"
einfo
einfo " \$ chromium http://192.168.4.1"
einfo " \$ ping 192.168.4.1"
einfo
einfo "More info on getting started can be found at: https://www.wireguard.com/quickstart/"
einfo "More info on getting started can be found at: https://amnezia-vpn.org/ru/documentation/amnezia-wg/"
einfo
}

View File

@@ -1,2 +1,2 @@
DIST bcachefs-tools-1.37.4.tar.sign 833 BLAKE2B 0cec7399acf3f7efb44c746d032c557f40817dd8b09f4de01b541ac70a6c98375c6310f18b9223a0b7b9c18f45dedb2c57769d1285225969179be99631e5500f SHA512 e371ff6860db44f2490817cf498fa590402cc2cae3f7ee383e1dd556aed3443463f815b699880c38eb46c0bef04a9a5a13c0ecb9ec96f133a50a32a71eff1bfa
DIST bcachefs-tools-1.37.4.tar.zst 1663281 BLAKE2B 6d1eabae9528d209979e10b742653e1e1a019141a6c0f0bbc5bb2b97c1faa9d4c8ca59b701617f6410926799f0b58ac5bd7f26ce3f9077e34adc4c8e07e32bb9 SHA512 48e030d31c9135399072b8ae408abdb9af43cf02b100a5f6019ee00d70db3ba02d94d0e3880d2394f79f72a5b2b57122ae58bb564218d1a7453783d1cd166eca
DIST bcachefs-tools-1.37.2.tar.sign 833 BLAKE2B f0456f9633cec3dc9079b58d19c3c5a2e83fb22055aa6afc37153538045643f0fd8e4338b2e578c444f397fc7b7b312464f6407a6a9088cd7b4df824d74206b8 SHA512 2603bcceed5582f42bc9746b867d124c834af57e4732275ff6e0cdcc9db6e18f833ebac7f765d489020dc5e9e3cde4370033989f1403052d61fddf8e9bf95cdd
DIST bcachefs-tools-1.37.2.tar.zst 1655563 BLAKE2B 89c13e5af3560427abc8131995012454faf1953e0dfd5dd3ba49df4d90831c6b1237b2694c611288ce4357b7e73faa31ceca46b67e8dec240b6c9a317c992e74 SHA512 e7897a7ac45c2c6b5bc9d87ce13e1d6394617fc5514eaba21fb0d696ed44c5be3055a80a31c940a9b77130614b599b54f4b0fd6185f0862ab12b2f99f375eeb1