Temporary replace (by macros.nvidia) and disable some use of kroko nvidia macro (by #); add nvidia510 modules; req devel when dkms use; use headers 5.15.

This commit is contained in:
survolog (Andrey Grigorev) 2022-05-04 10:07:56 +03:00
parent a0a11e1676
commit ba73f15b85
2 changed files with 68 additions and 14 deletions

View file

@ -32,7 +32,7 @@
%define sublevel 32
# Release number. Increase this before a rebuild.
%define rpmrel 6
%define rpmrel 7
%define fullrpmrel %{rpmrel}
%define rpmtag %{disttag}
@ -168,16 +168,16 @@ cat %{_builddir}/debugfiles.list >> %{debuginfo_files}
############################################################################
%if %{with binary_extra_modules}
#if %%{with binary_extra_modules}
# https://github.com/rpm-software-management/rpm/pull/1794
%define nvidia_390_j %(if rpm -q kernel-source-nvidia390 >/dev/null 2>&1; then rpm -q --qf '%%{version}' kernel-source-nvidia390 | awk -F '.' '{print $1}'; else echo 0; fi)
%define nvidia_390_n %(if rpm -q kernel-source-nvidia390 >/dev/null 2>&1; then rpm -q --qf '%%{version}' kernel-source-nvidia390 | awk -F '.' '{print $2}'; else echo 0; fi)
%define nvidia_470_j %(if rpm -q kernel-source-nvidia470 >/dev/null 2>&1; then rpm -q --qf '%%{version}' kernel-source-nvidia470 | awk -F '.' '{print $1}'; else echo 0; fi)
%define nvidia_470_n %(if rpm -q kernel-source-nvidia470 >/dev/null 2>&1; then rpm -q --qf '%%{version}' kernel-source-nvidia470 | awk -F '.' '{print $2}'; else echo 0; fi)
#define nvidia_390_j %%(if rpm -q kernel-source-nvidia390 >/dev/null 2>&1; then rpm -q --qf '%%{version}' kernel-source-nvidia390 | awk -F '.' '{print $1}'; else echo 0; fi)
#define nvidia_390_n %%(if rpm -q kernel-source-nvidia390 >/dev/null 2>&1; then rpm -q --qf '%%{version}' kernel-source-nvidia390 | awk -F '.' '{print $2}'; else echo 0; fi)
#define nvidia_470_j %%(if rpm -q kernel-source-nvidia470 >/dev/null 2>&1; then rpm -q --qf '%%{version}' kernel-source-nvidia470 | awk -F '.' '{print $1}'; else echo 0; fi)
#define nvidia_470_n %%(if rpm -q kernel-source-nvidia470 >/dev/null 2>&1; then rpm -q --qf '%%{version}' kernel-source-nvidia470 | awk -F '.' '{print $2}'; else echo 0; fi)
# For SRPM stage when auto-krokodil-rpm-macros is not installed
%{?!kroko_req_modules_in_kernel:%define kroko_req_modules_in_kernel(j:n:p:) %{nil}}
%endif
#{?!kroko_req_modules_in_kernel:%%define kroko_req_modules_in_kernel(j:n:p:) %%{nil}}
#endif
############################################################################
@ -201,7 +201,7 @@ cat %{_builddir}/debugfiles.list >> %{debuginfo_files}
%define build_debug 1
# Build kernel-headers package
%define build_headers 0
%define build_headers 1
# Build perf and cpupower tools
%define build_perf 1
@ -271,6 +271,8 @@ Source2: 0001-disable-mrproper-prepare-scripts-configs-in-devel-rp.patch
# after testing these macros properly
Source3: macros.ksobirator
%{load:%{SOURCE3}}
Source4: macros.nvidia
%{load:%{SOURCE4}}
# Kernel configuration files.
Source111: kernel-x86_64.config
@ -318,7 +320,6 @@ Patch102: 0001-audit-make-it-less-verbose.patch
%if %{with aufs}
# AUFS 5 from http://aufs.sourceforge.net/
Patch109: 0001-Apply-AUFS-5.patch
#Patch110: 0001-Apply-AUFS-5_1.patch
%endif
# For kmod() generator of RPM Provides
@ -448,6 +449,7 @@ BuildRequires: kernel-source-nvidia390
# Nvidia470+ are x86_64 only (maybe aarch64 will be also packaged later)
%ifarch %{x86_64}
BuildRequires: kernel-source-nvidia470
BuildRequires: kernel-source-nvidia510
%endif
BuildRequires: kernel-source-tripso
BuildRequires: kernel-source-ipt-so
@ -503,10 +505,13 @@ Recommends: kernel-headers = %{EVRD}
%if %{with binary_extra_modules}
%ifarch %{ix86} %{x86_64}
%kroko_req_modules_in_kernel -j %{nvidia_390_j} -n %{nvidia_390_n} -p %{kver_full}
#kroko_req_modules_in_kernel -j %%{nvidia_390_j} -n %%{nvidia_390_n} -p %%{kver_full}
Requires: ((kernel-modules-nvidia390-%{version}-%{release}-%{flavour} = %{EVRD}) if nvidia390-core)
%endif
%ifarch %{x86_64}
%kroko_req_modules_in_kernel -j %{nvidia_470_j} -n %{nvidia_470_n} -p %{kver_full}
#kroko_req_modules_in_kernel -j %%{nvidia_470_j} -n %%{nvidia_470_n} -p %%{kver_full}
Requires: ((kernel-modules-nvidia470-%{version}-%{release}-%{flavour} = %{EVRD}) if nvidia470-core)
Requires: ((kernel-modules-nvidia510-%{version}-%{release}-%{flavour} = %{EVRD}) if nvidia510-core)
%endif
%endif
@ -564,6 +569,7 @@ depmod -a %{kver_full}
%endif
%ifarch %{x86_64}
%exclude %{_modulesdir}/%{kver_full}/kernel/drivers/video/nvidia470
%exclude %{_modulesdir}/%{kver_full}/kernel/drivers/video/nvidia510
%endif
%if %{with binary_shredder}
%exclude %{_modulesdir}/%{kver_full}/kernel/extra/shredder-kernel.ko%{kmod_suffix}
@ -909,10 +915,14 @@ User Mode Linux (UML) kernel modules:
%ksob_mk_module_pkg -n 8821cu -s net/wireless
%ifarch %{ix86} %{x86_64}
%ksob_mk_module_pkg -n wl -s net/wireless -r broadcom-wl-aliases
%kroko_kmod_pkg -j %{nvidia_390_j} -n %{nvidia_390_n} -f %{flavour} -k %{kernelversion}.%{patchlevel} -m %{sublevel} -p %{kver_full} -s %{NAME} -r %{kroko_mk_release}
#kroko_kmod_pkg -j %%{nvidia_390_j} -n %%{nvidia_390_n} -f %%{flavour} -k %%{kernelversion}.%%{patchlevel} -m %%{sublevel} -p %%{kver_full} -s %%{NAME} -r %%{kroko_mk_release}
%endif
%ifarch %{ix86}
%nvidia_modules_pkg -e %{EVRD} -m 390 -p %{kver_full}
%endif
%ifarch %{x86_64}
%kroko_kmod_pkg -j %{nvidia_470_j} -n %{nvidia_470_n} -f %{flavour} -k %{kernelversion}.%{patchlevel} -m %{sublevel} -p %{kver_full} -s %{NAME} -r %{kroko_mk_release}
#kroko_kmod_pkg -j %%{nvidia_470_j} -n %%{nvidia_470_n} -f %%{flavour} -k %%{kernelversion}.%%{patchlevel} -m %%{sublevel} -p %%{kver_full} -s %%{NAME} -r %%{kroko_mk_release}
%nvidia_modules_pkg -e %{EVRD} -m 390,470,510 -p %{kver_full}
%endif
%ksob_mk_module_pkg -n xt_TRIPSO -s net -r tripso
%ksob_mk_module_pkg -n xt_so -s net -r ipt-so
@ -1388,6 +1398,7 @@ _build_nvidia 390
%ifarch %{x86_64}
_build_nvidia 470
_build_nvidia 510
%endif
cp -r "$(rpm -q --qf '/usr/src/tripso-%%{VERSION}-%%{RELEASE}' kernel-source-tripso)" kernel-source-tripso

43
macros.nvidia Normal file
View file

@ -0,0 +1,43 @@
# 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)