kernel-5.15/macros.nvidia

43 lines
1.4 KiB
Text

# Macros for nvidia modules
# e - kernel %%{EVRD}
# m - nvidia majors (390,470,510)
# p - full kernel version (uname -r, 5.10.71-generic-1rosa2021.1-x86_64)
# v - nvidia major
%nvidia_module(e:m:p:v:) \
# kernel version \
%define kver %(echo %{-p*} |cut -d- -f1) \
# kernel major version \
%define kmver %(echo %{kver} |cut -d. -f-2) \
# kernel release \
%define krel %(echo %{-p*} |cut -d- -f3 |sed "s/rosa.*//") \
# kernel flavour \
%define kfla %(echo %{-p*} |cut -d- -f2) \
# kernel name \
%define kname kernel-%{kmver}-%{kfla} \
# pkg name \
%define nname kernel-modules-nvidia%{-v*}-%{kver}-%{krel}-%{kfla} \
\
%{expand: \
%package -n %{nname} \
Summary: Binary modules of Nvidia%{-v*} for kernel %{kver}-%{krel} \
Group: System/Kernel and hardware \
Supplements: ((%{kname} = %{-e*}) and nvidia%{-v*}-core) \
Requires: %{kname} = %{-e*} \
Requires: nvidia%{-v*}-core \
Provides: installonlypkg(kernel) = %{kver}.module \
%(for c in %(echo %{-m*} |tr , " "); do echo %{nname} |sed "s/\\(.*nvidia\\)\\(.*\\)/Conflicts:\\t\\1$c\\2 = %{-e*}/"; done) \
\
%description -n %{nname} \
Binary modules of Nvidia%{-v*} for kernel %{kver}-%{krel} \
\
%files -n %{nname} \
%dir /lib/modules/%{-p*}/kernel/drivers/video/nvidia%{-v*} \
/lib/modules/%{-p*}/kernel/drivers/video/nvidia%{-v*}/*.ko* \
%{nil} \
}
# TODO drop autoconflicts
%nvidia_modules_pkg(e:m:p:) \
%(for i in %(echo %{-m*} |tr , " "); do echo "%nvidia_module -e %{-e*} -m %{-m*} -p %{-p*} -v $i \
"; done)