diff --git a/kernel.spec b/kernel.spec index 241724b..d731484 100644 --- a/kernel.spec +++ b/kernel.spec @@ -178,12 +178,10 @@ cat %{_builddir}/debugfiles.list >> %{debuginfo_files} # For SRPM stage when auto-krokodil-rpm-macros is not installed %{?!kroko_mk_release:%global kroko_mk_release(n:) %{nil}} -%{?!kroko_mk_mdf:%global kroko_mk_mdf(r:) %{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 %{NAME} -%global kroko_mdf %kroko_mk_mdf -r %{kroko_release} %endif #/binary_extra_modules @@ -645,12 +643,6 @@ depmod -a %{kver_full} %exclude %{_modulesdir}/%{kver_full}/kernel/net/wireless/8821cu.ko%{kmod_suffix} %ifarch %{ix86} %{x86_64} %exclude %{_modulesdir}/%{kver_full}/kernel/net/wireless/wl.ko%{kmod_suffix} -%exclude %{_modulesdir}/%{kver_full}/kernel/drivers/video/nvidia390.%{kroko_mdf} -%endif -%ifarch %{x86_64} -%exclude %{_modulesdir}/%{kver_full}/kernel/drivers/video/nvidia470.%{kroko_mdf} -%exclude %{_modulesdir}/%{kver_full}/kernel/drivers/video/nvidia510.%{kroko_mdf} -%exclude %{_modulesdir}/%{kver_full}/kernel/drivers/video/nvidia515.%{kroko_mdf} %endif %if %{with binary_shredder} %exclude %{_modulesdir}/%{kver_full}/kernel/extra/shredder-kernel.ko%{kmod_suffix} @@ -994,12 +986,12 @@ 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 -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} -d %{kroko_mdf} +%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} %endif %ifarch %{x86_64} -%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} -d %{kroko_mdf} -%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} -d %{kroko_mdf} -%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} -d %{kroko_mdf} +%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} %endif %ksob_mk_module_pkg -n xt_TRIPSO -s net -r tripso %ksob_mk_module_pkg -n xt_so -s net -r ipt-so @@ -1451,10 +1443,17 @@ _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}.%{kroko_mdf} - cp *.ko %{temp_modules}/%{kver_full}/kernel/drivers/video/nvidia${1}.%{kroko_mdf} + 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 %{ix86} %{x86_64} @@ -1721,6 +1720,7 @@ _cleanup %install cd %{src_dir} +# TODO: get rid of temporary directory, install to buildroot directly? # We want to be able to test several times the install part rm -rf %{buildroot} cp -a %{temp_root} %{buildroot} @@ -1797,6 +1797,18 @@ rm -f dictionary %endif %endif +%if %{with binary_extra_modules} +# 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} +done +%endif #/with binary_extra_modules + 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}