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
19 if grep -q CONFIG_MODULES=y .config; then
25 if grep -q CONFIG_DRM=y .config; then
29 PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
30 __KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
31 EXCLUDES="$RCS_TAR_IGNORE --exclude=.tmp_versions --exclude=*vmlinux* \
32 --exclude=*.o --exclude=*.ko --exclude=*.cmd --exclude=Documentation \
33 --exclude=.config.old --exclude=.missing-syscalls.d"
35 # We can label the here-doc lines for conditional output to the spec file
38 # $S: this line is enabled only when building source package
39 # $M: this line is enabled only when CONFIG_MODULES is enabled
40 sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
42 Summary: The GNU Linux-libre Kernel
43 Version: $__KERNELRELEASE
44 Release: $(cat .version 2>/dev/null || echo 1)
46 Group: System Environment/Kernel
47 Vendor: The GNU Linux-libre Community
48 URL: https://linux-libre.fsfla.org
49 $S Source: kernel-$__KERNELRELEASE.tar.gz
51 %define __spec_install_post /usr/lib/rpm/brp-compress || :
52 %define debug_package %{nil}
55 The GNU Linux-libre Kernel, the operating system core itself
58 Summary: Header files for the GNU Linux-libre for use by glibc
59 Group: Development/System
60 Obsoletes: kernel-headers
61 Provides: kernel-headers = %{version}
62 Provides: kernel-libre-headers = %{version}
64 Kernel-headers includes the C header files that specify the interface
65 between the GNU Linux-libre and userspace libraries and programs. The
66 header files define structures and constants that are needed for
67 building most standard programs and are also needed for rebuilding the
71 $S$M Summary: Development package for building kernel modules to match the $__KERNELRELEASE kernel
72 $S$M Group: System Environment/Kernel
74 $S$M %description devel
75 $S$M This package provides kernel headers and makefiles sufficient to build modules
76 $S$M against the $__KERNELRELEASE kernel package.
82 $S make %{?_smp_mflags} KBUILD_BUILD_VERSION=%{release}
85 mkdir -p %{buildroot}/boot
87 mkdir -p %{buildroot}/boot/efi
88 cp \$(make image_name) %{buildroot}/boot/efi/vmlinuz-$KERNELRELEASE
89 ln -s efi/vmlinuz-$KERNELRELEASE %{buildroot}/boot/
91 cp \$(make image_name) %{buildroot}/boot/vmlinuz-$KERNELRELEASE
93 $M make %{?_smp_mflags} INSTALL_MOD_PATH=%{buildroot} KBUILD_SRC= modules_install
94 make %{?_smp_mflags} INSTALL_HDR_PATH=%{buildroot}/usr KBUILD_SRC= headers_install
95 cp System.map %{buildroot}/boot/System.map-$KERNELRELEASE
96 cp .config %{buildroot}/boot/config-$KERNELRELEASE
97 bzip2 -9 --keep vmlinux
98 mv vmlinux.bz2 %{buildroot}/boot/vmlinux-$KERNELRELEASE.bz2
99 $S$M rm -f %{buildroot}/lib/modules/$KERNELRELEASE/build
100 $S$M rm -f %{buildroot}/lib/modules/$KERNELRELEASE/source
101 $S$M mkdir -p %{buildroot}/usr/src/kernels/$KERNELRELEASE
102 $S$M tar cf - $EXCLUDES . | tar xf - -C %{buildroot}/usr/src/kernels/$KERNELRELEASE
103 $S$M cd %{buildroot}/lib/modules/$KERNELRELEASE
104 $S$M ln -sf /usr/src/kernels/$KERNELRELEASE build
105 $S$M ln -sf /usr/src/kernels/$KERNELRELEASE source
111 if [ -x /sbin/installkernel -a -r /boot/vmlinuz-$KERNELRELEASE -a -r /boot/System.map-$KERNELRELEASE ]; then
112 cp /boot/vmlinuz-$KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm
113 cp /boot/System.map-$KERNELRELEASE /boot/.System.map-$KERNELRELEASE-rpm
114 rm -f /boot/vmlinuz-$KERNELRELEASE /boot/System.map-$KERNELRELEASE
115 /sbin/installkernel $KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm
116 rm -f /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm
120 if [ -x /sbin/new-kernel-pkg ]; then
121 new-kernel-pkg --remove $KERNELRELEASE --rminitrd --initrdfile=/boot/initramfs-$KERNELRELEASE.img
122 elif [ -x /usr/bin/kernel-install ]; then
123 kernel-install remove $KERNELRELEASE
127 if [ -x /sbin/update-bootloader ]; then
128 /sbin/update-bootloader --remove $KERNELRELEASE
132 %defattr (-, root, root)
133 $M /lib/modules/$KERNELRELEASE
134 $M %exclude /lib/modules/$KERNELRELEASE/build
135 $M %exclude /lib/modules/$KERNELRELEASE/source
139 %defattr (-, root, root)
143 $S$M %defattr (-, root, root)
144 $S$M /usr/src/kernels/$KERNELRELEASE
145 $S$M /lib/modules/$KERNELRELEASE/build
146 $S$M /lib/modules/$KERNELRELEASE/source