Last active 1 week ago

amneziawg-dkms from AUR with patch for 6.19.x kernels

Revision 5c39845d9245e2dd3456dba2b5c17ca56762c146

PKGBUILD Raw
1# Maintainer: Vladislav Minakov <v@minakov.pro>
2
3pkgname=amneziawg-dkms
4pkgdesc="AmneziaWG is a contemporary version of the popular VPN protocol, WireGuard."
5url="https://github.com/amnezia-vpn/amneziawg-linux-kernel-module"
6arch=('x86_64')
7pkgver=1.0.20260210
8pkgrel=1
9license=('GPLv2')
10
11depends=('dkms' 'wget')
12
13provides=("amneziawg=${pkgver}")
14
15source=(
16 "$pkgname-$pkgver.tar.gz::https://github.com/amnezia-vpn/amneziawg-linux-kernel-module/archive/refs/tags/v${pkgver}.tar.gz"
17 "blake2s.patch::https://raw.githubusercontent.com/babiulep/my-kernel-patches/cbf887bb702841e309fd99d6d0b7aea6ef17c51e/AMNEZIAWG/blake2s.patch"
18)
19
20sha512sums=('705fbbb13e5d2f456fb321942ecd404420c5e54c75fbd28b7fd34583c9d6b0ca3b63e3eb18ddbb49f34354ffa0c042745fe2a0c97946a4dab65b52ebc864d5b5'
21 '9880a8643738d6aadd21672aa2aa1965028ec839d1edb30bcf417988776d5547789d0f7417e77732966c4f245b7803e7278fd6b8366e0c224dcb13741f63cd85')
22
23prepare() {
24 local _moddir="${srcdir}/amneziawg-linux-kernel-module-${pkgver}"
25
26 cat > "${_moddir}/kernel-tree-scripts/prepare-sources.sh" <<'EOF'
27#!/bin/bash -eux
28kernel="${1%%[^0-9.]*}"
29if [[ "$kernel" =~ .0$ ]]; then kernel="${kernel%.0}"; fi
30kernel_major="${1%%[^0-9]*}"
31wget "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/
32ln -sf linux-${kernel} kernel;
33EOF
34
35 cat > "${_moddir}/kernel-tree-scripts/cleanup-sources.sh" <<'EOF'
36#!/bin/bash
37AWG_TEMP_DIR="$(cat /var/lib/amnezia/amneziawg/.tempdir 2>/dev/null)"
38PREFIX=${AWG_TEMP_DIR:-/tmp}
39WORKDIR="${PREFIX}/amneziawg"
40[ -e kernel ] && rm -rf kernel
41if [[ -d "${WORKDIR}" ]]; then
42rm -rf "${WORKDIR}";
43fi
44EOF
45
46 chmod +x "${_moddir}/kernel-tree-scripts/prepare-sources.sh" \
47 "${_moddir}/kernel-tree-scripts/cleanup-sources.sh"
48
49 mkdir -p "${_moddir}/src/patches"
50 cp -f "${srcdir}/blake2s.patch" "${_moddir}/src/patches/blake2s.patch"
51
52 sed -i 's|DKMS_SOURCES :=|DKMS_SOURCES := patches/blake2s.patch |' \
53 "${_moddir}/src/Makefile"
54 sed -i "s|^WIREGUARD_VERSION = .*|WIREGUARD_VERSION = ${pkgver}|" \
55 "${_moddir}/src/Makefile"
56 sed -i "s|^PACKAGE_VERSION=.*|PACKAGE_VERSION=\"${pkgver}\"|" \
57 "${_moddir}/src/dkms.conf"
58
59 if ! grep -q '^PATCH\[0\]=' "${_moddir}/src/dkms.conf"; then
60 printf '\nPATCH[0]="blake2s.patch"\n' >> "${_moddir}/src/dkms.conf"
61 fi
62}
63
64package() {
65 local _moddir="${srcdir}/amneziawg-linux-kernel-module-${pkgver}"
66 cd "${_moddir}/src"
67 sed -i 's/MODERN_KERNEL_SOURCES_NOT_FOUND_ERROR/KERNEL_SRC_ABSENT_ERR/g' Makefile
68 make DESTDIR="${pkgdir}" dkms-install
69}
70