xref: /openbmc/linux/scripts/package/kernel.spec (revision 2d7d1bc1)
1*49c803cdSMasahiro Yamada# _arch is undefined if /usr/lib/rpm/platform/*/macros was not included.
2*49c803cdSMasahiro Yamada%{!?_arch: %define _arch dummy}
3*49c803cdSMasahiro Yamada%{!?make: %define make make}
4*49c803cdSMasahiro Yamada%define makeflags %{?_smp_mflags} ARCH=%{ARCH}
5*49c803cdSMasahiro Yamada%define __spec_install_post /usr/lib/rpm/brp-compress || :
6*49c803cdSMasahiro Yamada%define debug_package %{nil}
7*49c803cdSMasahiro Yamada
8*49c803cdSMasahiro YamadaName: kernel
9*49c803cdSMasahiro YamadaSummary: The Linux Kernel
10*49c803cdSMasahiro YamadaVersion: %(echo %{KERNELRELEASE} | sed -e 's/-/_/g')
11*49c803cdSMasahiro YamadaRelease: %{pkg_release}
12*49c803cdSMasahiro YamadaLicense: GPL
13*49c803cdSMasahiro YamadaGroup: System Environment/Kernel
14*49c803cdSMasahiro YamadaVendor: The Linux Community
15*49c803cdSMasahiro YamadaURL: https://www.kernel.org
16*49c803cdSMasahiro YamadaSource0: linux.tar.gz
17*49c803cdSMasahiro YamadaSource1: config
18*49c803cdSMasahiro YamadaSource2: diff.patch
19*49c803cdSMasahiro YamadaProvides: kernel-%{KERNELRELEASE}
20*49c803cdSMasahiro YamadaBuildRequires: bc binutils bison dwarves
21*49c803cdSMasahiro YamadaBuildRequires: (elfutils-libelf-devel or libelf-devel) flex
22*49c803cdSMasahiro YamadaBuildRequires: gcc make openssl openssl-devel perl python3 rsync
23*49c803cdSMasahiro Yamada
24*49c803cdSMasahiro Yamada%description
25*49c803cdSMasahiro YamadaThe Linux Kernel, the operating system core itself
26*49c803cdSMasahiro Yamada
27*49c803cdSMasahiro Yamada%package headers
28*49c803cdSMasahiro YamadaSummary: Header files for the Linux kernel for use by glibc
29*49c803cdSMasahiro YamadaGroup: Development/System
30*49c803cdSMasahiro YamadaObsoletes: kernel-headers
31*49c803cdSMasahiro YamadaProvides: kernel-headers = %{version}
32*49c803cdSMasahiro Yamada%description headers
33*49c803cdSMasahiro YamadaKernel-headers includes the C header files that specify the interface
34*49c803cdSMasahiro Yamadabetween the Linux kernel and userspace libraries and programs.  The
35*49c803cdSMasahiro Yamadaheader files define structures and constants that are needed for
36*49c803cdSMasahiro Yamadabuilding most standard programs and are also needed for rebuilding the
37*49c803cdSMasahiro Yamadaglibc package.
38*49c803cdSMasahiro Yamada
39*49c803cdSMasahiro Yamada%if %{with_devel}
40*49c803cdSMasahiro Yamada%package devel
41*49c803cdSMasahiro YamadaSummary: Development package for building kernel modules to match the %{version} kernel
42*49c803cdSMasahiro YamadaGroup: System Environment/Kernel
43*49c803cdSMasahiro YamadaAutoReqProv: no
44*49c803cdSMasahiro Yamada%description -n kernel-devel
45*49c803cdSMasahiro YamadaThis package provides kernel headers and makefiles sufficient to build modules
46*49c803cdSMasahiro Yamadaagainst the %{version} kernel package.
47*49c803cdSMasahiro Yamada%endif
48*49c803cdSMasahiro Yamada
49*49c803cdSMasahiro Yamada%prep
50*49c803cdSMasahiro Yamada%setup -q -n linux
51*49c803cdSMasahiro Yamadacp %{SOURCE1} .config
52*49c803cdSMasahiro Yamadapatch -p1 < %{SOURCE2}
53*49c803cdSMasahiro Yamada
54*49c803cdSMasahiro Yamada%build
55*49c803cdSMasahiro Yamada%{make} %{makeflags} KERNELRELEASE=%{KERNELRELEASE} KBUILD_BUILD_VERSION=%{release}
56*49c803cdSMasahiro Yamada
57*49c803cdSMasahiro Yamada%install
58*49c803cdSMasahiro Yamadamkdir -p %{buildroot}/boot
59*49c803cdSMasahiro Yamada%ifarch ia64
60*49c803cdSMasahiro Yamadamkdir -p %{buildroot}/boot/efi
61*49c803cdSMasahiro Yamadacp $(%{make} %{makeflags} -s image_name) %{buildroot}/boot/efi/vmlinuz-%{KERNELRELEASE}
62*49c803cdSMasahiro Yamadaln -s efi/vmlinuz-%{KERNELRELEASE} %{buildroot}/boot/
63*49c803cdSMasahiro Yamada%else
64*49c803cdSMasahiro Yamadacp $(%{make} %{makeflags} -s image_name) %{buildroot}/boot/vmlinuz-%{KERNELRELEASE}
65*49c803cdSMasahiro Yamada%endif
66*49c803cdSMasahiro Yamada%{make} %{makeflags} INSTALL_MOD_PATH=%{buildroot} modules_install
67*49c803cdSMasahiro Yamada%{make} %{makeflags} INSTALL_HDR_PATH=%{buildroot}/usr headers_install
68*49c803cdSMasahiro Yamadacp System.map %{buildroot}/boot/System.map-%{KERNELRELEASE}
69*49c803cdSMasahiro Yamadacp .config %{buildroot}/boot/config-%{KERNELRELEASE}
70*49c803cdSMasahiro Yamadaln -fns /usr/src/kernels/%{KERNELRELEASE} %{buildroot}/lib/modules/%{KERNELRELEASE}/build
71*49c803cdSMasahiro Yamada%if %{with_devel}
72*49c803cdSMasahiro Yamada%{make} %{makeflags} run-command KBUILD_RUN_COMMAND='${srctree}/scripts/package/install-extmod-build %{buildroot}/usr/src/kernels/%{KERNELRELEASE}'
73*49c803cdSMasahiro Yamada%endif
74*49c803cdSMasahiro Yamada
75*49c803cdSMasahiro Yamada%clean
76*49c803cdSMasahiro Yamadarm -rf %{buildroot}
77*49c803cdSMasahiro Yamada
78*49c803cdSMasahiro Yamada%post
79*49c803cdSMasahiro Yamadaif [ -x /sbin/installkernel -a -r /boot/vmlinuz-%{KERNELRELEASE} -a -r /boot/System.map-%{KERNELRELEASE} ]; then
80*49c803cdSMasahiro Yamadacp /boot/vmlinuz-%{KERNELRELEASE} /boot/.vmlinuz-%{KERNELRELEASE}-rpm
81*49c803cdSMasahiro Yamadacp /boot/System.map-%{KERNELRELEASE} /boot/.System.map-%{KERNELRELEASE}-rpm
82*49c803cdSMasahiro Yamadarm -f /boot/vmlinuz-%{KERNELRELEASE} /boot/System.map-%{KERNELRELEASE}
83*49c803cdSMasahiro Yamada/sbin/installkernel %{KERNELRELEASE} /boot/.vmlinuz-%{KERNELRELEASE}-rpm /boot/.System.map-%{KERNELRELEASE}-rpm
84*49c803cdSMasahiro Yamadarm -f /boot/.vmlinuz-%{KERNELRELEASE}-rpm /boot/.System.map-%{KERNELRELEASE}-rpm
85*49c803cdSMasahiro Yamadafi
86*49c803cdSMasahiro Yamada
87*49c803cdSMasahiro Yamada%preun
88*49c803cdSMasahiro Yamadaif [ -x /sbin/new-kernel-pkg ]; then
89*49c803cdSMasahiro Yamadanew-kernel-pkg --remove %{KERNELRELEASE} --rminitrd --initrdfile=/boot/initramfs-%{KERNELRELEASE}.img
90*49c803cdSMasahiro Yamadaelif [ -x /usr/bin/kernel-install ]; then
91*49c803cdSMasahiro Yamadakernel-install remove %{KERNELRELEASE}
92*49c803cdSMasahiro Yamadafi
93*49c803cdSMasahiro Yamada
94*49c803cdSMasahiro Yamada%postun
95*49c803cdSMasahiro Yamadaif [ -x /sbin/update-bootloader ]; then
96*49c803cdSMasahiro Yamada/sbin/update-bootloader --remove %{KERNELRELEASE}
97*49c803cdSMasahiro Yamadafi
98*49c803cdSMasahiro Yamada
99*49c803cdSMasahiro Yamada%files
100*49c803cdSMasahiro Yamada%defattr (-, root, root)
101*49c803cdSMasahiro Yamada/lib/modules/%{KERNELRELEASE}
102*49c803cdSMasahiro Yamada%exclude /lib/modules/%{KERNELRELEASE}/build
103*49c803cdSMasahiro Yamada/boot/*
104*49c803cdSMasahiro Yamada
105*49c803cdSMasahiro Yamada%files headers
106*49c803cdSMasahiro Yamada%defattr (-, root, root)
107*49c803cdSMasahiro Yamada/usr/include
108*49c803cdSMasahiro Yamada
109*49c803cdSMasahiro Yamada%if %{with_devel}
110*49c803cdSMasahiro Yamada%files devel
111*49c803cdSMasahiro Yamada%defattr (-, root, root)
112*49c803cdSMasahiro Yamada/usr/src/kernels/%{KERNELRELEASE}
113*49c803cdSMasahiro Yamada/lib/modules/%{KERNELRELEASE}/build
114*49c803cdSMasahiro Yamada%endif
115