3 # Output a simple RPM spec file.
4 # This version assumes a minimum of RPM 4.0.3.
6 # The only gothic bit here is redefining install_post to avoid
7 # stripping the symbols from files in the kernel which we want
9 # Patched for non-x86 by Opencon (L) 2002 <opencon@rio.skydome.net>
12 # how we were called determines which rpms we build and how we build them
13 if [ "$1" = prebuilt ]; then
15 MAKE="$MAKE -f $srctree/Makefile"
20 if grep -q CONFIG_MODULES=y .config; then
26 if grep -q CONFIG_DRM=y .config; then
30 PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
31 __KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
32 EXCLUDES="$RCS_TAR_IGNORE --exclude=*vmlinux* --exclude=*.mod \
33 --exclude=*.o --exclude=*.ko --exclude=*.cmd --exclude=Documentation \
34 --exclude=.config.old --exclude=.missing-syscalls.d --exclude=*.s"
36 # We can label the here-doc lines for conditional output to the spec file
39 # $S: this line is enabled only when building source package
40 # $M: this line is enabled only when CONFIG_MODULES is enabled
41 sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
43 Summary: The Linux Kernel
44 Version: $__KERNELRELEASE
45 Release: $(cat .version 2>/dev/null || echo 1)
47 Group: System Environment/Kernel
48 Vendor: The Linux Community
49 URL: https://www.kernel.org
50 $S Source: kernel-$__KERNELRELEASE.tar.gz
52 # $UTS_MACHINE as a fallback of _arch in case
53 # /usr/lib/rpm/platform/*/macros was not included.
54 %define _arch %{?_arch:$UTS_MACHINE}
55 %define __spec_install_post /usr/lib/rpm/brp-compress || :
56 %define debug_package %{nil}
59 The Linux Kernel, the operating system core itself
62 Summary: Header files for the Linux kernel for use by glibc
63 Group: Development/System
64 Obsoletes: kernel-headers
65 Provides: kernel-headers = %{version}
67 Kernel-headers includes the C header files that specify the interface
68 between the Linux kernel and userspace libraries and programs. The
69 header files define structures and constants that are needed for
70 building most standard programs and are also needed for rebuilding the
74 $S$M Summary: Development package for building kernel modules to match the $__KERNELRELEASE kernel
75 $S$M Group: System Environment/Kernel
77 $S$M %description -n kernel-devel
78 $S$M This package provides kernel headers and makefiles sufficient to build modules
79 $S$M against the $__KERNELRELEASE kernel package.
85 $S $MAKE %{?_smp_mflags} KBUILD_BUILD_VERSION=%{release}
88 mkdir -p %{buildroot}/boot
90 mkdir -p %{buildroot}/boot/efi
91 cp \$($MAKE image_name) %{buildroot}/boot/efi/vmlinuz-$KERNELRELEASE
92 ln -s efi/vmlinuz-$KERNELRELEASE %{buildroot}/boot/
94 cp \$($MAKE image_name) %{buildroot}/boot/vmlinuz-$KERNELRELEASE
96 $M $MAKE %{?_smp_mflags} INSTALL_MOD_PATH=%{buildroot} modules_install
97 $MAKE %{?_smp_mflags} INSTALL_HDR_PATH=%{buildroot}/usr headers_install
98 cp System.map %{buildroot}/boot/System.map-$KERNELRELEASE
99 cp .config %{buildroot}/boot/config-$KERNELRELEASE
100 bzip2 -9 --keep vmlinux
101 mv vmlinux.bz2 %{buildroot}/boot/vmlinux-$KERNELRELEASE.bz2
102 $S$M rm -f %{buildroot}/lib/modules/$KERNELRELEASE/build
103 $S$M rm -f %{buildroot}/lib/modules/$KERNELRELEASE/source
104 $S$M mkdir -p %{buildroot}/usr/src/kernels/$KERNELRELEASE
105 $S$M tar cf - $EXCLUDES . | tar xf - -C %{buildroot}/usr/src/kernels/$KERNELRELEASE
106 $S$M cd %{buildroot}/lib/modules/$KERNELRELEASE
107 $S$M ln -sf /usr/src/kernels/$KERNELRELEASE build
108 $S$M ln -sf /usr/src/kernels/$KERNELRELEASE source
114 if [ -x /sbin/installkernel -a -r /boot/vmlinuz-$KERNELRELEASE -a -r /boot/System.map-$KERNELRELEASE ]; then
115 cp /boot/vmlinuz-$KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm
116 cp /boot/System.map-$KERNELRELEASE /boot/.System.map-$KERNELRELEASE-rpm
117 rm -f /boot/vmlinuz-$KERNELRELEASE /boot/System.map-$KERNELRELEASE
118 /sbin/installkernel $KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm
119 rm -f /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm
123 if [ -x /sbin/new-kernel-pkg ]; then
124 new-kernel-pkg --remove $KERNELRELEASE --rminitrd --initrdfile=/boot/initramfs-$KERNELRELEASE.img
125 elif [ -x /usr/bin/kernel-install ]; then
126 kernel-install remove $KERNELRELEASE
130 if [ -x /sbin/update-bootloader ]; then
131 /sbin/update-bootloader --remove $KERNELRELEASE
135 %defattr (-, root, root)
136 $M /lib/modules/$KERNELRELEASE
137 $M %exclude /lib/modules/$KERNELRELEASE/build
138 $M %exclude /lib/modules/$KERNELRELEASE/source
142 %defattr (-, root, root)
146 $S$M %defattr (-, root, root)
147 $S$M /usr/src/kernels/$KERNELRELEASE
148 $S$M /lib/modules/$KERNELRELEASE/build
149 $S$M /lib/modules/$KERNELRELEASE/source