diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..43eae1f --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/wireguard-linux-compat-1.0.20210424.tar.xz diff --git a/.kmod-wireguard.metadata b/.kmod-wireguard.metadata new file mode 100644 index 0000000..966496d --- /dev/null +++ b/.kmod-wireguard.metadata @@ -0,0 +1 @@ +eeee07964efdf70a16273bd3f3b0197d56bd90f6 SOURCES/wireguard-linux-compat-1.0.20210424.tar.xz diff --git a/SPECS/kmod-wireguard.spec b/SPECS/kmod-wireguard.spec new file mode 100644 index 0000000..c9f2caa --- /dev/null +++ b/SPECS/kmod-wireguard.spec @@ -0,0 +1,96 @@ +%global _use_internal_dependency_generator 0 +%global debug_package %{nil} + +%define __spec_install_post \ + %{?__debug_package:%{__debug_install_post}} \ + %{__arch_install_post} \ + %{__os_install_post} \ + %{__mod_compress_install_post} + +%define __mod_compress_install_post find %{buildroot}/lib/modules -type f -name \*.ko -exec xz \{\} \\; + +%define pkg wireguard + +%define kernel_version 4.18.0-305.el8 + +Name: kmod-%{pkg} +Version: 1.0.20210424 +Release: 1%{?dist} +Summary: Fast, modern, secure VPN tunnel + +License: GPLv2 +URL: https://www.wireguard.com/ + +Source0: https://git.zx2c4.com/%{pkg}-linux-compat/snapshot/%{pkg}-linux-compat-%{version}.tar.xz + +ExclusiveArch: x86_64 aarch64 + +BuildRequires: elfutils-libelf-devel +BuildRequires: kernel-devel = %{kernel_version} +BuildRequires: kernel-rpm-macros +BuildRequires: kmod +BuildRequires: redhat-rpm-config +BuildRequires: xz + +Supplements: kernel = %{kernel_version} + +Requires: (kernel = %{kernel_version} if kernel) +Requires(post): /usr/sbin/depmod +Requires(postun): /usr/sbin/depmod + +Provides: kernel-modules = %{kernel_version}.%{_arch} +Provides: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} + + +BuildRequires: gcc +BuildRequires: make + +Supplements: wireguard-tools + + +%description +WireGuard is an extremely simple yet fast and modern VPN that utilizes +state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more +useful than IPsec, while avoiding the massive headache. It intends to be +considerably more performant than OpenVPN. WireGuard is designed as a general +purpose VPN for running on embedded interfaces and super computers alike, fit +for many different circumstances. + + +%prep +%autosetup -p1 -n %{pkg}-linux-compat-%{version} + + +%build +pushd src +%{__make} -C /usr/src/kernels/%{kernel_version}.%{_arch} %{?_smp_mflags} M=$PWD modules +popd + + +%install +%{__install} -D -t %{buildroot}/lib/modules/%{kernel_version}.%{_arch}/extra/drivers/net/%{pkg} src/%{pkg}.ko + +# Temporarily executable for stripping +find %{buildroot}/lib/modules -type f -name \*.ko -exec chmod u+x \{\} \+ + + +%clean +%{__rm} -rf %{buildroot} + + +%post +/usr/sbin/depmod -aeF /lib/modules/%{kernel_version}.%{_arch}/System.map %{kernel_version}.%{_arch} + + +%postun +/usr/sbin/depmod -aeF /lib/modules/%{kernel_version}.%{_arch}/System.map %{kernel_version}.%{_arch} + + +%files +%defattr(644,root,root,755) +/lib/modules/%{kernel_version}.%{_arch} +%license COPYING +%doc README.md + + +%changelog