1 # _arch is undefined if /usr/lib/rpm/platform/*/macros was not included.
2 %{!?_arch: %define _arch dummy}
3 %{!?make: %define make make}
4 %define makeflags
%{?_smp_mflags} ARCH=%{ARCH}
5 %define __spec_install_post
/usr
/lib
/rpm
/brp
-compress ||
:
6 %define debug_package
%{nil}
9 Summary: The Linux Kernel
10 Version: %
(echo %{KERNELRELEASE} | sed
-e 's
/-/_
/g'
)
11 Release: %{pkg_release}
13 Group: System Environment
/Kernel
14 Vendor: The Linux Community
15 URL: https
://www.kernel.org
19 Provides: kernel
-%{KERNELRELEASE}
20 BuildRequires
: bc binutils bison dwarves
21 BuildRequires
: (elfutils
-libelf
-devel or libelf
-devel
) flex
22 BuildRequires
: gcc
make openssl openssl
-devel perl python3 rsync
25 The Linux Kernel
, the operating system core itself
28 Summary: Header files
for the Linux kernel
for use by glibc
29 Group: Development
/System
30 Obsoletes
: kernel
-headers
< %{version}
31 Provides: kernel
-headers
= %{version}
33 Kernel
-headers includes the C header files that specify the interface
34 between the Linux kernel and userspace libraries and programs. The
35 header files define structures and constants that are needed
for
36 building most standard programs and are also needed
for rebuilding the
41 Summary: Development package
for building kernel modules to match the
%{version} kernel
42 Group: System Environment
/Kernel
44 %description -n kernel
-devel
45 This package provides kernel headers and makefiles sufficient to build modules
46 against the
%{version} kernel package.
52 patch
-p1
< %{SOURCE2}
55 %{make} %{makeflags} KERNELRELEASE=%{KERNELRELEASE} KBUILD_BUILD_VERSION=%{release}
58 mkdir -p
%{buildroot}/lib/modules/%{KERNELRELEASE}
59 cp $
(%{make} %{makeflags} -s image_name) %{buildroot}/lib/modules/%{KERNELRELEASE}/vmlinuz
60 # DEPMOD=true makes depmod no-op. We do not package depmod-generated files.
61 %{make} %{makeflags} INSTALL_MOD_PATH=%{buildroot} DEPMOD
=true modules_install
62 %{make} %{makeflags} INSTALL_HDR_PATH=%{buildroot}/usr headers_install
63 cp System.map
%{buildroot}/lib/modules/%{KERNELRELEASE}
64 cp .config
%{buildroot}/lib/modules/%{KERNELRELEASE}/config
65 if %{make} %{makeflags} run-command KBUILD_RUN_COMMAND='test -d ${srctree}/arch/${SRCARCH}/boot
/dts'
2>/dev
/null
; then
66 %{make} %{makeflags} INSTALL_DTBS_PATH=%{buildroot}/lib/modules/%{KERNELRELEASE}/dtb dtbs_install
68 ln
-fns
/usr
/src
/kernels
/%{KERNELRELEASE} %{buildroot}/lib/modules/%{KERNELRELEASE}/build
70 %{make} %{makeflags} run-command KBUILD_RUN_COMMAND='${srctree}/scripts/package/install-extmod-build %{buildroot}/usr/src/kernels/%{KERNELRELEASE}'
74 echo "
/lib
/modules
/%{KERNELRELEASE}"
76 for x
in alias alias.bin
builtin.
alias.bin
builtin.bin dep dep.bin \
77 devname softdep symbols symbols.bin weakdep
; do
78 echo "
%ghost /lib
/modules
/%{KERNELRELEASE}/modules.${x}"
81 for x
in System.map config vmlinuz
; do
82 echo "
%ghost /boot
/$
{x
}-%{KERNELRELEASE}"
85 if [ -d "
%{buildroot}/lib/modules/%{KERNELRELEASE}/dtb"
];then
86 find "
%{buildroot}/lib/modules/%{KERNELRELEASE}/dtb" -printf "%%%ghost /boot/dtb-%{KERNELRELEASE}/%
%P\n"
89 echo "
%exclude /lib
/modules
/%{KERNELRELEASE}/build"
90 } > %{buildroot}/kernel.list
96 if [ -x
/usr
/bin
/kernel
-install ]; then
97 /usr
/bin
/kernel
-install add
%{KERNELRELEASE} /lib/modules/%{KERNELRELEASE}/vmlinuz
99 for file
in vmlinuz System.map config
; do
100 if ! cmp
--silent "
/lib
/modules
/%{KERNELRELEASE}/${file}" "/boot/${file}-%{KERNELRELEASE}"
; then
101 cp "
/lib
/modules
/%{KERNELRELEASE}/${file}" "/boot/${file}-%{KERNELRELEASE}"
104 if [ -d "
/lib
/modules
/%{KERNELRELEASE}/dtb"
] && \
105 ! diff
-rq "
/lib
/modules
/%{KERNELRELEASE}/dtb" "/boot/dtb-%{KERNELRELEASE}"
>/dev
/null
2>&1; then
106 rm -rf "
/boot
/dtb
-%{KERNELRELEASE}"
107 cp
-r "
/lib
/modules
/%{KERNELRELEASE}/dtb" "/boot/dtb-%{KERNELRELEASE}"
109 if [ ! -e "
/lib
/modules
/%{KERNELRELEASE}/modules.dep"
]; then
110 /usr
/sbin
/depmod
%{KERNELRELEASE}
114 if [ -x
/usr
/bin
/kernel
-install ]; then
115 kernel
-install remove
%{KERNELRELEASE}
118 %files -f
%{buildroot}/kernel.list
119 %defattr (-, root
, root
)
120 %exclude /kernel.list
123 %defattr (-, root
, root
)
128 %defattr (-, root
, root
)
129 /usr
/src
/kernels
/%{KERNELRELEASE}
130 /lib
/modules
/%{KERNELRELEASE}/build