1 # _arch is undefined if /usr/lib/rpm/platform/ 1 # _arch is undefined if /usr/lib/rpm/platform/*/macros was not included. 2 %{!?_arch: %define _arch dummy} 2 %{!?_arch: %define _arch dummy} 3 %{!?make: %define make make} 3 %{!?make: %define make make} 4 %define makeflags %{?_smp_mflags} ARCH=%{ARCH} 4 %define makeflags %{?_smp_mflags} ARCH=%{ARCH} 5 %define __spec_install_post /usr/lib/rpm/brp-c 5 %define __spec_install_post /usr/lib/rpm/brp-compress || : 6 %define debug_package %{nil} 6 %define debug_package %{nil} 7 7 8 Name: kernel 8 Name: kernel 9 Summary: The Linux Kernel 9 Summary: The Linux Kernel 10 Version: %(echo %{KERNELRELEASE} | sed -e 's/- 10 Version: %(echo %{KERNELRELEASE} | sed -e 's/-/_/g') 11 Release: %{pkg_release} 11 Release: %{pkg_release} 12 License: GPL 12 License: GPL 13 Group: System Environment/Kernel 13 Group: System Environment/Kernel 14 Vendor: The Linux Community 14 Vendor: The Linux Community 15 URL: https://www.kernel.org 15 URL: https://www.kernel.org 16 Source0: linux.tar.gz 16 Source0: linux.tar.gz 17 Source1: config 17 Source1: config 18 Source2: diff.patch 18 Source2: diff.patch 19 Provides: kernel-%{KERNELRELEASE} 19 Provides: kernel-%{KERNELRELEASE} 20 BuildRequires: bc binutils bison dwarves 20 BuildRequires: bc binutils bison dwarves 21 BuildRequires: (elfutils-libelf-devel or libel 21 BuildRequires: (elfutils-libelf-devel or libelf-devel) flex 22 BuildRequires: gcc make openssl openssl-devel 22 BuildRequires: gcc make openssl openssl-devel perl python3 rsync 23 23 24 %description 24 %description 25 The Linux Kernel, the operating system core it 25 The Linux Kernel, the operating system core itself 26 26 27 %package headers 27 %package headers 28 Summary: Header files for the Linux kernel for 28 Summary: Header files for the Linux kernel for use by glibc 29 Group: Development/System 29 Group: Development/System 30 Obsoletes: kernel-headers < %{version} 30 Obsoletes: kernel-headers < %{version} 31 Provides: kernel-headers = %{version} 31 Provides: kernel-headers = %{version} 32 %description headers 32 %description headers 33 Kernel-headers includes the C header files tha 33 Kernel-headers includes the C header files that specify the interface 34 between the Linux kernel and userspace librari 34 between the Linux kernel and userspace libraries and programs. The 35 header files define structures and constants t 35 header files define structures and constants that are needed for 36 building most standard programs and are also n 36 building most standard programs and are also needed for rebuilding the 37 glibc package. 37 glibc package. 38 38 39 %if %{with_devel} 39 %if %{with_devel} 40 %package devel 40 %package devel 41 Summary: Development package for building kern 41 Summary: Development package for building kernel modules to match the %{version} kernel 42 Group: System Environment/Kernel 42 Group: System Environment/Kernel 43 AutoReqProv: no 43 AutoReqProv: no 44 %description -n kernel-devel 44 %description -n kernel-devel 45 This package provides kernel headers and makef 45 This package provides kernel headers and makefiles sufficient to build modules 46 against the %{version} kernel package. 46 against the %{version} kernel package. 47 %endif 47 %endif 48 48 49 %prep 49 %prep 50 %setup -q -n linux 50 %setup -q -n linux 51 cp %{SOURCE1} .config 51 cp %{SOURCE1} .config 52 patch -p1 < %{SOURCE2} 52 patch -p1 < %{SOURCE2} 53 53 54 %build 54 %build 55 %{make} %{makeflags} KERNELRELEASE=%{KERNELREL 55 %{make} %{makeflags} KERNELRELEASE=%{KERNELRELEASE} KBUILD_BUILD_VERSION=%{release} 56 56 57 %install 57 %install 58 mkdir -p %{buildroot}/lib/modules/%{KERNELRELE 58 mkdir -p %{buildroot}/lib/modules/%{KERNELRELEASE} 59 cp $(%{make} %{makeflags} -s image_name) %{bui 59 cp $(%{make} %{makeflags} -s image_name) %{buildroot}/lib/modules/%{KERNELRELEASE}/vmlinuz 60 # DEPMOD=true makes depmod no-op. We do not pa 60 # DEPMOD=true makes depmod no-op. We do not package depmod-generated files. 61 %{make} %{makeflags} INSTALL_MOD_PATH=%{buildr 61 %{make} %{makeflags} INSTALL_MOD_PATH=%{buildroot} DEPMOD=true modules_install 62 %{make} %{makeflags} INSTALL_HDR_PATH=%{buildr 62 %{make} %{makeflags} INSTALL_HDR_PATH=%{buildroot}/usr headers_install 63 cp System.map %{buildroot}/lib/modules/%{KERNE 63 cp System.map %{buildroot}/lib/modules/%{KERNELRELEASE} 64 cp .config %{buildroot}/lib/modules/%{KERNELRE 64 cp .config %{buildroot}/lib/modules/%{KERNELRELEASE}/config 65 if %{make} %{makeflags} run-command KBUILD_RUN 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 66 %{make} %{makeflags} INSTALL_DTBS_PATH=%{buildroot}/lib/modules/%{KERNELRELEASE}/dtb dtbs_install 67 fi 67 fi 68 ln -fns /usr/src/kernels/%{KERNELRELEASE} %{bu 68 ln -fns /usr/src/kernels/%{KERNELRELEASE} %{buildroot}/lib/modules/%{KERNELRELEASE}/build 69 %if %{with_devel} 69 %if %{with_devel} 70 %{make} %{makeflags} run-command KBUILD_RUN_CO 70 %{make} %{makeflags} run-command KBUILD_RUN_COMMAND='${srctree}/scripts/package/install-extmod-build %{buildroot}/usr/src/kernels/%{KERNELRELEASE}' 71 %endif 71 %endif 72 72 73 { 73 { 74 echo "/lib/modules/%{KERNELRELEASE}" 74 echo "/lib/modules/%{KERNELRELEASE}" 75 75 76 for x in alias alias.bin builtin.alias 76 for x in alias alias.bin builtin.alias.bin builtin.bin dep dep.bin \ 77 devname softde 77 devname softdep symbols symbols.bin weakdep; do 78 echo "%ghost /lib/modules/%{KE 78 echo "%ghost /lib/modules/%{KERNELRELEASE}/modules.${x}" 79 done 79 done 80 80 81 for x in System.map config vmlinuz; do 81 for x in System.map config vmlinuz; do 82 echo "%ghost /boot/${x}-%{KERN 82 echo "%ghost /boot/${x}-%{KERNELRELEASE}" 83 done 83 done 84 84 85 if [ -d "%{buildroot}/lib/modules/%{KE 85 if [ -d "%{buildroot}/lib/modules/%{KERNELRELEASE}/dtb" ];then 86 find "%{buildroot}/lib/modules 86 find "%{buildroot}/lib/modules/%{KERNELRELEASE}/dtb" -printf "%%%ghost /boot/dtb-%{KERNELRELEASE}/%%P\n" 87 fi 87 fi 88 88 89 echo "%exclude /lib/modules/%{KERNELRE 89 echo "%exclude /lib/modules/%{KERNELRELEASE}/build" 90 } > %{buildroot}/kernel.list 90 } > %{buildroot}/kernel.list 91 91 92 %clean 92 %clean 93 rm -rf %{buildroot} 93 rm -rf %{buildroot} 94 94 95 %post 95 %post 96 if [ -x /usr/bin/kernel-install ]; then 96 if [ -x /usr/bin/kernel-install ]; then 97 /usr/bin/kernel-install add %{KERNELRE 97 /usr/bin/kernel-install add %{KERNELRELEASE} /lib/modules/%{KERNELRELEASE}/vmlinuz 98 fi 98 fi 99 for file in vmlinuz System.map config; do 99 for file in vmlinuz System.map config; do 100 if ! cmp --silent "/lib/modules/%{KERN 100 if ! cmp --silent "/lib/modules/%{KERNELRELEASE}/${file}" "/boot/${file}-%{KERNELRELEASE}"; then 101 cp "/lib/modules/%{KERNELRELEA 101 cp "/lib/modules/%{KERNELRELEASE}/${file}" "/boot/${file}-%{KERNELRELEASE}" 102 fi 102 fi 103 done 103 done 104 if [ -d "/lib/modules/%{KERNELRELEASE}/dtb" ] 104 if [ -d "/lib/modules/%{KERNELRELEASE}/dtb" ] && \ 105 ! diff -rq "/lib/modules/%{KERNELRELEASE}/d 105 ! diff -rq "/lib/modules/%{KERNELRELEASE}/dtb" "/boot/dtb-%{KERNELRELEASE}" >/dev/null 2>&1; then 106 rm -rf "/boot/dtb-%{KERNELRELEASE}" 106 rm -rf "/boot/dtb-%{KERNELRELEASE}" 107 cp -r "/lib/modules/%{KERNELRELEASE}/d 107 cp -r "/lib/modules/%{KERNELRELEASE}/dtb" "/boot/dtb-%{KERNELRELEASE}" 108 fi 108 fi 109 if [ ! -e "/lib/modules/%{KERNELRELEASE}/modul 109 if [ ! -e "/lib/modules/%{KERNELRELEASE}/modules.dep" ]; then 110 /usr/sbin/depmod %{KERNELRELEASE} 110 /usr/sbin/depmod %{KERNELRELEASE} 111 fi 111 fi 112 112 113 %preun 113 %preun 114 if [ -x /usr/bin/kernel-install ]; then 114 if [ -x /usr/bin/kernel-install ]; then 115 kernel-install remove %{KERNELRELEASE} 115 kernel-install remove %{KERNELRELEASE} 116 fi 116 fi 117 117 118 %files -f %{buildroot}/kernel.list 118 %files -f %{buildroot}/kernel.list 119 %defattr (-, root, root) 119 %defattr (-, root, root) 120 %exclude /kernel.list 120 %exclude /kernel.list 121 121 122 %files headers 122 %files headers 123 %defattr (-, root, root) 123 %defattr (-, root, root) 124 /usr/include 124 /usr/include 125 125 126 %if %{with_devel} 126 %if %{with_devel} 127 %files devel 127 %files devel 128 %defattr (-, root, root) 128 %defattr (-, root, root) 129 /usr/src/kernels/%{KERNELRELEASE} 129 /usr/src/kernels/%{KERNELRELEASE} 130 /lib/modules/%{KERNELRELEASE}/build 130 /lib/modules/%{KERNELRELEASE}/build 131 %endif 131 %endif
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.