]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | #!/bin/sh |
2 | # | |
2174d292 MM |
3 | # Output a simple RPM spec file. |
4 | # This version assumes a minimum of RPM 4.0.3. | |
1da177e4 LT |
5 | # |
6 | # The only gothic bit here is redefining install_post to avoid | |
7 | # stripping the symbols from files in the kernel which we want | |
8 | # | |
9 | # Patched for non-x86 by Opencon (L) 2002 <[email protected]> | |
10 | # | |
11 | ||
12 | # how we were called determines which rpms we build and how we build them | |
5289c322 | 13 | if [ "$1" = prebuilt ]; then |
8c5d4b64 | 14 | S=DEL |
1da177e4 | 15 | else |
8c5d4b64 | 16 | S= |
1da177e4 LT |
17 | fi |
18 | ||
0b7f12f5 MY |
19 | if grep -q CONFIG_MODULES=y .config; then |
20 | M= | |
21 | else | |
22 | M=DEL | |
23 | fi | |
24 | ||
5289c322 | 25 | if grep -q CONFIG_DRM=y .config; then |
1da177e4 LT |
26 | PROVIDES=kernel-drm |
27 | fi | |
28 | ||
29 | PROVIDES="$PROVIDES kernel-$KERNELRELEASE" | |
5289c322 MY |
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" | |
1da177e4 | 34 | |
8c5d4b64 MY |
35 | # We can label the here-doc lines for conditional output to the spec file |
36 | # | |
37 | # Labels: | |
38 | # $S: this line is enabled only when building source package | |
0b7f12f5 | 39 | # $M: this line is enabled only when CONFIG_MODULES is enabled |
8c5d4b64 MY |
40 | sed -e '/^DEL/d' -e 's/^\t*//' <<EOF |
41 | Name: kernel | |
42 | Summary: The Linux Kernel | |
43 | Version: $__KERNELRELEASE | |
44 | Release: $(cat .version 2>/dev/null || echo 1) | |
45 | License: GPL | |
46 | Group: System Environment/Kernel | |
47 | Vendor: The Linux Community | |
48 | URL: http://www.kernel.org | |
49 | $S Source: kernel-$__KERNELRELEASE.tar.gz | |
50 | Provides: $PROVIDES | |
51 | %define __spec_install_post /usr/lib/rpm/brp-compress || : | |
52 | %define debug_package %{nil} | |
1da177e4 | 53 | |
8c5d4b64 MY |
54 | %description |
55 | The Linux Kernel, the operating system core itself | |
1da177e4 | 56 | |
8c5d4b64 MY |
57 | %package headers |
58 | Summary: Header files for the Linux kernel for use by glibc | |
59 | Group: Development/System | |
60 | Obsoletes: kernel-headers | |
61 | Provides: kernel-headers = %{version} | |
62 | %description headers | |
63 | Kernel-headers includes the C header files that specify the interface | |
64 | between the Linux kernel and userspace libraries and programs. The | |
65 | header files define structures and constants that are needed for | |
66 | building most standard programs and are also needed for rebuilding the | |
67 | glibc package. | |
5289c322 | 68 | |
0b7f12f5 MY |
69 | $S$M %package devel |
70 | $S$M Summary: Development package for building kernel modules to match the $__KERNELRELEASE kernel | |
71 | $S$M Group: System Environment/Kernel | |
72 | $S$M AutoReqProv: no | |
73 | $S$M %description -n kernel-devel | |
74 | $S$M This package provides kernel headers and makefiles sufficient to build modules | |
75 | $S$M against the $__KERNELRELEASE kernel package. | |
76 | $S$M | |
8c5d4b64 MY |
77 | $S %prep |
78 | $S %setup -q | |
79 | $S | |
80 | $S %build | |
81 | $S make %{?_smp_mflags} KBUILD_BUILD_VERSION=%{release} | |
82 | $S | |
83 | %install | |
002494d8 | 84 | mkdir -p %{buildroot}/boot |
8c5d4b64 | 85 | %ifarch ia64 |
002494d8 MY |
86 | mkdir -p %{buildroot}/boot/efi |
87 | cp \$(make image_name) %{buildroot}/boot/efi/vmlinuz-$KERNELRELEASE | |
88 | ln -s efi/vmlinuz-$KERNELRELEASE %{buildroot}/boot/ | |
8c5d4b64 | 89 | %else |
002494d8 | 90 | cp \$(make image_name) %{buildroot}/boot/vmlinuz-$KERNELRELEASE |
8c5d4b64 | 91 | %endif |
002494d8 MY |
92 | $M make %{?_smp_mflags} INSTALL_MOD_PATH=%{buildroot} KBUILD_SRC= modules_install |
93 | make %{?_smp_mflags} INSTALL_HDR_PATH=%{buildroot}/usr KBUILD_SRC= headers_install | |
94 | cp System.map %{buildroot}/boot/System.map-$KERNELRELEASE | |
95 | cp .config %{buildroot}/boot/config-$KERNELRELEASE | |
8c5d4b64 | 96 | bzip2 -9 --keep vmlinux |
002494d8 MY |
97 | mv vmlinux.bz2 %{buildroot}/boot/vmlinux-$KERNELRELEASE.bz2 |
98 | $S$M rm -f %{buildroot}/lib/modules/$KERNELRELEASE/build | |
99 | $S$M rm -f %{buildroot}/lib/modules/$KERNELRELEASE/source | |
100 | $S$M mkdir -p %{buildroot}/usr/src/kernels/$KERNELRELEASE | |
8a6105c4 | 101 | $S$M tar cf - $EXCLUDES . | tar xf - -C %{buildroot}/usr/src/kernels/$KERNELRELEASE |
002494d8 | 102 | $S$M cd %{buildroot}/lib/modules/$KERNELRELEASE |
0b7f12f5 MY |
103 | $S$M ln -sf /usr/src/kernels/$KERNELRELEASE build |
104 | $S$M ln -sf /usr/src/kernels/$KERNELRELEASE source | |
1da177e4 | 105 | |
8c5d4b64 | 106 | %clean |
002494d8 | 107 | rm -rf %{buildroot} |
fc370ecf | 108 | |
8c5d4b64 MY |
109 | %post |
110 | if [ -x /sbin/installkernel -a -r /boot/vmlinuz-$KERNELRELEASE -a -r /boot/System.map-$KERNELRELEASE ]; then | |
111 | cp /boot/vmlinuz-$KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm | |
112 | cp /boot/System.map-$KERNELRELEASE /boot/.System.map-$KERNELRELEASE-rpm | |
113 | rm -f /boot/vmlinuz-$KERNELRELEASE /boot/System.map-$KERNELRELEASE | |
114 | /sbin/installkernel $KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm | |
115 | rm -f /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm | |
116 | fi | |
2174d292 | 117 | |
8c5d4b64 MY |
118 | %preun |
119 | if [ -x /sbin/new-kernel-pkg ]; then | |
120 | new-kernel-pkg --remove $KERNELRELEASE --rminitrd --initrdfile=/boot/initramfs-$KERNELRELEASE.img | |
eea6f62b JMC |
121 | elif [ -x /usr/bin/kernel-install ]; then |
122 | kernel-install remove $KERNELRELEASE | |
8c5d4b64 MY |
123 | fi |
124 | ||
125 | %postun | |
126 | if [ -x /sbin/update-bootloader ]; then | |
127 | /sbin/update-bootloader --remove $KERNELRELEASE | |
128 | fi | |
129 | ||
130 | %files | |
131 | %defattr (-, root, root) | |
0b7f12f5 MY |
132 | $M /lib/modules/$KERNELRELEASE |
133 | $M %exclude /lib/modules/$KERNELRELEASE/build | |
134 | $M %exclude /lib/modules/$KERNELRELEASE/source | |
8c5d4b64 MY |
135 | /boot/* |
136 | ||
137 | %files headers | |
138 | %defattr (-, root, root) | |
139 | /usr/include | |
0b7f12f5 MY |
140 | $S$M |
141 | $S$M %files devel | |
142 | $S$M %defattr (-, root, root) | |
143 | $S$M /usr/src/kernels/$KERNELRELEASE | |
144 | $S$M /lib/modules/$KERNELRELEASE/build | |
145 | $S$M /lib/modules/$KERNELRELEASE/source | |
8c5d4b64 | 146 | EOF |