149c803cdSMasahiro Yamada# _arch is undefined if /usr/lib/rpm/platform/*/macros was not included. 249c803cdSMasahiro Yamada%{!?_arch: %define _arch dummy} 349c803cdSMasahiro Yamada%{!?make: %define make make} 449c803cdSMasahiro Yamada%define makeflags %{?_smp_mflags} ARCH=%{ARCH} 549c803cdSMasahiro Yamada%define __spec_install_post /usr/lib/rpm/brp-compress || : 649c803cdSMasahiro Yamada%define debug_package %{nil} 749c803cdSMasahiro Yamada 849c803cdSMasahiro YamadaName: kernel 949c803cdSMasahiro YamadaSummary: The Linux Kernel 1049c803cdSMasahiro YamadaVersion: %(echo %{KERNELRELEASE} | sed -e 's/-/_/g') 1149c803cdSMasahiro YamadaRelease: %{pkg_release} 1249c803cdSMasahiro YamadaLicense: GPL 1349c803cdSMasahiro YamadaGroup: System Environment/Kernel 1449c803cdSMasahiro YamadaVendor: The Linux Community 1549c803cdSMasahiro YamadaURL: https://www.kernel.org 1649c803cdSMasahiro YamadaSource0: linux.tar.gz 1749c803cdSMasahiro YamadaSource1: config 1849c803cdSMasahiro YamadaSource2: diff.patch 1949c803cdSMasahiro YamadaProvides: kernel-%{KERNELRELEASE} 2049c803cdSMasahiro YamadaBuildRequires: bc binutils bison dwarves 2149c803cdSMasahiro YamadaBuildRequires: (elfutils-libelf-devel or libelf-devel) flex 2249c803cdSMasahiro YamadaBuildRequires: gcc make openssl openssl-devel perl python3 rsync 2349c803cdSMasahiro Yamada 2449c803cdSMasahiro Yamada%description 2549c803cdSMasahiro YamadaThe Linux Kernel, the operating system core itself 2649c803cdSMasahiro Yamada 2749c803cdSMasahiro Yamada%package headers 2849c803cdSMasahiro YamadaSummary: Header files for the Linux kernel for use by glibc 2949c803cdSMasahiro YamadaGroup: Development/System 3049c803cdSMasahiro YamadaObsoletes: kernel-headers 3149c803cdSMasahiro YamadaProvides: kernel-headers = %{version} 3249c803cdSMasahiro Yamada%description headers 3349c803cdSMasahiro YamadaKernel-headers includes the C header files that specify the interface 3449c803cdSMasahiro Yamadabetween the Linux kernel and userspace libraries and programs. The 3549c803cdSMasahiro Yamadaheader files define structures and constants that are needed for 3649c803cdSMasahiro Yamadabuilding most standard programs and are also needed for rebuilding the 3749c803cdSMasahiro Yamadaglibc package. 3849c803cdSMasahiro Yamada 3949c803cdSMasahiro Yamada%if %{with_devel} 4049c803cdSMasahiro Yamada%package devel 4149c803cdSMasahiro YamadaSummary: Development package for building kernel modules to match the %{version} kernel 4249c803cdSMasahiro YamadaGroup: System Environment/Kernel 4349c803cdSMasahiro YamadaAutoReqProv: no 4449c803cdSMasahiro Yamada%description -n kernel-devel 4549c803cdSMasahiro YamadaThis package provides kernel headers and makefiles sufficient to build modules 4649c803cdSMasahiro Yamadaagainst the %{version} kernel package. 4749c803cdSMasahiro Yamada%endif 4849c803cdSMasahiro Yamada 4949c803cdSMasahiro Yamada%prep 5049c803cdSMasahiro Yamada%setup -q -n linux 5149c803cdSMasahiro Yamadacp %{SOURCE1} .config 5249c803cdSMasahiro Yamadapatch -p1 < %{SOURCE2} 5349c803cdSMasahiro Yamada 5449c803cdSMasahiro Yamada%build 5549c803cdSMasahiro Yamada%{make} %{makeflags} KERNELRELEASE=%{KERNELRELEASE} KBUILD_BUILD_VERSION=%{release} 5649c803cdSMasahiro Yamada 5749c803cdSMasahiro Yamada%install 58358de8b4SJose Ignacio Tornos Martinezmkdir -p %{buildroot}/lib/modules/%{KERNELRELEASE} 59358de8b4SJose Ignacio Tornos Martinezcp $(%{make} %{makeflags} -s image_name) %{buildroot}/lib/modules/%{KERNELRELEASE}/vmlinuz 6049c803cdSMasahiro Yamada%{make} %{makeflags} INSTALL_MOD_PATH=%{buildroot} modules_install 6149c803cdSMasahiro Yamada%{make} %{makeflags} INSTALL_HDR_PATH=%{buildroot}/usr headers_install 62358de8b4SJose Ignacio Tornos Martinezcp System.map %{buildroot}/lib/modules/%{KERNELRELEASE} 63358de8b4SJose Ignacio Tornos Martinezcp .config %{buildroot}/lib/modules/%{KERNELRELEASE}/config 6449c803cdSMasahiro Yamadaln -fns /usr/src/kernels/%{KERNELRELEASE} %{buildroot}/lib/modules/%{KERNELRELEASE}/build 6549c803cdSMasahiro Yamada%if %{with_devel} 6649c803cdSMasahiro Yamada%{make} %{makeflags} run-command KBUILD_RUN_COMMAND='${srctree}/scripts/package/install-extmod-build %{buildroot}/usr/src/kernels/%{KERNELRELEASE}' 6749c803cdSMasahiro Yamada%endif 6849c803cdSMasahiro Yamada 69615b3a3dSMasahiro Yamada{ 70615b3a3dSMasahiro Yamada for x in System.map config kernel modules.builtin \ 71615b3a3dSMasahiro Yamada modules.builtin.modinfo modules.order vmlinuz; do 72615b3a3dSMasahiro Yamada echo "/lib/modules/%{KERNELRELEASE}/${x}" 73615b3a3dSMasahiro Yamada done 74615b3a3dSMasahiro Yamada 75615b3a3dSMasahiro Yamada for x in alias alias.bin builtin.alias.bin builtin.bin dep dep.bin \ 76615b3a3dSMasahiro Yamada devname softdep symbols symbols.bin; do 77615b3a3dSMasahiro Yamada echo "%ghost /lib/modules/%{KERNELRELEASE}/modules.${x}" 78615b3a3dSMasahiro Yamada done 79615b3a3dSMasahiro Yamada 80*bca17edbSMasahiro Yamada for x in System.map config vmlinuz; do 81*bca17edbSMasahiro Yamada echo "%ghost /boot/${x}-%{KERNELRELEASE}" 82*bca17edbSMasahiro Yamada done 83*bca17edbSMasahiro Yamada 84615b3a3dSMasahiro Yamada echo "%exclude /lib/modules/%{KERNELRELEASE}/build" 85615b3a3dSMasahiro Yamada} > %{buildroot}/kernel.list 86615b3a3dSMasahiro Yamada 8749c803cdSMasahiro Yamada%clean 8849c803cdSMasahiro Yamadarm -rf %{buildroot} 8949c803cdSMasahiro Yamada 9049c803cdSMasahiro Yamada%post 91358de8b4SJose Ignacio Tornos Martinezif [ -x /usr/bin/kernel-install ]; then 92358de8b4SJose Ignacio Tornos Martinez /usr/bin/kernel-install add %{KERNELRELEASE} /lib/modules/%{KERNELRELEASE}/vmlinuz 9349c803cdSMasahiro Yamadafi 94358de8b4SJose Ignacio Tornos Martinezfor file in vmlinuz System.map config; do 95358de8b4SJose Ignacio Tornos Martinez if ! cmp --silent "/lib/modules/%{KERNELRELEASE}/${file}" "/boot/${file}-%{KERNELRELEASE}"; then 96358de8b4SJose Ignacio Tornos Martinez cp "/lib/modules/%{KERNELRELEASE}/${file}" "/boot/${file}-%{KERNELRELEASE}" 97358de8b4SJose Ignacio Tornos Martinez fi 98358de8b4SJose Ignacio Tornos Martinezdone 99615b3a3dSMasahiro Yamadaif [ ! -e "/lib/modules/%{KERNELRELEASE}/modules.dep" ]; then 100615b3a3dSMasahiro Yamada /usr/sbin/depmod %{KERNELRELEASE} 101615b3a3dSMasahiro Yamadafi 10249c803cdSMasahiro Yamada 10349c803cdSMasahiro Yamada%preun 10449c803cdSMasahiro Yamadaif [ -x /sbin/new-kernel-pkg ]; then 10549c803cdSMasahiro Yamadanew-kernel-pkg --remove %{KERNELRELEASE} --rminitrd --initrdfile=/boot/initramfs-%{KERNELRELEASE}.img 10649c803cdSMasahiro Yamadaelif [ -x /usr/bin/kernel-install ]; then 10749c803cdSMasahiro Yamadakernel-install remove %{KERNELRELEASE} 10849c803cdSMasahiro Yamadafi 10949c803cdSMasahiro Yamada 11049c803cdSMasahiro Yamada%postun 11149c803cdSMasahiro Yamadaif [ -x /sbin/update-bootloader ]; then 11249c803cdSMasahiro Yamada/sbin/update-bootloader --remove %{KERNELRELEASE} 11349c803cdSMasahiro Yamadafi 11449c803cdSMasahiro Yamada 115615b3a3dSMasahiro Yamada%files -f %{buildroot}/kernel.list 11649c803cdSMasahiro Yamada%defattr (-, root, root) 117615b3a3dSMasahiro Yamada%exclude /kernel.list 11849c803cdSMasahiro Yamada 11949c803cdSMasahiro Yamada%files headers 12049c803cdSMasahiro Yamada%defattr (-, root, root) 12149c803cdSMasahiro Yamada/usr/include 12249c803cdSMasahiro Yamada 12349c803cdSMasahiro Yamada%if %{with_devel} 12449c803cdSMasahiro Yamada%files devel 12549c803cdSMasahiro Yamada%defattr (-, root, root) 12649c803cdSMasahiro Yamada/usr/src/kernels/%{KERNELRELEASE} 12749c803cdSMasahiro Yamada/lib/modules/%{KERNELRELEASE}/build 12849c803cdSMasahiro Yamada%endif 129