Skip to content

Commit 95440c0

Browse files
kraxelvittyvk
authored andcommitted
redhat: split sub-rpm kernel-modules-core from kernel-core
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2142102 Upstream Status: RHEL only 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> Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
1 parent 3419415 commit 95440c0

File tree

1 file changed

+49
-3
lines changed

1 file changed

+49
-3
lines changed

redhat/kernel.spec.template

Lines changed: 49 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -592,6 +592,7 @@ ExclusiveOS: Linux
592592
%ifnarch %{nobuildarches}
593593
Requires: kernel-core-uname-r = %{KVERREL}
594594
Requires: kernel-modules-uname-r = %{KVERREL}
595+
Requires: kernel-modules-core-uname-r = %{KVERREL}
595596
%endif
596597

597598

@@ -892,6 +893,7 @@ Provides: kernel = %{specversion}-%{pkg_release}\
892893
%endif\
893894
Provides: kernel-%{_target_cpu} = %{specversion}-%{pkg_release}%{uname_suffix %{?1:%{1}}}\
894895
Provides: kernel-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\
896+
Requires: kernel%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\
895897
Requires(pre): %{kernel_prereq}\
896898
Requires(pre): %{initrd_prereq}\
897899
Requires(pre): ((linux-firmware >= 20150904-56.git6ebf5d57) if linux-firmware)\
@@ -1226,6 +1228,7 @@ Provides: installonlypkg(kernel-module)\
12261228
Provides: kernel%{?1:-%{1}}-modules-internal-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\
12271229
Requires: kernel-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\
12281230
Requires: kernel%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\
1231+
Requires: kernel%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\
12291232
AutoReq: no\
12301233
AutoProv: yes\
12311234
%description %{?1:%{1}-}modules-internal\
@@ -1246,6 +1249,7 @@ Provides: installonlypkg(kernel-module)\
12461249
Provides: kernel%{?1:-%{1}}-modules-extra-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\
12471250
Requires: kernel-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\
12481251
Requires: kernel%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\
1252+
Requires: kernel%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\
12491253
%if %{-m:1}%{!-m:0}\
12501254
Requires: kernel-modules-extra-uname-r = %{KVERREL}%{uname_variant %{?1:%{1}}}\
12511255
%endif\
@@ -1268,6 +1272,7 @@ Provides: kernel-modules = %{version}-%{release}%{uname_suffix %{?1:%{1}}}\
12681272
Provides: installonlypkg(kernel-module)\
12691273
Provides: kernel%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\
12701274
Requires: kernel-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\
1275+
Requires: kernel%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\
12711276
%if %{-m:1}%{!-m:0}\
12721277
Requires: kernel-modules-uname-r = %{KVERREL}%{uname_variant %{?1:%{1}}}\
12731278
%endif\
@@ -1277,6 +1282,28 @@ AutoProv: yes\
12771282
This package provides commonly used kernel modules for the %{?2:%{2}-}core kernel package.\
12781283
%{nil}
12791284

