From ec558b03ee8085ec9ff0c8391afa43dbb2b463f2 Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 16 Oct 2022 21:43:35 +0000 Subject: [PATCH] 6.0.1-xanmod1 --- kernel-xanmod.spec | 79 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 70 insertions(+), 9 deletions(-) diff --git a/kernel-xanmod.spec b/kernel-xanmod.spec index fddd61d..8d4dada 100644 --- a/kernel-xanmod.spec +++ b/kernel-xanmod.spec @@ -35,7 +35,7 @@ %define patch_rel 1 # Release number. Increase this before a rebuild. -%define rpmrel 1.klp +%define rpmrel 3.klp %define fullrpmrel %{rpmrel} @@ -144,12 +144,27 @@ cat %{_builddir}/debugfiles.list >> %{debuginfo_files} %if %{with binary_extra_modules} %if %{with nvidia_module} -%define nvidia_515_j %(if rpm -q kernel-source-nvidia515 >/dev/null 2>&1; then rpm -q --qf '%%{version}' kernel-source-nvidia515 | awk -F '.' '{print $1}'; else echo 0; fi) -%define nvidia_515_n %(if rpm -q kernel-source-nvidia515 >/dev/null 2>&1; then rpm -q --qf '%%{version}' kernel-source-nvidia515 | awk -F '.' '{print $2}'; else echo 0; fi) +# global instead of define to speed up things +#%%global nvidia_340_j %%{kroko_j -p kernel-source-nvidia340 -r 340} +#%%global nvidia_340_n %%{kroko_n -p kernel-source-nvidia340 -r 340} +#%%global nvidia_390_j %%{kroko_j -p kernel-source-nvidia390 -r 390} +#%%global nvidia_390_n %%{kroko_n -p kernel-source-nvidia390 -r 390} +#%%global nvidia_470_j %%{kroko_j -p kernel-source-nvidia470 -r 470} +#%%global nvidia_470_n %%{kroko_n -p kernel-source-nvidia470 -r 470} +#%%global nvidia_510_j %%{kroko_j -p kernel-source-nvidia510 -r 510} +#%%global nvidia_510_n %%{kroko_n -p kernel-source-nvidia510 -r 510} +%global nvidia_515_j %{kroko_j -p kernel-source-nvidia515 -r 515} +%global nvidia_515_n %{kroko_n -p kernel-source-nvidia515 -r 515} +%global nvidia_520_j %{kroko_j -p kernel-source-nvidia520 -r 520} +%global nvidia_520_n %{kroko_n -p kernel-source-nvidia520 -r 520} %endif # 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}} +%{?!kroko_mk_release:%global kroko_mk_release(n:) %{nil}} +%{?!kroko_req_modules_in_kernel:%global kroko_req_modules_in_kernel(j:n:p:) %{nil}} + +# global, not define, must be expanded only once +%global kroko_release %kroko_mk_release -n kernel-%{kernelversion}.%{patchlevel}-%{flavour} %endif ############################################################################ @@ -354,7 +369,12 @@ BuildRequires: findutils util-linux BuildRequires: auto-krokodil-rpm-macros %ifarch %{x86_64} %if %{with nvidia_module} -BuildRequires: kernel-source-nvidia515 +#BuildRequires: kernel-source-nvidia340 +#BuildRequires: kernel-source-nvidia390 +#BuildRequires: kernel-source-nvidia470 +#BuildRequires: kernel-source-nvidia510 +BuildRequires: kernel-source-nvidia515 +BuildRequires: kernel-source-nvidia520 %endif %endif BuildRequires: kernel-source-tripso @@ -411,7 +431,12 @@ Recommends: kernel-headers = %{EVRD} %if %{with binary_extra_modules} %ifarch %{x86_64} %if %{with nvidia_module} +#%%kroko_req_modules_in_kernel -j %%{nvidia_340_j} -n %%{nvidia_340_n} -p %%{kver_full} +#%%kroko_req_modules_in_kernel -j %%{nvidia_390_j} -n %%{nvidia_390_n} -p %%{kver_full} +#%%kroko_req_modules_in_kernel -j %%{nvidia_470_j} -n %%{nvidia_470_n} -p %%{kver_full} +#%%kroko_req_modules_in_kernel -j %%{nvidia_510_j} -n %%{nvidia_510_n} -p %%{kver_full} %kroko_req_modules_in_kernel -j %{nvidia_515_j} -n %{nvidia_515_n} -p %{kver_full} +%kroko_req_modules_in_kernel -j %{nvidia_520_j} -n %{nvidia_520_n} -p %{kver_full} %endif %endif %endif @@ -463,7 +488,7 @@ depmod -a %{kver_full} %if %{with binary_extra_modules} %ifarch %{x86_64} %if %{with nvidia_module} -%exclude %{_modulesdir}/%{kver_full}/kernel/drivers/video/nvidia515 +#%%exclude %%{_modulesdir}/%%{kver_full}/kernel/drivers/video/nvidia515 %endif %endif %if %{with binary_shredder} @@ -795,7 +820,12 @@ User Mode Linux (UML) kernel modules %ifarch %{x86_64} %if %{with nvidia_module} -%kroko_kmod_pkg -j %{nvidia_515_j} -n %{nvidia_515_n} -f %{flavour} -k %{kernelversion}.%{patchlevel} -m %{sublevel} -p %{kver_full} -s %{NAME} -r %{kroko_mk_release} +#%%kroko_kmod_pkg -r %%{kroko_release} -j %%{nvidia_340_j} -n %%{nvidia_340_n} -f %%{flavour} -k %%{kernelversion}.%%{patchlevel} -m %%{sublevel} -p %%{kver_full} -s %%{NAME} -c %%{kmod_suffix} +#%%kroko_kmod_pkg -r %%{kroko_release} -j %%{nvidia_390_j} -n %%{nvidia_390_n} -f %%{flavour} -k %%{kernelversion}.%%{patchlevel} -m %%{sublevel} -p %%{kver_full} -s %%{NAME} -c %%{kmod_suffix} +#%%kroko_kmod_pkg -r %%{kroko_release} -j %%{nvidia_470_j} -n %%{nvidia_470_n} -f %%{flavour} -k %%{kernelversion}.%%{patchlevel} -m %%{sublevel} -p %%{kver_full} -s %%{NAME} -c %%{kmod_suffix} +#%%kroko_kmod_pkg -r %%{kroko_release} -j %%{nvidia_510_j} -n %%{nvidia_510_n} -f %%{flavour} -k %%{kernelversion}.%%{patchlevel} -m %%{sublevel} -p %%{kver_full} -s %%{NAME} -c %%{kmod_suffix} +%kroko_kmod_pkg -r %{kroko_release} -j %{nvidia_515_j} -n %{nvidia_515_n} -f %{flavour} -k %{kernelversion}.%{patchlevel} -m %{sublevel} -p %{kver_full} -s %{NAME} -c %{kmod_suffix} +%kroko_kmod_pkg -r %{kroko_release} -j %{nvidia_520_j} -n %{nvidia_520_n} -f %{flavour} -k %{kernelversion}.%{patchlevel} -m %{sublevel} -p %{kver_full} -s %{NAME} -c %{kmod_suffix} %endif %endif @@ -993,15 +1023,27 @@ _build_nvidia(){ cp -r "$(rpm -q --qf "/usr/src/nvidia${1}-%%{VERSION}-%%{RELEASE}" kernel-source-nvidia${1})" kernel-source-nvidia${1} pushd kernel-source-nvidia${1} %make SYSSRC=%{src_dir} - mkdir -p %{temp_modules}/%{kver_full}/kernel/drivers/video/nvidia${1} - cp *.ko %{temp_modules}/%{kver_full}/kernel/drivers/video/nvidia${1} + mkdir -p %{temp_modules}/%{kver_full}/kernel/drivers/video/nvidia${1}.%{kroko_release} + for i in *.ko + do + # put them here to extract debug and compress, will be moved later + install -m0644 "$i" %{temp_modules}/%{kver_full}/kernel/drivers/video/nvidia${1}.%{kroko_release}/"$i" + done popd rm -fr kernel-source-nvidia${1} + # for rosa-kernel-tools + mkdir -p %{temp_root}/var/spool/initramfs-regen + touch %{temp_root}/var/spool/initramfs-regen/nvidia${1}.%{kroko_release} } %ifarch %{x86_64} +#_build_nvidia 340 +#_build_nvidia 390 +#_build_nvidia 470 +#_build_nvidia 510 _build_nvidia 515 +_build_nvidia 520 %endif %endif @@ -1218,6 +1260,25 @@ find %{target_modules} -name "*.ko" | %kxargs %{zstd_cmd} --rm -T1 #-D dictionar #rm -f dictionary %endif +%if %{with binary_extra_modules} +%if %{with nvidia_module} +# Move nvidia modules to manage them via alternatives(8), leave *.debug +# TODO: better handle debug here and in the package in general +find %{target_modules}/%{kver_full}/kernel/drivers/video -name 'nvidia???.*' -type d -maxdepth 1 | +while read -r line +do + nv="$(basename "$line")" + mkdir -p %{buildroot}%{kroko_kmods_dir}/"$nv"-%{kver_full} + mv -v "$line"/*.ko%{kmod_suffix} %{buildroot}%{kroko_kmods_dir}/"$nv"-%{kver_full} + dir_no_buildroot="$(echo "$line" | sed -e 's,^%{buildroot},,')" + echo "%exclude $dir_no_buildroot" >> %{kernel_files} + %if %{build_debug} + echo "%dir $dir_no_buildroot" >> %{debuginfo_files} + %endif +done +%endif +%endif + find %{buildroot}%{_modulesdir}/%{kver_full} -type f -name '*.ko%{kmod_suffix}' | sed -e 's,^%{buildroot},,' | sort -u >> %{kernel_files} find %{buildroot}%{_modulesdir}/%{kver_full} -type d | sed -e 's,^%{buildroot},%dir ,' | sort -u >> %{kernel_files}