Last active 1 week ago

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

Revision 751be78a2e91d57ba95249d0a2b9b2519db1e502

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/refs/heads/main/AMNEZIAWG/blake2s.patch"
18)
19
20sha512sums=(
21 '705fbbb13e5d2f456fb321942ecd404420c5e54c75fbd28b7fd34583c9d6b0ca3b63e3eb18ddbb49f34354ffa0c042745fe2a0c97946a4dab65b52ebc864d5b5'
22 'SKIP'
23)
24
25prepare() {
26 local _moddir="${srcdir}/amneziawg-linux-kernel-module-${pkgver}"
27
28 cat > "${_moddir}/kernel-tree-scripts/prepare-sources.sh" <<'EOF'
29#!/bin/bash -eux
30kernel="${1%%[^0-9.]*}"
31if [[ "$kernel" =~ .0$ ]]; then kernel="${kernel%.0}"; fi
32kernel_major="${1%%[^0-9]*}"
33wget "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/
34ln -sf linux-${kernel} kernel;
35EOF
36
37 cat > "${_moddir}/kernel-tree-scripts/cleanup-sources.sh" <<'EOF'
38#!/bin/bash
39AWG_TEMP_DIR="$(cat /var/lib/amnezia/amneziawg/.tempdir 2>/dev/null)"
40PREFIX=${AWG_TEMP_DIR:-/tmp}
41WORKDIR="${PREFIX}/amneziawg"
42[ -e kernel ] && rm -rf kernel
43if [[ -d "${WORKDIR}" ]]; then
44rm -rf "${WORKDIR}";
45fi
46EOF
47
48 chmod +x "${_moddir}/kernel-tree-scripts/prepare-sources.sh" \
49 "${_moddir}/kernel-tree-scripts/cleanup-sources.sh"
50
51 mkdir -p "${_moddir}/src/patches"
52 cp -f "${srcdir}/blake2s.patch" "${_moddir}/src/patches/blake2s.patch"
53
54 sed -i 's|DKMS_SOURCES :=|DKMS_SOURCES := patches/blake2s.patch |' \
55 "${_moddir}/src/Makefile"
56 sed -i "s|^WIREGUARD_VERSION = .*|WIREGUARD_VERSION = ${pkgver}|" \
57 "${_moddir}/src/Makefile"
58 sed -i "s|^PACKAGE_VERSION=.*|PACKAGE_VERSION=\"${pkgver}\"|" \
59 "${_moddir}/src/dkms.conf"
60
61 if ! grep -q '^PATCH\[0\]=' "${_moddir}/src/dkms.conf"; then
62 printf '\nPATCH[0]="blake2s.patch"\n' >> "${_moddir}/src/dkms.conf"
63 fi
64}
65
66package() {
67 local _moddir="${srcdir}/amneziawg-linux-kernel-module-${pkgver}"
68 cd "${_moddir}/src"
69 sed -i 's/MODERN_KERNEL_SOURCES_NOT_FOUND_ERROR/KERNEL_SRC_ABSENT_ERR/g' Makefile
70 make DESTDIR="${pkgdir}" dkms-install
71}
72