# Maintainer: Vladislav Minakov pkgname=amneziawg-dkms pkgdesc="AmneziaWG is a contemporary version of the popular VPN protocol, WireGuard." url="https://github.com/amnezia-vpn/amneziawg-linux-kernel-module" arch=('x86_64') pkgver=1.0.20260210 pkgrel=1 license=('GPLv2') depends=('dkms' 'wget') provides=("amneziawg=${pkgver}") source=( "$pkgname-$pkgver.tar.gz::https://github.com/amnezia-vpn/amneziawg-linux-kernel-module/archive/refs/tags/v${pkgver}.tar.gz" "blake2s.patch::https://raw.githubusercontent.com/babiulep/my-kernel-patches/refs/heads/main/AMNEZIAWG/blake2s.patch" ) sha512sums=( '705fbbb13e5d2f456fb321942ecd404420c5e54c75fbd28b7fd34583c9d6b0ca3b63e3eb18ddbb49f34354ffa0c042745fe2a0c97946a4dab65b52ebc864d5b5' 'SKIP' ) prepare() { local _moddir="${srcdir}/amneziawg-linux-kernel-module-${pkgver}" cat > "${_moddir}/kernel-tree-scripts/prepare-sources.sh" <<'EOF' #!/bin/bash -eux kernel="${1%%[^0-9.]*}" if [[ "$kernel" =~ .0$ ]]; then kernel="${kernel%.0}"; fi kernel_major="${1%%[^0-9]*}" wget "https://cdn.kernel.org/pub/linux/kernel/v${kernel_major}.x/linux-${kernel}.tar.xz" -O- | tar -xvJf - --wildcards linux-${kernel}/drivers/net/wireguard "linux-${kernel}/K*" linux-${kernel}/include/uapi/linux/ ln -sf linux-${kernel} kernel; EOF cat > "${_moddir}/kernel-tree-scripts/cleanup-sources.sh" <<'EOF' #!/bin/bash AWG_TEMP_DIR="$(cat /var/lib/amnezia/amneziawg/.tempdir 2>/dev/null)" PREFIX=${AWG_TEMP_DIR:-/tmp} WORKDIR="${PREFIX}/amneziawg" [ -e kernel ] && rm -rf kernel if [[ -d "${WORKDIR}" ]]; then rm -rf "${WORKDIR}"; fi EOF chmod +x "${_moddir}/kernel-tree-scripts/prepare-sources.sh" \ "${_moddir}/kernel-tree-scripts/cleanup-sources.sh" mkdir -p "${_moddir}/src/patches" cp -f "${srcdir}/blake2s.patch" "${_moddir}/src/patches/blake2s.patch" sed -i 's|DKMS_SOURCES :=|DKMS_SOURCES := patches/blake2s.patch |' \ "${_moddir}/src/Makefile" sed -i "s|^WIREGUARD_VERSION = .*|WIREGUARD_VERSION = ${pkgver}|" \ "${_moddir}/src/Makefile" sed -i "s|^PACKAGE_VERSION=.*|PACKAGE_VERSION=\"${pkgver}\"|" \ "${_moddir}/src/dkms.conf" if ! grep -q '^PATCH\[0\]=' "${_moddir}/src/dkms.conf"; then printf '\nPATCH[0]="blake2s.patch"\n' >> "${_moddir}/src/dkms.conf" fi } package() { local _moddir="${srcdir}/amneziawg-linux-kernel-module-${pkgver}" cd "${_moddir}/src" sed -i 's/MODERN_KERNEL_SOURCES_NOT_FOUND_ERROR/KERNEL_SRC_ABSENT_ERR/g' Makefile make DESTDIR="${pkgdir}" dkms-install }