From: Gerd Hoffmann kraxel@redhat.com
split sub-rpm kernel-modules-core from kernel-core
All kernel modules plus support files (such as the files generated by depmod) are moved to the new kernel-modules-core sub-rpm.
The kernel binary plus support files stay in the kernel-core sub-rpm. This essentially includes the files which are copied over to /boot by the kernel-install utility (vmlinuz, System.map, ...).
With this in place we have a strict separation between sub-rpms carrying a kernel image and sub-rpms carrying kernel modules. This should make it easier to use alternative kernel image packages, for example an unified kernel.
Signed-off-by: Gerd Hoffmann kraxel@redhat.com
diff --git a/redhat/kernel.spec.template b/redhat/kernel.spec.template index blahblah..blahblah 100755 --- a/redhat/kernel.spec.template +++ b/redhat/kernel.spec.template @@ -571,6 +571,7 @@ ExclusiveOS: Linux %ifnarch %{nobuildarches} Requires: kernel-core-uname-r = %{KVERREL} Requires: kernel-modules-uname-r = %{KVERREL} +Requires: kernel-modules-core-uname-r = %{KVERREL} %endif
@@ -885,6 +886,7 @@ Provides: kernel = %{specversion}-%{pkg_release}\ %endif\ Provides: kernel-%{_target_cpu} = %{specversion}-%{pkg_release}%{?1:+%{1}}\ Provides: kernel-uname-r = %{KVERREL}%{?1:+%{1}}\ +Requires: kernel%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{?1:+%{1}}\ Requires(pre): %{kernel_prereq}\ Requires(pre): %{initrd_prereq}\ Requires(pre): ((linux-firmware >= 20150904-56.git6ebf5d57) if linux-firmware)\ @@ -1207,6 +1209,7 @@ Provides: installonlypkg(kernel-module)\ Provides: kernel%{?1:-%{1}}-modules-internal-uname-r = %{KVERREL}%{?1:+%{1}}\ Requires: kernel-uname-r = %{KVERREL}%{?1:+%{1}}\ Requires: kernel%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{?1:+%{1}}\ +Requires: kernel%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{?1:+%{1}}\ AutoReq: no\ AutoProv: yes\ %description %{?1:%{1}-}modules-internal\ @@ -1227,6 +1230,7 @@ Provides: installonlypkg(kernel-module)\ Provides: kernel%{?1:-%{1}}-modules-extra-uname-r = %{KVERREL}%{?1:+%{1}}\ Requires: kernel-uname-r = %{KVERREL}%{?1:+%{1}}\ Requires: kernel%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{?1:+%{1}}\ +Requires: kernel%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{?1:+%{1}}\ %if %{-m:1}%{!-m:0}\ Requires: kernel-modules-extra-uname-r = %{KVERREL}\ %endif\ @@ -1249,6 +1253,7 @@ Provides: kernel-modules = %{version}-%{release}%{?1:+%{1}}\ Provides: installonlypkg(kernel-module)\ Provides: kernel%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{?1:+%{1}}\ Requires: kernel-uname-r = %{KVERREL}%{?1:+%{1}}\ +Requires: kernel%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{?1:+%{1}}\ %if %{-m:1}%{!-m:0}\ Requires: kernel-modules-uname-r = %{KVERREL}\ %endif\ @@ -1258,6 +1263,28 @@ AutoProv: yes\ This package provides commonly used kernel modules for the %{?2:%{2}-}core kernel package.\ %{nil}
+# +# This macro creates a kernel-<subpackage>-modules-core package. +# %%kernel_modules_core_package [-m] <subpackage> <pretty-name> +# +%define kernel_modules_core_package(m) \ +%package %{?1:%{1}-}modules-core\ +Summary: Core kernel modules to match the %{?2:%{2}-}core kernel\ +Provides: kernel%{?1:-%{1}}-modules-core-%{_target_cpu} = %{version}-%{release}\ +Provides: kernel-modules-core-%{_target_cpu} = %{version}-%{release}%{?1:+%{1}}\ +Provides: kernel-modules-core = %{version}-%{release}%{?1:+%{1}}\ +Provides: installonlypkg(kernel-module)\ +Provides: kernel%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{?1:+%{1}}\ +Requires: kernel-uname-r = %{KVERREL}%{?1:+%{1}}\ +%if %{-m:1}%{!-m:0}\ +Requires: kernel-modules-core-uname-r = %{KVERREL}\ +%endif\ +AutoReq: no\ +AutoProv: yes\ +%description %{?1:%{1}-}modules-core\ +This package provides essential kernel modules for the %{?2:%{2}-}core kernel package.\ +%{nil} + # # this macro creates a kernel-<subpackage> meta package. # %%kernel_meta_package <subpackage> @@ -1267,6 +1294,7 @@ This package provides commonly used kernel modules for the %{?2:%{2}-}core kerne summary: kernel meta-package for the %{1} kernel\ Requires: kernel-%{1}-core-uname-r = %{KVERREL}+%{1}\ Requires: kernel-%{1}-modules-uname-r = %{KVERREL}+%{1}\ +Requires: kernel-%{1}-modules-core-uname-r = %{KVERREL}+%{1}\ Provides: installonlypkg(kernel)\ %description %{1}\ The meta-package for the %{1} kernel\ @@ -1284,6 +1312,7 @@ Provides: kernel-%{?1:%{1}-}core-uname-r = %{KVERREL}%{?1:+%{1}}\ Provides: installonlypkg(kernel)\ %if %{-m:1}%{!-m:0}\ Requires: kernel-core-uname-r = %{KVERREL}\ +Requires: kernel-%{?1:%{1}-}-modules-core-uname-r = %{KVERREL}%{?1:+%{1}}\ %endif\ %{expand:%%kernel_reqprovconf %{?1:%{1}} %{-o:%{-o}}}\ %if %{?1:1} %{!?1:0} \ @@ -1292,6 +1321,7 @@ Requires: kernel-core-uname-r = %{KVERREL}\ %{expand:%%kernel_devel_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}} %{-m:%{-m}}}\ %{expand:%%kernel_devel_matched_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}} %{-m:%{-m}}}\ %{expand:%%kernel_modules_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}} %{-m:%{-m}}}\ +%{expand:%%kernel_modules_core_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}} %{-m:%{-m}}}\ %{expand:%%kernel_modules_extra_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}} %{-m:%{-m}}}\ %if %{-m:0}%{!-m:1}\ %{expand:%%kernel_modules_internal_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\ @@ -1317,6 +1347,7 @@ Provides: installonlypkg(kernel-module)\ Provides: kernel%{?1:-%{1}}-modules-partner-uname-r = %{KVERREL}%{?1:+%{1}}\ Requires: kernel-uname-r = %{KVERREL}%{?1:+%{1}}\ Requires: kernel%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{?1:+%{1}}\ +Requires: kernel%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{?1:+%{1}}\ AutoReq: no\ AutoProv: yes\ %description %{?1:%{1}-}modules-partner\ @@ -2170,8 +2201,8 @@ BuildKernel() { # Make sure the files lists start with absolute paths or rpmbuild fails. # Also add in the dir entries sed -e 's/^lib*//lib/' %{?zipsed} $RPM_BUILD_ROOT/k-d.list > ../kernel${Variant:+-${Variant}}-modules.list - sed -e 's/^lib*/%dir /lib/' %{?zipsed} $RPM_BUILD_ROOT/module-dirs.list > ../kernel${Variant:+-${Variant}}-core.list - sed -e 's/^lib*//lib/' %{?zipsed} $RPM_BUILD_ROOT/modules.list >> ../kernel${Variant:+-${Variant}}-core.list + sed -e 's/^lib*/%dir /lib/' %{?zipsed} $RPM_BUILD_ROOT/module-dirs.list > ../kernel${Variant:+-${Variant}}-modules-core.list + sed -e 's/^lib*//lib/' %{?zipsed} $RPM_BUILD_ROOT/modules.list >> ../kernel${Variant:+-${Variant}}-modules-core.list sed -e 's/^lib*//lib/' %{?zipsed} $RPM_BUILD_ROOT/mod-extra.list >> ../kernel${Variant:+-${Variant}}-modules-extra.list sed -e 's/^lib*//lib/' %{?zipsed} $RPM_BUILD_ROOT/mod-internal.list >> ../kernel${Variant:+-${Variant}}-modules-internal.list %if 0%{!?fedora:1} @@ -2836,6 +2867,19 @@ if [ -f %{_localstatedir}/lib/rpm-state/%{name}/need_to_run_dracut_%{KVERREL}%{? fi\ %{nil}
+# +# This macro defines a %%post script for a kernel*-modules-core package. +# It also defines a %%postun script that does the same thing. +# %%kernel_modules_core_post [<subpackage>] +# +%define kernel_modules_core_post() \ +%{expand:%%post %{?1:%{1}-}modules-core}\ +/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\ +%{nil}\ +%{expand:%%postun %{?1:%{1}-}modules-core}\ +/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\ +%{nil} + # This macro defines a %%posttrans script for a kernel package. # %%kernel_variant_posttrans [<subpackage>] # More text can follow to go at the end of this variant's %%post. @@ -2864,6 +2908,7 @@ fi\ %define kernel_variant_post(v:r:) \ %{expand:%%kernel_devel_post %{?-v*}}\ %{expand:%%kernel_modules_post %{?-v*}}\ +%{expand:%%kernel_modules_core_post %{?-v*}}\ %{expand:%%kernel_modules_extra_post %{?-v*}}\ %{expand:%%kernel_modules_internal_post %{?-v*}}\ %if 0%{!?fedora:1}\ @@ -3094,7 +3139,7 @@ fi # %define kernel_variant_files(k:) \ %if %{2}\ -%{expand:%%files -f kernel-%{?3:%{3}-}core.list %{?1:-f kernel-%{?3:%{3}-}ldsoconf.list} %{?3:%{3}-}core}\ +%{expand:%%files %{?1:-f kernel-%{?3:%{3}-}ldsoconf.list} %{?3:%{3}-}core}\ %{!?_licensedir:%global license %%doc}\ %license linux-%{KVERREL}/COPYING-%{version}-%{release}\ /lib/modules/%{KVERREL}%{?3:+%{3}}/%{?-k:%{-k*}}%{!?-k:vmlinuz}\ @@ -3112,6 +3157,7 @@ fi %ghost %attr(0600, root, root) /boot/symvers-%{KVERREL}%{?3:+%{3}}.gz\ %ghost %attr(0600, root, root) /boot/initramfs-%{KVERREL}%{?3:+%{3}}.img\ %ghost %attr(0644, root, root) /boot/config-%{KVERREL}%{?3:+%{3}}\ +%{expand:%%files -f kernel-%{?3:%{3}-}modules-core.list %{?3:%{3}-}modules-core}\ %dir /lib/modules\ %dir /lib/modules/%{KVERREL}%{?3:+%{3}}\ %dir /lib/modules/%{KVERREL}%{?3:+%{3}}/kernel\ @@ -3155,6 +3201,7 @@ fi %files debug-devel %files debug-devel-matched %files debug-modules +%files debug-modules-core %files debug-modules-extra %endif %kernel_variant_files %{use_vdso} %{with_pae} lpae
-- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2179
From: Zbigniew Jędrzejewski-Szmek on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2179#note_1216494...
LGTM.
kernel@lists.fedoraproject.org