PKGBUILD
· 2.6 KiB · Bash
Raw
# Maintainer: Vladislav Minakov <v@minakov.pro>
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/cbf887bb702841e309fd99d6d0b7aea6ef17c51e/AMNEZIAWG/blake2s.patch"
)
sha512sums=('705fbbb13e5d2f456fb321942ecd404420c5e54c75fbd28b7fd34583c9d6b0ca3b63e3eb18ddbb49f34354ffa0c042745fe2a0c97946a4dab65b52ebc864d5b5'
'9880a8643738d6aadd21672aa2aa1965028ec839d1edb30bcf417988776d5547789d0f7417e77732966c4f245b7803e7278fd6b8366e0c224dcb13741f63cd85')
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
}
| 1 | # Maintainer: Vladislav Minakov <v@minakov.pro> |
| 2 | |
| 3 | pkgname=amneziawg-dkms |
| 4 | pkgdesc="AmneziaWG is a contemporary version of the popular VPN protocol, WireGuard." |
| 5 | url="https://github.com/amnezia-vpn/amneziawg-linux-kernel-module" |
| 6 | arch=('x86_64') |
| 7 | pkgver=1.0.20260210 |
| 8 | pkgrel=1 |
| 9 | license=('GPLv2') |
| 10 | |
| 11 | depends=('dkms' 'wget') |
| 12 | |
| 13 | provides=("amneziawg=${pkgver}") |
| 14 | |
| 15 | source=( |
| 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 | |
| 20 | sha512sums=('705fbbb13e5d2f456fb321942ecd404420c5e54c75fbd28b7fd34583c9d6b0ca3b63e3eb18ddbb49f34354ffa0c042745fe2a0c97946a4dab65b52ebc864d5b5' |
| 21 | '9880a8643738d6aadd21672aa2aa1965028ec839d1edb30bcf417988776d5547789d0f7417e77732966c4f245b7803e7278fd6b8366e0c224dcb13741f63cd85') |
| 22 | |
| 23 | prepare() { |
| 24 | local _moddir="${srcdir}/amneziawg-linux-kernel-module-${pkgver}" |
| 25 | |
| 26 | cat > "${_moddir}/kernel-tree-scripts/prepare-sources.sh" <<'EOF' |
| 27 | #!/bin/bash -eux |
| 28 | kernel="${1%%[^0-9.]*}" |
| 29 | if [[ "$kernel" =~ .0$ ]]; then kernel="${kernel%.0}"; fi |
| 30 | kernel_major="${1%%[^0-9]*}" |
| 31 | 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/ |
| 32 | ln -sf linux-${kernel} kernel; |
| 33 | EOF |
| 34 | |
| 35 | cat > "${_moddir}/kernel-tree-scripts/cleanup-sources.sh" <<'EOF' |
| 36 | #!/bin/bash |
| 37 | AWG_TEMP_DIR="$(cat /var/lib/amnezia/amneziawg/.tempdir 2>/dev/null)" |
| 38 | PREFIX=${AWG_TEMP_DIR:-/tmp} |
| 39 | WORKDIR="${PREFIX}/amneziawg" |
| 40 | [ -e kernel ] && rm -rf kernel |
| 41 | if [[ -d "${WORKDIR}" ]]; then |
| 42 | rm -rf "${WORKDIR}"; |
| 43 | fi |
| 44 | EOF |
| 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 | |
| 64 | package() { |
| 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 |