1285+
#
1286+
# This macro creates a kernel-<subpackage>-modules-core package.
1287+
# %%kernel_modules_core_package [-m] <subpackage> <pretty-name>
1288+
#
1289+
%define kernel_modules_core_package(m) \
1290+
%package %{?1:%{1}-}modules-core\
1291+
Summary: Core kernel modules to match the %{?2:%{2}-}core kernel\
1292+
Provides: kernel%{?1:-%{1}}-modules-core-%{_target_cpu} = %{version}-%{release}\
1293+
Provides: kernel-modules-core-%{_target_cpu} = %{version}-%{release}%{uname_suffix %{?1:%{1}}}\
1294+
Provides: kernel-modules-core = %{version}-%{release}%{uname_suffix %{?1:%{1}}}\
1295+
Provides: installonlypkg(kernel-module)\
1296+
Provides: kernel%{?1:-%{1}}-modules-core-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\
1297+
Requires: kernel-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\
1298+
%if %{-m:1}%{!-m:0}\
1299+
Requires: kernel-modules-core-uname-r = %{KVERREL}%{uname_variant %{?1:%{1}}}\
1300+
%endif\
1301+
AutoReq: no\
1302+
AutoProv: yes\
1303+
%description %{?1:%{1}-}modules-core\
1304+
This package provides essential kernel modules for the %{?2:%{2}-}core kernel package.\
1305+
%{nil}
1306+
12801307
#
12811308
# this macro creates a kernel-<subpackage> meta package.
12821309
# %%kernel_meta_package <subpackage>
@@ -1286,6 +1313,7 @@ This package provides commonly used kernel modules for the %{?2:%{2}-}core kerne
12861313
summary: kernel meta-package for the %{1} kernel\
12871314
Requires: kernel-%{1}-core-uname-r = %{KVERREL}%{uname_suffix %{1}}\
12881315
Requires: kernel-%{1}-modules-uname-r = %{KVERREL}%{uname_suffix %{1}}\
1316+
Requires: kernel-%{1}-modules-core-uname-r = %{KVERREL}%{uname_suffix %{1}}\
12891317
Provides: installonlypkg(kernel)\
12901318
%description %{1}\
12911319
The meta-package for the %{1} kernel\
@@ -1303,6 +1331,7 @@ Provides: kernel-%{?1:%{1}-}core-uname-r = %{KVERREL}%{uname_suffix %{?1:%{1}}}\
13031331
Provides: installonlypkg(kernel)\
13041332
%if %{-m:1}%{!-m:0}\
13051333
Requires: kernel-core-uname-r = %{KVERREL}%{uname_variant %{?1:%{1}}}\
1334+
Requires: kernel-%{?1:%{1}-}-modules-core-uname-r = %{KVERREL}%{uname_variant %{?1:%{1}}}\
13061335
%endif\
13071336
%{expand:%%kernel_reqprovconf %{?1:%{1}} %{-o:%{-o}}}\
13081337
%if %{?1:1} %{!?1:0} \
@@ -1311,6 +1340,7 @@ Requires: kernel-core-uname-r = %{KVERREL}%{uname_variant %{?1:%{1}}}\
13111340
%{expand:%%kernel_devel_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}} %{-m:%{-m}}}\
13121341
%{expand:%%kernel_devel_matched_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}} %{-m:%{-m}}}\
13131342
%{expand:%%kernel_modules_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}} %{-m:%{-m}}}\
1343+
%{expand:%%kernel_modules_core_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}} %{-m:%{-m}}}\
13141344
%{expand:%%kernel_modules_extra_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}} %{-m:%{-m}}}\
13151345
%if %{-m:0}%{!-m:1}\
13161346
%{expand:%%kernel_modules_internal_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\
@@ -2173,8 +2203,8 @@ BuildKernel() {
21732203
# Make sure the files lists start with absolute paths or rpmbuild fails.
21742204
# Also add in the dir entries
21752205
sed -e 's/^lib*/\/lib/' %{?zipsed} $RPM_BUILD_ROOT/k-d.list > ../kernel${Variant:+-${Variant}}-modules.list
2176-
sed -e 's/^lib*/%dir \/lib/' %{?zipsed} $RPM_BUILD_ROOT/module-dirs.list > ../kernel${Variant:+-${Variant}}-core.list
2177-
sed -e 's/^lib*/\/lib/' %{?zipsed} $RPM_BUILD_ROOT/modules.list >> ../kernel${Variant:+-${Variant}}-core.list
2206+
sed -e 's/^lib*/%dir \/lib/' %{?zipsed} $RPM_BUILD_ROOT/module-dirs.list > ../kernel${Variant:+-${Variant}}-modules-core.list
2207+
sed -e 's/^lib*/\/lib/' %{?zipsed} $RPM_BUILD_ROOT/modules.list >> ../kernel${Variant:+-${Variant}}-modules-core.list
21782208
sed -e 's/^lib*/\/lib/' %{?zipsed} $RPM_BUILD_ROOT/mod-extra.list >> ../kernel${Variant:+-${Variant}}-modules-extra.list
21792209
sed -e 's/^lib*/\/lib/' %{?zipsed} $RPM_BUILD_ROOT/mod-internal.list >> ../kernel${Variant:+-${Variant}}-modules-internal.list
21802210

@@ -2848,6 +2878,19 @@ if [ -f %{_localstatedir}/lib/rpm-state/%{name}/need_to_run_dracut_%{KVERREL}%{?
28482878
fi\
28492879
%{nil}
28502880

2881+
#
2882+
# This macro defines a %%post script for a kernel*-modules-core package.
2883+
# It also defines a %%postun script that does the same thing.
2884+
# %%kernel_modules_core_post [<subpackage>]
2885+
#
2886+
%define kernel_modules_core_post() \
2887+
%{expand:%%posttrans %{?1:%{1}-}modules-core}\
2888+
/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\
2889+
%{nil}\
2890+
%{expand:%%postun %{?1:%{1}-}modules-core}\
2891+
/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\
2892+
%{nil}
2893+
28512894
# This macro defines a %%posttrans script for a kernel package.
28522895
# %%kernel_variant_posttrans [<subpackage>]
28532896
# More text can follow to go at the end of this variant's %%post.
@@ -2876,6 +2919,7 @@ fi\
28762919
%define kernel_variant_post(v:r:) \
28772920
%{expand:%%kernel_devel_post %{?-v*}}\
28782921
%{expand:%%kernel_modules_post %{?-v*}}\
2922+
%{expand:%%kernel_modules_core_post %{?-v*}}\
28792923
%{expand:%%kernel_modules_extra_post %{?-v*}}\
28802924
%{expand:%%kernel_modules_internal_post %{?-v*}}\
28812925
%{expand:%%kernel_variant_posttrans %{?-v*}}\
@@ -3115,7 +3159,7 @@ fi
31153159
#
31163160
%define kernel_variant_files(k:) \
31173161
%if %{2}\
3118-
%{expand:%%files -f kernel-%{?3:%{3}-}core.list %{?1:-f kernel-%{?3:%{3}-}ldsoconf.list} %{?3:%{3}-}core}\
3162+
%{expand:%%files %{?1:-f kernel-%{?3:%{3}-}ldsoconf.list} %{?3:%{3}-}core}\
31193163
%{!?_licensedir:%global license %%doc}\
31203164
%license linux-%{KVERREL}/COPYING-%{version}-%{release}\
31213165
/lib/modules/%{KVERREL}%{?3:+%{3}}/%{?-k:%{-k*}}%{!?-k:vmlinuz}\
@@ -3133,6 +3177,7 @@ fi
31333177
%ghost %attr(0600, root, root) /boot/symvers-%{KVERREL}%{?3:+%{3}}.gz\
31343178
%ghost %attr(0600, root, root) /boot/initramfs-%{KVERREL}%{?3:+%{3}}.img\
31353179
%ghost %attr(0644, root, root) /boot/config-%{KVERREL}%{?3:+%{3}}\
3180+
%{expand:%%files -f kernel-%{?3:%{3}-}modules-core.list %{?3:%{3}-}modules-core}\
31363181
%dir /lib/modules\
31373182
%dir /lib/modules/%{KVERREL}%{?3:+%{3}}\
31383183
%dir /lib/modules/%{KVERREL}%{?3:+%{3}}/kernel\
@@ -3176,6 +3221,7 @@ fi
31763221
%files debug-devel
31773222
%files debug-devel-matched
31783223
%files debug-modules
3224+
%files debug-modules-core
31793225
%files debug-modules-extra
31803226
%if %{with_arm64_64k}
31813227
%files 64k-debug

0 commit comments

Comments
 (0)