%global forgeurl https://github.com/amnezia-vpn/amneziawg-linux-kernel-module %global version 1.0 %global commit b96e12d00112dbee9d51d18d8438aa991cec0f6a %global date 20251019 %global source_date_epoch_from_changelog 0 %forgemeta %global debug_package %{nil} Name: amneziawg-dkms Version: %{forgeversion} Release: %{autorelease} URL: %{forgeurl} Summary:AmneziaWG VPN kernel module License: GPL-2.0-or-later Group: System Environment/Kernel BuildArch: noarch Source0: %{forgesource} BuildRequires: kernel-devel BuildRequires: sed BuildRequires: make BuildRequires: bc Provides: kmod(amneziawg.ko) = %{version}-%{release} Requires: dkms Requires: kernel-devel Requires: make Requires: bc Requires: yum-utils Requires: rpm-build Requires: python3-devel Requires: git-core %description AmneziaWG is a VPN solution with traffic obfuscation. It is based on WireGuard and relies on UDP. This package provides the DKMS component. %prep %forgesetup # Fix the Makefile for CentOS7 since it ships coreutils from 2013. sed -i 's/install .* -D -t\(.\+\) /mkdir -p \1 \&\& \0/' %{_builddir}/amneziawg-linux-kernel-module-%{commit}/src/Makefile # Set version in dkms.conf and Makefile sed -i "s/^PACKAGE_VERSION=.*/PACKAGE_VERSION=\"%{version}\"/" %{_builddir}/amneziawg-linux-kernel-module-%{commit}/src/dkms.conf sed -i "s/^WIREGUARD_VERSION = .*/WIREGUARD_VERSION = %{version}/" %{_builddir}/amneziawg-linux-kernel-module-%{commit}/src/Makefile %build %install mkdir -p %{buildroot}%{_usrsrc}/amneziawg-%{version}/ make DESTDIR=%{buildroot} DKMSDIR=%{_usrsrc}/amneziawg-%{version}/ \ -C %{_builddir}/amneziawg-linux-kernel-module-%{commit}/src dkms-install %post dkms add -m amneziawg -v %{version} -q --rpm_safe_upgrade || : dkms build -m amneziawg -v %{version} -q || : dkms install -m amneziawg -v %{version} -q --force || : echo "amneziawg-dkms-%{version}-%{release}" > /var/lib/dkms/amneziawg/%{version}/version %preun # Check if we are running an upgrade if [ $1 -ne 0 ]; then WG_VERSION=$(dkms status amneziawg|grep installed|sort -r -V|awk '{print $2}'|cut -f1 -d,) if [ "$WG_VERSION" != "%{version}" ] ; then true else exit 0 fi fi # If we are not running an upgrade then remove everything! WG_VERSION_FILE=$(cat /var/lib/dkms/amneziawg/%{version}/version) WG_RPM_VERSION=amneziawg-dkms-%{version}-%{release} if [ "$WG_RPM_VERSION" = "$WG_VERSION_FILE" ]; then dkms remove -m amneziawg -v %{version} -q --all --rpm_safe_upgrade || : fi exit 0 %files %{_usrsrc}/amneziawg-%{version}