%global pkg wireguard %global kernel_version 4.18.0-348.el8 %global _use_internal_dependency_generator 0 %global __find_requires /usr/lib/rpm/redhat/find-requires %global __find_provides /usr/lib/rpm/redhat/find-provides %global debug_package %{nil} %global __spec_install_post \ %{?__debug_package:%{__debug_install_post}} \ %{__arch_install_post} \ %{__os_install_post} \ %{__mod_compress_install_post} %global __mod_compress_install_post find %{buildroot}/lib/modules -type f -name \*.ko -exec xz \{\} \\; Name: kmod-%{pkg} Version: 1.0.20211208 Release: 3%{?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 ppc64le BuildRequires: elfutils-libelf-devel BuildRequires: gcc BuildRequires: kernel-rpm-macros BuildRequires: kmod BuildRequires: make BuildRequires: redhat-rpm-config BuildRequires: xz BuildRequires: kernel-abi-stablelists = %{kernel_version} BuildRequires: kernel-devel = %{kernel_version} BuildRequires: kernel-devel-uname-r = %{kernel_version}.%{_arch} Requires: kernel >= %{kernel_version} Requires: kernel-uname-r >= %{kernel_version}.%{_arch} Requires: kernel-modules >= %{kernel_version} Requires: kernel-modules-uname-r >= %{kernel_version}.%{_arch} Provides: installonlypkg(kernel-module) Provides: kernel-modules >= %{kernel_version}.%{_arch} Requires(post): %{_sbindir}/depmod Requires(postun): %{_sbindir}/depmod Requires(post): %{_sbindir}/weak-modules Requires(postun): %{_sbindir}/weak-modules Supplements: wireguard-tools Recommends: wireguard-tools %if "%{version}" == "1.0.20211208" && "%{release}" == "1%{?dist}" Obsoletes: kmod-%{pkg} = %{?epoch:%{epoch}:}1.0.20210606-7%{?dist} %endif %if "%{version}" == "1.0.20211208" && "%{release}" == "2%{?dist}" Obsoletes: kmod-%{pkg} = %{?epoch:%{epoch}:}1.0.20210606-7%{?dist} Obsoletes: kmod-%{pkg} = %{?epoch:%{epoch}:}%{version}-1%{?dist} %endif %if "%{version}" == "1.0.20211208" && "%{release}" == "3%{?dist}" Obsoletes: kmod-%{pkg} = %{?epoch:%{epoch}:}1.0.20210606-7%{?dist} Obsoletes: kmod-%{pkg} = %{?epoch:%{epoch}:}%{version}-1%{?dist} Obsoletes: kmod-%{pkg} = %{?epoch:%{epoch}:}%{version}-2%{?dist} %endif %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 # Make .ko objects temporarily executable for automatic stripping find %{buildroot}/lib/modules -type f -name \*.ko -exec chmod u+x \{\} \+ %clean %{__rm} -rf %{buildroot} %post mkdir -p %{_localstatedir}/lib/rpm-state/sig-kmods printf '%s\n' "/lib/modules/%{kernel_version}.%{_arch}/extra/drivers/net/%{pkg}/%{pkg}.ko.xz" >> %{_localstatedir}/lib/rpm-state/sig-kmods/weak-modules-add %preun mkdir -p %{_localstatedir}/lib/rpm-state/sig-kmods rpm -ql kmod-%{pkg}-%{?epoch:%{epoch}:}%{version}-%{release}.%{_arch} | grep '/lib/modules/%{kernel_version}.%{_arch}/.*\.ko\.xz$' >> %{_localstatedir}/lib/rpm-state/sig-kmods/weak-modules-remove %postun if [ -f %{_localstatedir}/lib/rpm-state/sig-kmods/weak-modules-remove ] then modules=( $(cat %{_localstatedir}/lib/rpm-state/sig-kmods/weak-modules-remove) ) rm -f %{_localstatedir}/lib/rpm-state/sig-kmods/weak-modules-remove rmdir --ignore-fail-on-non-empty %{_localstatedir}/lib/rpm-state/sig-kmods printf '%s\n' "${modules[@]}" | %{_sbindir}/weak-modules --remove-modules fi %pretrans -p posix.unlink("%{_localstatedir}/lib/rpm-state/sig-kmods/weak-modules-add") posix.unlink("%{_localstatedir}/lib/rpm-state/sig-kmods/weak-modules-remove") %posttrans if [ -f %{_localstatedir}/lib/rpm-state/sig-kmods/weak-modules-add ] then modules=( $(cat %{_localstatedir}/lib/rpm-state/sig-kmods/weak-modules-add) ) rm -f %{_localstatedir}/lib/rpm-state/sig-kmods/weak-modules-add rmdir --ignore-fail-on-non-empty %{_localstatedir}/lib/rpm-state/sig-kmods printf '%s\n' "${modules[@]}" | %{_sbindir}/weak-modules --add-modules fi %files %defattr(644,root,root,755) /lib/modules/%{kernel_version}.%{_arch} %license COPYING %doc README.md %changelog * Thu Jan 27 2022 Peter Georg - 1.0.20211208-3 - Add obsoletes for update path * Sun Jan 23 2022 Peter Georg - 1.0.20211208-2 - Enable ppc64le * Wed Dec 08 2021 Peter Georg - 1.0.20211208-1 - Update to v1.0.20211208 * Wed Oct 27 2021 Peter Georg - 1.0.20210606-7 - Rebuild for 4.18.0-348.el8 * Wed Sep 29 2021 Peter Georg - 1.0.20210606-6 - Rebuild for 4.18.0-331.el8 * Thu Jan 27 2022 Peter Georg - 1.0.20210606-5.1 - Rebuild for 4.18.0-326.el8 * Wed Sep 29 2021 Peter Georg - 1.0.20210606-5 - Convert to kABI tracking kmod package (kernel >= 4.18.0-315.el8)